Motorisation et commande à distance d’un fauteuil crapaud

Ce projet est une commande pour l’association de danse : JAD basée à St-Benoit (86). La mission était de pouvoir déplacer sur une scène lors de plusieurs spectacles de danse un petit fauteuil crapaud. Le fauteuil devra traverser la scène en autonomie (pilotage par un humain en coulisse).

De cette demande « anodine » découle un certain nombre de contraintes :

  • Motorisation d’un objet encombrant et moyennement lourd 10-15 kilos
  • Fiabilité
    • Autonomie la plus longue possible
    • Facilité à remplacer les batteries sans outillages
    • Protection des mécanismes
  • Invisibilité du mécanisme animant le fauteuil
  • Il est probable que quelqu’un s’assoit sur le fauteuil, le mécanisme devra donc supporter une charge supplémentaire de 70-80 kilos sans que le système ne soit endommagé
  • Facilité à transporter / réparer le mécanisme
  • Ne pas dégrader le fauteuil qui doit pouvoir être restitué en état
  • Utilisation de composants de réutilisation le plus possible pour tenir le budget

Ces diverses contraintes nous ont amené à orienter la conception vers une base mobile indépendante du fauteuil, ce dernier venant se positionner sans fixation sur cette base.

Plutôt que de construire un système mécanique pouvant supporter une masse de 80 kilos, nous avons opté pour une solution permettant le transfert de charge sur les pieds du fauteuil, dit autrement, 4 ressorts permettront au fauteuil de reposer sur ses pieds dès que l’on s’assoit dessus, le mécanisme d’entrainement sera ainsi protégé.

L’entrainement du fauteuil sera fait via 2 servos moteurs, transmettant leur puissance par un couplage directe aux roues (un système par friction façon solex à aussi été tenté, mais ne présentait aucun avantage dans le cas présent, cf photo )

Côté énergie :

  • Pour les servomoteurs : une batterie 6v de petite motoculture/moto
  • Pour l’électronique : 2 batteries 18650 rechargeable récupérés sur des batteries de pc portable permettront d’alimenter l’électronique.

Le contrôle à distance sera fait par une radio Commande 6 cannaux (2 utilisés). Les signaux du récepteur seront traités par un arduino uno qui gèrera les servos moteurs.

-Possibilité d’avancer / reculer
-Possibilité de tourner sur place à droite ou à gauche
-Possibilité en trajectoire rectiligne de piloter la vitesse des servos pour dévier vers la droite ou la gauche

BOM liste (*  élément issu de démontage / récupération) :

1 x Batterie 6V-12A/H au plomb : NP 12-6 YUASA
2 x batterie 18650 / li-on 3.8V – 1.5/AH *
1 x Support batterie double accu 18650
2 x servos Moteurs HK 15338 HobbyKing
4 x gros ressorts *
2 x fiches banane femelle *
2 x fiches banane mâle *
1 x porte fusible automobile et fusible 5 A/h *
1 x plateau de bois pour le chassis *
1 x Radio Commande DUMBO RC 2.4Ghz  et son récepteur 6 canaux
1 x Arduino Uno
1 x shield bouclier de connexion
2  x interrupteurs *
1 x équerre métallique *
2 x led indiquant le fonctionnement arduino et radio commande *
2 x roues folle pivotante sphère
2 x roue de jouer type roller *
1 x bobine 1 Kilo de PLA pour impression 3D des pièces de support et d’entrainements
0.5 L peinture noir mat *
Fil électrique / bois / étain / petite visserie placo 3.5 *
6 x colliers de serrage rilsan

Outillage : pince coupante, scie, fer à souder, perceuse / visseuse / mètre / foret / mèche à bois / scie cloche / pinceaux

Etape 1 : Réalisation du châssis en bois et positionnement des roues

Un patron en carton à permis de reprendre la forme du fauteuil et de découper cette dernière dans un contreplaqué de 10mm (tracer une moitié et reporter l’autre par symétrie pour avoir une forme identique, ce que nous n’avons pas fait…)

