Speedometer GPS Arduino
Bonjour à tous, on se retrouve aujourd'hui pour un compteur de vitesse GPS. Mon père a récemment acquis une vieille voiture. Au-dessus d'une certaine vitesse, celle-ci n'est plus précise, j'ai donc décidé de lui offrir un petit compteur rétro à affichage 7 segments.
Let's get starded !
Choix Des Composant
Pour la réalisation de ce projet je suis aller au plus simple, j'ai globalement utilisé des composants que j'avais déjà, j'ai juste dû acheter un module GPS. Voici donc la liste des composants :
- 1 afficheur 7 segment adressable
- 1 module GPS GY-GPS6MV2
- 1 régulateur LM7805
- 1 Bornier 2 broches
- 1 ATmega 328
- 2 condensateurs de 100nF
- 2 condensateurs de 1µF
- 2 condensateurs de 22pF
- 1 quartz de 16Mhz
Et la vous vous dites un ATmega quoi ? On croyait qu'on aller se servir d'une carte Arduino pour ce projet ? Et bien oui c'est vrai, mais on va "fabriquer" notre propre carte Arduino. En effet les microcontrôleurs ATmega sont les puces utilisées sur les cartes Arduino. Cependant il est très facile de déporter ce microcontrôleur sur une carte personnelle. On va donc voir comment le câbler et surtout comment le programmer !
Cablage Et Programmation Du Microcontrolleur
Sur les cartes Arduino on retrouve pleins de composants qui ne sont pas forcément utiles et en plus consomment du courant pour rien. Comme par exemple la puce permettant de faire l'interface entre le port USB et le µC (microcontrôleur), elle n'est utile que pour le programmer, mais une fois fait elle est présente et alimentée pour rien. Donc nous allons aller au plus simple on va uniquement utiliser le µC et un quartz. Pour cela on se réfère au schéma ci-joint.
On va maintenant passer dans le logiciel Arduino. Pour pouvoir téléverser notre premier programme sur le µC. Il y a quelques étapes de préparation avant cela :
1. On va d'abord téléverser l'exemple "ArduinoISP" sur une carte Arduino qui va servir de programmateur. On trouve l'exemple dans Fichier>Exemple>ArduinoISP.
2. Ensuite on va ajouter les µC ATmega dans la gestion des cartes pour cela on se rend dans Fichier> Préférences et on colle le lien suivant dans "URL de gestionnaire de cartes supplémentaires" :
'https://mcudude.github.io/MiniCore/package_MCUdude_MiniCore_index.json
3. Puis dans Outils>Type de cartes>Gestionnaire de périphériques, on va venir ajouter les µC ATmega avec la librairie de MCU Dude.
4. Enfin Dans Outils>Type de cartes, on vient sélectionner notre µC, ici ATmega328 et on le configure comme la photo ci-jointe. Bien configurer le port sur le port de votre carte Arduino et le programmateur sur "Arduino as ISP".
J'ai choisi de régler la clock à "8Mhz Internal" qui permet de faire fonctionner le µC sans le quartz.
5. On peut maintenant cliquer sur "Graver la séquence d'initialisation".
Tout est prêt on peut téléverser notre premier programme, par exemple Blink tout simplement, qui va faire clignoter une LED branché sur la pin 13 (voir photo pour la numérotation des pins)
Réalisation Du Shéma
Voici donc le schéma avec les différents composants cités ci-dessus. L'afficheur 7 segments est adressable, il fonctionne donc avec un protocole de communication, cela simplifie grandement le câblage. On se retrouve alors avec 4 pins (dont deux d'alimentation), contrairement à 12 pour un afficheur 7 segments classiques.
De même pour le module GPS, on l'alimente et il nous envoie une trame de données chaque seconde sans aucune configuration, avec une liaison UART( RX-TX).
Pour l'alimentation j'utilise un LM7805 fournissant 5V à partir des 12V fourni par la batterie.
La Programmation
Pour le code nous allons utiliser deux librairies, une pour l'afficheur et une pour le module GPS, respectivement TM1637Display.h et TinyGPS++.h
Le programme n'a rien de compliqué les librairies se chargent de tout.
J'ai juste créé une petite boucle incrémentant et décrémentant le compteur de 0 à 9999 et de 9999 à 0. Cette boucle se lance au démarrage permettant de faire un effet d'initialisation.
Downloads
Impression Du Boitier
Il ne reste plus qu'à créer une petit boite en 3D pour tout ça. Voici les 2 fichiers .stl et le fichier fusion 360 si vous souhaitez le modifier.
Conclusion
Voilà c'est terminé pour ce projet, niveau prix on est toujours imbattable, pas plus de 6 ou 7 € pour le tout (Commande Aliexpress bien sûr). La position GPS peut être un peu longue à être perçu par le module. Cependant ce temps peut être réduit avec un module GPS plus chère qui sera plus performant.
Si vous avez des questions n'hésitez pas.
A bientôt pour un nouveau projet ! 😉