Projet #1 : Robot

IMG_3333

Aujourd’hui, j’ai complété mon premier Robot 100% fait-maison. Il s’agit d’un 4-roues-motrices (on ne se refuse rien !) contrôlé par une manette de jeu XBox360. Alors, voilà, je le partage pour que vous puissiez vous amuser à en faire un autre, différent.  J’ai appris énormément à réaliser ce robot et cela m’a donné confiance pour la suite…mais, soyez patients, il vous faudra au mieux quelques semaines pour le réaliser.


Cé-Koa-Don

Un robot dont vous pouvez voir la vidéo dans la section Video sur ce blog . Il vous faudra le matériel décrit plus bas.  J’ai acheté le tout en ligne sur aliexpress et adafruit. Bon, ca m’a pris des plombes pour acheter tout ca, trouver le bon vocabulaire en anglais pour la visserie (la premiere version ètait bien plus complexe et lourde que celle présentée ici), vérifier une certaine conformité aux normes internationales ROHS, CE (quand même).


 Ké Sa Fé

Tourner en rond, encore et encore …Clockwise et CounterClockWise, mais surtout répondre à la commande de mon contrôleur XBox360 (la manette quoi !), et moi j’aime ÇA quand on respecte les consignes. Et avec la batterie que je lui ai mis aux fesses, il peut tourner en rond longtemps longtemps…


Ko-Men-Sé-Fé

Ben, faut du hard, du soft et des outils…

Hardware

  • Raspberry Pi 2 Indeed
  • Batterie 12 V
  •  Step-Down DC Converter (pour faire du 5V  à partir du 12V)
  • 4 moteurs Brushless DC + support en L (bracket)
  • 4 roues
  • 1 PCB
  • 2 L293NE
  • Manette de Jeu XBOX360 (alternative ici :Raspberry Pi Compatible USB Gamepad)
  • Récepteur pour la manette (portée environ 10m)
  • Terminal Blocks , Jack connectors
  • Cables GPIO
  • Vis (le + dur à trouver I am afraid…)
  • Chassis en Aluminium

Software

  • NOOBS installé (voir procédure décrite sur ce site)
  • WiringPi2  Library (1 is for C , 2 is for Python)
  • XboxController Library (Python only)
  • Mon Code Python avec mon algo super complexe pour que le robot puisse plus ou moins tourner en fonction de la position du Joystick. Après des années de recherches freinées sur la toile de jute je n’ai rien trouvé de semblable, je dois être le SEUL in the entire WORLD à avoir fait ça . Allez, je m’applaudis moi-même !

Outils logiciels

  • Terminal de MacOS X El Captain: pour communiquer SSH avec mon RPI.
  • Cyberduck ou FileZilla : que J’utilise aussi sur mon Mac  pour télécharger les fichiers depuis/vers les RPI.
  • SublimeText : que j’utilise aussi pour éditer les fichiers Python. J’ai écrit tout le code sur mon Mac. J’aime bien la simplicité du logiciel, mais j’ai eu des problèmes d’indentation ensuite dans le  RPI. Les tabulations de SublimeText ne sont pas toujours pas reconnues . A chaque fois que j’ai eu ce problème, j’ai du rééditer le fichier depuis le terminal en utilisant la commande nano.

Tout ce que vous devez savoir (section en cours..)

  • Gérer les entrés-sorties

Il existe une librarie installée par défaut sur le RPi nommé GPIO. Elle fonctionne très bien mais j’ai choisi une autre librairie WiringPi qui m’est apparue plus facile à exploiter (et aussi plus pro, mais cela reste très subjectif).  La librairie WiringPi est écrite en C et la version WiringPi2 permet d’appeler cette librairie depuis le language Python.

Pour installer la librairie, allez voir ici .

  • Controle de la manette XB360

Il vous bien sur la manette mais aussi le récepteur que vous pouvez acheter en ligne. Il vous faut installer la librairie ici.

  • Cablage

roXbox LT Fritz

Amusez vous !

 

Imprévu !

Lors du démarrage de mon robot, un des moteurs se mettait á tourner sans fin.  Des que j’exécutais mon programme dromadaire.py, le moteur s’arrêtait de tourner. il s agissait en fait d’un problème de patte en l’air ! La Pin  Enable des L293N était en l’air au démarrage car elle était reliée à une pin GPIO du RPI. J’ai donc placé une résistance de pull-down (1 Kohm) et ca marche super bien. Par contre, la tension est un peu faible (3.5V) , j’aurais sans doute du utiliser une resistance un peu plus forte mais tout fonctionne bien.

Publicités