IllustraBot2
Il revient et il a plus de dents !!
Présentation
Un an après IllustraBot, les Bell Labs relancent une expérimentation 4G. Il est temps de le faire évoluer !
Cette fois, l'idée générale est de commander un bras robotisé à l'aide des mouvements d'un téléphone.
Architecture
Matériel
- un bras robotisé : don du Lycée Le Dantec
- une beagleboard / clef+sim 4G : don des Bell Labs
- 6 drivers moteur pas à pas : (au moins 2) à acheter
- un smartphone 4G : don Alcatel-Lucent
TODO Bras
- reverser la carte de détection : claude, nico
- tester les moteurs :jerome
- designer carte de connexion : jerome
- regarder IO beaglebone black : ??
- mettre au propre le schéma robot : claude, OK
- commande de 2+ drivers moteurs
- classeur de documentation : jerome
- taper alu: cedric
Logiciel
Commande du bras
3 axes de commande avec le gyroscope :
Exemples :
- avec un nunchuk (coupez le son)
TODO
- Cedric: [ANDROID] repartir du projet Illustrabot 1er du nom, et intégrer la détection des capteurs gyro avec conversion en gcode ( commande Gcode à définir avec l'équipe beagleboard)
- préparer forge logicielle : jerome, OK
- définir protocole de communication
- Étudier une solution basée sur LinuxCNC : FX
Code source
- dépôt github
kernel 3.8.x
Les pins des connecteurs P8 et P9 peuvent avoir plusieurs fonctions : on parle de mode. Cela est configuré via un mux.
Avec les kernel 3.8.x la configuration de ce mux a drastiquement changé (pour unifier tous les arm). Il faut maintenant utiliser des Device Tree Overlay (dto).
Quelques liens très utiles :
- exemple de configuration du mux
- post de forum d'un mec qui suit le cheminement
- recherche qui permet de trouver l'adresse du registre
- chez adafruit très bien fait comme d'hab
Le package debian device-tree-compiler n'est pas bon voir ici
wget -c https://raw.github.com/RobertCNelson/tools/master/pkgs/dtc.sh chmod +x dtc.sh ./dtc.sh
Voici un petit aide mémoire des commandes à passer pour appliquer un device tree overlay :
export SLOTS=/sys/devices/bone_capemgr.9/slots export PINS=/sys/kernel/debug/pinctrl/44e10800.pinmux/pins export PINMUX=/sys/kernel/debug/pinctrl/44e10800.pinmux/pinmux-pins dtc -O dtb -o motor_test-1-00A0.dtbo -b 0 -@ motor_test-1.dts # compiler le fichier source cp motor_test-1-00A0.dtbo /lib/firmware/ # copier vers le répertoire de firmware echo motor_test-1 > $SLOTS # appliquer l'overlay cat $SLOTS # vérifier son application ... 8: ff:P-O-L Override Board Name,00A0,Override Manuf,motor_test-1 egrep "830|834" $PINS # vérifier le mode des pins pin 12 (44e10830) 00000007 pinctrl-single pin 13 (44e10834) 00000007 pinctrl-single egrep "830|834" $PINMUX # vérifier la réservation des pins pin 12 (44e10830): helper.15 (GPIO UNCLAIMED) function pinmux_motor group pinmux_motor pin 13 (44e10834): helper.15 (GPIO UNCLAIMED) function pinmux_motor group pinmux_motor echo -8 > $SLOTS # remove overlay
Évolutions possibles
- Docteur maboule ?
- construction 3D -> maison pour les enfants : comme ça
Bilbiographie / documentation
- Dossiers de TP sur BobbyLeRobot
- Commande du bras avec un TO7/70 :)
- Documentation obtenue par ingénierie inversée
- Bras & moteurs
- carte de détection
- Hardware
- BeagleBone Black
- EasyDriver
- datasheets & co sur le github
- How-To's
- Tutorial vidéo BB+EasyDriver+stepper motor (code source)
Photos
Participants
Non exhaustif :
- Jérôme
- Claude
- Fx
- David
- Cédric
- Julien
- Nicolas