Un Inclinomètre et bien plus

Altimètre, Baromètre, Thermomètre, Niveau 3 axes avec laser et encore et encore ...

Inclino vue

 

          Eh bien, voici une petite boîte qui a beaucoup plus d'utilité que de boutons ! Rendez-vous compte que pour un prix ridicule, vous avez un thermomètre, un baromètre, un altimètre, un niveau sur 3 axes (x longueur, y largeur, z verticalité), avec projection laser qui vous rendra bien service si vous bricolez, et même les maçons portugais n'ont pas dans leurs outils ... Et avec un intérêt tout particulier si vous faites du camping-car, où il sera très utile, en plus de pouvoir dire : "c'est moi qui l'ai fait !".

Les menus proposés :

Inclino fonc          Commençons par explorer ce que cette petite boîte est capable de faire avec ses quatre boutons de commande :

  1. Le bouton supérieur met en marche l'outil par une simple pression d'une seconde environ
  2. Le second permet d'enregistrer la référence dans les menus "Ecart:" dans l'axe des X et des Z et d'allumer la diode laser pour projeter la variation angulaire ( nous reviendrons dessus dans l'explication du menu relatif)
  3. Le troisième nous fait revenir au menu précédant.
  4. Le dernier en bas fait passer au menu suivant et valide l'arrêt  sous l'écran "STOP"

          Après la mise en route un écran d'accueil, avec l'adresse de mon site apparaît trois secondes et nous envoi la première page du menu :

  • La température du milieu ambiant s'affiche au dixième de degré . Si l'on reste sous celui-ci une dérive vers le haut, de quelque dixième est due à l'échauffement du convertisseur de tension. Si cet écart est gênant, on peut insérer un isolant entre le BMP180 et l'onduleur de l'élévateur.
  • Si on appuie sur le bouton du bas, le display affiche la pression atmosphérique. C'est mieux que les rhumatismes pour prévoir l'évolution de la météo : Une baisse va signaler une dégradation du temps, alors que la montée nous indique une amélioration .
  • Le menu suivant c'est l'altitude ! En utilisant également la pression atmosphérique, on va pouvoir estimer à quelle hauteur on se trouve .
  • Puis c'est le niveau horizontal avec allumage automatique de la diode laser lorsque l'horizontalité est parfaite ! (La précision est tributaire du soin apporté à la réalisation => on parlera réglages plus bas ).
  • Un menu plus loin, c'est la latéralité. Sans allumage du rayon, là ça ne sert à rien .
  • Et la verticalité allume le laser quand on est à zéro degré par rapport à l'axe vertical .
  • Puis on trouve le menu "Ecart x ". En donnant une inclinaison, ou horizontalité au boîtier, on a la possibilité d'enregistrer une valeur en appuyant sur le deuxième bouton, ce qui a pour effet également d'allumer le laser et de nous montrer la référence de départ ... Ensuite quand on oriente l'inclinomètre, l'écran affiche la différence angulaire entre ces deux points, en positif ou négatif .
  • Même chose pour l'axe des y mais sans laser (en fait, cette page ne sert pas à grand-chose ).
  • Sur le menu suivant, on évalue l'écart des z ; et c'est sensiblement la même chose dans la verticalité .
  • Le dernier menu c'est le STOP ! deux possibilités: soit on ré-appuie sur le bouton ou on attend deux minutes et l'outil s'arrête .

          Voilà tout ce que l'on peut faire avec ça. Je n'ai pas utilisé la fonction "compas" mais si vous en voyez une utilité, sachez qu'elle est dispo et ne demande qu'à être exploitée.

 

Qu'est-ce que l'on trouve dans la boite ?

Inclino matos

Comment ça marche : Le Schéma va nous le dire ...

Inclino sch          Un microcontrôleur ATMega328P prend en charge tout le fonctionnement de l'ensemble. Son horloge est cadencée par un quartz extérieur de 16 MHz (Q2) stabilisé par 2 condensateurs de 22pF (C3-C4). On force la borne "reset" à l'état logique haut à travers une résistance de 10K (R2). C'en est soldé de sa partie intime. Commençons par l'alimentation : un chargeur TP4056 avec une entrée USB-C charge la batterie de stockage d'énergie. La sortie négative de cette platine est coupée par le contact d'un relais lorsque le montage est à l'arrêt. Un appui sur le bouton K1 de l'écran tire à la masse cette sortie, via la diode D2 (1N4148) pour alimenter par la masse le convertisseur de tension 3,7 --> 5 volts (RT9266) qui est commune à tout l'ensemble. Pendant que l'on a le doigt dessus, les premiers cycles du programme du processeur sont là pour faire tirer le relais 5volts (HF49F), via la résistance de base de 2K2 (R1) en rendant passant le transistor 2N2222 (U$9), et le maintiendra collé jusqu'à l'arrêt. Là, on peut retirer le doigt ! Une diode (D1) de roue-libre aux bornes de la bobine du relais assure la protection contre les transitoires et tensions induites à la rupture .

          Un même bus I2C généré PC4 / PC5, (SCL synchro horloge et SDA envoie / lecture de données ) est chargé de la communication entre l'ATMega , l'écran Oled, le gyroscope MPU6050, le magnétomètre HCM5883 et le baro-alti-thermomètre BMP180 grâce aux adresses différenciées de chaque composants. Tous dans le même tuyau et chacun ne prend que ce qui l'intéresse. L'écran apparaît en deux couleurs (jaune et bleu ) mais en réalité, il est blanc et tinté par des filtres sur le verre. Les quatre boutons situés à sa droite tirent les informations K1 à K4 vers GND . Pas besoin de résistances de Pull-up, le DDR du processeur peut les inclure par déclaration logiciel. Pas besoin non plus de résistances de 4K7 pour tirer à VCC les lignes de bus : elles sont incluses sur les modules. 

          La diode laser est commandée par un transistor 2N2222 qui permet de passer le GND lorsqu'il est conducteur. Une résistance de limitation de courant base / émetteur de 2K2 (R4) passe les informations issues du PB4 de l'ATMega pour l'allumer ou l'éteindre. Voilà ce qu'il en est de la théorie électronique.

