Électronique embarquée LoRa 868 MHz Contrôle moteur

Cible mobile « Sanglier courant »

Une cible qui traverse le pas de tir sur un rail motorisé, pilotée sans câble depuis une télécommande à écran tactile. Deux cartes reliées par radio, un moteur brushless de 2 000 W, et une règle qui a guidé chaque choix : au moindre doute, la machine s'arrête d'elle-même.

Projet pour un stand de tir privé · Conception électronique et logicielle · Terminé en septembre 2026

2 000 W

Moteur brushless

48 V · 4 batteries 12 V en série

868 MHz

Liaison radio LoRa

Aller-retour mesuré : 152 ms

2 s

Arrêt automatique

Perte de liaison ou programme figé

0,5 ms

Scrutation des capteurs

Interruption matérielle à 2 kHz

Le besoin

Faire courir une cible, et pouvoir l'arrêter à tout moment

Le tir sur sanglier courant entraîne à viser un animal en mouvement : une cible traverse le pas de tir d'un bout à l'autre d'un rail, à vitesse variable. Pour un stand de tir privé, j'ai conçu toute la partie électronique et logicielle qui fait avancer cette cible et permet de la piloter depuis le poste de tir, à une quarantaine de mètres, sans aucun câble.

La difficulté ne tient pas dans le mouvement, mais dans l'environnement : un moteur de 2 000 W alimenté en 48 V à côté de microcontrôleurs 5 V, des capteurs reliés par 20 m de câble, un usage en plein air, et des utilisateurs qui ne sont pas techniciens. Chaque choix a été fait pour qu'une panne, quelle qu'elle soit, se termine par une cible arrêtée.

Deux unités, un seul cerveau

Le système se compose d'une télécommande (ESP32-S3 avec écran tactile 7 pouces) et d'un contrôleur installé près du rail (Arduino Uno), qui pilote le variateur du moteur par un convertisseur numérique-analogique et quatre relais : frein, marche arrière et gammes de vitesse.

Dans la troisième version, j'ai inversé la répartition des rôles. Le contrôleur détient désormais les paramètres en EEPROM, la logique de cycle, les rampes de vitesse, le décompte de départ et toutes les sécurités. La télécommande devient un terminal : elle affiche l'état reçu et transmet les ordres.

  • Un redémarrage de la télécommande n'interrompt plus un cycle en cours.
  • Changer de télécommande ne fait perdre aucun réglage.
  • Les décisions critiques se prennent au plus près des actionneurs, sans dépendre de la radio.

Ce que ça m'a appris

C'est la règle qu'on applique entre un automate et son IHM en usine : l'écran affiche et commande, l'automate décide. Tant que la télécommande calculait les cycles, le moindre redémarrage de l'affichage interrompait l'exercice en cours. Déplacer la logique vers le contrôleur a rendu la machine indépendante de son écran.

La sécurité

Par défaut, tout s'arrête

Le frein est serré dès que le moteur s'arrête. Le contrôleur coupe l'accélérateur et serre le frein dans quatre situations, sans attendre d'ordre de personne :

  • Perte de liaison pendant plus de 2 secondes : si la télécommande s'éteint ou sort de portée, la cible s'immobilise d'elle-même.
  • Arrêt d'urgence : le bouton reste accessible en permanence à l'écran, y compris quand une fenêtre de dialogue est ouverte.
  • Fin de course atteinte dans le sens du mouvement : seul le déplacement qui éloigne la cible de la butée reste autorisé.
  • Programme figé : un chien de garde matériel redémarre le contrôleur si sa boucle se bloque plus de 2 secondes.

En mode automatique, la cible n'enchaîne jamais d'allers-retours seule. Elle s'arrête en entrant dans la zone de ralentissement, puis au bout du rail, et ne repart qu'avec l'accord de l'opérateur. Chaque accord doit être relâché avant d'être pris en compte à nouveau : une commande répétée par la radio ne peut pas déclencher un trajet de trop.

Avant le moindre essai moteur, j'ai simulé les capteurs à la main, levier par levier. Neuf défauts de logique sont apparus, dont deux qui auraient pu faire repartir la cible sans l'accord de l'opérateur. Aucun n'était visible à la simple relecture du code.

Mise au point

Quatre problèmes, quatre solutions

Aucun de ces défauts n'était visible sur le papier. Ils sont tous apparus au banc ou sur le terrain, et chacun a laissé une règle écrite dans la documentation.

Commande moteur

Un moteur qui refusait de démarrer

