Steuern Sie einen Arduino Mit einer Armbanduhr (TI eZ430 Chronos)

4 Schritt:Schritt 1: Benötigte Stuff Schritt 2: Das Arduino Sketch Schritt 3: Mit dieser Demo Schritt 4: Die nächsten Schritte

Steuern Sie einen Arduino Mit einer Armbanduhr (TI eZ430 Chronos)

Steuern Sie einen Arduino Mit einer Armbanduhr (TI eZ430 Chronos)

Die Uhr
Die Texas Instruments eZ430 Chronos ist ein cooles Gadget. Es verfügt über eine bidirektionale Funkverbindung, und eine ganze Reihe von Sensoren: Temperatur, Druck, Beschleunigung.

In der Tat, es ist ein Entwicklungs-Kit für die MSP 430 (a Low-Power-Mikrocontroller), dass TI als Uhr (genial!) Verpackt und mit viel Tools ausgeliefert. Die Firmware kann geändert werden, um neue Funktionen in die Uhr zu implementieren.

Auch ohne die Entwicklung etwas auf die Uhr, es ist ein tolles Spielzeug:
- Die Uhr allein ist ziemlich cool --und hat die TI-Logo ;-),
- Die Standard-Funktionen können für eine breite Palette von kühlen Experimente und Entwicklungen um ihn herum.

RF-Kommunikations hat eine ganz kurze Reichweite, und ziemlich niedrigem Verbrauch. Es ist nicht Bluetooth, aber SimpliciTI [TM] oder Bluerobin [TM].

Ziemlich viel Dokumentation über die Uhr (Beispielcode, technische Daten, Schaltpläne) auf dem Web gefunden werden. Google ist dein Freund.

Schauen Sie auf den PC
Die Uhr kommt mit einem Zugangspunkt (dh dem Peer-Gerät kann die Uhr zu sprechen) in Form eines Dongles, mit einem TI-Chips, die auf der einen Seite, auf die Uhr zu sprechen über RF, und auf der anderen Seite, sprechen Sie mit dem PC über ein USB-Slave-Schnittstelle.

Wenn der Zugangspunkt wird in einen PC angeschlossen ist, kann eine PC-Anwendung zur Verfügung gestellt von TI nutzen es, um mit der Uhr zu kommunizieren: graph Sensoren, setzen Sie die Uhr Zeit, kalibrieren Sensoren senden Fitnessdaten. Das Schöne daran ist, dass TI schrieb es in einer Skriptsprache (ehrwürdigen Tcl / Tk) auf mehreren OS-es laufen.

Es ist sehr einfach, Ihre eigenen PC-Anwendung zu schreiben, wie durch einige Beispiele in Python geschrieben gezeigt. Es gibt zahlreiche solcher Beispiele, die auf dem Netz zu finden sind.

Schauen Sie auf Arduino
Wie sieht es mit einem Arduino statt eines PC? Sie könnten vollständig Taschenformat Projekte zu machen!

Überraschenderweise konnte ich keine Ahnung über sie im Web gefunden.

