Pour programmer vous aurez besoin :
Ces étapes peuvent être complexes, dépendent de votre microcontrôleur et de votre système d’exploitation. Cet article n’a pas pour but de fournir des instructions détaillées de ces étapes.
Il faut garder à l’esprit que le Raspberry Pi Pico est une carte électronique équipée d’un microcontrôleur RP2040, et que vous programmez le RP2040. La broche 1 du RP2040 ne correspond pas à la broche 1 du Raspberry Pi Pico. Le schéma ci-dessous donne la correspondance.
D’un côté, la broche du Raspberry Pi Pico que vous pouvez retrouver en comptant les broches à partir de la broche 1 en haut à gauche. De l’autre, la broche du RP2040, le numéro que vous devez utiliser dans le code.
Teleplot est le logiciel de visualisation de données que nous allons utiliser. Il présente l’avantage de directement acquérir les données du robot (par la liaison série ou par le réseau) et les présenter sous forme de graphiques.
Notre première étape, lors de la mise en route du PAMI, sera d’obtenir une communication fonctionnelle avec Teleplot.
Nous ne rentrerons pas dans les détails du module. Il s’agit principalement d’un stockage des données à envoyer dans une chaîne de caractère puis de l’envoi de ce tampon. Ceci présente un intérêt lors d’une communication réseau, le coût fixe d’envoi étant élevé. C’est moins pertinent pour un envoi par la liaison série.
Notons que pour utiliser ce code d’exemple vous devez créer le fichier « wifi_settings.h » à partir de « wifi_settings.h.example », même si vous n’utilisez pas le Wifi ! Dans le cas où vous n’utilisez pas le wifi, vous avez une ligne à commenter dans « wifi_settings.h ».
Voir la branche « Teleplot » du dépôt.
Avoir une bonne gestion du temps est important. Ceci permet d’avoir un pas de temps fixe qui simplifie la logique ainsi que de nombreux calculs. Nous voulons une fonction qui nous renvoie le nombre de millisecondes écoulées depuis le début du programme.
Notre code se structure en 3 étapes :
Voir la branche « Temps » du dépôt.
Dans un premier temps, nous allons piloter simplement les broches de sens et celle de vitesse pour chaque moteur. Pour qu’un moteur tourne, les deux broches de sens doivent avoir des valeurs opposées et la broche de vitesse doit être à 1.
Nous rajoutons à la fin de notre programme une boucle infinie un peu spéciale pour :
Le code est disponible sur la branche Valide_cablage_moteur du dépôt.
Programmez le microcontrôleur. Si les deux moteurs tournent, vous êtes bien partis. Vérifiez quand même :
Si c’est le cas, vous pouvez sauter la partie ci-dessous.
Si l’un des moteurs ne tourne pas :
Si les moteurs n’accélèrent pas avec la pile 9 V, vérifiez la présence du 9 V au niveau de Vcc2 du L293
Comme pour les moteurs, nous allons réaliser le minimum pour tester le fonctionnement des codeurs. Les quatre broches des codeurs sont configurées en entrée et les valeurs envoyées en continu par Teleplot.
Le code est disponible sur la branche Valide_cablage_codeur du dépôt.
Si aucune des voies d’un codeur ne répond, contrôler l’alimentation du codeur. Sinon, contrôlez la continuité du signal depuis le codeur jusqu’au microcontrôleur.