1. Raspberry Pi : du moteur à l’iPhone
Ou comment diriger un ordinateur roulant
Arnaud Boudou 03/06/2013
2. 03/06/2013 www.ekito.fr 2
• Arnaud Boudou
– Développeur Java / iOS chez ekito
– Twitter : @boudouarnaud
– Web (ekito) :
http://www.ekito.fr/people?author_name=aboudou
– Web (perso) : http://goddess-gate.com/projects/fr
3. Sommaire
• Présentation du Raspberry Pi
• Un petit cours d’électronique
(non, ne partez pas déjà !)
• Du code
• La démonstration
• Et plus tard…
03/06/2013 www.ekito.fr 3
4. La fondation Raspberry Pi
Organisation caritative britannique fondée en mai 2009
• Constat : de moins en moins de jeunes britanniques
se lancent dans les études informatiques (en 2012 :
100 000 postes en attente, 30 500 diplômés)
• Idée : les y amener en leur donnant goût à la
programmation via un ordinateur bon marché.
• Cible (officielle) : les écoles pour jeunes enfants /
ados.
• Résultat : le Raspberry Pi, mini-ordinateur ARM.
03/06/2013 www.ekito.fr 4
6. Le Raspberry Pi
• Faible consommation : environ 4 W
• Faible prix : 35 $
• Nombreuses possibilités d’extension :
USB, Ethernet, HDMI, GPIO (General Purpose Input
Output), Série, I2C, etc.
• Performances : « Les performances générales sont de
l’ordre d’un Pentium 2 300 MHz – CPUdatant de 1997 –
avec des capacités graphiques qui se la pètent plus »
• Même CPU que pour l’iPhone EDGE / 3G (ARM1176JZF-S)
à 700 MHz au lieu de 412 MHz
• Fonctionne sous Linux
03/06/2013 www.ekito.fr 6
7. Un succès inattendu
• Selon Eben Upton : « Nous pensions honnêtement en
vendre environ 1 000, éventuellement 10 000 dans nos
rêves les plus fous ».
• Lors de l’ouverture des précommandes (février
2012), environ 100 000 Raspberry Pi ont été commandés.
• À ce jour (mars 2013), plus de 1 000 000 machines ont
été livrées.
• Le faible prix explique ce succès, ainsi que la possibilité
de l’interfacer de différentes manières avec le monde
réel.
03/06/2013 www.ekito.fr 7
10. Raspberry Pi vs Arduino
03/06/2013 www.ekito.fr 10
Raspberry Pi Arduino
Ordinateur :
Utilise un système d’exploitation, pas de
temps réel.
Microcontrôleur :
Pas de système d’exploitation, temps réel.
Versatile (rappel : c’est un ordinateur). Spécialisé (fait comparativement peu de
choses, mais les fait bien).
Autonome (rappel : c’est un ordinateur). Semi-autonome : a besoin d’un
ordinateur pour le programmer.
Quelques entrées/sorties numériques (8
par défaut), aucune analogique.
Beaucoup d’E/S numériques (14 à 54),
beaucoup d’entrées analogiques (6 à 16).
Sortie audio, vidéo, E/S USB, connecteurs
spécialisés écran / caméra, réseau.
Possibilités d’extension via des cartes
filles.
Communauté importante. Communauté importante.
Au final, même s’ils semblent concurrents, les deux produits ne répondent pas aux
mêmes besoins, et peuvent être complémentaires.
11. Dans le vif du sujet
• Le but du projet était de réaliser un « robot » roulant
non autonome, basé sur un Raspberry Pi, et piloté
par un iPhone.
• Dans l’absolu, ça ne sert effectivement pas à grand
chose.
• Mais…
03/06/2013 www.ekito.fr 11
12. À quoi ça sert ?
• Ça m’a servi à voir comment relier deux mondes
distincts (iPhone et électronique).
• Ça m’a servi à (ré)apprendre les bases de
l’électronique.
• Ça m’a servi à apprendre un nouveau langage
(Python).
• Ça m’a servi à m’amuser (et c’est peut-être le plus
important).
03/06/2013 www.ekito.fr 12
13. Au début était le pont en H
03/06/2013 www.ekito.fr 13
• Le pont en H permet de
contrôler le sens de rotation
d’un moteur.
14. Au début était le pont en H
03/06/2013 www.ekito.fr 14
• Le pont en H permet de
contrôler le sens de rotation
d’un moteur.
• En fermant deux interrupteurs,
le moteur tourne.
15. Au début était le pont en H
03/06/2013 www.ekito.fr 15
• Le pont en H permet de
contrôler le sens de rotation
d’un moteur.
• En fermant deux interrupteurs,
le moteur tourne.
• En fermant les deux autres
interrupteurs, le sens de
rotation change.
16. Au début était le pont en H
03/06/2013 www.ekito.fr 16
• Le souci principal, c’est que
des interrupteurs ne sont
pas faciles à automatiser.
17. Au début était le pont en H
03/06/2013 www.ekito.fr 17
• Le souci principal, c’est que
des interrupteurs ne sont
pas faciles à automatiser.
• Il suffit donc de les remplacer
par des transistors.
18. Au début était le pont en H
03/06/2013 www.ekito.fr 18
• En temps normal, un transistor
ne laisse pas passer le courant.
Il se comporte comme un
interrupteur ouvert.
19. Au début était le pont en H
03/06/2013 www.ekito.fr 19
• En temps normal, un transistor
ne laisse pas passer le courant.
Il se comporte comme un
interrupteur ouvert.
• Si on applique du courant à la
base du transistor, on « ferme
l’interrupteur », et le courant
circule.
20. Au début était le pont en H
03/06/2013 www.ekito.fr 20
• Pour commander les transistors, il suffit donc
d’envoyer du courant à leurs bases depuis les
connecteurs GPIO du Raspberry Pi.
21. Fini de jouer, place au code
03/06/2013 www.ekito.fr 21
iPhone
Serveur TCP
Algorithme de contrôle des GPIO
Bibliothèque
Rpi.GPIO
Onboard GPIO
⥢ ou ⥤
Bibliothèque
Adafruit MCP230XX
I2C
MCP23008 (8 GPIO)
ou
MCP23017 (16 GPIO)
Transistors
Moteurs
22. Le serveur TCP (1/2)
03/06/2013 www.ekito.fr 22
• Le serveur TCP
– Codé avec Python.
– Utilisation de la bibliothèque « Twisted ».
– Attend des commandes simples : « forward », « reverse »,
« left », « right » et « stop ».
– Client facile à mettre en place :il suffit de se connecter au
serveur et y envoyer les commandes.
24. Le contrôle des GPIO
03/06/2013 www.ekito.fr 24
• Le contrôle des GPIO
– Intégré au serveur.
– Au choix, utilisation de la bibliothèque Python :
• « Rpi.GPIO » pour le pilotage direct des GPIO
• « Adafruit MCP230XX » si usage d’un circuit d’extension de port
MCP23008 (8 GPIO de plus) ou MCP23017 (16 GPIO de plus)
– Envoi à la demande du courant sur le GPIO sélectionné, ou
bien stoppe l’envoi.
25. Et côté iPhone ? (1/3)
03/06/2013 www.ekito.fr 25
• Le client iPhone
– Interface minimaliste.
– Envoi de la commande de déplacement
à l’appui sur un bouton, et commande
« stop » lorsqu’on le relâche.
29. Et plus tard…
03/06/2013 www.ekito.fr 29
• Axes d’amélioration
– Ajouter une caméra à l’avant, avec retransmission vers le
client.
– Gérer la vitesse de déplacement du robot.
– Tout ce que mon imagination me dictera (et mon budget
m’autorisera)
30. Ressources
03/06/2013 www.ekito.fr 30
• Idées de réalisations : http://korben.info/idees-raspberry-pi.html
• Fondation Raspberry Pi : http://www.raspberrypi.org/
• Bibliothèque Twisted : http://twistedmatrix.com/trac/
• Bibliothèque Rpi.GPIO : http://pypi.python.org/pypi/RPi.GPIO
• Bibliothèque Adafruit MCP230XX : https://github.com/adafruit/Adafruit-
Raspberry-Pi-Python-Code
• Pub éhontée
– Code source du projet : https://github.com/aboudou/movingraspi
– Page récapitulant le projet : http://goddess-
gate.com/projects/fr/raspi/movingraspi
31. Plus d’informations
ekito
SARL au capital de 150 000 €
RCS Toulouse 485 109 300
1 place de la bourse 31000 Toulouse
contact@ekito.fr – www.ekito.fr
03/06/2013 www.ekito.fr 31
Laurent Blondon
Responsable Commercial
Tél. : + 33 (0) 659 976 860
lblondon@ekito.fr
32. Copyright
03/06/2013 www.ekito.fr 32
• Vous êtes libres de :
– Reproduire, distribuer et communiquer l’œuvre
– Adapter l’œuvre
– D’utiliser cette œuvre à des fins commerciales
• Selon les conditions suivantes :
– Vous devez attribuer l’œuvre de la manière indiquée par
l’auteur de l’œuvre ou le titulaire des droits (mais pas
d’une manière qui suggérerait qu’ils vous
approuvent, vous ou votre utilisation de l’œuvre).
http://creativecommons.org/licenses/by/3.0/fr/