I ausgewertet mehrere USB-Host-Bibliotheken, und endlich den richtigen Quellcode der Anwendung zu beginnen (ACM auf CDC, für Modem, durch Schaltungen @ Home, http://www.circuitsathome.com ; Oleg, danke für die Bibliothek, Beispiele, und für die Hilfe!).

Es funktioniert schließlich ist es sehr einfach, und das ist, was ich dabei mit der vorliegenden Beitrag.

Nur grundlegende Arduino-Kenntnisse erforderlich. Allerdings ist dieser Beitrag nicht ein Arduino Tutorial.

Genug gesagt, lasst uns zur Sache kommen: Schritt 1: Benötigte Stuff



Steuern Sie einen Arduino Mit einer Armbanduhr (TI eZ430 Chronos)

Steuern Sie einen Arduino Mit einer Armbanduhr (TI eZ430 Chronos)

Steuern Sie einen Arduino Mit einer Armbanduhr (TI eZ430 Chronos)

Die Uhr
Sie können kaufen, die TI eZ430 Chronos Uhr aus mehreren Wiederverkäufern (zB Mouser, Farnell, oder Amazon). Es wird kommen mit: Software und doc auf einer CD-ROM, ein USB-Dongle, ein HF-Zugangspunkt ist, ein USB-Dongle, die Uhr neu zu programmieren, (wir werden es nicht verwenden hier), einen Schraubendreher, um die Uhr zu öffnen (wir haben gewonnen 't verwenden Sie es entweder *) (*), aber hey, wann haben Sie zuletzt einen Schraubendreher mit einer Uhr und ein Handbuch erklärt, wie --und Förderung zu-- es zu öffnen?

Das Arduino
Alle mehr oder weniger Standard Arduino tun wird, und das Wichtigste ist es, USB-Host-Funktion haben.

Hierfür sind die folgenden Konfigurationen unter den möglichen diejenigen: Arduino (meine ist Duemilanove) und eine USB-Host-Schild (meine ist von Schaltungen @ Home)
- Oder - Arduino Mega ADK (wichtig: muss ADK Variante sei es verfügt über USB-Host an Bord) Schritt 2: Der Arduino Sketch

Steuern Sie einen Arduino Mit einer Armbanduhr (TI eZ430 Chronos)
Haben USB-Host-Bibliothek, v2.0
Installieren Sie diese Bibliothek in Ihr Arduino-System:
https://github.com/felis/USB_Host_Shield_2.0 Wichtig: Verwenden Sie dieses 2.0-Version der Bibliothek Unter Linux werden die Bibliotheksdateien müssen in Wohnsitz
/ Usr / share / arduino / Bibliotheken / USB_Host_Shield_2_0 / Anpassen der USB-Host-Bibliothek für Ihre Karte
Bearbeiten Sie die Bibliotheksdatei avrpins.h
(Auf Linux: /usr/share/arduino/libraries/USB_Host_Shield_2_0/avrpins.h) und kommentieren Sie eine der Linien #define BOARD_MEGA_ADK oder #define BOARD_TEENSY wenn Ihr Board ist einer von ihnen. Für sagen Uno oder Duemilanove, lassen Sie sie auskommentiert. Das ist ziemlich ärgerlich, vor allem, wenn Sie einige der einzelnen Bretter, weil Sie müssen daran denken, zu prüfen / zwicken die Bibliothek nach dem Ändern der Platine und vor dem Kompilieren ... Ich wünschte, das #define könnte in der Skizze-Datei befinden.

Erstellen Sie die Arduino Sketch
Erstellen Sie ein Arduino Sketch aus der Datei eZ430_basic.zip in diesem Schritt angeschlossen. Kompilieren, laden und ausführen.

Wie funktioniert es
Die Initialisierung wird durch Instanziieren diese Objekte durchgeführt:
USB Usb; // Instanziieren USB
ACMAsyncOper AsyncOper; // CDC erstellen
ACM ACM (& Usb, & AsyncOper); // Erstellt ACM und binden CDC auf USB

Dann wird in der Schleife (), eines gilt diese aufrufen, um den USB-Stack laufen zu lassen:
Usb.Task ();

Um Daten mit dem USB-Gerät auszutauschen:
Acm.SndData (frame_len, frame_to_send);
Acm.RcvData (& len, receive_buffer); // Init len w / Puffergröße wird mit len erhalten aktualisiert werden

Wir müssen zwei verschiedene Rahmen zu senden, eine an den Dongle RF einzuschalten, und eine, um Daten von der Uhr zu beantragen. Dann müssen wir empfangen und decodieren einen Rahmen, mit dem Uhren Reaktion (oder deren Fehlen) .Schritt 3: Mit dieser Demo

Steuern Sie einen Arduino Mit einer Armbanduhr (TI eZ430 Chronos)
Diese Demo-Anwendung initialisiert die RF-Zugangspunkt in SimpliciTI [TM] Modus, dann bietet die Wiederholung Beschleunigungsmesser Anfragen an die Uhr, bekommt die Antwort von der Uhr, filtert, interpretiert und zeigt das Ergebnis an.

Der Access Point gibt Antworten, die von solchen Rahmen:
0xFF 0x06 0x07 KK XX YY ZZ

wobei:
KK = 0xFF, wenn es keine Antwort (keine Uhr in Reichweite oder das Senden oder Rahmen verloren)
KK = 0x01, wenn keine Taste gedrückt wird,
KK = andere Werte je nach Tasten
XX, YY, ZZ = wenn KK ist nicht 0xFF: Wert X resp. Y- und Z-Beschleunigung, wie 8-Bit signed int

Das Arduino nutzt seine Slave-Schnittstelle an einen PC angeschlossen, um seine Macht aus dem PC zu bekommen, und Ergebnis-Nachrichten an einem Terminal.

Auf dem Bild, können Sie die Ausgabe zu sehen, während ich nach der Uhr und drückte auf die #, * und bis Tasten. Beachten Sie, dass die Uhr nicht Entprellen der Tasten, so eine Presse können mehrere Ereignisse zu erzeugen. Wenn dies ein Problem ist, hat Entprellung auf dem Arduino side.Step 4 realisiert werden: Die nächsten Schritte

Steuern Sie einen Arduino Mit einer Armbanduhr (TI eZ430 Chronos)
Sehr nächsten Schritte
Es ist leicht, die Skizze, um LEDs, Servos, Relais, etc. mit Hilfe des ACC oder PPt Modi der Uhr kontrollieren ändern. Arduino-basierte Home-Automation und Robotik können nun von der Uhr kontrolliert zu werden.

Im ppt-Modus wird die X, Y und Z-Beschleunigungswerte alle Null sind und KK = 0x12, 0x32, 0x22, auf Tastendrücke.

Weitere Schritte
Es gibt noch andere Funktionen, die einfach, in SimpliciTI [TM] Modus (immer Sensor, Zeit und Datum Daten, Kalibrierung von Sensoren) zu verwenden, um etwas zu modifizieren diese Skizze, und Einstellen der Uhr in der Sync-Modus befinden.

Auch in der Bluerobin [TM] -Modus, kann man fitness Meßdaten an die Uhr zu senden: die Arduino kann ein Sport-Sensor zu werden.

Auch weitere Schritte
Dann wird durch Modifizieren der Uhr Firmware selbst, kann man ganz neue Modi, Anzeigen und Funktionen auf der Uhr zu schaffen. Ich habe nicht diesen Bereich noch zu erkunden, aber Beispiele finden Sie im Internet gefunden werden. Es erfordert etwas mehr fortgeschrittene Kenntnisse (C, MSP430, und IAR Toolchain).

Abschluss
Ich hoffe, dieses Thema liegt mehr als sinnvoll.
Jetzt erhalten Sie eine Uhr, ein Arduino mit USB-Host, und stellen und veröffentlichen ein tolles Projekt!