Дик Трейси только мечтал иметь такие часы …
Да, снова настало время для железа! Хотя сегодняшнее сообщение относится к .Net Micro Framework, оно использует компоненты, которые я раньше не упоминал: часы Texas Instruments EZ430-Chronos и плату ChipworkX фирмы GHI Electronics.
Роб Майлс (Rob Miles) показывает нам, как заставить эти две вещи общаться друг с другом…
Использование Texas eZ430 Watch с .NET Micro Framework
Недавно я приобрел часы Texas Instruments EZ430-Chronos. Одно из лучших моих вложений. Только за пятьдесят долларов вы получаете часы с LСD-экраном, которые можно программировать. Более того, они содержат целую пачку сенсоров и могут сообщаться с базовым устройством по беспроводной связи. Примерно в то же время я приобрел плату ChipworkX от GHI Electronics.
Итак, однажды в обеденный перерыв я решил попытаться заставить из работать вместе. Это получилось очень просто. Часы имеют беспроводной коннектор (можно видеть его печатную плату наверху картинки) который выполнен как последовательный USB-порт для всего, во что бы вы его не воткнули. Так как плата ChipworkX имеет поддержку последовательного порта и принимающего разъема USB, то не стоит труда заставить их общаться. Немного поисков и я обнаружил протокол акселерометра для часов, после чего всё пошло.
Он также написал оболочку для часов. Вот кусок кода:
private void watchControl()
{
watchComs.Write(startAccessPoint, 0, startAccessPoint.Length);
while (watchComs != null)
{
try
{
watchComs.Write(readAccel, 0, readAccel.Length);
int bytesRead = watchComs.Read(buffer, 0, buffer.Length);
if (buffer[0] == 0xff &&
buffer[1] == 0x06 &&
buffer[2] == 0x07 &&
buffer[3] == 0x01)
{
Monitor.Enter(watchLock);
watchPos.X = (sbyte)buffer[4];
watchPos.Y = (sbyte)buffer[5];
watchPos.Z = (sbyte)buffer[6];
lastReading = DateTime.Now;
successfulReading = true;
Monitor.Exit(watchLock);
if (NewReading != null)
{
// Fire off a thread to run any methdos bound to the
// new reading event
Thread readingThread = new Thread(new ThreadStart(newReadingEvent));
readingThread.Start();
}
}
else
{
successfulReading = false;
}
}
catch
{
// just ignore the errors for now
}
}
}
Хорошо, может быть часы Дика Трейси все-таки немного круче (я имею в виду, у них было два способа передачи информации и всё), кое-что можно сказать и об этой комбинации…