Une découpe est faite pour permettre le passage de roues d’entrainement positionné à l’avant. Afin de faciliter le transport un passage de main a aussi été découper dans le châssis sur la partie haute.

En partie basse (avant du fauteuil) un rebord en bois permet de poser le châssis à la vertical, pratique pour les tests de motorisation et le rangement à la vertical dans un moindre espace.

Etape 2 : Ajout des ressorts permettant de supporter le poids du fauteuil, tout en maintenant à vide les pieds à 2 cm du sol environ.

Des supports en bois ont été fixés sous le fauteuil de manière à pouvoir supporter l’appuis des ressorts (le dessous du fauteuil était constitué d’une toile de jute souple).

Le réglage de la hauteur à vide du fauteuil s’est faite empiriquement en ajoutant des épaisseurs sur ces supports.
4 morceaux de bois creusés à la scie cloche permettent de recevoir les ressorts qui seront maintenus par des colliers rilsan.

Attention : Une hauteur de garde au sol suffisante doit être laissée pour que les pieds ne touchent pas le sol lors des déplacements, cette hauteur doit rester faible pour qu’en cas de charge la compression supplémentaire amène rapidement les pieds au sol avant d’endommager la motorisation.

Etape 3 A: Transformation des servos moteur en rotation continue

En règle générale, le comportement standard d’un servo moteur piloté par une PWM est de se positionner à un angle compris entre 0 et 180 degrés et de maintenir cette position (conçu pour le pilotage des gouvernes d’avions/bateaux en modélisme par exemple).

Nous souhaitons obtenir de notre servo moteur une rotation continue dans les 2 sens. Pour cela une petite intervention est nécessaire… Nous allons devoir démonter les servos moteurs, retirer la butée limitant la rotation ainsi que le potentiomètre permettant à l’électronique intégré d’asservir la position.

Le potentiomètre est repositionné dans l’espace libre du servo, de manière à pouvoir être ajuster de l’extérieur.

Une fois remonté, il faut régler le potentiomètre de manière à avoir un moteur à l’arrêt lors de l’envoie d’une commande de déplacement à 90 degrés.

Le nouveau comportement du servo moteur sur une demande de positionnement angulaire

  • Angle de 90 à 180 degrés rotation avec vitesse croissante le max étant atteint pour  180 degrés.
  • Angle de 90 à 0 degré, rotation inverse avec une vitesse maximum à 0 degré

Etape 3B : Conception et montage du système d’entrainement des roues de roller par les servos moteurs.

Le but est d’obtenir l’entrainement des roues de roller (un test à été réalisé pour un entrainement par friction façon solex) . Dessin 3D dans FeeCad d’une pièce permettant de s’insérer dans les espace de la roue et se fixant au servo moteur de manière à obtenir un entrainement direct de la roue.
Une bride de maintien du servo au châssis est aussi conçue et imprimé en 3D.

Montage de l'entrainement direct sur les 2 roues

Etape 4 : Conception d’un système permettant de changer rapidement la batterie 6V

La batterie 6v au plomb étant relativement lourde, elle nécessite une fixation de type bride, les bornes sont de type cosse 3.5 .

Pour éviter toutes manipulation, nous avons imaginé un boitier dans laquelle la batterie vient s’enficher, un support 3D permet de positionner les fiches banane mâle et femelle en vis-à-vis, permettant une transmission de forte intensité si nécessaire.

Un emplacement pour un fusible de voiture à été intégré de manière à protéger la batterie et le circuit d’un éventuel court-circuit.

L’enfichage ne pouvant se faire que dans un seul sens, il n’y a pas de risque d’inversion de polarité.

Pour recharger la batterie, des fils équipés de fiches bananes  mâles permettront de se connecter à la batterie et de la relier au chargeur.

Etape 5 : Électronique et câblage

Nous avons opté pour un shield permettant une connexion rapide. Possibilité de remplacer l’arduino sans toucher la connectique. Ou remplacer une connectique sans soudure.

