samedi 25 avril 2020

Porte Motorisée de Poulailler (2ème Partie)



 Porte Motorisée de Poulailler (2ème Partie)


Ceci est la suite de l'article précédent :

https://riton-duino.blogspot.com/2020/04/porte-motorisee-de-poulailler-1ere.html

Aujourd'hui le châssis est monté en version servomoteur, un MG996R.

Pour rappel voici le plan prévu :


1. Les photos

Les glissières en U sont des crémaillères de quincaillerie prévues pour des consoles d'étagères. Leur largeur interne est de 12mm :

La partie haute est une plaque d'OSB de 23.5cm x 57cm x 12mm. Ce matériau est très intéressant pour ce montage car il supporte très bien l'humidité.

La plaque est insérée dans les glissières et fixée par 6 vis à bois dans les trous prévus.

Voici la porte :

 N'ayant pas de feuille d'aluminium sous la main elle a été réalisée dans une plaque de PVC (un morceau de couvercle de gaine GTL) de 23cm x 32cm pesant 250 grammes.

Le servomoteur est monté sur un support bois :


 Voici le support côté recto :

 L'épaisseur totale des cales de bois est de 32mm, de quoi ménager un espace entre le bras de levier et le support OSB : 5mm.

Le bras de levier de 16cm est réalisé dans un morceau de fil d'acier galvanisé d'un diamètre de 3mm. Il est aplati au marteau pour pouvoir le percer et le fixer sur l'axe moteur avec du fil d'acier inox :



Il est ici aussi aplati et percé pour pouvoir attacher la ficelle avec un petit anneau de fil d'acier inox :

Pour pouvoir régler le bras de levier bien vertical en position haute il est facile d'incliner le support moteur :

Le montage se comporte bien. Le servomoteur est commandé degré par degré de 0° à 180° avec un petit délai de 30ms entre chaque pas, ce qui donne 5 secondes d'ouverture ou fermeture.

Si l'on augmente le poids de la porte au delà de 450g le servomoteur cale.

Voici deux vidéos de l'ouverture et de la fermeture :


On peut également utiliser une tige métallique en lieu et place de la ficelle, comme le montre cette vidéo d'un "collègue", achess,  du forum ARDUINO :

Son projet ici

2. Avancement

2.1. 26/04/2020

2.1.1. Alimentation servomoteur

Hier le servomoteur était alimenté par une alimentation de labo à découpage 5V.

Aujourd'hui je passe par un MT3608 alimenté sous 4V et réglé sur 6V en sortie, avec un MOSFET pour couper l'entrée du MT3608 quand l'ARDUINO entre en mode sommeil.

Le résultat est un peu moins bon. Le moteur cale à partir de 350g. Plusieurs raisons peuvent être à l'origine de ce problème :

Les longueurs de fils sont différentes. Hier l'alimentation était plus directe.

La breadboard n'améliore pas non plus les choses. Hier le câblage était plus direct, avec moins de contacts intermédiaires.

Il y a fort à parier que le résultat sera meilleur avec une carte électronique équipée de connecteurs de puissance, des piste bien dimensionnées en largeur  et très courtes. Même une plaquette à pastilles aura de meilleures performances qu'une breadboard.

2.1.2. Batterie

J'ai fait un essai d'alimentation avec une SAMSUNG 18650 bien fatiguée mais chargée à bloc. Sa tension chute à 3.5V lors de l'ouverture de la porte, lorsque le bras de levier est horizontal, là où l'effort moteur est le plus important.

Cet essai est indispensable car une batterie vieillit, et je préfère tester cette situation défavorable avant tout.

Le MT6308 n'apprécie apparemment pas que sa tension d'entrée descende trop bas lorsque sa tension de sortie est faible. Dans le cas de l'utilisation avec un servomoteur elle est de 5V ou 6V et cette tension s'écroule.

Avec une tension de sortie de 12V ou plus son comportement est bien meilleur.

Le remplacement par un FP6293 5V améliore beaucoup les choses :

Sa tension de sortie ne chute que de 100mV.

Ce test démontre également l'importance d'une surveillance de la tension de la batterie.

2.2. 27/04/2020

2.2.1. Boutons

Les deux boutons d'ouverture / fermeture manuelles sont ajoutés. Ils sont branchés sur les broches 2 et 3, afin d'autoriser le réveil par interruption.

Lorsqu'une commande manuelle est effectuée, le logiciel passe en mode manuel, et ce mode sera désactivé au bout d'un temps défini, et le mode automatique reprendra alors la main.

Si l'on a fermé la porte manuellement en journée, elle sera ouverte à nouveau plus tard, ceci afin d'éviter les oublis.


2.2.2. Batterie

La capacité de la batterie est mesurée régulièrement. Cette information sera remontée au serveur DOMOTICZ, si cette option est choisie.

Une mesure moyenne de la tension de la batterie est effectuée pendant les ouvertures et fermetures de la porte.

Cela permet de se faire une idée de l'état de la batterie, car une batterie en mauvais état, même si sa tension à vide est normale, peut voir sa tension en décharge chuter assez bas.

Si la tension de la batterie descend en dessous de 3V la LED rouge clignote 5 fois. Il sera donc possible de tester la batterie régulièrement, en utilisant les commandes manuelles, de préférence la commande d'ouverture car elle consomme plus de courant.

2.2.3. Panneau solaire

La tension du panneau solaire est mesurée régulièrement. Elle pourra être remontée également au serveur DOMOTICZ.

2.2.4. Chargeur

Je remarque que lorsque je change la batterie pour en essayer différents modèles, lorsque la batterie est retirée la tension de sortie du TP4056 reste à 4.1V, ce qui est très intéressant et confirme que le choix de ce chargeur est une très bonne option.

2.2.5. Luminosité

La porte s'ouvre et se ferme maintenant en fonction de la luminosité. Celle-ci est mesurée soit grâce à une LDR du type GL5528 soit grâce à la tension du panneau solaire.

Lorsque le panneau est en plein soleil il fournit 18V, lorsqu'il est à l'ombre la tension chute à 17V, mais si le chargeur TP4056 consomme du courant pour charger la batterie (environ 50mA), la tension panneau est de seulement 5.7V.