Une tension variait bien en sortie du DAC, mais le moteur restait inerte, alors qu'il tournait avec la poignée d'origine. Au repos, le firmware envoyait 0 V : une valeur hors de la plage utile du variateur (0,8 à 3,6 V, confirmée par le SAV du fabricant), qui se verrouillait. Autre protection découverte : un frein serré accélérateur ouvert interdit tout redémarrage.

Correctif : DAC initialisé à 0,80 V avant toute autre instruction, signal plafonné à 3,50 V, et une machine à états non bloquante (arrêt, coupure, freinage, réarmement, marche) qui ne commute la marche arrière que moteur immobile.

Liaison radio

Une tension correcte ne prouve pas une connexion

Les modules LoRa SPI ont laissé place à des modules EBYTE E32 en liaison série, avec un protocole maître/esclave adapté à une radio half-duplex : quatre types de trames avec somme de contrôle, réponse 50 ms après réception, aller-retour mesuré à 152 ms. À 40 m, la marge de liaison reste d'environ 95 dB.

La leçon est venue de deux pannes : un commutateur mal positionné, puis un fil coupé. Dans les deux cas, toutes les tensions paraissaient normales. Seule la comparaison des deux extrémités d'un même fil prouve la conduction : la méthode est désormais écrite.

Capteurs

Des fins de course qu'il ne faut pas rater

À pleine vitesse, la came n'appuie sur un capteur que quelques millisecondes, alors que la boucle principale peut rester aveugle une vingtaine de millisecondes (écran, radio). Les capteurs sont donc lus par une interruption Timer2 à 2 kHz, indépendante de la boucle, avec confirmation sur deux échantillons : une impulsion d'1 ms est toujours vue, un parasite isolé est rejeté.

Les essais près du moteur ont révélé de fausses détections qu'un seul parasite suffisait à transformer en arrêt réel. La solution retenue est logicielle : un filtre temporisé confirme chaque détection avant de la prendre en compte. Pour l'installation définitive, les câbles des fins de course ont été passés sous gaine.

Interface

Un écran lisible en plein soleil

L'écran montre le rail vu de dessus, la position de la cible, les zones de ralentissement et de butée, et l'état réel des capteurs et des relais. Le thème clair est imposé par l'usage : sous un soleil direct, un fond sombre devient illisible. Aucun texte n'est plus clair qu'un gris foncé, et les couleurs d'état sont assombries.

Seule la zone qui change est redessinée (≈ 26 Ko au lieu de 277 Ko par image), et un chien de garde de 8 s redémarre l'affichage en cas de gel, ce qui coupe la radio et arrête donc le moteur.

Chronologie

Trois versions pour trouver la bonne architecture

Version 1

Premier prototype

Arduino Mega · LoRa SX1276 · 4 écrans OLED

Télécommande à boutons physiques et potentiomètre, quatre petits écrans OLED multiplexés en I²C pour visualiser le rail et la cible. Première liaison radio validée sur le terrain.

Juin – juillet 2026

Version 2 : écran tactile et nouvelle radio

ESP32-S3 · écran 7 pouces · EBYTE E32

Télécommande remplacée par un écran tactile 1024×600 sous LVGL, dans un boîtier imprimé en 3D et alimenté par une batterie d'outillage 14,4 V. Migration des modules radio SPI vers des modules série et recâblage complet des deux unités.

  • Gel de l'écran résolu : mémoire graphique saturée à 93 % au repos, pool porté à 128 Ko.
  • Interface différentielle : un élément n'est redessiné que si son état a changé.
31 juillet 2026

Version 3 : le contrôleur devient le cerveau

Architecture · protocole étendu

Paramètres, cycles, rampes et sécurités déplacés sur le contrôleur. Protocole à quatre trames avec somme de contrôle, journal d'événements côté télécommande, simulation aux leviers de tous les cas de fin de course.

Août 2026

Premiers essais moteur

Vevor ZWK4835 · DAC MCP4725

Diagnostic du moteur qui ne démarrait pas, échange avec le SAV du fabricant sur les plages de signal, réécriture de la commande moteur en machine à états non bloquante.

Septembre 2026 Terminé

Essais au chariot et fin du projet

Mise au point sur site

Programmes simplifiés après les premiers essais : P1 à vitesse constante réglable par gamme, P2 en accélération et P3 en décélération à profils fixes. Gamme lente imposée en zone de ralentissement, lecture des fins de course par interruption avec un filtre logiciel temporisé. Câbles des fins de course passés sous gaine et installation terminée en septembre 2026.

Galerie

La machine en images