Projet R.I.P.E.R. : étage alimentation

Après cette parenthèse culinaire, revenons à la technique. Dans un précédent article , je présentais l’étage des batteries du robot, passons à l’étage de gestion de l’alimentation.

Ce bloc va être chargé d’apporter l’énergie aux différents éléments du robots :

  • 5V pour l’électronique de bas niveau et pour le cerveau (mini PC)
  • 7.2V pour les moteurs à courant continu
  • 6V pour les servomoteurs

J’utilise 3 modules :

  • Pour l’électronique, l’alimentation DFRobot DFR0205 3.3-25V 25W convertira les 7.2V de la première batterie (ou de l’alimention externe) en 5V
  • Les moteurs seront alimentés par la seconde batterie et pilotés par le contrôleur SaberTooth 2x5A.
  • Pour les servomoteurs, le module d’alimentation Seeed Studio 1.25-35V 3A convertira les 7.2V de la première batterie (ou de l’alimention externe) en 6V

Lorsque que le robot sera alimenté en 12V (alim externe), il faudra le détecter parce que les moteurs ne pourront pas encaisser les 12V en continu (ou prévoir une alim externe de 9V) :

These motors are intended for use at 6 V. In general, these kinds of motors can run at voltages above and below this nominal voltage, so they should comfortably operate in the 3 – 9 V range, though they can begin rotating at voltages as low as 1 V. Higher voltages could start negatively affecting the life of the motor.

Voici le caisson prévu pour ces éléments :

Les 2 trous sur les extérieurs accueilleront les fiches d’entrée pour les alimentations (électronique/moteurs). Le petit trou accueillera un double switch (pour activer/désactiver les 2 sources de courant en même temps).

Comme cet étage sera « suspendu » dans le châssis par des fixations latérales, j’ai collé 2 plaques d’aluminium sur les côtés pour renforcer la structure et éviter un décollage des couches de plastiques.

La grande ouverture rectangulaire est destinée au connecteur 14 pins qui permettra la connexion avec le corps du robot.

De gauche à droite, la description de chaque pin :

  1. +5V électronique bas niveau
  2. 0V
  3. +5V électronique haut niveau (mini PC, hub USB)
  4. 0V
  5. +6V pour les servomoteurs
  6. 0V
  7. Néant
  8. Pont diviseur de tension sur batterie 1 (surveillance de la charge et détection alim externe)
  9. Pont diviseur de tension sur batterie 2 (surveillance de la charge et détection alim externe)
  10. Pilotage des moteurs (connexion série Arduino Mega –> SaberTooth)
  11. Encodeur A moteur 1 vers Arduino Mega
  12. Encodeur B moteur 1 vers Arduino Mega
  13. Encodeur A moteur 2 vers Arduino Mega
  14. Encodeur B moteur 2 vers Arduino Mega

La photo ci-dessous montre l’agencement des composants :

  • Rose : régulateur 5V
  • Vert : contrôleur des moteurs
  • Blanc : régulateur 6V
  • Bleu : carte d’interface entre les différents éléments
  • Rouge : fiches jack d’entrée pour l’alimentation en provenance des batteries/alim externe
  • Noir : double switch

Le schéma ci-dessous permet de mieux visualiser les connexions :

power_07

Vue du dessous : les composants sont fixés sur des entretoises.

Projet R.I.P.E.R. : étage batteries

La pause fun avec BB-8 étant terminée, on se remet aux choses sérieuses avec l’étage du robot qui contiendra les batteries. On reprend donc où on en était resté il y a quelques semaines : Projet R.I.P.E.R. (Robotic Intelligent Platform for Entertainment and Research).

Les choix concernant l’alimentation sont expliqués ici : Autonomie et alimentation d’un robot.

Une batterie de 7.2V/5Ah sera dédiée à l’alimentation des moteurs CC et servomoteurs, l’autre alimentera tout l’électronique du robot. Il pourra fonctionner au choix, sur batteries ou sur alimentation secteur (via régulation 12V). La bascule se fera automatiquement.

