MagPI 3 Page 14

De Le French MagPi
Aller à : Navigation, rechercher

Skutter (je ne trouve pas de traduction) : 2ème partie Comment écrire un programme pour vos périphériques USB par Bodge N Hackitt

Télécharger et compiler les librairies Python PyUSB

Pour pouvoir contrôler vos périphériques USB, vous aurez besoin des librairies Python USB. Les librairies PyUSB ont été écrites en collaboration par une équipe de bénévoles "open-source". Pour les télécharger, ouvrir le navigateur web midori et aller sur : http://goo.gl/N9L4e Vous pourrez sauvegarder pyusb-1.0.0-a1.tar.gz dans le dossier Downloads. Taper : cd Downloads (SF COMMENTAIRE : CE SERAIT BIEN DE DIRE DE TAPER CA DANS UN TERMINAL...) Développer ensuite le fichier tarball compressé : tar xvf pyusb-1.0.0-a1.tar.gz Lister les fichiers et répertoires en tapant 'ls' (vous devriez voir un nouveau répertoire "pyusb-1.0.0-a1") Changer de répertoire en tapant : cd pyusb-1.0.0-a1 (taper 'ls' pour voir tout le contenu du dossier) Taper "sudo python setup.py install" Vous pouvez maintenant commencer à écrire votre programme pour controler votre périphérique USB.

Ecrire le programme Python

Taper se code dans geany et sauver le comme 'bras.py' :

  1. CONTROLE DU BRAS DU ROBOT
  2. importer les librairies USB et Time dans Python

import usb.core, usb.util, time

  1. Alloué le nom 'RoboBras' au périphérique USB

RoboBras = usb.core.find(idVendor=0x1267, idProduct=0x0000)

  1. Vérifier si le bras est détecté et prévenir si non

if RoboBras is None: raise ValueError("Bras non trouvé")

  1. Créer une variable pour la durée

Duree=1

  1. Définir une procédure pour exécuter chaque mouvement

def BougeBras(Duree, CmdBras): # Commencer le mouvement RoboBras.ctrl_transfer(0x40,6,0x100,0,CmdBras,1000) # Stopper le mouvement après une attente défini dans durée time.sleep(Duree) CmdBras=[0,0,0] RoboBras.ctrl_transfer(0x40,6,0x100,0,CmdBras,1000)

  1. Envoyer au bras quelques commandes

BougeBras(1,[0,1,0]) # Tourne la base anti-horaire BougeBras(1,[0,2,0]) # Tourne la base sens horaire BougeBras(1,[64,0,0]) # Epaule haute BougeBras(1,[128,0,0]) # Epaule basse BougeBras(1,[16,0,0]) # Coude haut BougeBras(1,[32,0,0]) # Coude bas BougeBras(1,[4,0,0]) # Poignet haut BougeBras(1,[8,0,0]) # Poignet bas BougeBras(1,[2,0,0]) # Main Ouverte BougeBras(1,[1,0,0]) # Main Fermée BougeBras(1,[0,0,1]) # Lumière allumée BougeBras(1,[0,0,0]) # Lumière éteinte

Pour essayer ce code taper en ligne de commande : sudo python bras.py (sudo est nécessaire car l'USB a besoin de l'accès root) Faites de la place autour du robot AVANT de tester.

Vous noterez que CmdBras a 3 valeurs :

La première contrôle le moteur pour la main, le poignet, le coude et l'épaule La seconde sert à tourner la base. Valeurs possibles : 0 (pas de rotation) 1 (anti-horaire) 2 (horaire) La troisième contrôle la lumière au bout du bras. Valeurs possibles : 0 (Off) 1 (On)

Pour la première valeur, vous pouvez combiner les mouvements en ajoutant les commandes ensembles. Par exemple [32,0,0] + [8,0,0] = [40,0,0]. Cela devrait baisser le coude et le poignet en même temps. Bien sûr, certaines combinaisons ne fonctionnent pas comme faire aller le moteur dans 2 directions différentes.

Par exemple, essayer BougeBras(1,[144,1,0]) et BougeBras(1,[96,2,0])

Les valeurs idVendor (0x1267) et idProduct(0x0000) sont obtenues en tapant en ligne de commande : sudo lsusb -v (Cela donne la liste détaillée de tous les périphériques USB connectés au Pi)

Les valeurs pour '.ctrl_transfer' (0x40,6,0x100,0) sont obtenues en sniffant l'interface USB du périphérique avec des softs comme 'Snoopypro' sous Windows. Ces nombres hexadécimaux représentent le 'protocole USB' du robot. C'est comme si c'était le langage que comprend le contrôleur de la carte du robot.

La valeur 1000 à la fin de .ctrl_transfer est un seuil de temps pour envoyer la commande au périphérique USB

C'est le strict minimum pour commencer à programmer le bras. Si vous souhaitez aller plus loin et finalement pouvoir faire beaucoup plus, j'ai ajouté quelques informations supplémentaires sur le fonctionnement des périphériques USB comme le robot pour vous aider à commencer.

Outils personnels
Espaces de noms

Variantes
Actions
Navigation
Boîte à outils