IllustraBot2

De Kernel Fablab Lannion
20140106 125232.jpg

Il revient et il a plus de dents !!

Présentation

Concept.svg

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

Archi.png

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

  • commande drivers : Urgent => Jerome, cedric
  • classeur de documentation : jerome
  • taper alu: cedric


ETAT MOTEURS

  • etat des moteurs ( numéro en fonction connectique - connectique à 4 fils pour tous les moteurs )
    • moteur 1 : axe vertical - OK
    • moteur 2 : épaule : 8 fils couplage en 2x2 - défectueux ?
    • moteur 3 : coude : 8 fils couplage en 2x2 - OK
    • moteur 4 : rotation main gauche - OK
    • moteur 5 : rotation main droit - OK
    • moteur 6 : fermeture main - OK
    • NB : attention les moteurs de la pince 5-6 et 4-6 doivent fonctionner ensemble pour garder l'ouverture constante....

TODO

  • test moteur 2 : bobines semble OK - hypothèse courant insuffisant avec utilisation easy driver.
    • on dispose 2 moteurs supplémentaire identique (à tester). Pour un démontage éventuel, il y aura un écrou qui est inaccessible ( derrière poulie )

CARTE DETECTION

la carte fonctionne parfaitement. préparation connectique en cours.

  • schéma sur github
  • adaptation 5V => 3.3V:
    • proposition avec transistor NPN + led. Permettra d'avoir un visuelle et correspondance sur GPIO.

NB: inversion fils rouge(+5V) / noir (GND) fait

CARTE DE CONNECTION

la carte aura le cahier des charges suivant :

  • connectique pour l'emplacement beagle bone
  • 6 drivers popolu A4988 ( TBC) avec connectiques externes
  • 6 entrées avec adaptation 5V->3.3V
  • 3 à 4 alimentations ( 5V/3.3 V/ 12 volts ou plus)
    • prévoir capacité autour du 5V
    • prévoir capacité autour du 3.3V des transistors de l'adaptation
    • prévoir capacités en amont de chaque alimentation autour drivers ( VDD et VMOT )

TODO

  • schema action : nico
  • liste composant : nico, claude, jerome
  • voir carte controle moteur de la fraisseuse CNC
  • regarder IO beaglebone => nico, claude, jérome
  • question:
    • le 3.3V peut-il provenir de la beaglebone ? => action: nico, claude
      • si oui, quel amperage ? besoin X mA = 60 mA (led) + 6 x driver
    • il faudra peut être prévoir 2 sources d'alimentation séparer pour alimenter des moteurs en 12 volts et certains et 18 volts ( par exemple )

Logiciel

Commande du bras

3 axes de commande avec le gyroscope :

Exemples :

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 : Jérôme, en cours IllustraBot2:protocole
  • Étudier une solution basée sur LinuxCNC : FX

Code source

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 :

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

Médias

Vidéos

Photos

Participants

Non exhaustif :

  • Jérôme
  • Claude
  • Fx
  • David
  • Cédric
  • Julien
  • Nicolas
  • Raoul