Étape 3: Arduino croquis
GPS : Bibliothèque TinyGPS ++ est utilisé par les deux modules :
http://arduiniana.org/Libraries/tinygpsplus/
J’utilise les bibliothèques de nrf24L01 de maniacBugs :
https://github.com/maniacbug/RF24
https://github.com/maniacbug/RF24Network
Voici les croquis assez complexes.
Croquis de collier : ArduinoTransmitter.zip
N’oubliez pas : Il s’agit d’un Mini Pro 8 MHz 3, 3V Conseil et processeur. Le Mini Pro dispose également d’un brochage différent de type USB-BUB. J’ai fait un adaptateur USB à ce Instructable :
Croquis d’affichage : ArduinoDisplayStation.zip
N’oubliez pas : Ce un Conseil Pro Mini 8MHz 3, 3V et le processeur. Mais je me sers le brochage de USB-BUB « standard ».
LSM303DLHC : Malheureusement, je ne sais plus où j’ai obtenu cette bibliothèque Arduino. Je pense que c’était de Pololu. En tout cas, j’ai joint la bibliothèque.
Ainsi la bibliothèque Pololu a une esquisse de calibrer à « calibrer le LSM303DLHC. Voici la description :
Calibrer : Ce programme est similaire à l’exemple de la série, mais au lieu d’imprimer les dernières lectures, il imprime un fonctionnement minimal et maximal des lectures de chaque axe du magnétomètre. Ces valeurs peuvent être utilisées pour étalonner les fonctions heading() et l’exemple de la rubrique après avoir déplacé le LSM303 à travers chaque orientation possible.
J’ai modifié afin que les minutes et la Maxs affichera sur le LCD5110. Exécutez ce croquis sur le module d’affichage. Exécution de croquis, lentement, tordre et tourner le module dans toutes les orientations. Enregistrez les minutes et la Maxs sur l’écran, puis branchez-les sur Esquisse DisplayStation, remplaçant les valeurs dans les lignes suivantes :
Compass.m_min = (LSM303::vector) {-433, -600,-546} ;
Compass.m_max = (LSM303::vector) {+570, +488, +579} ;
Cela devrait améliorer la boussole.
Avertissement : Quand j’ai upgradé 1.6.1 pour Arduino, j’ai dû mettre à jour les bibliothèques Adafruit_GFX et Adafruit_PCD8544 :
https://Learn.Adafruit.com/Adafruit-gfx-Graphics-Library
https://github.com/Adafruit/Adafruit-PCD8544-Nokia-5110-LCD-Library
Afficher le résumé de l’esquisse :
Sans compter que setup() et loop(), j’ai écrit six fonctions :
getRadioData() utilise nrf24L01 + pour recevoir les données transmises par le module de collier
getGPS() obtient des données GPS du GPS interne
calculent () calcule la distance et position entre les deux
get getHeading() positions du magnétomètre de LSM303
getPosition() get position à l’aide de la rubrique et boussole
displayDirection() afficher des informations sur LCD5110
Setup() commence GPS, boussole, nrf24L01 +, met en place LCD5110
Loop() obtient des données du collier, obtient GPS, calcule la distance et position et affiche