Documentation
Pypilot user manuel french (pdf)
Liens pour télécharger l'image tinypilot avec la plus récente version stable de Pypilot :
- Image de Sean avec une version système tinycore qui fonctionne avec RPI Pi 0, 1, 2, 3 ou 5 (incompatible avec les Pi Zero 2W et 3+) tinypilot_2024_07_17.img.xz
- Image mise à disposition par Stellian avec une version système tinycore plus récente, compatible avec les Pi Zero 2W http://popies.net/pypilot/tinypilot13-20240915.img.xz
Utilisation recommandée de pypilot et du contrôleur
Les contrôleurs de moteur Pypilot doivent être associés à un calculateur de pilote automatique tel qu'un Raspberry Pi 0, 1, 2, 3 ou 5, connecté à une IMU, faisant tourner pypilot, avec ou sans hat MacArthur.
Pypilot a été conçu par Sean d'Epagnier pour consommer très peu d'énergie électrique et être pleinement opérationnel en l'installant sur un petit Raspberry Pi Zero W.
Consommation comparée en 12V des différents modèles de Raspberry Pi avec pypilot :
- Raspberry Pi Zero W : 60m
- RaspberryPi Zero 2W : 140mA
- Raspberry Pi 3 B : >200mA*
- Raspberry Pi 4B : >250 mA*
* sans compter la consommation de l'écran souvent indispensable, celle des autres appareils connectés au Raspberry Pi ainsi que celle relative aux autres application fonctionnant simultanément
Pypilot peut fonctionner en même temps que d'autres applications sur un gros Raspberry Pi. Il existe de superbes suites d'applications nautiques telles qu'OpenPlotter ou Bareboats Necessities (BBN) qui intègrent pypilot parmi de très nombreuses applications. Si c'est instructif et intéressant, cela revient un peu à utiliser son ordinateur personnel en tant que pilote automatique du bateau, centrale de navigation et centrale domotique. En utilisant une carte SD comme drive du Raspberry Pi, on a beaucoup de risques d'endommager le système de fichiers et les applications si une coupure de courant survient au milieu d'une écriture, avant l'arrêt complet de toutes les applications. Installer un disque dur SSD permet d'éviter les problèmes. Mais avec ces suites, il reste encore le problème des mises à jour de certaines applications pouvant parfois empêcher le fonctionnement du pilote automatique.
Votre pilote automatique sera beaucoup plus fiable, robuste et économe en énergie si vous connectez directement le contrôleur et une IMU* à un petit raspberry PI Zero W ou Zero 2W avec le fichier image tinypilot installé sur la carte mémoire micro SD du Pi Zéro.
Installation du calculateur pypilot sur un petit raspberry Pi Zero W dédié au pilote avec l'image tinypilot sur la carte SD
Tinypilot est un fichier image téléchargeable qui s'installe facilement sur une carte micro SD de 16 Go avec l'application « Raspberry Pi Imager ».
Il y a une image différente pour les Pi Zero W (double cœur) ou Pi Zero 2W (quadruple cœur). Voir les liens de téléchargement en haut de la page.
Il y a une image différente pour les Pi Zero W (double cœur) ou Pi Zero 2W (quadruple cœur). Voir les liens de téléchargement en haut de la page.
On a alors sur la carte SD, tous les fichiers Pypilot configurés pour un démarrage rapide en plus d'un système Linux Tinycore léger et robuste.
Ce système Linux allégé permet au Pi Zero de faire tourner automatiquement le pilote automatique Pypilot, son IMU, son écran LCD, son routeur Wi-Fi et son serveur web à la mise sous tension. Il ne fait rien d'autre.
Il est inutile d'ajouter un clavier ou de connecter un écran à la sortie HDMI du Pi Zero, car le système Linux allégé ne permet pas de les utiliser pour naviguer dans les pages graphiques de Pypilot.
Connecter un afficheur LCD JLX12864 au Pi Zero est cependant utile pour visualiser l'état du pilote (cap de la boussole, consigne, paramètres).
Pour des fonctionnalités graphiques plus étendues, vous devrez utiliser un autre appareil doté d'un navigateur web, connecté en Wi-Fi au Pi Zero et disposant de l'image Tinypilot sur sa carte SD. Vous pouvez également utiliser un autre Pi avec un système Linux complet permettant d'exécuter le plugin OpenCpn pypilot ou les scripts pypilot de contrôle (pypilot_control, pypilot_calibration, pypilot_scope).
Le script principal « pypilot », qui s'exécute automatiquement avec tinypilot sur le Pi connecté au contrôleur moteur, n'a évidemment plus besoin d'être exécuté sur d'autres appareils.
Après la mise sous tension, pypilot s'exécute entièrement depuis la RAM. Cela vous permet d'arrêter le pilote automatique avec l'interrupteur du tableau électrique du bateau, sans risquer d'endommager les fichiers sur la carte micro SD. De plus, en installant une image Tinypilot stable, vous avez la garantie que le système de fichiers installé a déjà été testé par de nombreux utilisateurs et restera intact jusqu'à l'installation d'une nouvelle version de l'image Tinypilot.
Même en cas de dysfonctionnement ou de problème avec le gros Raspberry Pi à tout faire du bateau, le pilote automatique installé sur le Pi Zero avec tinypilot fonctionnera toujours.
En choisissant un calculateur équipé d'un Pi Zero, d'un AtMega328P (arduino) supplémentaire et d'un récepteur 433MHz, le pilote peut même être contrôlé en plus par des télécommandes étanches 433MHz qu'on trouve facilement sur internet pour quelques euros.
En choisissant un calculateur équipé d'un Pi Zero, d'un AtMega328P (arduino) supplémentaire et d'un récepteur 433MHz, le pilote peut même être contrôlé en plus par des télécommandes étanches 433MHz qu'on trouve facilement sur internet pour quelques euros.
Vous trouverez plus haut le schéma d'un calculateur simple pour utiliser tinypilot.
Si vous choisissez d'utiliser TinyPlot sur un Pi Zero, l'alimentation 5 V de ce dernier sera plus sûre et plus robuste si vous l'alimentez en 5V à partir du contrôleur de moteur avec un câble micro USB (option des contrôleurs 15A). Il suffit de raccorder la prise micro USB du câble à l'embase repérée "PWR IN" du Raspberry Pi Zero, ou même celle repérée "USB" si celle-ci n'est pas utilisée pour échanger des données NMEA0183.
Si vous trouvez le démarrage trop lent, notamment celui de l'interface de contrôle web, vous pouvez installer un Raspberry Pi Zero 2 W au lieu du Pi Zero. Mais, ce sera au prix d'une consommation électrique plus élevée (140 mA environ en 12V au lieu de 60 mA), sans que cela améliore le fonctionnement du pilote automatique. Il faut savoir qu'au démarrage de pypilot, ce n'est que lorsque le pilote automatique est opérationnel que la la wifi et le serveur web sont démarrés, ce qui est judicieux.
*IMU (Inertial Mouvment Unit)
l'IMU est un capteur d'attitude, tel que ceux qu'on trouve dans les téléphones portables et les drones. On parle de capteur 9 axes car la puce intègre 3 magnétomètres, 3 accéléromètres et 3 gyromètres, soit 3 capteurs dans chacun des axes X, Y et Z. Pypilot utilise ces 9 capteurs pour calculer avec précision le cap magnétique, le roulis et le tangage avec une compensation magnétique en 3D permettant de rester précis, même à la gite par forte mer de travers.
Sean d'EPAGNIER, le concepteur de pypilot, recommandait un module IMU à base de puce MPU9255 ou MPU9250. Ces modules de qualité et performances parfois très inégales étaient tous directement compatible avec le bus I2C 3.3V (3 fils) des Raspberry Pi. Depuis, pour obtenir une plus grande autonomie, les téléphones fonctionnent désormais en 1.8V. Les puces MPU9255 et MPU9250 deviennent de plus en plus rares. Elles sont de plus en plus remplacées par les puces ICM2948 avec un bus I2C 1.8V. Malheureusement, ce bus ne peut pas être connecté, sans risque, directement au bus I2C 3.3V des Raspberry Pi. La puce ICM20948 est pourtant de bien meilleure qualité et consomme moins d'énergie.
Il faut savoir que les modules ICM20948 avec seulement quelques composants, en plus de la puce ICM20948, ne peuvent pas être directement connectés au bus I2C d'un Raspberry Pi, même s'ils peuvent être alimentés en 3.3V ou 5V d'après le vendeur, ce qui est exact mais trompeur. Car si la puce ICM20948 peut être alimentée en 3.3V ou 5.5V, ce n'est pas le cas de son interface I2C qui a une alimentation distincte à la broche 8 du circuit intégré. Celle-ci ne doit pas être alimentée à plus de 1.95V d'après le fabricant TDK. On trouve heureusement de plus en plus de modules ICM20948 directement compatibles avec les Pi, sans être plus chers. Ceux-ci ont en plus un régulateur 1.8V pour alimenter la broche 8 de la puce (alimentation de l’interface I2C) ainsi que quelques composants supplémentaires pour adapter le bus I2C 1.8V de la puce ICM20948 au bus I2C d'un Raspberry Pi ou d'un Arduino.
En électronique, dépasser les limites du fabricant peut bizarrement ne pas poser problème dans certaines conditions. mais cela revient à accepter le risque d'un mauvais fonctionnement ou d'une panne avec d'autres température ou tensions de fonctionnement. Il est donc prudent de veiller à toujours installer un module ICM20948 avec un bus I2C compatible avec un PI ou un Arduino, tels que par exemple les modules repérés ICM20948V2 ou ou GY-ICM20948V2.