Un module python pour ateliers raspberrypi
Les ateliers, et aussi les tutoriels de ce blog, sont faits pour apprendre l’électronique et le langage de programmation Python. Les techniques Python enseignées ici, peuvent être appliquées a une grande variété de problèmes.
Et donc, ca serait drolement bien si on pouvait rouler le meme code qui est fait pour le raspberry pi, sur un portable? J'ai donc décidé de m'attaquer au probleme.
L'imposteur
J'ai donc ecris un module RPi.GPIO de remplacement pour essayer le code pour Raspberry Pi qui inclus des access aux GPIO sur des plateformes autres que le Raspberry Pi. C'est-a-dire, votre portable.Votre portable aura une personnalité multiple |
Comment?
C'est un module Python (en fait, un package RPi qui inclus un module GPIO) avec une implémentation des fonctions setmode(), setup(), cleanup(), input(), output(), prends en charge les 54 GPIO (états et directions), modes broadcom et board, fonctions vides pour les 4 set_*_event() - peut etre dans le futur j'y ajouterai la logique, et un peu de vitriol. Non, pas ca! Et un peu de logique pour les erreurs (genre, essayer d'acceder a un GPIO avant de l'assigner). Il y a meme un mode de débogage (gpio.debug = True).Tout cela devrait etre suffisant pour rouler sur un portable du code Python fait pour le Raspberry Pi. Seul hic, pas moyen dans l’immédiat de simuler le changement d’état d'une entrée (simuler un bouton, par exemple).
On se le procure
Chez Mr. Bitbucket (bitbucket.org/fdion)Pour cela il faut d'abord avoir l'outil Mercurial:
Sous un Linux de type debian
$ sudo apt-get install mercurial
Sous fedora
$ sudo yum install mercurial
Sous solaris / openindiana, c'est disponible par packagemanager.
Pour windows ou mac c'est ici: http://mercurial.selenic.com/
A noter que sous windows on peut aussi se procurer TortoiseHg qui ajoute un menu Mercurial (hg) quand on clique le bouton droit sur un repertoire, dans file manager: tortoisehg.bitbucket.org
Une fois que l'on a installé mercurial:
$ hg clone https://bitbucket.org/fdion/fablocker
On se retrouve avec les ateliers PyHack. RPi.GPIO l'imposteur fait partie du deuxième atelier.
C'est sous le répertoire fablocker/PyHack/workshop02
Il y a un fichier test.py qui importe RPi.GPIO. Comme il y a un répertoire du nom de RPi et a l’intérieur, un fichier python GPIO.py, test.py va importer ce GPIO plutôt que le module système. Pour en faire l'essai, on fait:
python test.py
(RPi.GPIO l'imposteur n'a pas besoin de sudo, ce qui n'est pas le cas du module système). Sur un vrai Raspberry Pi, dans tout autre répertoire l'imposteur ne sera pas trouvé. Mais dans workshop02, si on veux rouler test.py sur les GPIO du Pi, il suffit de renommer le répertoire RPi, et ainsi Python ne le trouvera pas.
Mise a jour
Si vous avez déjà un clone du projet Fablocker, pour faire la mise a jour, il suffit de faire (sous Windows utiliser le hg workshop ou bien la ligne de commande):
pi@raspberrypi ~/bitbucket $cd fablocker
pi@raspberrypi ~/bitbucket/fablocker $ hg pull http://bitbucket.org/fdion/fablocker real URL is https://bitbucket.org/fdion/fablocker pulling from http://bitbucket.org/fdion/fablocker searching for changes adding changesets adding manifests adding file changes added 2 changesets with 5 changes to 5 files (run 'hg update' to get a working copy) pi@raspberrypi ~/bitbucket/fablocker $ hg update 5 files updated, 0 files merged, 0 files removed, 0 files unresolved pi@raspberrypi ~/bitbucket/fablocker $
No comments:
Post a Comment