Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Да, снова настало время для железа! Хотя сегодняшнее сообщение относится к .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
}
}
}
Хорошо, может быть часы Дика Трейси все-таки немного круче (я имею в виду, у них было два способа передачи информации и всё), кое-что можно сказать и об этой комбинации…