Un gyrocar est une automobile à deux roues dont l'équilibre est assuré par un gyroscope.
Le premier prototype de Gyrocar, le Shilovski, a été commandé en 1912 par le Comte russe Piotr Chilovski, avocat et membre de la famille royale Russe. Il a été fabriqué suivant ses plans par la Wolseley Tool and Motor car Company en 1914, et fut présenté à Londres la même année. Le gyrocar est alimenté par un moteur Wolseley C5 modifié, de 16 - 20 cv, avec un alésage de 90 mm et une course de 121 mm. Il est monté devant le radiateur, entraînant la roue arrière par l'intermédiaire d'un embrayage et d'une boîte de vitesses classiques. Un frein de transmission est monté après la boîte de vitesses - il n'y avait pas de freins sur les roues elles-mêmes. Le poids du véhicule est de 2,75 tonnes et il a un très grand rayon de braquage. Il était destiné à un usage militaire sur des chemins particulièrement étroits. À la déclaration de la guerre en 1914, Wolseley se retrouva pleinement occupée aux fabrications militaires, et le gyrocar traîna longtemps dans un atelier. La direction, sans nouvelles de Chilovski, supposa qu'il fut victime de la guerre, et décida d'enterrer le véhicule. Il fut déterré en 1938, restauré et exposé au musée Wolseley.
Voici une photo de l'engin:
Ce concept de gyrocar est revenu à la mode très récemment.
Au CES 2017 de Las Vegas, le fameux salon Consumer Electronics Show consacré aux innovations technologiques, Honda vient de présenter une moto stabilisée par gyroscope, en l'occurrence une NC 750 S, qui tient toute seule debout ! Mieux encore : au pas, elle peut vous suivre ! L’Asimo version moto pourrait bien devenir le meilleur ami du motard. Vous trouverez une description de cette moto en cliquant
ici.
LitMotors a aussi développé cette moto électrique dont la particularité est de tenir à l'équilibre seule.
2. Description de la maquette réalisée
2.1 Présentation de la maquette
Vous pouvez voir ci-dessous une photo de la maquette réalisée.
Cette maquette comprends un gyroscope acheté chez GYROSCOPE.COM en Grande Bretagne. La roue du gyroscope est reliée à un moteur de 12 Volts. Ceci permet d'obtenir une vitesse de rotation de la roue supérieure à 12000 tours/min.
Le gyroscope est monté sur un chassis équipé de 2 roues "Meccano" dont l'une est motorisée par un moto-réducteur miniature. La commande de direction est assurée par un servomoteur miniature.
L'engin est alimenté par 2 batteries Li-On de 8 Volts montées en série.
Le système de commande utilise un module Arduino et est piloté en Bluetooth par un smartphone ou une tablette Android avec une application intitulée "gyrocar".
2.2 Stabilisation du gyroscope
Le centre de gravité de l'ensemble roue du gyroscope et moteur est situé au dessus de l'axe de rotation horizontal. Dans ces conditions, le gyroscope effectue des oscillations dont l'amplitude augmente à cause de la pesanteur jusqu'à la chute de l'engin comme on peut le voir sur la vidéo ci-dessous.
Il est donc nécessaire de stabiliser le gyroscope. La stabilisation est réalisée en controlant la précession du gyroscope à l'aide d'un servomoteur dont le bras est relié par un élastique à l'axe vertical du gyroscope, ce qui permet d'appliquer une force dans le sens du déplacement de l'engin. Le gyroscope réagit en exerçant une force perpendiculaire au déplacement, ce qui permet de le redresser.
La mesure de l'inclinaison de l'axe vertical du gyroscope est réalisée par un module DE-ACCM2G2 basé autour d'un circuit intégré accéléromètre LIS244ALH de ST MicroElectronics. Ce module délivre une sortie analogique permettant de mesurer l'inclinaison de l'axe vertical du gyroscope .
Ce module est fixé sur le carter du gyroscope avec de la mousse pour réduire l'influence des vibrations comme on peut le voir sur la photo ci-dessous.
Un module ARDUINO est utilisé pour effectuer les calculs d'asservissement du gyroscope.
A partir des valeurs d'inclinaison verticale, l'ARDUINO calcule la rotation du servo permettant de stabiliser la plate-forme.
J'ai utilisé le système PID (Proportionnel Intégrale Dérivée) qui est décrit sur le site de Telecom-Robotics.
Le principe de base de tout asservissement est de prendre des mesures à la sortie, de les réinjecter à l'entrée pour comparer à la consigne afin d'obtenir l'erreur (ie la différence entre la mesure réelle et la consigne demandée). Quand elle est nulle, le servo a atteint la vitesse de consigne et donc il n'y a plus rien à actionner. Ce système est dit en boucle fermée, puisque la sortie du système est réinjectée dans l'entrée.
Pour mon application, je me suis limité à un asservissement proportionnel et dérivée qui permet d'obtenir des résultats satisfaisants.
Soit y la tension de sortie de l'accéléromètre qui donne l'inclinaison de l'axe du gyroscope par rapport à la verticale. yref est la valeur correspondant à la verticale (angle nul).
L'équation qui relie la position du servo (pos) à y est la suivante:
pos(t) = k1 x (y(t) - yref) + k2 x dy(t)/dt
La fréquence d'échantillonnage est d'environ 5 Hz, soit un échantillon y(n) toutes les 200 ms.
L'équation ci-dessus s'écrit alors:
pos(n) = k1 x (y(n) - yref) + k2 x (y(n) - y(n-1))
Si y>yref et y(n)>y(n-1), la plateforme penche d'un côté et l'axe du gyroscope s'est déplaçé par rapport à la verticale (angle positif croissant) et le servo passe à une valeur supériere à 90 degrés ce qui entraine une force qui va redresser la plateforme. L'axe du gyroscope va repartir dans l'autre sens ( angle positif décroissant) et la valeur du servo repasse à la valeur moyenne (90 degrés) jusqu'à ce que l'angle devienne négatif croissant.
Les coefficients k1 et k2 sont à déterminer expérimentalement en fonction de la vitesse de rotation et du poids de la roue du gyroscope.
Pour cette maquette, j'utilise les valeurs suivantes: k1=0.5 et k2=2
On peut voir sur la vidéo ci-dessous le résultat obtenu. La stabilisation est bonne même en présence de mouvements du gyrocar.
2.3 Description du système de commande
Pour commander le gyrocar, il faut les composants suivants:
- une batterie de 16V constituée par la mise en série de deux batteries Li-On de 8 V
- un module ARDUINO (j'ai utilisé un Arduino Nano)
- un module BLUETOOTH HC-05 qui permet de piloter le gyrocar en Bluetooth par un smartphone ou une tablette
- un module de pilotage de moteur L298N relié d'un côté à l'Arduino et de l'autre au moteur de traction et au moteur du gyroscope
- deux servo moteurs. L'un est utilisé pour la stabilisation du gyroscope et l'autre pour la commande de direction du gyrocar.
Le schéma du système de commande est donné sur la figure ci-dessous.
2.4 Programme Arduino
Le programme de l'Arduino réalise les fonctions suivantes:
- stabilisation du gyroscope: à partir de la valeur de l'inclinaison du gyroscope reçue sur l'entrée A1, le programme commande sur la sortie D9 le servomoteur N° 1 qui agit sur la précession du gyroscope
- commande du moteur de traction relié aux sorties OUT3 et OUT4 du module L298
- commande du moteur du gyroscope relié aux sorties OUT1 et OUT2 du module L298
- commande sur la sortie D10 du servomoteur N°2 qui agit sur la direction du gyrocar
Vous pouvez télécharger ce programme en cliquant ici.
2.5 Application Android GYROCAR
Cette application appelée GYROCAR se connecte en Bluetooth à l'Arduino qui commande le gyrocar par l'intermédiaire du module HC-05.
Cette application permet de commander les fonctions suivantes:
- marche avant, marche arrière
- controle de la vitesse
- controle de la direction
- ajustement des paramètres du système de stabilisation du gyroscope ( YREF, dt, k1, k2)
J'ai réalisé cette application à l'aide du logiciel en ligne intitulé
MIT App Inventor 2 que l'on peut trouver à l'adresse suivante: http://ai2.appinventor.mit.edu/
Ce logiciel est très facile à utiliser et permet de créer une
application ANDROID très rapidement sans connaître le language Java.
Vous pouvez voir ci-dessous une copie d'écran de la tablette.
Vous pouvez télécharger cette application en cliquant ici.
Le dossier intitulé gyrocar_android.zip comprends:
- le fichier gyrocar.apk qui est l'application ANDROID à télécharger et installer sur le smartphone
- le fichier gyrocar.aia qui est le code source à ouvrir avec le logiciel MIT App Inventor 2 pour effectuer des modifications
- un tableau Excel qui donne les commandes envoyées par l'application à l'Arduino ( chaque commande correspond à un seul octet transmis vers l'Arduino
2.6 Résultats obtenus
La vidéo ci-dessous montre le gyrocar en action piloté par une tablette avec l'application "gyrocar".