On sait déjà connecter une webcam standard sur la Raspberry Pi (voir cet article). Mais il existe une petite caméra très intéressante pour cette carte, c’est l’accessoire de la console Sony Playstation, la Sony PS3 Eye.
Pourquoi intéressante ? Parce qu’elle est pourvue d’un microphone avec 4 sources en ligne ce qui permet de bénéficier de la suppression de l’écho et d’une bonne qualité mais qu’il serait très pratique d’utiliser pour un asservissement sur une source sonore si on pouvait y accéder. Tout cela sur un seul USB.
Ce n’est pas la première fois que nous nous intéressons à un accessoire de jeu vidéo. Nous avions pu constater avec la Nintendo Wii et surtout son Nunchuck et son Wii Motion Plus que l’effet de masse de l’industrie du jeu nous donnait accès à des technologies de pointe pour très peu cher (la puce accéléromètre est 4 fois plus performante pour 10 fois moins cher). Et bien rebelote avec cette caméra qui ne m’a coûté que 7,99 € d’occasion à mon magasin Micromania préféré (big up à la team Mandolocienne, je vous kiffe les mecs).
La vidéo
Rien de bien compliqué, on applique les commandes apprises dans l’article sus-cité.
pi@raspberrypi $ lsusb
Bus 001 Device 001 : ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002 : ID 0424:9512 Standard Microsystems Corp.
Bus 001 Device 003 : ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004 : ID 05e3:0608 Genesys Logic, Inc. USB-2.0 4-Port HUB
Bus 001 Device 007 : ID 1415:4000 Nam Tai E&E Products Ltd. or OmniVision Technologies, Inc.
Bus 001 Device 008 : ID 1415:2000 Nam Tai E&E Products Ltd. or OmniVision Technologies, Inc. Sony Playstation Eye
pi@raspberrypi $ v4l2-ctl —list-devices
USB Camera-B3.04.06.1 (usb-bcm2708_usb-1.2.4.1) :
/dev/video0
pi@raspberrypi $ v4l-info /dev/video0
### v4l2 device info [/dev/video0] ###
general info
VIDIOC_QUERYCAP
driver : "ov534"
card : "USB Camera-B3.04.06.1"
bus_info : "usb-bcm2708_usb-1.2.4.1"
version : 3.2.27
capabilities : 0x5000001 [VIDEO_CAPTURE,READWRITE,STREAMING]
standards
inputs
VIDIOC_ENUMINPUT(0)
index : 0
name : "ov534"
type : CAMERA
audioset : 0
tuner : 0
std : 0x0 []
status : 0x0 []
video capture
VIDIOC_ENUM_FMT(0,VIDEO_CAPTURE)
index : 0
type : VIDEO_CAPTURE
flags : 0
description : "YUYV"
pixelformat : 0x56595559 [YUYV]
VIDIOC_G_FMT(VIDEO_CAPTURE)
type : VIDEO_CAPTURE
fmt.pix.width : 640
fmt.pix.height : 480
fmt.pix.pixelformat : 0x56595559 [YUYV]
fmt.pix.field : NONE
fmt.pix.bytesperline : 1280
fmt.pix.sizeimage : 614400
fmt.pix.colorspace : SRGB
fmt.pix.priv : 0
Donc pour 8 euros on a déjà réussi à émettre à 20 fps du 320x240 avec une bonne qualité d’image pour embarquer sur un robot mobile.
Le son
On a déjà traité le son dans cet article. On apprenait comment charger le module de la puce Broadcom BCM2835 dédiée au son.
Cette fois-ci, avec une distribution récemment mise à jour (les tests sont faits sur Occidentalis, voir nos autres articles pour une description), rien de plus à installer : on peut s’assurer que les modules du son par USB (snd_usb_audio) sont bien là.
pi@raspberrypi $ lsmod
Module Size Used by
8192cu 485042 0
i2c_dev 5587 0
snd_bcm2835 12808 0
snd_usb_audio 93242 0
snd_pcm 74834 2 snd_usb_audio,snd_bcm2835
snd_page_alloc 4951 1 snd_pcm
snd_hwdep 5730 1 snd_usb_audio
snd_usbmidi_lib 17812 1 snd_usb_audio
On doit identifier maintenant sur quelle numéro de carte son la Playstation Eye a été reconnue :
pi@raspberrypi $ arecord —list-devices
**** Liste des Périphériques Matériels CAPTURE ****
carte 1 : CameraB304061 [USB Camera-B3.04.06.1], périphérique 0 : USB Audio [USB Audio]
Sous-périphériques : 1/1
Sous-périphérique #0 : subdevice #0
Pour vérifier, on enregistre sur la carte 1 et le périphérique 0 pendant une durée de 10 secondes :
pi@raspberrypi $ arecord -d 10 -D plughw:1,0 test.wav
Ensuite on réécoute. Ne pas oublier de préciser la sortie souhaitée, ici le jack analogique (1 après numid=3) car c’est Nono qui sert de haut-parleur :)
pi@raspberrypi $ amixer cset numid=3 1
Et on joue le fichier enregistré :
pi@raspberrypi $ aplay test.wav
Au passage, une petite commande pour récupérer des fichiers de votre Raspberry Pi depuis une console de votre PC Linux :
atelier@ubuntu : $ scp pi@192.168.10.246 : /test.wav .
pi@192.168.10.246’s password :
test.wav 100% 78KB 78.2KB/s 00:00
Et le fichier preuve !
Les 4 microphones
Il reste désormais à pouvoir utiliser les capacités de la rangée de 4 microphones dont est composée la PS3 eye. Ce sera l’objet d’un atelier au club Pobot.
A lire pour se préparer : http://www.rrfx.net/2009/11/ps3-eye...