La Réalisation Matérielle:

          Un circuit imprimé, simple face pour rester à la portée de l'amateur, réuni tous les composants panachés entre du CMS (Quartz, condensateurs, transistors, diode, résistances) et du traversant (diode, résistances, connecteurs et supports) pour des raisons de sérigraphie des pistes, d'encombrement et de superposition. En effet les modules sont montés, soit sur des picots, des supports tulipes ou des barrettes sécables. On commence par souder les CMS et le seul et unique strap, puis les autres composants par ordre d'épaisseur. La batterie est logée sous le PCB et est calée par les bossages de la partie inférieure du boîtier. La diode laser n'est pas montée sur le circuit mais prise en sandwich dans l'aménagement du boîtier pour garder des conditions géométriques rigoureuses par rapport au fond afin de garantir un minimum de précision. On pourra éventuellement ajuster à la lime douce le positionnement au pire des cas, car il faut que la hauteur du spot laser soit identique à 1 mètre comme à 5 mètres ! De plus, il est nécessaire de régler la lentille du collimateur pour avoir un spot le plus fin possible. 

Inclino pcb

          Un autre réglage demande une précision relative, c'est l'horizontalité du module MPU650. Une vis micrométrique, et son écrou / contre-écrou permettent d'infléchir le circuit jusqu'à obtenir le "zéro" sur l'écran, en dégauchissant le boîtier, en utilisant  un niveau de précision comme étalon. Le but étant d'avoir une corrélation  de l'axe des x et des z avec la réalité. Le laser ne s'allume pas sur l'axe des y car sa position est longitudinale par rapport à la base plastique. La box de ce montage est réalisée à l'imprimante 3D avec DesignSpark Mechanical . Trois parties la composent : le dessous avec les calages de batterie, l'entrée USB, les bossages de fixation du circuit et le demi cylindre support de la diode laser. Sur la partie supérieure, on retrouve l'autre demi cylindre du laser, l'ouverture pour le regard de l'écran, et les 4 trous des boutons. La troisième partie, c'est les boutons avec une large embase cubique et le petit cylindre diamètre 2 mm qui traverse et sert de touche. 

Les détails du programme :

          Le sketch est développé sous l'IDE Arduino où je déclare comme étant une carte UNO pour le débogage et les tests, puis exporte les binaires compilés en fichier hex . Celui-ci sera chargé dans l'ATMega avec un simple programmateur genre Dataman 40... Ca permet de s'affranchir d'un module Arduino complet avec tous des composants qui ne seraient pas utilisés ici, plus pour des raisons d'encombrement et de simplicité que d'économie: les modules ne sont pas chers.

          Le programme est largement commenté (une ligne de commentaire sur chacune) pour bien montrer ce que j'ai voulu faire. Comme d'habitude, au début  c'est les déclarations pour l'appel des bibliothèques (on ne va pas réinventer ce qui a le privilège d'exister), puis c'est le tour des variables. Dans le setup, la première des choses, c'est le DDR des GPIOs et la mise au niveau "1" logique de la sortie du relais afin de ne pas avoir à garder le doigt trop longtemps sur le bouton de mise en marche. Avec ensuite la "mise en service" des modules et l'adresse de mon site qui apparaît sur la page d'accueil .

          Dans le Loop, j'ai voulu faire une expérience sur le déplacement dans toute une série de sous-menus individuels; en effet, plutôt que d'utiliser les classiques du C++ comme Switch  et Case, j'ai essayé un vieux truc du Basic avec l'instruction Goto et visiblement ça marche . Goto --> Label pour boucler ad vitam aeternam ou soumis à condition If ... Goto Label . Les puristes trouveront que ça manque d'élégance, mais il faut essayer, ça fonctionne et c'est structuré .

          La boucle d'arrêt en fin de programme offre deux méthodes, soit par ré-appui sur le bouton, soit en attendant le dépassement d'un compteur temporisé quand l'indication "STOP !" s'affiche sur l'écran.

Le set de fichiers pour la réalisation :

InclinometreInclinometre (860.36 Ko)

Et pour terminer :

          Un bel instrument pour remettre droit tout ce qui va de travers dans ce monde ! De l'étagère que l'on veut positionner au mur à la même hauteur que l'autre, à la moto à laquelle on fait les niveaux, aux béquilles/vérins du camping car,etc etc ... Avec en prime les fonctions météorologiques offertes par le BMP180  et avec le plaisir de dire : "c'est moi qui l'ai fait !"

Inclino fin

 

 

 

 

 

Ajouter un commentaire