On pourra recharger les batteries du robot sans les sortir du chassis, via 2 connecteurs jack.

Voici le modèle 3D :

00_EtageBatteries

Et la sortie d’impression :

On commence par installer les connecteurs jack femelles :

  • Les 2 à l’avant permettront la recharge des batteries
  • Les 2 sur les côtés à l’arrière permettront d’alimenter l’étage supérieur (contrôle des moteurs et alimentation du robot)
  • Le connecteur du milieu est l’entrée pour une alimentation fixe de l’ensemble du robot

Le circuit électronique utilise le principe de commutation par diodes, décrit ici. Quand l’alimentation fixe du robot est coupée (12V), les batteries prennent automatiquement le relais (7.2V). Voici le schéma de la carte :

07_EtageBatteriesSchema

Les Jx sont des borniers, Cx des diodes Schottky. J3 est l’arrivée de l’alimentation fixe en 12V. J7 et J8 sont connectés aux prises jack de rechargement des batteries. Les borniers J1 et J2 permettent de raccorder les 2 batteries. Enfin, J4 et J8 sont les sorties vers les connecteurs jack qui alimenteront l’électronique et les moteurs du robot.

Après installation des 2 batteries :

J’ai également imprimé un couvercle, essentiellement pour des raisons esthétiques, en gardant une ouverture pour l’évacuation de la chaleur.

Le bloc prendra ensuite place dans le châssis.

J’espère que le diamètre des fils sera suffisant pour le courant qui circulera. J’ai été contraint d’utiliser des borniers plus petits que prévu initialement pour des raisons de place. On verra bien 🙂

Ajout d’une alimentation externe à un hub USB non-alimenté

J’aurai bientôt besoin d’un hub USB pour connecter plusieurs périphériques à une clé PC (type Intel Compute Stick). Je ne veux pas que la clé soit responsable d’alimenter le hub et tout ce qui y sera connecté (je ne suis d’ailleurs pas sûr qu’elle en soit capable).

Il me faut donc un hub USB alimenté. Le problème est que ce type de hub est souvent : plus cher, plus encombrant et un peu plus difficile à trouver. L’astuce va donc consister à récupérer un hub USB non-alimenté, compact et léger et de lui ajouter une alimentation.

J’ai commandé celui-ci pour sa taille et son poids minimalistes.

Le principe est tout simple : un câble USB est constitué de 4 fils (+5V, Masse, Data+ et Data-), il suffit d’apporter les 5V d’une autre source que le connecteur hôte.

Attention : il est très important de penser à supprimer la connexion 5V partant vers le périphérique hôte. Sinon, le port USB (du PC par exemple) pourrait griller s’il n’est pas protégé. Les 5V seront apportés au hub par une source externe, tout en conservant la connexion de données.

01_powered_hub_schema

J’ai d’abord démonté le hub pour voir si je pouvais faire la modification à l’intérieur, mais ce n’est pas gérable, tout est beaucoup trop petit et en double couche :

OLYMPUS DIGITAL CAMERA

On va donc s’intercaler avant le hub et le PC :

A noter que mes connexion sont droites entre les 2 connecteurs parce que le connecteur de droite est monté à l’envers. Toujours bien vérifier les standards :

05.USBCe n’est pas la version finale, je compte bien intégrer ça plus proprement. On peut voir dans la vidéo que même lorsque le PC n’est pas connecté, le hub est alimenté, et que le PC reconnaît les périphériques connectés.

 

Autonomie et alimentation d’un robot

Quand on fabrique un robot, se pose toujours la question de son l’alimentation en énergie : batteries (Ni-Mh, Li-Po, Plomb …?) ou alimentation fixe ? quelle autonomie ? caractéristiques etc.

Mon besoin :

  • Le robot doit pouvoir être opérationnel 24h/24
  • Il doit disposer d’une certaine autonomie : 2h serait un bon début
  • Sécurité : le robot pourra être actif lorsqu’il est seul. Je préférerais qu’il ne brûle pas la maison 🙂

