RaspberryPi
Le Raspberry PI est un mini ordinateur pas cher et minimaliste destiné initialement à l'apprentissage de la programmation aux enfants. Il a cependant un grand nombre d'applications potentielles, du serveur de fichier à la station météo en passant par le lecteur interactif de vidéo.
Sommaire
premiers pas
Pour les grands débutants, une méta-distro existe désormais nommée NOOBS qui permet de gérer de multiples installations sur une même carte SD en passant par un menu graphique. via le site Raspberrypi.org
câblage
Vous aurez besoin de câbler au minimum :
- une souris USB
- un clavier USB
- un écran câblé en HDMI ou en RCA aussi appelé Cinch (dans ce cas une vieille TV peut faire l'affaire)
- une alimentation 5V (+ou- 0.25V) micro USB (un chargeur de téléphone portable intelligent fera l'affaire, minimum 1A, 2A si vous avez une carte son USB)
Pour brancher un clavier + une souris, un HUB USB peut-être nécessaire (possible manque d'énergie pour que le PI fonctionne correctement).
Éventuellement
- un câble Ethernet RJ45 (réseau)
preparation de la carte SD
une page spéciale dédiée à raspbian, la distribution debian spéciale Raspberry.
En suivant les instructions de la documentation du site PI, tout se passe bien
ensuite il faut juste changer le clavier en azerty :
Si d'autres problèmes surgissent, le guide de dépannage est correctement renseigné.
Préparation de la carte SD en ligne de commande sous Linux Debian/Ubuntu/Mint
Je vérifie d'abord l'image téléchargée
sha1sum /tmp/2013-02-09-wheezy-raspbian.zip
Je décompresse l'image de Raspbian.
unzip 2013-02-09-wheezy-raspbian.zip
je démonte la partition cible sur la carte SD
sudo umount /media/0359b06f-cffe-4076-b2c7-0b0733b17b30/
J'installe l'image disque sur la carte SD. Pour connaitre l'adresse de la partition cible, j'ai utilisé gparted (interface graphique de parted). Il est important d'omettre le fin de l'adresse des partitions (le p2 à la fin de /dev/mmcblk0p2 par ex)
sudo dd bs=4M if=2013-02-09-wheezy-raspbian.img of=/dev/mmcblk0
agrandissement du disque
Depuis le passage à Debian Wheezy, il suffit de lancer avec les droits admin le programme raspi-config
Ce qui suit est donc un peu obsolète.
Lorsqu'on utilise l'image disque Debian squeeze pour créer la carte SD, le système de fichier fait 1.6Go, même si la carte SD est plus grande , ce qui est peu car avec le système et les quelques programmes, ce disque est rapidement plein.
Heureusement, il existe une manipulation qui permet d'agrandir la partition pour profiter de tout l'espace disponible.
Pour ce faire, tapez les commandes suivantes dans le terminal
printf "d\n3\nd\n2\nn\np\n2\n157696\n\nw\n" | sudo fdisk -cu /dev/mmcblk0
sudo reboot
puis après le redémarage
sudo resize2fs /dev/mmcblk0p2
Utilisation
utiliser les GPIO
Il existe une distribution dédiée qui est optimisée pour tout ce qui est GPIO I2C, issue du cerveau fou de Lady Ada: http://learn.adafruit.com/adafruit-raspberry-pi-educational-linux-distro/
La Framboise est dotée de GPIO (General Purpose Input/Output, des entrées/sorties analogiques qui rendent possible la connexion avec d'autres machines.
Plusieurs possibilités de communication existent:
- La librairie EnotionZ/Gpio donne la possibilité d'interagir avec ces entrées/sorties, à travers nodejs (serveur web javascript).
- Python
- C & autres bindings
En vrac
En court-circuitant le pin 8 , on peut démarrer le Pi. Le Pin 18 est un PWM matériel, les autres pins peuvent être utilisés en PWM mais logiciel (ce qui demande plus de ressources!)
test de programmes
Processing
Pour executer Java (requis par Processing), il faut prendre une distribution dédiée en mode soft-point afin d'être compatible (mais plus lent) avec la VM d'Oracle. cf soft-point Debian Wheezy sur http://www.raspberrypi.org/downloads
Lire également un long et bien documenté article chez Oracle (qui ne fait donc pas racheter la concurrence) http://www.oracle.com/technetwork/articles/java/raspberrypi-1704896.html
Pas encore testé, on attend des retours de votre part...
Puredata
Il y a désormais pas mal de documents dédiées au pi sur le site http://puredata.info/ http://puredata.info/search?SearchableText=raspberry
Entre autres, un paquet est désormais disponible dans le dépôt officiel apt.puredata.info, ainsi que des images disques toutes prêtes. Les instructions pour l'ajouter à votre système sont ici
La plupart de ces paquets réclament le serveur audio jackd si l'on souhaite faire de l'audio temps réel.
Pour ceux qui veulent compiler eux-même:
http://log.liminastudio.com/writing/tutorials/how-to-build-pd-extended-on-the-raspberry-pi
résolution de problèmes
Lorsque le câble HDMI est connecté, la sortie audio RCA est désactivée. Si on souhaite l'activer simultanément, il faut utiliser la commande suivante:
sudo amixer cset numid=3 1
Ligne de commande qui va bien pour démarrer en mode reproduction audio seulement et sans interface graphique:
pd-extended -noadc -alsa -nogui nomdupatch.pd
Servir des fichiers HTML statiques
Le pi n'a que peu de ressources matérielles, il vaut mieux donc utiliser le serveur le plus économe , nginx , au détriment du populaire Apache.
$ sudo aptitude install nginx
il faut ensuite créer un répertoire, y insérer un premier fiche texte à servir et lui donner les bons propriétaires:
$ sudo mkdir /var/www $ sudo vim /var/www/index.html
On insère alors le texte suivant:
<html> Bonjour, monde! </html>
On donne les droits:
sudo chown -R www-data:www-data /var/www/
On édite ensuite le fichier de configuration de nginx afin qu'il pointe vers le bon répertoire:
sudo vim /etc/nginx/sites-enabled/default
On repère la ligne suivante:
root /usr/share/nginx/www;
qu'on remplace par:
root /var/www;
Cette manipulation nous permet de ne pas toucher aux fichiers de configuration par défaut de nginx.
Il faut ensuite faire prendre en compte ces modifications au serveur
sudo service nginx restart
Dirigez maintenant votre nvaigateur à l'URL de votre pi:
http://raspberrypi.local
si vous avez installé le serveur avahi, sinon, il vous faudra retoruver l'IP via la commande
ifconfig
et pointer votre navigateur vers une adresse du genre:
http://192.168.0.8
Vous pouvez remplacer la commande vim par nano si vous n'aimez pas les éditeurs modaux.
Trucs & astuces
- Pour retrouver l'adresse IP du Pi dont on a désactivé l'interface graphique, on peut utiliser la commande nmap qui nous listera toutes les IP des machines du réseau. Ensuite, avec un peu de jugeote, on devrait retrouver sa framboise assez vite.
nmap -sP 192.168.0.0/24
- Pour activer l'autologin de la session pi , les instructions se trouvent sur le site de elinux: http://elinux.org/RPi_Debian_Auto_Login
- Pour programmer l'extinction du Pi (ou toute autre tâche régulière), il suffit d'installer un cron. Par exemple, pour programmer une extinction de la machine tous les jours à 7h moins 5:
sudo crontab -e
On rajoute la ligne suivante à la fin:
55 18 * * * shutdown -h now
Doc en français ici: http://generation-linux.fr/index.php?post/2009/02/11/Cours-Linux-%3A-Automatisation-de-taches-avec-Cron
- Pour pouvoir se connecter à sa framboise sans connaître du tout sans adresse Ip mais juste par une commande du type
(informations suivantes obsolètes depuis Juillet 2013 dans Raspbian et depuis toujours dans Occidentalis, il suffit désormais de passer par raspi-config)
ssh pi@raspberrypi.local
il faut installer le package avahi-daemon et le configurer pour qu'il démarre tout seul:
sudo aptitude install avahi-daemon sudo update-rc.d avahi-daemon defaults
Et voilà!
Limitations
Le GPIO ne dispose que d'un seul PWMmatériel sur le port 18. Il est possible de faire du PWM logiciel sur les autres ports, mais la charge CPU augmente alors beaucoup.
ressources
- Le Wiki du Pi
- la page wiki du Labomédia d'Orléans
- tutoriel minimaliste pour utiliser un raspberry à la place d'un arduino : http://log.liminastudio.com/writing/tutorials/tutorial-how-to-use-your-raspberry-pi-like-an-arduino
- wiki ressource sur raspberry et linux embarqués en général http://elinux.org/Main_Page
- controller une imprimante 3D avec un raspberry