Il va être difficile d'étudier une solution convenant à tous les types de panneaux, et surtout à toutes les orientations. Si le panneau est ensoleillé ou à l'ombre le soir ou le matin le résultat sera forcément différent.

Mais cela ne devrait pas être impossible pour autant. Si l'on empêche le panneau solaire de charger la batterie pendant la mesure sa tension sera égale à sa tension à vide, donc elle sera strictement dépendante de la luminosité.

En attendant une LDR a été ajoutée. Cela restera une option.

Une autre possibilité existe : ouvrir et fermer en fonction de l'heure et de la date, donc en fonction des heures de lever et de coucher officiels du soleil.

Pour cela il faudrait un circuit horloger du genre DS3231.

Avec l'option liaison radio avec un serveur DOMOTICZ cette possibilité pourrait être mise en œuvre encore plus facilement puisque le serveur pourra nous fournir l'heure et la date à la demande.

Cette option permettra en outre de s'affranchir de la luminosité artificielle, un éclairage public à proximité par exemple.


2.2.6. Contact de fin de course

Lorsque le logiciel démarre il est impossible de savoir dans quelle position est la porte.

Si on  suppose qu'elle est fermée et qu'on est en journée, il va falloir ouvrir au démarrage. Les ordres envoyés au servomoteur vont être des ordres d'ouverture de 0°, 1°, 2°, etc. jusqu'à arriver à 180°.


Or si la porte est déjà ouverte au départ le premier ordre va fermer brutalement celle-ci, ce qui peut entraîner des problèmes.

Si la porte est équipée d'un contrepoids par exemple, celui-ci va avoir tendance à ralentir sa chute, la ficelle va se détendre et peut sortir de la poulie, s'emmêler, etc.

Sans contrepoids la fermeture brutale se passe bien. Par contre si un oiseau passe dessous à ce moment-là, il risque de subir un choc. La probabilité est malgré tout très faible.

J'ai donc ajouté un contact de fin de course haut :


Une cale vissée sur le haut de la porte actionne le contact lorsqu'elle est en position ouverte. Ce contact est optionnel.

Il serait préférable d'utiliser un contact REED :

Il est possible de placer deux contacts de fin de course en haut et en bas, mais il est préférable de les placer en hauteur afin de les préserver des salissures. Ne jamais placer un fin de course trop près du sol :

Sur ce dessin les contacts de fin de course sont en jaune.

Il faut bien être conscient par contre que si aucun des contacts fins de course n'est actionné on se trouve dans l'incapacité de déterminer la position de la porte. C'est pour cela que je préfère utiliser un seul capteur en haut.

2.3. 29/04/2020

2.3.1. Luminosité

La mesure de luminosité à l'aide du panneau est problématique.

Prenons comme exemple ce scénario :

  • la batterie est chargée à bloc
  • le soleil se lève
  • la tension du panneau grimpe rapidement
    • -> la porte s'ouvre
    • -> la tension de la batterie chute pendant l'ouverture
    • -> la recharge de la batterie démarre
    • -> la tension du panneau chute à cause de la recharge
    • -> la porte se referme

Ce scénario peut se répéter plusieurs fois le matin.

La recharge de la batterie suite à l'ouverture ou fermeture de la porte est systématique. Ensuite la durée de la recharge dépendra de l'ensoleillement.

Pendant la recharge, par luminosité faible, la tension du panneau peut être de 6V seulement, et monter à 12V immédiatement après la recharge.

Cela entraîne une grande difficulté pour déterminer une valeur de luminosité si l'on n'est pas capable de savoir si la batterie est en cours de recharge ou non.

Si le panneau solaire n'est pas relié au chargeur la tension de celui-ci sera vraiment dépendante de la luminosité et cela facilitera les choses.

J'envisage sérieusement d'ajouter un MOSFET entre le panneau et le chargeur afin de couper le panneau pendant les ouvertures et fermetures, sans cela je pense que la mesure de luminosité par LDR sera largement préférable, car elle reste totalement indépendante de la recharge de la batterie.

2.4. 08/08/2020

2.4.1. Servomoteur sans fin de course

