Partagez

Suivez moi

Twitter

Google+

LinkedIn

MovingRaspi - Partie 03 : Assemblage final

MovingRaspi est un projet que j'avais eu il y a quelques temps, et pour lequel j'ai décidé de me lancer. Il s'agit de motoriser un Raspberry Pi tout en le pilotant depuis un iPhone (ou iPad, ou iPod Touch). Cette troisième partie concerne l'assemblage final.

 

Le pont en H

Le pont en H est un montage basique pour contrôler le sens des moteurs. Voici comment il se présente :

H-Bridge

  • Les transistors Q1 à Q4 vont fonctionner comme des interrupteurs. Si on applique du courant à la broche nommée « base » (celle qui est reliée à une résistance), le courant circulera depuis la broche nommée « collecteur » (celle qui n'a aucun signe particulier) vers celle nommée « émetteur » (celle avec une flèche sortante). De plus, les transistors font aussi office d'amplificateur de courant. Une de leurs caractéristiques, nommée « gain » (ou hFE), correspond au multiplicateur entre le courant entrant dans la base, et celui circulant entre le collecteur et l'émetteur. Par exemple, le transistor BCU81 utilisé dans le montage a un gain minimal de 140. Ce qui veut dire que si l'on applique un courant de 10 mA à la base, le courant minimal pouvant circuler entre le collecteur et l'émetteur est de 10x140, soit 1400mA ou 1,4A. Les moteurs pouvant demander beaucoup de courant (entre 70 mA et 800 mA en fonction de la charge pour le modèle choisi), il faut donc correctement dimensionner le transistor en fonction du courant appliqué à la base, et du gain de ce dernier.
  • Les diodes D1 à D4 sont ici pour protéger les transistors. Quand un moteur arrête de tourner, il a tendance à envoyer un pic de courant dans le sens inverse de celui qui lui était appliqué. Ce pic de courant, qui va passer de l'émetteur au collecteur des transistors peut être fatal pour ces derniers si trop important. La diode est là pour offrir à ce courant un chemin retour contournant les transistors.
  • Le condensateur C1 est là pour filtrer le bruit électrique (comprendre hausse et saute de tensions) provoqué par la rotation du moteur. Même avec un condensateur, le tension ne sera pas parfaitement fixe, mais c'est toujours mieux que rien. Vous pouvez voir ci-dessous le résultat filtré, et noter les ondulations irrégulières. Il ne vous reste plus qu'à imaginer des ondulations plus importantes sans le condensateur.

Filtered noise

Pour faire tourner le moteur dans un sens, il suffit d'activer deux transistors diagonalement opposés (par exemple, Q1 et Q2, ou Q3 et Q4). Pour changer le sens de rotation, il faut activer les deux autres. Et pour arrêter le moteur, il faut n'en activer aucun. Vous avez les deux cas de figure ci-dessous.

Motor turns left Motor turns right

Le MCP23008

Le MCP23008 est un circuit d'extension de ports. Pour piloter deux moteurs chacun avec son pont en H, il faut un total de huit GPIO. Comme le Raspberry Pi n'en possède que huit, à moins de désactiver certaines fonctions spéciales, on va vite se retrouver coincé en cas de besoins futurs. C'est là qu'entre en scène le MCP23008. Il n'utilise aucun des huit connecteurs GPIO (il se connecte au Raspberry Pi via les connecteurs I2C, la ligne d'alimentation +3,3V ou +5V, et la masse), et fournit en échange huit autres connecteurs GPIO, portant le total à seize GPIO disponibles. Pour des besoins plus importants, il est possible d'ajouter d'autres MCP23008, ou bien des MCP23017, qui fournissent pour ces derniers seize GPIO supplémentaires.

Côté alimentation du MCP23008, il est possible de choisir entre la ligne +3,3V, ou bien la ligne +5V. J'ai choisi la seconde pour une raison principale : la ligne +3,3V est limitée à 51mA au total, partagée avec les huit GPIO du Raspberry Pi, ce qui peut être limitant. En revanche, la ligne +5V est limitée à 700 mA moins la consommation du Raspberry Pi, ce qui laisse plus de latitude. Avec un Raspberry Pi en headless (qui consomme dans les 400 mA), il reste 300 mA pour les USB et la ligne +5V.

Le montage final

Le schéma électronique et le montage sur breadboard sont visibles ci-dessous.

Electronic schema
Breadboard assembly

Concernant le montage sur breadboard, il est adapté au transistor BCU81, qui est de type ECB (comprendre, vue de face, que les pattes de gauche à droite sont Emetteur, Collecteur, Base). Pour les transistors de type EBC, un schéma breadboard est disponible sur la page GitHub du projet.

Le résultat en action

Rappel

L'ensemble des sources et schémas du projet est disponible sur GitHub.

Télécharger sur GitHub



comments powered by Disqus