Un connecteur indépendant permet de relier ensemble les alimentations des servomoteurs (rouge/marron) avec l’arrivée 6 volts :

ATTENTION : la masse de la batterie doit impérativement être relié à la masse de l’arduino

Ce connecteur est réalisé avec une chute de carte électronique. Un renfort d’étain est fait sur les pistes pour supporter une intensité forte. L’alimentation de l’arduino se fait par sa file d’alimentation externe (une connexion au Vin aurait aussi été possible. Cependant, dans notre cas le Vin n’est pas disponible via le shield)

Un interrupteur permet le contrôle de l’alimentation 6V vers les servos Moteurs.
Un interrupteur permet le contrôle de l’alimentation de l’ardino.

La led de retour du fonctionnement est connecté à l’arduino qui déclenche sont allumage après la phase d’initialisation de la radio commandes et des servos.
L’ensemble est protégé par un coffret imprimé en 3D comprenant 3 compartiments.

Schéma de cablage :

 

Etape 6 : Programmation de l’arduino

La seule librairie nécessaire pour ce projet est la librairie servo.h native dans l’IDE de l’arduino. Pour éviter tout bruit à l’arrêt un detach est fait systématiquement sur les servo moteurs lorsqu’ils sont à l’arrêt.

Le récepteur de la radio commande émet une PWM pour piloter directement un servo moteur, le décodage de la pwm (Pulse Width Modulation) se fait simplement par l’instruction pulsein qui mesure la durée entre 2 changements de fronts montant/descendant. La troisième valeur est le timeout, nos signaux n’excédant pas 2400 ms,  un timeout 5 000 ms semble raisonnable

unsigned long ch1 = pulseIn(CH1_PIN, HIGH, 500 000);

ch1 retourne 0 si aucune mesure possible dans le temps impartie, sinon retourne la durée en Milliseconde

La durée retournée est en Millisecondes, et correspond au format d’une pwm de servo moteur généralement comprise entre 800 et 2400 ms.

Télécharger le code source arduino : pilote6fg-v2.zip

Source expliquant Pulsein : https://roboticsbackend.com/arduino-pulsein-function/
Remarque : le chargement via usb du code dans l’arduino peut se faire toutes sources électrique alimentée.

Bilan :

Le système est opérationnel, les moteurs sont malheureusement un peu bruyant du fait des engrenages métalliques permettant la démultiplication dans le servo moteur.

Au démarrage les roues folles mettent un peu de temps à s’aligner dans la direction du déplacement entrainant un ‘tanguage’. Le premier modele de roue utilisée (bas de gamme à 1 euros ont du êtres remplacées car elle restait bloqué et freinait le déplacement du fauteuil…)

Axe d’amélioration : il serait possible d’ajouter deux capteurs de fin de course afin d’interdire le fonctionnement des moteurs si une personne est assise sur le fauteuil.

Mode opératoire avant utilisation :

0 – Vérifier que la batterie 6 volts est bien inséré dans son logement et que les 2 piles 18650 sont bien en place. Allumé uniquement l’Arduino pour voir si la led s’allume puis recouper l’alimentation.

1 – positionner le fauteuil sur le socle motorisé, les 4 pieds ne doivent pas toucher le sol (1cm de garde environ)

2 – allumer la radio commande : IMPORTANT :  il est préférable d’allumer en premier la radio commande, sinon des signaux parasite peuvent déclencher un fonctionnement aléatoire des servos moteurs

3 – pousser les 2 interrupteurs situés sur le pied arrière gauche du fauteuil vers le haut pour alimenter l’électronique et les moteurs.

4 – le fauteuil est prêt à être utilisé, la gâchette de la radio commande permet de faire avancer/reculer le fauteuil, la manette latérale en rotation permet d’orienter la trajectoire légèrement à droite ou à gauche. Pour faire tourner le fauteuil sur lui-même relâcher la gâchette et tourner uniquement la molette latérale.

Test de motorisation avec entrainement par friction / non retenu pour ce projet