Stap 1: Hoe werken de InPace elektronica?
Het hele systeem wordt aangedreven door een 3, 7V 500mAh Lithium-polymeer batterij.
Instellen van de "aan/uit" schakelaar (die zich bevindt in het midden van het Configuratiescherm in de bovenstaande afbeelding) naar de ON positie zal toestaan de LiPo opladen module is rode (+) draad formulier een verbinding met de input spanningsstabilisatoren (+). De batterij is zwarte (-) grond draad is aangesloten op de ingang spanningsstabilisatoren (-).
De spanningsregelaar converteert de LiPo Accu's uitgangsspanning van ~3.7V naar 5V. Dit is de standaardinstelling maar deze spanningsregelaar is geschikt voor 4-12V DC uitgangsspanning door de vaste weerstand aan te passen. De regelaar is alleen geschikt voor het verstrekken van een maximum van 1A (1000mA) van stroom. InPace verbruikt 750mA (+/-~ 150mA) terwijl ingeschakeld zodat deze beperking niet een probleem is.
De spanningsregelaar de (+) en (-) output pinnen zijn verbonden door een rode en zwarte draad naar een stuk van de PCB die ik gesneden naar beneden naar de sectie van een 6 x 4 pinnen met een Dremel gereedschap. Het doel van deze PCB is stroomverdeling. 12 van de pins (de helft van hen) worden gebruikt als een gemeenschappelijke 5V VCC; de andere 12 worden gebruikt als een gemeenschappelijke grond.
De Arduino Pro Mini's "RAW" pin (met het label VIN op een Arduino Uno en de meeste andere boards) is aangesloten op een van de (+) pinnen op de power distributie Raad ik heb gemaakt. De VCC (+) en de GND (-) pinnen van de volgende handelingen zijn ook bedraad aan de macht distributie van bestuur: de Bluetooth 4.0-module, de RGB LED en het Configuratiescherm.
Alle van de Modules zijn aangesloten op de Arduino als volgt:
---------------------------------------
Adafruit microSD Card Read/Write Pins
CS -> pin D-10
MOSI -> pin D-11
MISO -> pin D-12
CLK -> pin D-13
-----------------------------
Adafruit ultieme GPS_Module Module pinnen
RX -> pin D-2
TX -> pin D-3
-----------------------------
Rode Beer Lab BLE Mini Bluetooth 4.0 Module pinnen
(BLE Mini) RX -> TX (Arduino)
(BLE Mini) TX -> RX (Arduino)
-----------------------------
kortstondige tactiele drukknop -> pin 8 (voor het verzenden van Bluetooth-gegevens)
kortstondige tactiele drukknop -> pin 9 (voor logboekregistratie GPS gegevens van starten/stoppen)
-----------------------------
Gemeenschappelijke Anode RGB LED
4 pinnen: rood | VIN | Groen | Blauw |
(1) rode--> pin A0 (op de Arduino)
(2) VIN--> VCC (op het power distributie bord)
(3) groene--> pin A1 (op de Arduino)
(4) blue -> pin A2 (op de Arduino)
-----------------------------
Als alles goed is aangesloten en de Arduino is geprogrammeerd met mijn InPace code, zal nu 3 virtuele Staten bestaan. Deze staan bekend als systemState (int) binnen de code.
Als systemState = 1, het systeem is niets doen, maar wachten op interactie van de gebruiker. De RGB-LED zal rood worden. Als het niet reeds heeft, zullen de GPS-module proberen om satelliet fix te krijgen.
Als de GPS knop is ingedrukt, zal de Arduino is aangemeld via digitale pin 9, systemState wordt gewijzigd in 2, en de RGB-LED groen. Wanneer systemState = 2, de InPace-code parseert de NMEA GPS-satellietgegevens dat de GPS-module is het voeden van de Arduino. Ik gebruikte de Arduino SoftwareSerial bibliotheek om pin 2 en 3 wet als RX en TX spelden om de communicatie met de GPS-module. Na wordt ontleed in tekenreeksen, wordt de GPS-gegevens vervolgens naar de microSD-kaart via pinnen 10-13 (Arduino) die zijn aangesloten op de microSD-breakout zoals hierboven geschreven. Longitude, Latitude, datum en tijd worden toegevoegd aan een tekst bestand gpsdata.txt (het enige bestand op de microSD-kaart).
Hier is een voorbeeld van hoe de GPS gegevens snaren worden opgeslagen in de microSD-kaart.
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
Als de GPS knop opnieuw wordt ingedrukt, zal data-logging worden stopgezet. Als de Bluetooth-knop wordt ingedrukt terwijl systemState = 2, niets zal gebeuren.
Als de Bluetooth-knop wordt gedrukt terwijl de Arduino terug in de "virtuele staat 1 is" (systemState = 1, wachten voor interactie van de gebruiker), systemState ingesteld op gelijk is aan 3 en van het tekstbestand gegevens via bluetooth zal worden verzonden. Dit wordt gedaan door het doorlopen van alle regels van het bestand gpsdata.txt en af te drukken aan Serial als een UTF-8 gecodeerde tekenreeksen. De RGB LED zal blauw worden totdat de elke lijn van gpsdata.txt via Bluetooth via seriële (pinnen 0 en 1, RX en TX voor de Arduino) op een Baud-Rate van 57600 is verstuurd.