Un Pilote automatique Open Source à faible coût Partie 3

Essais en conditions réelles en mer de deux solutions PyPilot (solution peu couteuse open source de contrôle de pilote automatique) : une basée sur un RaspBerry PI4 et une basée sur un RaspBerry PI0 intégré à une carte « Hat ». Ces deux solutions intègrent la même carte de contrôle de puissance vers le moteur du pilote.

La partie électronique contrôle du moteur basée sur un IBT-2 (Pont H) et un arduino nano que j’avais bricolé et configuré moi même ne m’a pas donné entière satisfaction lors des premiers essais en mer avec un vent aux alentours de 20 noeuds. Mais je continuerai des essais là dessus plus tard. Ayant reçu entre temps la carte électronique de contrôle vers le moteur (à 60 €) basée sur un arduino nano et un pont H commandée sur le site PyPilot, j’ai installé cette carte avec mon Raspberry PI 4 et mon capteur inertiel déjà entièrement configurés avec OpenPlotter. (Pour OpenPlotter voir premier article: Un pilote automatique Open Source à faible coût )

Lors de tous ces essais et tests, un grand merci au voilier Colibri qui suivait la même route que nous (Açores – Canaries) et qui m’a permis de mieux comprendre tous les réglages du PyPilot et son électronique. Sa chaîne YouTube est une mine d’informations techniques et là plus particulièrement sa solution PyPilot qu’il a installé sur son voilier de 15 mètres qu’il utilise comme système de pilote automatique principal et qui lui donne entière satisfaction. Lien vers la cette video.

Ma configuration PyPilot

Cette carte PyPilot de contrôle de puissance vers le moteur intègre aussi un Pont H et un arduino Nano. Branchement de cette carte de contrôle vers le moteur du pilote au Raspberry PI 4.

Les Branchements

Carte Ctrl moteur _______ RaspBerry PI4

3,3 V + ____________ Pin 17 3,3V+

GND ________________ Pin 20 ou 30 GND

TX ___________________ Pin 10 RX

RX ____________________ Pin 8 TX

Capteur INU __________ RaspBerry

VCC __________ Pin 1 3,3v

GND __________ Pin 9 Ground

SCL __________ Pin 5 SCL

SDA __________ Pin 3 SDA

La carte contrôleur du moteur est alimentée en 12V elle intègre optionnellement la commande de Clutch en 12v, une entrée vers un potentiomètre en 5v pour le capteur d’angle de barre et la sortie de « puissance » en 12v vers le moteur du pilote.

Le moteur lié au PyPilot: un Raymarine Type 1

A noter ici que le moteur de « secours » lié au PyPilot est un Raymarine de type 1 qui tient ici sans aucun démontage du système principal de moteur et vérin B&G.
Le potentiomètre qui est le capteur d’angle de barre lié au PyPilot vient s’insérer sur l’axe du moteur B&G qui sera toujours lié a l’axe du safran avec moteur B&G « débrayé ».

Le vérin lié au au moteur de « secours » raymarine est facilement démontable : il suffit d’enlever une goupille pour qu’il ne soit plus en prise avec l’axe du safran quand le pilote principal B&G fonctionne.

Les essais en mer

Premier essai: Barre contrôlée par PyPilot : 6 heures de navigation avec peu de vent.

Les mouvements sont doux et la précision sur le cap donné parfaite. Avec les bons réglages, comparé aux pilotes du commerce ce système de pilote automatique consomme moins d’énergie.

Paramétrages Pypilot

Paramétrage des gains (PID) voir lien PyPilot tunning_gains
Paramétrage moteur: a noter qu’on peut définir ici un ampérage maxi pour le moteur du pilote (servo.max_current)
Lien vers les réglages de PyPilot via OpenPlotter

Commandes du PyPilot

Le contrôle du pilote (mais aussi son paramétrage) peut se faire directement à l’écran connecté au RaspBerry +10 +1 -1 -10 via le Plugin Open CPN:

