Ok

En poursuivant votre navigation sur ce site, vous acceptez l'utilisation de cookies. Ces derniers assurent le bon fonctionnement de nos services. En savoir plus.

« Capsules sur les essais unitaires | Page d'accueil | OSCON 2013 - jour 1 »

14 janvier 2013

Créer un odomètre d’entrainement RPi

Création d'un odomètre avec un Raspberry Pi

Brûler l'image de Debian avec Win32Imager en mode « administrateur »

Configurer le raspberry pi

Étendre la partition

Changer le pwd pi/pi

Configurer la langue du clavier et le locale

Configurer split mémoire 256/256 (au cas ou on voudrait avoir environnement graphique)

Et autre options que j'aurais oublié ici

Faire l'update

Se logger in et faire ifconfig pour connaitre l'adresse IP (192.168.1.108)

Quitter le RPi via exit


 

A partir d'ici on fonctionne en mode SSH avec putty sur windows

Se logger in en SSH avec l'utilisateur pi

login as: pi

pi@192.168.1.108's password:

Linux raspberrypi 3.2.27+ #250 PREEMPT Thu Oct 18 19:03:02 BST 2012 armv6l


 

The programs included with the Debian GNU/Linux system are free software;

the exact distribution terms for each program are described in the

individual files in /usr/share/doc/*/copyright.


 

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent

permitted by applicable law.

Last login: Fri Jan 4 11:28:09 2013

pi@raspberrypi ~ $


 

On va avoir besoin des librairies python pour accéder au GPIO. On download avec wget comme suit (ou apt-get)

Allez d'abord sur la page http://pypi.python.org/pypi/RPi.GPIO et copier l'adresse du fichier a downloader (le tar file)

pi@raspberrypi ~ $ wget http://pypi.python.org/packages/source/R/RPi.GPIO/RPi.GPIO-0.4.1a.tar.gz

--2013-01-04 11:57:34-- http://pypi.python.org/packages/source/R/RPi.GPIO/RPi.GPIO-0.4.1a.tar.gz

Résolution de pypi.python.org (pypi.python.org)... 140.211.10.73

Connexion vers pypi.python.org (pypi.python.org)|140.211.10.73|:80...connecté.

requête HTTP transmise, en attente de la réponse...200 OK

Longueur: 15287 (15K) [application/octet-stream]

Sauvegarde en : «RPi.GPIO-0.4.1a.tar.gz»


 

100%[======================================>] 15287 --.-K/s ds 0,09s


 

2013-01-04 11:57:34 (162 KB/s) - «RPi.GPIO-0.4.1a.tar.gz» sauvegardé [15287/15287]


 

pi@raspberrypi ~ $ ls

Desktop python_games RPi.GPIO-0.4.1a.tar.gz

pi@raspberrypi ~ $


 

unzip et untar le fichier

pi@raspberrypi ~ $ ls

] Desktop python_games RPi.GPIO-0.4.1a.tar.gz

pi@raspberrypi ~ $ gunzip RPi.GPIO-0.4.1a.tar.gz

pi@raspberrypi ~ $ tar -xvf RPi.GPIO-0.4.1a.tar

RPi.GPIO-0.4.1a/

RPi.GPIO-0.4.1a/distribute_setup.py

RPi.GPIO-0.4.1a/INSTALL.txt

RPi.GPIO-0.4.1a/setup.cfg

RPi.GPIO-0.4.1a/setup.py

RPi.GPIO-0.4.1a/PKG-INFO

RPi.GPIO-0.4.1a/README.txt

RPi.GPIO-0.4.1a/RPi.GPIO.egg-info/

RPi.GPIO-0.4.1a/RPi.GPIO.egg-info/top_level.txt

RPi.GPIO-0.4.1a/RPi.GPIO.egg-info/PKG-INFO

RPi.GPIO-0.4.1a/RPi.GPIO.egg-info/SOURCES.txt

RPi.GPIO-0.4.1a/RPi.GPIO.egg-info/dependency_links.txt

RPi.GPIO-0.4.1a/RPi/

RPi.GPIO-0.4.1a/RPi/__init__.py

RPi.GPIO-0.4.1a/LICENCE.txt

RPi.GPIO-0.4.1a/.hg/

RPi.GPIO-0.4.1a/.hg/last-message.txt

RPi.GPIO-0.4.1a/MANIFEST.in

RPi.GPIO-0.4.1a/source/

RPi.GPIO-0.4.1a/source/cpuinfo.h

RPi.GPIO-0.4.1a/source/cpuinfo.c

RPi.GPIO-0.4.1a/source/c_gpio.c

RPi.GPIO-0.4.1a/source/c_gpio.h

RPi.GPIO-0.4.1a/source/py_gpio.c

RPi.GPIO-0.4.1a/test/

RPi.GPIO-0.4.1a/test/test.py

RPi.GPIO-0.4.1a/CHANGELOG.txt

pi@raspberrypi ~ $


 

On un nouveau répertoire RPi.GPIO-0.4.1a

pi@raspberrypi ~ $ ls

] Desktop python_games RPi.GPIO-0.4.1a RPi.GPIO-0.4.1a.tar


 

Il faut aller dans ce répertoire et exécuter le script d'installation

pi@raspberrypi ~ $ cd RPi.GPIO-0.4.1a/

pi@raspberrypi ~/RPi.GPIO-0.4.1a $ sudo python setup.py install

Downloading http://pypi.python.org/packages/source/d/distribute/distribute-0.6.27.tar.gz

Extracting in /tmp/tmp0LCim0

Now working in /tmp/tmp0LCim0/distribute-0.6.27

Building a Distribute egg in /home/pi/RPi.GPIO-0.4.1a

/home/pi/RPi.GPIO-0.4.1a/distribute-0.6.27-py2.7.egg

running install

Checking .pth file support in /usr/local/lib/python2.7/dist-packages/

/usr/bin/python -E -c pass

TEST PASSED: /usr/local/lib/python2.7/dist-packages/ appears to support .pth files

running bdist_egg

running egg_info

writing RPi.GPIO.egg-info/PKG-INFO

writing top-level names to RPi.GPIO.egg-info/top_level.txt

writing dependency_links to RPi.GPIO.egg-info/dependency_links.txt

reading manifest file 'RPi.GPIO.egg-info/SOURCES.txt'

reading manifest template 'MANIFEST.in'

writing manifest file 'RPi.GPIO.egg-info/SOURCES.txt'

installing library code to build/bdist.linux-armv6l/egg

running install_lib

running build_py

creating build

creating build/lib.linux-armv6l-2.7

creating build/lib.linux-armv6l-2.7/RPi

copying RPi/__init__.py -> build/lib.linux-armv6l-2.7/RPi

running build_ext

building 'RPi.GPIO' extension

creating build/temp.linux-armv6l-2.7

creating build/temp.linux-armv6l-2.7/source

gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/python2.7 -c source/py_gpio.c -o build/temp.linux-armv6l-2.7/source/py_gpio.o

source/py_gpio.c:23:20: fatal error: Python.h: Aucun fichier ou dossier de ce type

compilation terminated.

error: command 'gcc' failed with exit status 1

pi@raspberrypi ~/RPi.GPIO-0.4.1a $


 

On remonte dans notre répertoire /home/pi

pi@raspberrypi ~/RPi.GPIO-0.4.1a $ cd ..

pi@raspberrypi ~ $


 

Créons le programme pour le speedometer en créant le fichier speed.py

nano speed.py


 

Écrire le programme suivant :

#!/usr/bin/python

import time

import RPi.GPIO as GPIO


 

GPIO.setmode(GPIO.BOARD)


 

lastState = False

lastTime = time.time()

currTime = lastTime

cumulDist = 0


 

GPIO.setup(11,GPIO.IN)

GPIO.setup(12,GPIO.OUT)


 

while True:

currState = GPIO.input(11)

#print currState

if currState and not lastState :

#if we pass from low to high

currTime = time.time()

dt = currTime-lastTime

currSpeed = 7.6104/dt

#2.114m de circonference * 3600s/h / 1000 m/km

cumulDist += 2.114

print "Distance,", cumulDist/1000, ",km, Current speed ," ,currSpeed, ",Time,", time.time()

# print dt

GPIO.output(12,False)

time.sleep(0.001)

GPIO.output(12,True)

else :

# print "."

GPIO.output(12,True)

lastState = currState

lastTime = currTime

time.sleep(0.001)


 

Rendre le programme directement exécutable en faisant :

chmod +x speed.py

Rouler directement avec

sudo ./speed.py    


 

Ou, pour créer un fichier

sudo ./speed.py > out.dat


 

Montage électronique (diagramme avec http://www.digikey.com/schemeit )



 

Montage électro mécanique


Avec Filezilla en mode ssh sur le port 22, télécharger le fichier sur Windows et importer dans Excel pour faire le graphique de la vitesse par exemple.



 


 

18:45 | Lien permanent | Commentaires (1)

Commentaires

Avoir un blog toujours à jour est très important pour conserver le contact avec ces internautes, tout à l'instar des commentaires c'est pour ça que on vous laisse ce commentaire pour vous encourager.

Écrit par : match france coupe du monde | 14 juin 2014