Comme dit dans le dernier article, le servomoteur peut être légèrement modifié (ajout d'un fil) afin de pouvoir récupérer sa position.

https://riton-duino.blogspot.com/2020/07/porte-motorisee-de-poulailler-le-bilan.html

Voir le paragraphe 8.2. Servomoteur sans fin de course

3. Téléchargements

Cette deuxième version est disponible ici : 

4. Conclusion

Ce servomoteur a un couple suffisant pour une porte de ce type. Il est alimenté sous 5V.

Si la porte est plus lourde et si l'on veut assurer une ouverture sans échec il est possible d'aider le servomoteur en ajoutant un contrepoids :

Cette technique peut être utilisée également si le servomoteur est moins puissant que le MG996R, ou si l'on utilise une batterie de capacité moindre ou en mauvais état.

Pour conclure, le montage est simplissime et à la portée de n'importe quel bricoleur. Il m'a pris une demi-journée. Il ne nécessite aucun matériel spécialisé en dehors d'une perceuse-visseuse, un marteau, quelques pinces, une scie.


Cordialement
Henri

vendredi 24 avril 2020

Porte Motorisée de Poulailler (1ère Partie)



Porte Motorisée de Poulailler


Possédant un terrain suffisamment grand pour élever quelques animaux, j'ai décidé de me lancer dans la construction d'une porte motorisée pour poulailler.

L'automatisation d'une porte de poulailler est d'une utilité assez moyenne. Il faut de toutes façons une visite journalière ne serait-ce que pour ramasser les œufs, et nourrir les oiseaux. Ce montage n'est utile que dans certains cas : absence prolongée ou envie de se lever à un horaire différent de celui des poules, qui se lèvent à l'aube. La grasse matinée reste donc possible.

Il est possible d'alimenter le montage soit à l'aide d'une alimentation secteur soit à l'aide d'une batterie LITHIUM-ION ou LIPO rechargée par un panneau solaire.

Je dispose d'un serveur DOMOTICZ. Le système sera donc équipé d'un module radio NRF24L01 (en option). Cela permettra de connaître à distance l'état d'ouverture / fermeture de la porte et de remonter également des informations à propos de la batterie :
  • capacité restante
  • énergie journalière consommée par le moteur
  • énergie journalière fournie par le panneau
Ce module est optionnel afin de pouvoir fonctionner de manière autonome.

Un capteur de température et d'humidité est également prévu, avec remontée des informations vers le serveur.

L'ouverture et la fermeture seront pilotées automatiquement. Plusieurs options sont possibles :
  • la luminosité
    • à l'aide d'une LDR
    • en mesurant la tension du panneau solaire
  • l'heure de lever et coucher du soleil
    • à l'aide d'un module RTC DS3231
    • en demandant l'heure au serveur DOMOTICZ
Si la mesure de la luminosité est choisie, l'option LDR sera forcément utilisée si l'alimentation est faite à partir du secteur, sinon la mesure de la tension du panneau solaire sera un bon choix.

Une commande manuelle par boutons poussoirs peut être utile, ne serait-ce que pour tester le système.

Dans cet article nous allons aborder beaucoup de sujets :
  • pilotage d'un moteur continu avec un L293D 
  • alimentation par batterie LITHIUM-ION 
  • recharge par panneau solaire
  • régulateur STEP-UP 5V et 12V
  • lecture d'une LDR ou de la tension d'un panneau solaire
  • utilisation d'un DS3231
  • calcul de l'heure de lever et coucher du soleil
  • réduction de la consommation d'une carte ARDUINO PRO MINI
  • réduction de la consommation d'un L293D
  • liaison radio avec un serveur domotique (en option)
    • envoi des informations d'ouverture / fermeture
    • envoi de la capacité de la batterie
    • envoi de la tension du panneau solaire
    • envoi de la puissance fournie par le panneau solaire
Ce projet est une bonne occasion d'aborder le pilotage d'un moteur continu 12V ou plus avec une batterie 3.7V comme source d'alimentation et un élévateur de tension.
Ce n'est pas un réflexe automatique et je pense que pas mal de gens envisageraient plutôt l'utilisation d'une batterie 12V. Nous allons démontrer que c'est loin d'être la seule voie possible.

1. Techniques utilisables

1.1. Le local

Il s'agit d'un appentis existant en dur. L'ouverture sur l'extérieur a une dimension de 30cm x 20cm. Il est pourvu d'un plafond, ce qui interdit l'accès par la toiture aux animaux grimpeurs, chats ou fouines.

On peut envisager 3 types de portes :
  • porte à pont-levis
  • porte pivotant vers le haut
  • porte coulissant latéralement
  • porte coulissant verticalement 
Nous allons examiner ces solutions.

1.1.1. Porte à pont-levis
La porte à pont levis impose l'utilisation d'une ou deux ficelles apparentes, exposées aux intempéries, soleil, pluie, gel, ainsi qu'aux dégradations possibles par des animaux.

Des débris peuvent encombrer l'emplacement de la charnière et l’empêcher de se fermer complètement.

La porte est maintenue fermée par le moteur. Si l'on utilise un motoréducteur, l'ouverture manuelle sera difficile, grâce à la démultiplication liée aux engrenages.

1.1.2. Porte pivotant vers le haut
Contrairement à la porte en pont-levis, les ficelles de manœuvre sont situées en hauteur, cela empêche leur dégradation par des animaux, mais elles sont tout de même exposées aux intempéries une fois la porte fermée.

Elle a les mêmes inconvénients que la porte à pont-levis au sujet des débris au sol pouvant l’empêcher de se fermer complètement.

La porte est maintenue fermée seulement pas son poids. Il vaut mieux l'équiper d'un contrepoids pour qu'elle se ferme complètement, et pour qu'une poule ne puisse l'ouvrir de l'intérieur en poussant.

Elle ne doit offrir aucune prise qui permettrait de l'ouvrir en tirant dessus.

En bref, c'est un montage peu adapté et sujet à problèmes.

1.1.3. Porte coulissant latéralement
Une porte coulissant latéralement est un montage complexe. En haut de l'ouverture la porte doit être suspendue sur des rouleaux se déplaçant sur un rail horizontal. Elle doit également être guidée au sol, à l'aide d'un rail en U, largement susceptible d'être encombré au bout de peu de temps par de la terre ou d'autres débris.

La porte fermée ne doit offrir aucune prise qui permettrait de l'ouvrir en tirant dessus.

1.1.4. Porte coulissant verticalement
La porte à guillotine est une solution d'une complexité intermédiaire entre le pont-levis et la porte coulissant latéralement.
Elle nécessite simplement deux glissières en U pour le guidage vertical.

Une simple fente au sol de 1cm de profondeur permet d'éviter une prise qui permettrait de l'ouvrir en la soulevant.

Cette solution est retenue pour sa simplicité de mise en œuvre et la sécurité qu'elle offre.

La porte sera réalisée dans une tôle d'aluminium de 2mm d'épaisseur.
Ses dimensions sont de 32cm * 22cm. Elle a donc un poids d'environ 400g.

Une porte de 24cm de hauteur permettra de réduire la hauteur totale du système, par contre l'ouverture sera peu adaptée à des animaux de grande taille.

1.1.5. Contacts de fin de course ou pas ?
Quelle que soit le type de porte l'arrêt moteur peut être obtenu à l'aide de deux contacts de fin de couse.

C'est une solution pratiquement obligatoire lorsque la porte est simplement suspendue à une ficelle enroulée autour d'une poulie fixée sur le moteur. Une butée haute arrête la porte en fin d'ouverture, mais rien ne l'arrête en position basse.
On choisira dans ce cas plutôt des contacts ILS ou interrupteur REED sous ampoule à vide :
Un aimant fixé sur la porte permet de fermer le contact. Ces interrupteurs REED existent sous diverses formes :

Il va sans dire qu'un soin particulier doit être apporté à la réalisation, qui doit être d'une fiabilité à toute épreuve.
Si le contact du haut n'est pas vu par le système, le moteur continuera de tourner tout en étant bloqué. Si le contact du bas n'est pas vu par contre, le moteur continuera de tourner, la ficelle s'enroulera sur la poulie dans l'autre sens et la porte s'ouvrira à nouveau.

Une autre solution est d'entraîner la porte à l'aide d'une courroie sur laquelle la porte est fixée. Cette fois-ci l'ouverture et la fermeture de la porte se fait en tirant vers le haut ou en tirant vers le bas. Une butée haute arrête la porte en fin d'ouverture, et le sol fait office de butée basse. Dans les deux positions le moteur est bloqué dans sa rotation. Plutôt que d'opter pour des contacts de fin de course, il est plus intéressant dans ce cas de mesurer le courant moteur et de le stopper lorsque le blocage se produit (le courant va fortement augmenter).

Avantage de la courroie : les contacts de fin de course sont inutiles. La porte fermée est plaquée au sol.
Inconvénient : le montage est plus complexe.

1.2. Le moteur

1.2.1. Moteur pas à pas
Un moteur pas à pas suffisamment puissant pourrait être intéressant pour ouvrir et fermer une porte car il permet d'effectuer un certain nombre de tours en comptant le nombre de pas.
Malheureusement ces moteurs doivent être alimentés en permanence afin d'assurer un maintien en position. Le couple de détente de ce genre de moteur n'est pas assez élevé pour maintenir la porte ouverte sans alimentation.
L'utilisation d'un tel moteur imposerait d'ajouter un contrepoids à la porte.

Elle pourrait bien convenir par contre à une porte du type pont-levis, ou coulissant latéralement, qui n'exercera aucune force une fois fermée ou ouverte.

1.2.2. Servomoteur
Il est possible d'adopter un montage à servomoteur du type MG996R avec un bras de levier de 12cm et une ficelle :

MG996R

Ce servomoteur a un couple largement suffisant. Alimenté sous 6V, son couple de 11kg.cm un bras de levier de 16cm permettrait de soulever une porte de plus de 600g.
Il est fortement démultiplié c'est à dire que si le moteur n'est pas alimenté il faut une force importante si l'on veut faire tourner le moteur en agissant sur l'axe.
De plus lorsque la porte est ouverte, le bras de levier est vertical et n'impose donc aucune force de rotation sur l'axe.

Une poulie de renvoi permet d'effectuer la traction verticalement afin de ne pas engendrer trop de frottements ou de blocage.

Lorsque le bras de levier est en position basse la porte est fermée. Si le bras de levier tourne de 180° le porte se retrouve 32cm plus haut.
Ce montage est très simple et ne nécessite aucun capteur de fin de course ou mesure de courant.

Le montage mesure 1.10m de haut. Si l'on ne dispose pas de cette hauteur, il faut réduire la hauteur de la porte.
Une porte de 24cm de hauteur permettra d'utiliser un bras de levier de 12cm et une ficelle plus courte.

Par contre seule la gravité déplace la porte vers le bas. Si celle-ci rencontre un obstacle sa course sera stoppée. La qualité de montage et la propreté des glissières est primordiale.
On peut également opter pour une porte plus lourde.

Le servomoteur TD-8120MG avec son couple de 20kg.cm pourra soulever une porte deux fois plus lourde :
TD-8120MG


1.2.3. Motoréducteur continu
Avec un motoréducteur continu nous allons avoir besoin d'une transmission permettant le transformation du mouvement de rotation du moteur en mouvement linéaire.

L'idée est de fixer une tige métallique sur une courroie. La courroie doit pouvoir assurer au moins 32cm de déplacement.
La tige métallique rigide permettra de plaquer la porte au sol après fermeture.

Un profilé plat en acier de sera plus facile à fixer sur la porte qu'une tige cylindrique. Il sera percé, ainsi que la porte, et un petit boulon solidarisera les deux pièces.
Le profilé (10mm x 2mm x 40cm) ajoute 50g au poids de la porte.

Il faudra éviter de disposer des perchoirs à proximité du mécanisme afin d'éviter que des plumes ou autres déjections viennent le perturber. On peut également protéger la transmission avec une tôle en U depuis le boîtier jusqu'à la butée haute (en vert sur le schéma ci-dessous).

1.2.3.1. Motoréducteur continu + ficelle
Cette première solution utilise une ficelle faisant office de courroie :

Le moteur est fixé dans un boîtier contenant l''électronique. Sur son axe est fixée une poulie de 8mm à 20mm, à choisir en fonction de la vitesse de déplacement voulue.

Le montage mesure 1.21m de haut. Si l'on ne dispose pas de cette hauteur, il faut réduire la hauteur de la porte. Une porte de 24cm de hauteur permettra de réduire la hauteur totale d'une vingtaine de cm.

On peut gagner quelques centimètres en hauteur en réduisant la longueur du ressort et en réduisant l'espace entre la butée et la poulie de renvoi du bas.

Avec un moteur de 30 tours / minute et une poulie moteur de 10mm de diamètre le déplacement sera de 31.4mm par tour. Le déplacement total est de 32cm. Le moteur fera un peu moins de dix tours pour ouvrir ou fermer la porte, donc son temps de rotation journalier sera :

t = 60s / 30 * 10 * 2 = 40s

Avec une poulie de 20mm de diamètre ce temps sera de 20s, avec un moteur de 60 tours / minute également.

Une poulie de renvoi sous le moteur permet d'effectuer la traction verticalement.
Une deuxième poulie 43cm plus bas renvoie la courroie vers la première, ainsi que vers le moteur.

Un ressort (en rouge) assure la tension de la ficelle. Il est fixé sur le profilé acier par vissage.
La tension de la ficelle peut être facilement réglée par déplacement du boîtier moteur à l'aide de vis de fixation coulissant dans des lumières oblongues.

Les deux extrémités de la ficelle sont fixées de part et d'autre de la poulie et la ficelle est enroulée sur celle-ci. Avec une poulie de 10mm il faudra au moins 10 tours pour assurer 32cm de déplacement. Une ficelle de 2mm imposera une largeur de poulie d'au moins 20mm :

Une butée de fin de course (en vert) arrête la porte en position haute. La butée basse est le sol lui même. Une mesure du courant moteur permet d'arrêter celui-ci. Le ressort permet d'amortir l'impact. On peut également diminuer la vitesse de rotation du moteur à la fin de l'ouverture ou de la fermeture.

Il nous faudra donc :
  • 1 poulie moteur ⌀ 10 à 20mm, largeur 20mm, axe 4mm
  • 2 poulies de renvoi largeur 10mm
Le coût devrait être d'environ 7€, à moins de fabriquer les poulies soi-même.

Le principal défaut de la ficelle est l'usure. Il conviendra de l'inspecter régulièrement.On peut adopter le principe d'une deuxième poulie de renvoi comme ci-dessous, ce qui aura comme avantage de limiter les frottements.
 
1.2.3.2. Motoréducteur continu + courroie crantée
Une courroie crantée est également utilisable.
Le schéma est le même que précédemment, sans le ressort.
Le montage mesure 1.21m de haut. Si l'on ne dispose pas de cette hauteur, il faut réduire la hauteur de la porte.
On peut réduire cette hauteur de la hauteur du ressort : 5cm.

Ici aussi la tension de la courroie peut être facilement réglée par déplacement du boîtier moteur à l'aide de vis de fixation coulissant dans des lumières oblongues.

La courroie crantées de 6mm ou 10mm devrait avoir une longueur d'environ 1m :

Elles sont faciles à trouver chez les revendeurs de matériel pour machines CNC, ainsi que les poulies :
Poulie de moteur GT2
Poulies de renvoi

On trouve des poulies avec alésage de tous diamètres de 3mm à 10mm.
Seule la poulie moteur a besoin d'être fixée sur l'axe, les deux autre doivent être libres en rotation.

Cette solution pose toutefois un problème de fixation du profilé acier sur la courroie. Ceci pourrait être une option intéressante :
Ces pinces de fixation ont une dimension de 40mm x 9mm x 5mm.

La courroie peut être serrée entre deux de ces pièces, et le profilé percé au bon diamètre pourra être fixé dessus à l'aide de la vis centrale.

Avec un montage de ce type on pourra opter pour une courroie ouverte vendue au mètre.

Il nous faudra donc :
  • 1 poulie moteur crantée denture 2mm largeur 10mm axe 4mm
  • 2 poulies de renvoi crantées denture 2mm largeur 10mm
  • 1 m de courroie denture 2mm largeur 10mm
  • 2 pinces de fixation
Le coût devrait être d'environ 10€.

Les prix proviennent de ce revendeur, un des rares à proposer des poulies pour axe de 4mm : GKTOOLS

Étant donné le surcoût par rapport à la version à ficelle, je vais adopter cette solution, dont la fiabilité dans le temps sera bien supérieure à celle d'une ficelle.
 
1.2.3.3. Le motoréducteur
Je possède un motoréducteur dont les caractéristiques sont proches du JGA25-370 :
  • tension : 12V (6V - 18 V)
  • vitesse à 12V : 37 tours / minute
  • courant à vide à 12V : 50mA
  • courant de blocage à 12 V : 1.2A
  • couple maximal à 12V : 14 kg.cm
  • poids : 92g 
Ce moteur coûte environ 7 à 8€ chez les revendeurs chinois. Il existe en différentes versions :
  • 6V, 12V, 24V 
  • 12 à 1360 tours / minute
Il sera piloté par un simple L293D.

Le L293D doit être alimenté entre 4.5V et 7V côté logique (VCC1), et supporte jusqu'à 36V côté moteur (VCC2).

J'en possède également un autre, un ancien moteur d'imprimante 24V, plus puissant, mais je ne pense pas que la puissance nécessaire sera assez importante pour justifier un pareil moteur.

Ces petits motoréducteurs pourraient convenir :
Ils ont un couple plus que suffisant : 100mNm pour un moteur de 85 tours / minute.
Si l'on convertit cette valeur en kg.cm on obtient un peu plus de 1kg.cm, plus qu'il n'en faut pour soulever une porte de 400g avec une poulie de 5mm ou 10mm de rayon.

Ils ont quelques inconvénients :
  • vis de fixation Ø1.6mm, difficile à trouver
  • axe de Ø3mm
Les poulies pour courroie crantée de largeur 10mm n'existent pas en alésage 3mm. Il faudra donc une courroie de largeur 6mm.

1.3. Le microcontrôleur

Le microcontrôleur doit posséder un nombre de broches d'entrée / sortie assez important :
  • moteur :
    • 3 broches en version moteur continu (1 en version servomoteur)
    • 1 broche pour le passage du driver moteur en mode veille
    • courant moteur : 1 broche analogique (aucune en version servomoteur)
  • chargeur :
    • 1 broche ON / OFF
    • tension du panneau : 1 broche analogique
    • courant du panneau : 1 broche analogique
    • tension batterie : 1 broche analogique
  • circuit RTC + capteur de température I2C : 2 broches
  • LDR : 1 broche analogique
  • 1 broche pour un capteur de fin de course éventuel
  • 2 broches pour les boutons (avec interruption)
  • 5 broches pour le NRF24L01
Faisons le total :
  • 13 GPIOs
  • 2 broches I2C
  • 5 entrées analogiques
Une carte PRO MINI (12 GPIOs, 6 entrés analogiques + I2C) conviendra tout juste si on utilise une broche analogique comme entrée digitale.

Un ESP8266 ne possède qu'une seule entrée  analogique, il est donc exclu.

L'ESP32 semble un bon candidat :
  • il possède le WIFI, ce qui permettrait d'exclure le NRF24L01 donc de gagner 5 broches du SPI
  • il permettrait d'éliminer également le circuit RTC.
  • il possède largement le nombre d'entrées / sorties nécessaires.
  • il permettrait d'ajouter des fonctionnalités
Le microcontrôleur doit être choisi parmi les modèles offrant une consommation suffisamment basse :
  • ARDUINO PRO MINI 8MHz 3.3V
  • ARDUINO PRO MINI 16MHz 5V
  • ESP32
Une PRO MINI pourrait donc parfaitement convenir, mais elle suppose quelques modules supplémentaires (RTC, NRF24L01).
On pourrait également utiliser un ATMEGA328P nu.

Le problème de l'ESP32 est la diversité des cartes. Il est difficile de bâtir un projet pérenne sur des cartes du type LOLIN32, FireBeetle ou HUZZAH32. Leur brochage est totalement différent :

ESP32 DevKit

ESP32 FireBeetle

LOLIN D32

LOLIN32 (obsolète)

Même le brochage de la nouvelle LOLIN D32 est différent de celui de la version précédente.

Il est hors de question pour moi de raccorder une telle carte dans un montage par des fils DUPONT ou des fils soudés sur les pastilles. Je les considère comme des cartes de prototypage. Cela conduirait immanquablement à un montage du type plat de spaghettis, ce que je ne souhaite pas sur ce projet pouvant être soumis à des températures très variables, à l'humidité, et également à des vibrations de moteur.
Élaborer un PCB avec ces cartes à la durée de vie assez courte est exclu également, car ce projet ne sera pas forcément fabriqué en exemplaire unique.

Certaines cartes posent également un problème de consommation. La carte DevKit par exemple consomme 3mA en mode veille, et il est assez difficile d'avoir l'information à propos des autres cartes, à moins de les essayer soi-même. J'ai testé une WEMOS LOLIN32 dernièrement : elle consomme 1.7mA en veille, c'est à dire mille fois plus qu'une PRO MINI 8MHz.

Le seul moyen de bâtir un projet ESP32 sérieux avec un résultat reproductible est d'utiliser le module nu sur un PCB :
Dans un premier temps la carte retenue sera donc une PRO MINI, mais il n'est pas impossible que le cas du module ESP32 soit examiné ultérieurement.

1.4. L'alimentation

Si l'on a la possibilité d'alimenter par le secteur il suffira d'adopter une alimentation 5V de quelques watts. 5W devraient amplement suffire.

Par contre si l'on ne dispose pas du secteur à proximité l'alimentation peut être assurée par une batterie rechargée par un panneau solaire.


1.4.2. Type de batterie
Le choix de la technologie LITHIUM s'est rapidement imposé, en raison de la facilité d'approvisionnement en cartes chargeurs.

Les batteries chinoises à bas prix sont à éviter, pour des raisons évidentes de capacité mensongère, de durée de vie faible et de résistance interne élevée. Une batterie de marque du genre SAMSUNG 18650 2500mAH pour vapoteuse coûte environ 5€.

Soit dit en passant, l'utilisation d'une batterie 6V ou 12V au plomb serait préférable si le système devait fonctionner par grand froid, à une altitude importante par exemple.

1.4.3. Chargeur
La carte TP4056 est idéale. Elle est capable de fournir 1A :

Elle accepte jusqu'à 8V sur son entrée. Elle a une consommation très faible sur la batterie lorsque son entrée est débranchée ou que le panneau ne fournit pas d'énergie.

1.4.4. Panneau solaire

1.4.4.1. Panneau solaire 5V ou 6V
Il existe des panneaux 5V ou 6V. Un panneau de ce type pourra être utilisé sans régulateur.
Il est par contre impératif de mesurer sa tension à vide en plein soleil afin de vérifier qu'elle ne dépasse pas 8V.
 
1.4.4.2. Panneau solaire 12V ou plus
Je dispose de quelques panneaux 4W de 25cm x 25cm.
Leur tension à vide est de 20V et le courant de court-circuit est de 1A.
En plein soleil il est capable de fournir 18V sur une résistance de 100Ω, donc un courant de 180mA.

Un premier essai de charge d'une batterie 18650 avec un TP4056 permet de constater qu'en début de charge la tension du panneau est de 3.7V pour un courant de 300mA.
Par contre, en fin de charge, le TP4056 coupera le courant et la tension du panneau risque d'augmenter fortement, jusqu'à atteindre sa tension à vide (20V), ce qui serait destructeur pour le TP4056.

Il est indispensable d'abaisser la tension à moins de 8V pour que le TP4056 ne soit pas endommagé. Un MP1584 5V effectuera ce travail :

Un LM2596 ferait également l'affaire :

Pour des raisons de fiabilité je préfère les régulateurs à tension de sortie fixe.
Lorsque l'on utilise un régulateur réglable il faut de préférence choisir un modèle à potentiomètre étanche comme sur le LM2596 ci-dessus.
Ces régulateurs à potentiomètres miniatures sont à proscrire :
MP1584 réglable

Schéma du chargeur

Ce chargeur, couplé avec le panneau solaire décrit plus haut fournit 450mA en début de charge. Il sera donc capable de charger une batterie de 2500mAH en 5H30.

1.4.5. Driver de moteur
Il y a une multitude de possibilités pour alimenter un moteur continu de faible puissance :
Le TB6612FNG par exemple possède une broche de shutdown permettant de le placer dans un mode STANDBY économe en énergie.

Comme le moteur que je compte utiliser est un modèle 12V il faudra de toutes façons élever la tension et un convertisseur step-up s'impose. Si l'on veut éviter que ce convertisseur consomme de l'énergie durant les phases de non activité il faudra le couper (avec un MOSFET par exemple), donc un mode STANDBY sur le driver moteur sera inutile. Un mode STANDBY serait plus utile sur le convertisseur, mais je ne connais pas de convertisseur réglable disposant d'un tel mode.

Pour cette raison j'ai choisi d'utiliser le très classique L293D, qui supportera sans problème les quelques 200mA consommés par le moteur, et se trouve partout pour un prix plus que modique. De plus j'en possède déjà quelques uns.

La broche de puissance VCC2 du L293D sera alimentée à l'aide d'un convertisseur STEP-UP, le MT3608 :
On peut utiliser également un SX1308 :


Voir ici :https://riton-duino.blogspot.com/2019/11/convertisseurs-stepup-stepdown.html

Ce régulateur sera réglé sur 12V ou une autre tension, en fonction du moteur utilisé.

On peut terminer en disant que ceux qui souhaiteraient s'orienter plutôt sur un moteur 6V auraient certainement intérêt à tester son couple en le reliant directement à une batterie LITHIUM-ION 3.7V. En effet rien ne s'oppose à sous-alimenter un moteur, dans des proportions raisonnables toutefois. Si le moteur fournit assez de puissance sous 3.5V par exemple le montage sera largement simplifié. On pourrait envisager ceci :
  • batterie LITHIUM-ION
  • moteur 6V
  • driver TB6612FNG alimenté directement par la batterie
  • ARDUINO PRO MINI 8MHz alimenté directement par la batterie
On évite donc l'emploi d'un convertisseur.
Par contre il faudra bien veiller à vérifier que le montage fonctionne parfaitement dans différentes conditions, avec une batterie à moitié chargée, y compris en hiver, ceci afin d'éviter les surprises.

L'avantage d'une alimentation moteur à l'aide d'un convertisseur 5V ou 6V est que la tension appliquée au moteur variera peu, contrairement à celle d'une batterie.

1.4.6. ARDUINO
Bien que j'aie fait des essais concluants avec une tension de 3.7V, le L293D n'est pas censé être alimenté en dessous de 4.5V. Il sera donc alimenté en 5V, ainsi que l'ARDUINO.
Une carte PRO MINI 16MHz 5V ou 8MHz 3.3V peut convenir, car la PRO MINI 3.3V peut aussi être alimentée en 5V, à condition de retirer son régulateur 3.3V, ou de couper sa broche de sortie.
Un convertisseur STEP-UP à tension de sortie fixe 5V sera donc utilisé pour alimenter ARDUINO et L293D, le XR2981 :


Ce régulateur a une consommation propre de 120µA.

On pourrait aussi envisager un MT3608, un peu plus gourmand : 170µA.

Il est à noter que si l'on utilise un moteur 5V ou 6V, il ne faut pas compter le brancher sur le XR2981 qui alimente l'ARDUINO. Cela pourrait entraîner un reboot de celui-ci lors des démarrages du moteur. Un régulateur séparé est nécessaire, y compris un deuxième XR2981.

1.5. La consommation

Ce montage à base de PRO MINI et L293, sans prendre de précautions particulières consommerait environ 60mA.
Une batterie de 2500mAH aurait donc une autonomie faible :

t = 2500 / 60 = 41 heures

Ce n'est guère acceptable.

La version à servomoteur sera plus économe, le servomoteur consommant 6mA au repos. Mais ce n'est pas négligeable non plus.
 
1.5.1. ARDUINO
Afin de réduire la consommation de la PRO MINI il convient d'utiliser son mode veille. De plus la carte sera modifiée :
  • suppression de la LED POWER
  • suppression du régulateur de tension
Voir ici :

Une PRO MINI 16MHz aura ainsi une consommation de 3µA en mode veille, et 1.5µA si c'est une PRO MINI 8MHz.

1.5.2. Le L293D
Malgré que le L293D possède une broche ENABLE qui peut ramener sa consommation sur VCC2 à 2mA, nous allons faire un petit effort supplémentaire.
Un MOSFET permettra la coupure totale de cette tension. Afin d'éviter que le régulateur STEP-UP ne consomme du courant pour rien lorsque le L293D n'est pas utilisé, la tension sera coupée à l'entrée du régulateur.

Un deuxième MOSFET, plus petit, permettra de couper la tension 5V VCC1, permettant d'économiser encore 8mA.
Deux MOSFETs canal P seront donc utilisés :
Voir ici :

https://riton-duino.blogspot.com/2018/08/alimenter-un-capteur-la-demande.html

1.5.3. Le servomoteur
La version à servomoteur utilisera également un MOSFET de commutation de l'alimentation, afin d'économiser les 6mA qu'il consomme au repos.

2. Essais préliminaires

2.1. Le chargeur

Le chargeur solaire a bien mis une bonne partie de l'après-midi + quelques heures dans la matinée pour recharger une batterie 18650 presque vide.

Lorsque le panneau solaire est placé dans l'obscurité le TP4056 consomme excessivement peu sur la batterie : 3µA.

Ce chargeur est donc parfaitement adapté.

2.2. La consommation au repos

Les premiers essais sur table avec une PRO MINI 16MHz modifiée (LED POWER + régulateur retirés), avec les deux MOSFETs en place permettent de se rendre compte immédiatement de l'efficacité de la solution.

Le montage consomme 150µA au repos. Cette consommation est essentiellement due au XR2981. La consommation journalière n’excédera donc pas 3.6mAH.

Le remplacement du XR2981 par un MT3608 (50µA de plus) n'occasionnera pas une perte d'énergie considérable : 4.8mAH.

2.3. L'autonomie

A la consommation journalière au repos il faut ajouter la consommation journalière du moteur, qui devrait être utilisé au maximum quelques dizaines de secondes par jour.

Avec un moteur ayant une vitesse de rotation de 30 tours / minute et une poulie moteur de 10mm de diamètre le moteur fera dix tours pour ouvrir ou fermer la porte, donc son temps de rotation total journalier sera :

t = 60s / 30 * 10 * 2 = 40s

Si la porte est légère, on peut tabler sur une consommation du moteur de moins de 200mA (il faudra confirmer ce point lors d'essais en charge).

200mA sous 12V occasionneront sous 3.7V un courant plus important, ce qui est normal, étant donné que la puissance est la même en sortie et en entrée du convertisseur, au rendement près. Rien ne se perd, rien ne se crée.
En tenant compte des 95% de rendement du convertisseur MT3608 ou SX1308 :

Ibatt = 200 / 12 * 3.7 / 0.95 = 700mA

Les 40 secondes journalières de fonctionnement coûteront donc :

Cjour = 700 / (3600 / 40) = 7.8mAH

La somme fait donc :

Cjour = 3.6mAH + 7.8mAH = 11.4mAH

Une batterie de 2500mAH aura donc une autonomie importante :

T = 2500 / 11.4 = 219 jours soit 7 mois

Cette batterie sera donc capable de fournir l'énergie nécessaire pendant un hiver particulièrement peu lumineux, et le chargeur pourra la recharger en une seule journée bien ensoleillée.

2.3. La recharge

Comme on l'a vu plus haut le chargeur sera capable de charger une batterie de 2500mAH en 5H30 en plein soleil.
Par temps couvert (brouillard) le panneau va fournir au mieux 10% de sa puissance maximale. Il nous faudra donc 55H pour arriver au même résultat. Si l'on considère que l'on dispose en moyenne de 6 à 8 heures de jour pendant les mois bien couverts (avril, octobre, etc.) il faut donc se réserver une marge confortable et choisir une batterie ayant une autonomie suffisante pour au moins une semaine de fonctionnement.

2.4. Capacité de la batterie

Au vu des calculs on pourrait croire qu'une batterie de 100mAH ou 200mAH pourrait suffire, mais il ne faut pas seulement tenir compte de l'autonomie. Le courant maximal est important.
D'après mes premiers essais avec un servomoteur, j'observe que la batterie fournit une pointe de courant de plus d'1A à l'ouverture de la porte, ce qui équivaut à environ 4W. Il faudrait une batterie d'au moins 500mAH pour pouvoir fournir ce courant.

J'ai choisi une LITHIUM-ION 18650. Pourquoi adopter une batterie d'une telle capacité ?

Parce que son prix est faible. La batterie de vapoteuse 18650 est une batterie de grande diffusion, donc bon marché, moins chère qu'une 16340, 3 fois moins grosse.
Elle est également capable de débiter de forts courants grâce à une résistance interne très faible. La tension d'une batterie chinoise bas de gamme va s'écrouler à la moindre sollicitation. Autant mettre toutes les chances de notre côté et acheter une batterie de marque (SAMSUNG, SONY, MXJO, etc.).

3. Le matériel

Résumons le matériel nécessaire, avec quelques liens :
  • une carte ARDUINO PRO MINI 8MHz ou 16Mhz
  • un moteur JGA25-370 ou équivalent 30 à 60 t/mn
  • une batterie 18650 de marque 
  • un panneau solaire 5V à 20V de quelques watts
  • un L293D 
  • un XR2981 ou un MT3608 
  • un MP1584 5V ou un LM2596 (réglable)
  • un MT3608 ou un SX1308
Tout ce matériel est déjà en ma possession. La partie mécanique (courroie, poulies) est à approvisionner.

4. Téléchargements

Cette première version est disponible ici : 

Le schéma ne comprend que certaines parties :
  • alimentation + chargeur
  • ARDUINO PRO MINI
  • L293D
  • MOSFETs
Le logiciel se limite à un test du principe retenu pour l'alimentation du moteur continu :
  • pilotage du moteur dans les deux sens
  • mise en veille
Il permet de vérifier antre autres la consommation en veille.
Le moteur doit être débranché pour faire une mesure de courant avec le multimètre sur le calibre mA ou µA. Sinon cela mettrait en péril son fusible, qui est souvent un modèle 200mA ou 400mA.

5. Liens utiles

La deuxième partie : le servomoteur
https://riton-duino.blogspot.com/2020/04/porte-motorisee-de-poulailler-2eme.html

6. Conclusion

Ce n'est qu'une conclusion temporaire, en attendant de recevoir le matériel commandé.

En attendant, la partie mécanique va démarrer par la construction du châssis. J'ai en effet l'intention de construire un bâti intégrant la porte, les glissières, le moteur, la transmission ainsi que l'électronique, afin de pouvoir développer la partie logicielle sur table dans des conditions proches de la réalité.
Les 3 solution seront essayées :
  • servomoteur
  • moteur continu + ficelle
  • moteur continu + courroie
  • moteur pas à pas (si j'en ai le temps)
Ce châssis sera monté ensuite directement sur le mur, à l'aide de 4 vis de fixation, équipé de la solution de transmission donnant le meilleur résultat.

La suite au prochain numéro donc.

Cordialement
Henri

Mises à jour :
24/04/2020 : augmentation de la hauteur de la porte
08/05/2020 : 1.3. Le microcontrôleur

dimanche 19 avril 2020

La référence de tension MAX6225, MAX6241 & MAX6250



La référence de tension MAX6225

MAX6241 & MAX6250

J'ai reçu il y a peu un petit circuit fort intéressant : une référence de tension 5V MAX6250.

Sa datasheet se trouve ici :
https://datasheets.maximintegrated.com/en/ds/MAX6225-MAX6250.pdf

Il s'agit d'une référence de tension ayant une grande précision :
  • MAX6225A : 0.04%
  • MAX6241A : 0.04%
  • MAX6250A : 0.02%
Sa stabilité en température est de :
  • MAX6225A : 2ppm
  • MAX6241A : 2ppm
  • MAX6250A : 1ppm
1ppm /°C = 1 partie par million par °C
Ce circuit existe en 3 versions :
  • MAX6225A : 2.5V
  • MAX6241A : 4.096V
  • MAX6250A : 5V
La datasheet présente différents modèles ayant une précision et un coefficient de température plus ou moins élevé.
Il existe des versions CMS et DIP.

Une version plus récente (MAX6325, MAX6341 & MAX6350) :
 https://datasheets.maximintegrated.com/en/ds/MAX6325-MAX6350.pdf

L'utilisation est très simple :


Je l'ai alimenté en 12V et le résultat est très éloquent :


C'est l'occasion de vérifier que le multimètre ANENG AN870 (20000 points) tient ses promesses, malgré son prix de vente de 20 ou 30€.
Il a été acheté en juillet 2018 ici : https://fr.aliexpress.com/item/32855502736.html?spm=a2g0s.9042311.0.0.27426c379JWQi9

Le VoltCraft VC870 (40000 points acheté 100€ en 2012 chez Conrad) que je possède également affiche 4.992V.
Cette petite différence est tout à fait excusable étant donné son âge vénérable.

Cela nous confirme également qu'un multimètre a besoin d'être étalonné  régulièrement si l'on veut conserver sa précision.

Ce MAX62XX est bien entendu utilisable en tant que référence de tension externe pour un convertisseur ADC, ou dans toute application exigeante de comparaison de tension.

Il offre peu d'intérêt en tant que référence de tension pour un ARDUINO étant donné que l'ADC de l'ATMEGA328P n’échantillonne que sur 10 bits (1023 points), mais il offrira tout de même quelques avantages de taille par rapport à la référence interne 1.1V :
  • une précision de 0.02% au lieu de 10%
  • stabilité en température de 1ppm
  • stabilité en fonction de la tension d'alimentation
Pour info voici les courbes de variation de la référence interne d'un ATMEGA328P en fonction de la tension d'alimentation et de la température :

Ce circuit est donc intéressant pour faire des mesures de tension dans des conditions de température variables, et sans étalonnage.

Avec un convertisseur 12 bits minimum il sera parfaitement à l'aise.

Pour information on trouve aussi des références de tension ayant une précision de 1mV, comme le AD588 d'ANALOG DEVICES.

Pour une application moins exigeante on pourra se tourner vers un TL431 (1% de précision), couramment utilisé dans les alimentation à découpage de PC par exemple, ou un LM4040 (0.1%).

Voici la page de sélection de MAXIM :
https://para.maximintegrated.com/search.mvp?fam=volt_ref&tree=master


Cordialement
Henri