Mon choix actuel va se porter sur des batteries NiMh. Bien que les LiPos présentent beaucoup d’avantages par rapport aux NiMh (poids, solutions de contrôle de charge, capacité…), elles restent réputées bien moins fiables. Une batterie LiPo mal gérée peut exploser, elles sont plus sensibles aux chocs… Les NiMh sont un compromis acceptable étant donnée leur fiabilité éprouvée.

L’option d’une batterie au plomb a été envisagée. Elles ont de nombreux avantages (facilité à charger, puissance, robustesse, prix…), mais elles sont très lourdes ! Pour un robot de taille moyenne, ce n’est pas envisageable.

Le robot devra donc fonctionner en étant branché sur le secteur pour pouvoir être opérationnel 24/24. Il devra aussi disposer de batteries de secours qui prendront le relais en cas de perte de l’alimentation fixe.

Idéalement, le robot pourrait recharger ses batteries en même temps qu’il fonctionne sur secteur. J’ai fait pas mal de recherches concernant le chargement des batteries, et ce n’est pas trivial ! Pour les LiPos, ils existent des contrôleurs de charge qui rendent la chose plus facile. Malheureusement, pour charger des batteries NiMh de façon sécurisée et optimale, cela semble plus délicat. Il faut surveiller la température ou la tension de la batterie pour savoir quand stopper la charge. Si c’est aussi vrai pour les LiPos, beaucoup plus de solutions faciles à intégrées sont disponibles.

Je vais donc faire le choix de la faciliter dans un premier temps : le robot fonctionnera sur secteur (via un adaptateur) lorsqu’il y sera connecté. En cas de perte d’alimentation fixe, ils basculera automatiquement sur ses batteries jusqu’à ce que l’alimentation fixe revienne. Il sera donc toujours nécessaire de charger manuellement ses batteries quand elles seront déchargées, mais le robot pourra être opérationnel en permanence.

Pour réaliser ce comportement, c’est très facile ! Il suffit de 2 diodes (schottky de préférence, pour limiter la chute de tension), et le tour est jouer. Une seule condition à respecter (au delà des caractéristiques adaptées pour la diode) : l’alimentation fixe doit avoir une tension supérieure à la tension de la batterie (d’au moins la valeur la tension de seuil de la diode).

Voici le circuit, ultra basique :

alim_secours
http://www.sonelec-musique.com/electronique_realisations_alim_secours_bat_001.html

Pour des explications plus détaillées, je recommande cet excellent site qui explique absolument tout !

En pratique, on peut voir que lorsque je coupe l’alimentation fixe, la batterie prend automatiquement le relais, et inversement. Le tout sans perturber la carte Arduino qui continue à fonctionner normalement (pas de coupure ou de redémarrage), la bascule se fait donc de manière transparente.

On ne le voit pas bien sur la vidéo, mais j’ai un programme qui tourne en boucle sur le Arduino qui contrôle la LED embarquée. Elle s’allume de plus en plus longtemps au fil du temps. L’exécution du programme n’est pas affectée par le changement de source d’alimentation, la carte de reboot pas.

J’y reviendra plus en détail dans un autre article. J’ai opté pour l’utilisation de 2 batteries NiMh 7.2 V 5000 mAh (l’une pour les moteurs CC et servomoteurs et l’autre pour l’électronique). L’alimentation secteur sera de 9 ou 12V à 5-10A. Des régulateurs de tension remettront tout ça à 5V pour l’électronique. J’utiliserai 2 diodes Schottky SR810 (8A/100V, 0.50€).

