Une Box Indispensable
Altimètre, Baromètre, Thermomètre, Accéléromètre, Niveau 3 axes et encore et encore
Eh bien, voici une petite boîte que l'on devrait trouver dans le sac à main de toutes les dames ! Rendez-vous compte que pour un billet 8,5 $ de matériel (Chinois bien sûr!) vous allez avoir une thermomètre, un baromètre, un altimètre, un niveau sur 3 axes (x longueur, y largeur, z verticalité), que même les maçons portugais n'ont pas ... Avec en plus : une accéléromètre 3 axes également, et 3 mesures d'écart 'accélération (très utile pour le transport de nitroglycérine ) .
La simplicité du montage est déconcertante ! Un module GY-88 qui inclut sur quelques cm² d'époxy un sensor BMP085 pour la mesure de la température, pression atmosphérique, et l'altitude, accessible par adressage I2C, ainsi qu'un capteur MPU6050 gyroscopique, magnétomètre et accéléromètre sur les 3 axes perpendiculaires, lui aussi accessible par une adresse de protocole I2C .
Il ne reste plus qu'a y atteler un Arduino Nano pour faire le travail d'exploitation et un afficheur 2 lignes 8 caractères, rétro-éclairé, pour nous montrer le résultat ! Un bouton poussoir permet de passer successivement les menus et une mise en veille, pour l'économie de pile, est inclue dans les 3 derniers . Une pression sur le bouton ou une variation d'accélération, sortira le montage de sa léthargie .
Le tour de la propriété:
Le schéma:
Devant la facilité de mise en oeuvre des modules Arduno, je n'allais pas me prendre la tête à réinventer le monde ! et la puissance du Nano est largement suffisante pour gérer une ligne I2C, un afficheur et quelques entrées/sorties. Commençons par l'afficheur; les instructions et caractères sont envoyés sur quatre lignes de datas en 2 mots de 4 bits validés lors de la présence par l'entrée E et sélectionnés en "fonction" ou "caractère" par le changement d'état de la ligne de pilotage RS. Le contraste est ajusté par une résistance variable de 10k (R5) qui vient polariser la broche VO du display. Les Leds du rétro-éclairage son limitées en courant par une résistance (R3) ; ici 470 ohms mais qui peut varier en fonction de la référence de l'afficheur . Ce rétro-éclairage passe par un transistor 2N2222 piloté en PWM (modulation de largeur d'impulsions) pour régler, atténuer ou couper son éclairement en économie de piles. La base du 2N2222 est limitée en courant par la résistance de 22k (R4). Voila pour l'affichage.
Le bouton S2 permet de se déplacer dans les menus par pressions successives. Une résistance de pull down de 47k (R2) est ajouté pour ne pas laisser l'entrée 'en l'air' au repos. Rien n'empêche d'utiliser la résistance interne de l'Arduino (INPUT_PULLUP) en inversant la référence du commun bouton, mais je ne l'ai pas fait car j'envisageait de remplacer le bouton par une photo-résistance, occultée par le doigt, et cela nécessitait de pouvoir ajuster la valeur du pull down....
Le module GY-88 est alimenté sous 3,3 Volts par le régulateur intégré de l'arduino; pourquoi s'en priver. La communication I2C est assuré par les lignes standards SDA/SCL et les résistances de tirage du bus sont inclues sur le module ; génial, non ? Les adresses des accès sont utilisées dans les 'librarys' de l'asservissement du composant à l'Arduino ; Hé ben comme ça c'est fait, hein ?
Le Circuit Imprimé & l'Implantation des Composant :
Les composants sont, pour beaucoup, de types CMS, donc implantés côté 'cuivre'... Un bon éclairage, des lunettes loupes, un fer à souder fin, des brucelles de qualité et un petit coup de vin blanc pour ceux qui tremblent et la soudure des CMS ne pose pas trop de problèmes . On étame une pad, on approche le composant à la brucelles et on soude le premier bout; quand c'est refroidi, demi tour à l'horizontal du circuit et on soude l'(es) autre(s) pinuche(s) .
Dès que les CMS sont soudés, ne pas oublier les deux straps sous l'afficheur ! quand le display est soudé c'est trop tard ! (Ces deux straps permettent de nous affranchir d'un circuit double faces ) Puis on soude le reste des composants ...
(Ne faites pas comme moi sur le circuit, où le trait de scie s'approche exagérément du bord gauche ! Grrrrrrr....)
Le Sketch : (puisque l'on appelle ainsi les programmes sous Arduino)
Le gros avantage de l'Open Source, c'est que l'on a pas à réinventer le monde à chaque fois ! il existe des librarys de composants développées et disponibles sur le réseau, et il n'y a qu'a les télécharger pour s'en servir : elle n'est pas belle la vie ?
Je ne vais pas trop m'étendre sur le descriptif du sketch puisque qu'il est abondamment commenté ! (presque trop).
/* Thermomètre, baromètre, Altimètre, Inclinomètre, accéléromètre
* avec module Arduino Nano, Accéléromètre GY88 et LCD 2lignes x 8Caractères.
* B.LECLERC 08/17
*/
#include <LiquidCrystal.h> //Library du LCD
#include <Adafruit_BMP085.h> //Library de thermomètre et baromètre
#include <MPU6050.h> //Library de l'accéléromètre et gyroscope
Adafruit_BMP085 bmp; //Déclaration Data du baromètre
MPU6050 accelgyro; //Déclaration Data accéléromètre & gyroscope
Voici le début et je ne vais pas vous raser avec ça ! ; il reste ouvert à toutes personnalisations, compléments, ou autres fonctions . je vais mettre un allumage et extinction progressif sur le rétro-éclairage de l'afficheur de mon prototype !
Vous retrouverez le programme complet dans le fichier zip plus bas dans la page !.
Et pour conclure :
Voici le circuit terminé prêt à être inclus dans un boîtier helland . Pour fignoler la précision de l'horizon dans le sens de la longueur (x), on peut mettre une vis vérin en plastique de 3 mm dans le trou du GY-88 ... Tout en restant modéré sur le flexion afin de ne pas imposer des contraintes hors normes aux soudures des composants .
Les fichiers pour la réalisation sont Zippés ci-dessous: Les schémas et circuit imprimés sous format Eagle de Cadsoft et le programme sous Arduino.
Accel (27.86 Ko)
Ajouter un commentaire