Sur le blog de Karl, on trouve de nombreuses réalisation qui vont de la woktenna (antenne wifi à gain construite à partir d’un wok) à Androïd en passant par MySQL.
Cette fois c’est à la réalisation d’un 4×4 commandé par un Raspberry Pi que Karl nous invite. Ses enfants ont monté un Crawler Lego 4×4 qu’il s’est empressé d’équiper… d’un Raspberry Pi !Ce qui est appréciable sur le blog de Karl, c’est qu’il est abondamment illustré, que des liens mènent vers les sites des différents composants, et surtout que les scripts qu’il a écrits sont disponibles.
Vous trouverez ci-dessous la traduction de cet article (en anglais) de Karl sur son blog :
========== TRADUCTION DE L’ARTICLE DE KARL ==========
Depuis un certain temps, j’avais envie de connecter une voiture RC à un Raspberry Pi. Au départ j’avais dans l’idée de câbler à un contrôleur Tyco Fast Traxx, mais cette façon de faire est actuellement au-delà de mes capacités. Au lieu de cela, pour appliquer le concept que j’avais choisi, je me suis assuré l’aide de mes enfants (voir l’article que nous avions publié sur les voitures Lego).
Au sommaire :
Montage du Crawler 4×4
Récemment, nous avons acquis le Crawler Lego 4×4, qui comprend:
(2) Des gros moteurs – pour entraîner les roues
(1) Un servo moteur – pour les virages
(1) Un boîtier de piles – pour alimenter les pièces Lego d’origine
(1) Une télécommande infrarouge
(1) Un récepteur infrarouge
Après avoir terminé le montage en suivant les instructions de la notice de construction Lego, ils ont ajouté:
(2) Des lumières – pour les phares
(1) Un interrupteur de contrôle – pour allumer ou éteindre les lumières
Cela m’a fourni l’occasion de contrôler le Crawler 4×4 par infrarouge avec un servo Parallax équipé d’une roue dentée et relié au Raspberry Pi.
Le servo standard Parallax a été fixé avec des briques Lego montées autour de lui et une grande roue dentée Lego fixée dessus. J’ai ensuite construit une plate-forme sur le châssis du 4×4 pour accueillir cette pièce supplémentaire, ainsi que la roue dentée de liaison et le récepteur infrarouge Lego.
Pour répartir un peu le poids, la batterie USB a été fixée sur la face inférieure du véhicule. Comme vous pouvez le voir dans la vidéo à la fin de la poste, il semble parfois déséquilibré. Lors de la mise en marche, la seule chose que cette batterie alimente directement est le hub USB situé sur le dessus. Le hub USB alimente à son tour le Raspberry Pi, le servo, et les autres périphériques.
La commande par le Raspberry Pi
Les éléments utilisées:
- (1) Raspberry Pi
- (1) Une carte Caméra Pi
- (1) Un servo standard Parallax
- (1) Un adaptateur USB 802.11N WIFI
- (1) Une manette de jeu Bluetooth
- (1) Un hub USB 4 ports alimenté
- (1) Une batterie 7800 mAh USB
- (1) Une carte SD16 Go
- Des fils de liaison mâles et femelles
- Diverses pièces comme des câbles USB, du ruban isolant, et des attaches de câble
Connexion du servo
Les programmes
listener.sh
#!/bin/bash ENTER=$(printf "%b" "\n") ESCAPE=$(printf "%b" "\e") UP_SUFFIX="A" RIGHT_SUFFIX="C" LEFT_SUFFIX="D" while true; do read -sn1 a case "$a" in $ENTER) echo "ENTER";; $ESCAPE) read -sn1 b test "$b" == "[" || continue read -sn1 b case "$b" in $RIGHT_SUFFIX) echo "Turning Right" ~/right.sh ;; $UP_SUFFIX) echo "Straigtening" ~/straight.sh ;; $LEFT_SUFFIX) echo "Turning Left" ~/left.sh ;; *) continue;; esac ;; "d") echo "Turning Right" ~/right.sh ;; "w") echo "Straigtening" ~/straight.sh ;; "a") echo "Turning Left" ~/left.sh ;; "3") echo "Taking a picture" ~/picture.sh & ;; "4") echo "Taking a video" ~/video.sh & ;; *) echo "$a";; esac done
Lorsqu’on appuie sur les différents boutons ou sur les touches du clavier, le script d’écoute (listener.sh) appelle aux autres scripts, qui déclenchent le virage, la prise de photo, et la prise de vidéo.
picture.sh
#!/bin/bash dateTime=<code>date +%Y-%m-%d-%H-%M-%S</code> pictureDirectory=~/pictures raspistill -w 640 -h 480 -e jpg -t 0 -o $pictureDirectory/$dateTime.jpg</pre>
video.sh
#!/bin/bash dateTime=<code>date +%Y-%m-%d-%H-%M-%S</code> videoDirectory=~/videos echo "Taking a video for 10 seconds" raspivid -t 10000 -o $videoDirectory/$dateTime.h264
right.sh
#!/bin/bash sudo ~/control.py 1100 .25
straight.sh
#!/bin/bash sudo ~/control.py 1300 .25
left.sh
#!/bin/bash sudo ~/control.py 1550 .25
control.sh
#!/usr/bin/python import time import sys from RPIO import PWM servo = PWM.Servo() #appropriate range of values for BCM_GPIO pin 18 and the servo: 370 - 2330 print servo.set_servo(18, float(sys.argv[1])) time.sleep(float(sys.argv[2])) servo.stop_servo(18)
Les photos obtenues
Bien que le module de caméra Raspberry Pi puisse fournir des images de 5 mégapixels avec une résolution native de 2592×1944 pixels j’ai fixé la résolution à 640×480 pixels dans le script de prise de vue ci-dessus. Avec lui, j’ai pu capturer une image de mon chat qui ne se doutait absolument pas de la blague que nous lui faisions….
Et voici une autre photo, quand il a réalisé que quelque chose se passait.
Vidéo du Crawler 4×4
Enfin, voici une courte vidéo du Crawler Lego 4×4 radiocommandé ainsi qu’un clip ou on aperçoit le pilote de l’engin…
Conclusion
Merci à Karl pour cet article très documenté qui pourra inspiré ceux-d’entre vous qui ont entrepris la réalisation d’un véhicule piloté par un Raspberry Pi.
Si cet article vous a donné des idées, ou vous a aidé dans la conception de votre projet, pensez à laisser vos remarques dans les commentaires ci-dessous…
Crédit photo : http://karlherrick.com/dev/
Ce QR Code vous emmène directement sur le site
https://www.framboise314.fr
- Pour l’utiliser, vous devez avoir une application capable de lire les QR-Codes sur votre IPhone ou votre smartphone. Si besoin, je vous conseille d’installer : i-nigma disponible sur iPhone, Android et Blackberry.
- Scannez le QR-Code de framboise314 avec votre nouvelle application
- Profitez des articles de framboise314.fr. Ils sont lisibles sans problème sur votre smartphone.
Merci pour cette traduction, j’avais vu l’article mais la flemme de le lire en anglais 😉
Bon ça casse un peu le design de l’engin…mais le « tuning » est cool ! 😉
Ping : Un 4×4 Lego piloté par Raspberry P...
Ping : Un 4×4 Lego piloté par Raspberry P...
Ping : Un 4×4 Lego piloté par Raspberry P...
La vidéo a été supprimé de l’article :(.
PS: Merci d’avoir créé ce blog très intéressant et j’attend votre livre avec impatience ! BOnne continuation
Bonjour
Karl a modifié la vidéo, ce qui a changé le lien. C’est maintenant réparé! Merci de m’avoir signalé ce problème.
Cordialement
François
Je me demande si il serait pas plus simple de mettre un émetteur infrarouge sur les gpio du raspberry pour qu’il envoie un signal imitation télécommande lego .
Le raspberry pourrait meme contrôler plusieur récepteur
Une petite etude sur le signal en anglais
https://www.google.fr/url?q=http://www.philohome.com/pf/LEGO_Power_Functions_RC_v120.pdf&sa=U&ei=NQ1RVej0LKTIsATf5YH4Dw&ved=0CAsQFjAA&usg=AFQjCNGpmt2w5Re1MI9Cm8LX7L4xbL84KQ
Fan de lego et de software libre, j’ai commander un kano pour mes enfants, fans eux aussi à leurs 6 et 9 ans de LEGO. J’ajoute ce blog a mes RSS et je reviendrai bientot.
Bonjour
Bon Noël à toute la famille et à bientôt donc 🙂
cordialement
François
Ping : Un 4×4 Lego piloté par Raspberry P...