Une alternative que je n’ai pas abordée, mais qui peut-être pratique : l’utilisation de batteries externes pour smartphone/tablette. Je crois qu’il s’agit en général de batteries de type Li-Ion. Ces batteries externes se trouvent un peu partout à de très bons prix. Et l’avantage, c’est qu’elles embarquent déjà tout l’électronique pour la gestion de la charge, le tout pour un poids intéressant. Pour des projets pas trop gourmands en courant, ou pour la partie électronique d’un robot, ça peut être une solution. J’envisage cette option en complément si nécessaire.

Et pour finir, depuis quelques années, on trouve des batteries LifePo4, avec des avantages comparables aux LiPo, mais bien plus stables (et donc moins dangereuses), à creuser…

Fixation de l’alimentation

Nous allons maintenant installer l’alimentation dans l’imprimante. Deux pièces plastiques permettent de bien la caler.

OLYMPUS DIGITAL CAMERA

Mais juste avant, j’en profite pour une bidouille : extraire une ligne 12V, si j’ai besoin de connecter quoique ce soit de plus en 12V (comme le ruban de LEDs). J’ai enroulé un fil juste après la gaine, ça évite de faire grossir la partie qui s’insérera dans le bornier de la Melzi. Idem pour la masse.

OLYMPUS DIGITAL CAMERA

On prépare tous les fils qui devront passer derrière l’alimentation et on installe les 2 supports de l’alim.

OLYMPUS DIGITAL CAMERA

Il ne reste plus qu’à fixer l’alim ainsi que les 2 résistances.

OLYMPUS DIGITAL CAMERA

Préparation de l’alimentation

Au menu ce soir : préparation de l’alimentation de l’imprimante.

On part d’une alimentation PC classique (une quinzaine d’euros sur Ebay) et on suit avec attention le manuel de Nophead pour la Mendel90 Dibond. Rien de bien compliqué.

On commence par sectionner tous les fils au niveau des connecteurs normalement destinés à une carte mère.

OLYMPUS DIGITAL CAMERA

On soude (+gaine) les résistances.

OLYMPUS DIGITAL CAMERA

Les fils non utilisés sont coupés assez courts et gainés. J’ai laissé un peu de longueur pour les fils rouges (5V), des fois que je sois tenté de les réutiliser plus tard pour alimenter… au hasard… un Raspberry Pi 😉

OLYMPUS DIGITAL CAMERA

On fait 2 beaux paquets avec les fils 12v et la masse. Il faut essayer de ne pas faire de gros pâtés, ces fils devront rentrer dans les borniers de la carte contrôleur Melzi !

OLYMPUS DIGITAL CAMERA

L’alim est prête à être montée sur l’imprimante.

OLYMPUS DIGITAL CAMERA

Test de l’alimentation et de l’éclairage

L’alimentation est la même que dans le kit de Nophead : « Alpine 500W Silent Power Supply », trouvée sur Ebay pour 17€ (fdpin).

Pour tester une alim, il faut la brancher, basculer le bouton On/Off s’il y en a un. Pour réellement démarrer l’alim, il faut lui envoyer un signal en mettant le fil vert à la masse, comme dans la photo suivante. Je n’avais pas trouvé la réponse en ligne : l’alim s’éteint quand on déconnecte le fil vert de la masse. Le comportement des boutons poussoirs de nos PC (contact momentané) peut induire en erreur (la carte mère s’interface entre l’alim et le bouton pour faire sa tambouille).

OLYMPUS DIGITAL CAMERA

J’hésitais à ajouter un interrupteur lumineux sur l’imprimante. La fonction interrupteur marche très bien, mais pas moyen d’allumer le néon, quelque chose doit m’échapper : pas de patte supplémentaire comme sur un interrupteur à LED.  Finalement je vais m’épargner cette peine : interrupteur au sol sur la multiprise. De plus, l’allumage du ruban de LEDs m’indiquera que l’alim tourne.

OLYMPUS DIGITAL CAMERA

Petite vérification du bon fonctionnement du ruban de LEDs, ici en 9V pour la photo, mais fonctionne nickel en 12V (tension donnée par le vendeur). 3€ les 4 sur Ebay !
OLYMPUS DIGITAL CAMERA