Ce contrôle du pilote (mais aussi son paramétrage) peut aussi se faire à partir d’un smartphone ou d’une tablette à l’extérieur à condition que la tablette ou le smartphone utilisent le point d’accès wifi fourni par le RaspBerry, dans ce là l’adresse locale dans le navigateur est la suivante: http://10.10.10.1:8000

Le RaspBerry Centrale de Navigation ?

Le RaspBerry peut aussi lui même être connecté au réseau nmea du voilier via un multiplexeur / routeur wifi. Généralement les multiplexeur / routeur wifi branchés sur un réseau NMEA 2000 sortent « en clair » les données de navigation du voilier en NMEA0183 via TCP ou UDP. Le RaspBerry n’a plus qu’a se connecter via TCP à l’adresse IP et au port du routeur wifi ou via UDP au port du routeur wifi. Dans ce cas là les données fournies au Pypilot sont aussi les données vent, gps etc… avec lesquelles le PyPilot va pouvoir interagir dans différents modes. Alors le Raspberry utilisant les données du réseau NMEA du voilier: véritable centrale de navigation ? Je serai tenté de dire oui.…. Je ferai surement un petit article sur ce thème RaspBerry et utilisation des données NMEA avec SignalK prochainement.

Une variante intéressante et plus compacte : TinyPilot.

Ici le Raspberry PI 4 est remplacé par un Raspberry PI 0 mais le principe reste le même: Sur carte « HAT » , capteur inertiel relié au RaspBerry PI 0 qui intègre le programme PyPilot pour les calculs et ordres passés à la carte contrôleur du moteur (même carte contrôleur et donc même principe: arduino nano qui transmet les ordres au pont H qui contrôle le sens et la puissance électrique transmise au moteur). Simplement solution plus légère qui peut fonctionner de façon autonome sans forcement un moniteur de contrôle. Dans ce cas le Hat PyPilot possède des connexions pour avoir des boutons physiques +10 +1 -1 -10 mais aussi un petit récepteur pour une télécommande infrarouge avec les commandes de base. On peut aussi se connecter avec du Wifi sur le Raspberry PI 0 qui propose un point d’accès avec son adresse IP 192.168.14.1 on peut alors utiliser un navigateur web ou le Plugin OpenCPN sur PC ou Mac pour passer les ordres au pilote et éventuellement modifier les paramètres de l’application PyPilot.

On voit ici que la carte de contrôle du moteur est la même, les connexions vers le moteur du pilote restent donc là inchangées. La carte Hat est basée sur un RasBerry PI 0 et elle est connectée suivant le même schéma qu’avec le Raspberry PI 4 (3.3v, GND, TX, RX) sur la carte de contrôle du moteur.

Essai en mer par plus de 20 noeuds de vent

On constate ici que le PyPilot barre aussi bien qu’un Pilote du commerce et merci à Jean du voilier Colibri pour son aide précieuse lors de ces essais.
(A noter pour ces essais que les cartes du TinyPilot étaient scotchées avec du scotch double face à la table à carte, il valait mieux pour que ça tienne à la gite….).

Tous ces essais m’ont permis de largement valider l’utilisation du PyPilot en tant que pilote de secours mais aussi système de navigation complet avec Open CPN. Je me suis même surpris a me dire que si la foudre tombait un jour sur mon voilier et grillait toute l’électronique B&G, je serai bien content de sortir cette solution de sa boite…. Je ne saurai que trop recommander cette solution PyPilot qui a l’avantage d’être Open source et peu couteuse à des voiliers qui n’ont pas ou plus de système de navigation ou des vieux systèmes marchant mal ou alors comme pour moi en secours, il faut dans ce cas être un peu bricoleur et s’intéresser un peu à l’électronique et à l’informatique.

Lien vers ma chaine Youtube Sailing Nana ou je ne parle pas de technique mais ou je filme principalement les paysages de nos escales en voilier.

Lien vers ma nouvelle chaine Youtube Voyage FPV 100% FPV que pour le plaisir du pilotage des drones FPV que je bricole.