Projets

Robot autonome SparkFun

Créé par

Publié le

19 décembre 2019

Modifié le

19 décembre 2019

AutreNiveau facileCréation individuelle
L'ensemble des accessoires SparkFun

 

 

Je suis bibliothécaire à la Grande Bibliothèque et je travaille au Square depuis plus d’un an, mais puisque j’ai principalement des tâches administratives, j’ai rarement le temps de me lancer dans des projets de création. 

Avec l’arrivée des fêtes, j’avais un peu plus de temps, alors j’ai décidé de m’initier à l’électronique, plus précisément à Arduino. Mes collègues du Square m’ont fortement recommandé la trousse d’électronique Sparkfun. C’est une excellente introduction pour les débutants comme moi, dont le dernier cours d’électricité date du secondaire. J’ai toutefois une bonne base en code, ce qui m’a été très utile lors de ce projet.

 

Bref, je souhaite vous présenter mon expérience avec cette trousse. Principalement à travers le dernier projet proposé par le guide, soit l’assemblage d’un robot autonome. C’est à dire, un robot qui navigue de façon autonome en évitant sans aucune intervention humaine des obstacles. 

Processus de création

 

Exemple d'un projet Sparkfun tiré du guide

 

La trousse Sparkfun vient avec un livret d’instructions pour différents projets préprogrammés. Pour avoir un projet fonctionnel, il suffit de copier le schéma du livret d’instruction en branchant les fils ainsi que les accessoires aux bons endroits. Par la suite, il suffit de brancher le microcontrôleur sur son ordinateur et d’y transférer le code. Et voilà!

 

Le vrai défi du SparkFun est de comprendre comment fonctionne exactement un projet. Encore une fois, la trousse est très bien faite, puisque chaque projet est accompagné d’éléments théoriques qui nous permettent d’acquérir des bases en électronique ainsi qu’en programmation. Une fois le projet « vanille » réalisé, je pouvais le pousser plus loin en y ajoutant de nouveaux accessoires et en modifiant le code. S’approprier le projet est vraiment la meilleure façon de comprendre comment fonctionnement les différents projets proposés par SparkFun.

 

 

Le schéma du robot autonome

 

 

 

 

J’ai donc commencé à assembler mon robot en respectant à la lettre le schéma de SparkFun (image gauche). 

 

Ce n’était vraiment pas compliqué puisque j’avais déjà réalisé 9 autres projets avec cette trousse avant de m’attaquer au robot autonome. Après avoir assemblé le robot selon les paramètres du schéma, j’ai réalisé qu’il n’était pas capable de reculer. Je me suis donc lancé dans une petite épopée de « débogage ».

 

 

 

J’ai d’abord testé le hardware:

  1. Est-ce que les fils sont tous branchés aux bons endroits? J’ai tout rebranché et tout semble en ordre.
  2. Est-ce les roues peuvent rouler dans les deux sens? J’ai inversé la polarité des files et elles peuvent bel et bien reculer.
  3. Est-ce que les piles sont assez chargées? J’ai changé les piles et j’ai le même résultat.
  4. Etc…

 

Tout semblait fonctionnel, alors je me suis lancé dans le code (software):

  1. Est-ce qu’il y a des erreurs dans la fonction reculer? Je ne vois pas de problème, le code semble identique à la fonction avancer.
  2. Est-ce que je suis capable de faire reculer la roue en modifiant le code ? Oui, mais elle n’avance plus.
  3. Est-ce que le détecteur de distance fonctionne correctement ? La console d’Arduino m’indique que les distances captées par le détecteur semblent justes.
  4. Etc…

 

Finalement, j’ai réalisé qu’il y avait une erreur dans le schéma SparkFun. Les branchements recommandés pour relier les roues du robot au microcontrôleur étaient erronnés. J’ai fait cette découverte en analysant les premières lignes de code de l’algorithme. 

Lorsqu’on travaille avec Arduino, les premières lignes de code servent à attribuer les différents ports à des variables qui seront appelées à plusieurs reprises à l’intérieur de l’algorithme. 

Exemple de code. On y voit l'assignation des variables aux différents ports du microcontrôleur

 

C’était un problème très anodin quand on prend la peine d’y penser. Mais le code est un outil très capricieux, alors il est nécessaire de prendre le temps de faire plusieurs vérifications afin de s’assurer que tout est en ordre. Ça évite de se lancer dans une entreprise de débogage qui peut prendre plusieurs heures. 

 

Une fois le robot fonctionnel, j’ai décidé d’ajouter quelques accessoires en plus pour m’amuser un peu. J’y ai connecté un mini haut-parleur afin que le robot fasse un son un peu « gossant » lorsqu’il recule. J’ai aussi augmenté sa vitesse à reculons afin qu’il évite plus rapidement les obstacles et réduire sa vitesse de face puisqu’il avait tendance à perdre le contrôle sur du tapis (qui est omniprésent à la Grande Bibliothèque). C’était des ajouts faciles. J’ai tout simplement copié-collé des lignes de code des anciens projets et je les insérer dans mon algorithme actuel. Le défi était de les insérer les lignes de code aux bons endroits afin que mes accessoires s’activent aux moments souhaités.

 

En testant le robot, j’ai découvert qu’il avait tendance à tourner en rond sur la droite. J’ai tenté d’ajuster les roues, mais sans succès. J’ai donc tout simplement modifier le code afin que la roue gauche tourne 50% moins vite que la route droite. Ça l’a permit de stabiliser un peu plus le robot, qui demeurait encore instable. Mais bon, puisqu’il s’agit d’un projet d’initiation, j’ai préféré ne pas consacrer trop de temps pour corriger ce problème. La prochaine fois, je choisirai moi-même mes accessoires, ce qui me permettra d’installer des roues de meilleure qualité.

 

Ce projet m’a donné le goût d’explorer plus profondément l’univers Arduino. Je vais donc commencer à utiliser la trousse Adafruit Circuit Playground Express (aussi disponible au Square!). Il s’agit d’un outil plus poussé que le SparkFun, il comporte ses propres capteurs intégrés (température, son, mouvement et lumière). Qui plus est, il me permettra aussi de m’introduire au langage informatique Python. 

 

 

Je vous en donne des nouvelles!

Nicolas

Inscription


Ce projet n’est inscrit à aucun concours pour le moment.

Commentaires

Laisser un commentaire

Tu dois être connecté pour laisser un commentaire.