Schritt 1: Wie funktionieren die InPace Elektronik?
Das ganze System ist powered by ein 3.7V 500mAh Lithium-Polymer-Akku.
Einstellung des "on/off" Schalters (befindet sich in der Mitte des Bedienfeldes auf dem Bild oben) auf die Position ON ermöglicht es den LiPo laden Modul ist rot (+) Draht Form eine Verbindung mit dem Spannungsregler (+) eingeben. Die Batterie des schwarzen Massekabel (-) an die Spannungsregler (-) Eingang angeschlossen ist.
Die Spannungsregler wandelt den LiPo-Akku Ausgangsspannung des ~3.7V in 5V. Dies ist die Standardeinstellung, aber dieser Spannungsregler ist in der Lage, 4-12V DC Ausgangsspannung durch Anpassen des festen Widerstands. Der Regler ist nur in der Lage bis zu 1A (1000mA) des Stromes. InPace verbraucht 750mA (+ / ~ 150mAh) während eingeschaltet, so ist diese Einschränkung kein Problem.
Die Spannungs-Regler (+) und (-) Output-Pins sind durch einen roten und schwarzen Draht, ein Stück des PCB, die ich schneiden nach unten in einen 6 x 4 Pins Abschnitt mit einem Dremel Werkzeug verbunden. Der Zweck dieser Platine ist Energieverteilung. 12 der Pins (die Hälfte davon) dienen als eine gemeinsame 5V VCC; die anderen 12 dienen als eine gemeinsame Basis.
Das Arduino Pro Mini "RAW" Pin (mit der Bezeichnung VIN auf ein Arduino Uno und den meisten anderen Boards) mit verbunden ist eines der (+) pins auf Strom Verteiler ich gemacht. VCC (+) und GND (-) Stifte der folgenden sind auch verdrahtet, um den Strom-Verteilerkasten: das Modul Bluetooth 4.0, die RGB-LED und das Control Panel.
Alle Module sind verbunden mit dem Arduino wie folgt:
---------------------------------------
Adafruit MicroSD Karte Schreib-/Pins
CS-Pin d-10 >
MOSI-Pin d-11 >
MISO-Pin d-12 >
CLK-Pin d-13 >
-----------------------------
Adafruit ultimative GPS_Module Modul Pins
RX -> Pin d-2
TX -> Pin d-3
-----------------------------
Roten Bären Lab BLE Mini Bluetooth 4.0 Modul Pins
(BLE Mini) RX -> TX (Arduino)
(BLE Mini) TX-RX (Arduino) >
-----------------------------
momentane taktilen Taster--> Pin 8 (für Bluetooth Daten senden)
momentane taktilen Taster--> Pin 9 (für starten/stoppen GPS Data-logging)
-----------------------------
Gemeinsame Anode RGB LED
4-polig: rot | VIN | Grün | Blau |
(1) rot--> Pin A0 (auf dem Arduino)
(2) VIN -> VCC (auf den Strom-Verteilerkasten)
(3) grün--> Pin A1 (auf dem Arduino)
(4) blau--> Pin A2 (auf dem Arduino)
-----------------------------
Wenn alles ordnungsgemäß angeschlossen und die Arduino mit meinem InPace-Code programmiert wurde, ist jetzt 3 virtuelle Staaten vorhanden. Diese werden als SystemState (Int) innerhalb des Codes bezeichnet.
Wenn SystemState = 1, das System ist nichts zu tun aber warten auf Benutzerinteraktion. Die RGB-LED wird rot sein. Wenn es nicht bereits hat, wird das GPS-Modul versucht Sat-Fix zu bekommen.
Wenn die GPS-Taste gedrückt wird, die Arduino wird benachrichtigt über digital Pin 9 SystemState ist auf 2 geändert und die RGB-LED leuchtet grün. Wenn SystemState = 2, InPace-Code analysiert die NMEA GPS-Satelliten-Daten, dass das GPS-Modul der Arduino Fütterung ist. Ich habe die Arduino-SoftwareSerial-Bibliothek um Pins 2 und 3 wirken wie RX und TX Pins ermöglichen die Kommunikation mit dem GPS-Modul. Nach in Zeichenfolgen analysiert wird, ist die GPS-Daten dann auf die MicroSD-Karte über Pins 10-13 (Arduino) geschrieben mit dem MicroSD-Ausbruch wie oben erwähnt verbunden sind. Längengrad, Breitengrad, Datum und Uhrzeit werden an eine Text-Datei gpsdata.txt (die einzige Datei auf die MicroSD-Karte) angehängt.
Hier ist ein Beispiel dafür, wie die GPS-Daten-Saiten auf die MicroSD-Karte gespeichert werden.
start-105.269462 40.005664 04/22/2015 23:47:14 -105.269363 40.005630 04/22/2015 23:47:16 -105.269409 40.005664 04/22/2015 23:47:17 -105.269340 40.005699 04/22/2015 23:47:20 end
Wenn der GPS-Taste erneut gedrückt wird, wird Datenerfassung gestoppt werden. Wenn die Bluetooth-Taste, während SystemState gedrückt wird = 2, wird nichts passieren.
Wenn die Bluetooth-Taste gedrückt wird, während der Arduino zurück in "virtuellen Staat 1 ist" (SystemState = 1, warten auf Benutzerinteraktion), SystemState wird auf 3 gleich gesetzt und die Text-Datei Daten über Bluetooth gesendet werden. Dies geschieht durch durchlaufen alle Zeilen der gpsdata.txt Datei und drucken es auf seriell als UTF-8 kodierten Strings. Die RGB-LED ist blau, bis jede Zeile des gpsdata.txt über Bluetooth über serielle (Pins 0 und 1, RX und TX des Arduino) mit einer Baudrate von 57600 gesendet wurde.