Testeur de servomoteurs bluetooth

13 novembre 2016
Testeur de servomoteurs bluetooth Cet article présente un testeur de servomoteurs évolué capable de contrôler jusqu'à 14 servomoteurs en même temps. La commande se fait sur une interface PC à travers une liaison bluetooth.

Ce système électronique peut également servir de base de travail pour prototyper un système robotique par exemple.

Le circuit électronique

Un microcontrôleur PIC18F25K22 contrôle les servomoteurs et communique avec l'interface utilisateur avec son port UART à travers un module bluetooth HC-05. Les ports non utilisés du PIC18 sont accessibles à travers des connecteurs pour avoir la possibilité d'étendre les fonctionnalités de la carte si besoin.

La carte peut être alimentée par une alimentation de 7V à 23V (un bloc secteur de 12V par exemple). Un régulateur de tension à découpage MP2307 abaisse cette tension à 6V pour alimenter les servomoteurs.
Il est également possible au moyen d'un jumper de court-circuiter le régulateur et d'alimenter directement les servomoteurs avec une tension adéquate (une batterie de 6V par exemple). Cela devient impératif si la consommation totale des servomoteurs dépasse les 3A en continu (maximum du MP2307).

Le microcontrôleur est alimenté en 5V avec un régulateur linéaire MAX603.

Le schéma électronique Le PCB
Télécharger les sources Altium Designer

Fabrication du PCB

Le PCB a été conçu sur Altium Designer et fabriqué par gravure anglaise sur une commande numérique.

Les différentes étapes de la fabrication sont illustrées ci-dessous :
L'usinage du PCB Le PCB percé et découpé Soudure des composants Le circuit terminé

Le module MP2307 est souvent vendu avec un réglage de tension de sortie de 3.3V (appellation KIS3R33S). Or les servomoteurs ont besoin d'une tension d'environ 6V.

Le module MP2307 Le réglage de la tension de sortie se fait par un pont diviseur de tension. On a Vout=0.925×(R1 + R2)/R2. Par défaut, R1 est composé de deux résistances de 51kΩ en parallèle, ce qui est équivalent à une résistance de 25.5kΩ, et R2 vaut 10kΩ.
En remplaçant R2 par une résistance de 4.7kΩ, on obtient une tension de sortie de 5.94V.

Il faut également déssouder du module la diode et le condensateur de sortie car ils sont adaptés à l'ancienne tension de 3.3V.

Le boitier

Le boitier encapsulant l'électronique est imprimé en 3D. Le haut du boitier se glisse dans la partie basse pour se refermer.

La CAO La CAO Le boitier imprimé

Les fichiers STL pour l'impression 3D peuvent être téléchargés ici.

L'interface PC

Le programme de contrôle est écrit en C++ avec le framework Qt.

L'interface PC

Le code de l'interface peut être téléchargé ici.

Le programme du microcontrôleur

Le programme du PIC18F est codé en C. Il utilise la librairie Microchip C18.

Les données de contrôle sont reçues grâce à une interruption sur le port UART. Les signaux des servomoteurs sont générés dans la boucle principale à l'aide d'un timer de période 1us.

Le code peut être téléchargé ici.

Configuration du module bluetooth HC-05

Module bluetooth HC05 Le module bluetooth HC-05 se configure avec des commandes « AT » à travers son port UART (le même que pour la communication standard).
Pour entrer en mode configuration, il faut que le module ait la pin « Key » ou « EN » (suivant les versions) connecté au 3.3V à son démarrage.
Suivant les modules, le baud rate du mode AT est de 9600 bauds ou de 38400 bauds. Si vous utilisez TeraTerm pour communiquer avec le module, il faut le configurer pour envoyer un '\n' lors de l'appuie sur <Entrée> : Setup > Terminal setup > Transmit = CR+LF .

Pour tester la connexion, la commande "AT<Entrée>" doit renvoyer le message OK. Dans le cas contraire, il peut être nécessaire de redémarrer le module. Un bouton est souvent présent à cet effet.

Une fois connecté en mode AT trois commandes permettent de configurer le module :
AT+PSWD=4141
AT+NAME=TesteurServos
AT+UART=115200,0,0
Ces commandes définissent respectivement le code pin, le nom et la configuration UART du module. La configuration UART définie ici est valable seulement pour la communication standard (la baudrate du mode de configuration AT reste identique).
Pour chaque commande, le module doit répondre OK.


Catégories