Ceci est une ancienne révision du document !
Raspberry Pi
Le hardware
Conçu par l'anglais David Braben, et destiné au départ à encourager l'apprentissage de l'informatique, dans la lignée idéologique du BBC Micro. Lancé en 2012, il a été vendu aujourd'hui plus de 10 millions d'exemplaires. D'abord fabriqué en Asie, les chaînes de production ont aujourd'hui été rapatriée au Royaume-Uni. Toutes les infos et les sources de ces quelques lignes sur wikipédia.
Pour le modèle 3B (lancé en février 2016)
Taille identique au modèle 1 et 2, 85,60 mm × 53,98 mm × 17 mm CPU 1,2 GHz quadricœur ARM Cortex-A53 1Go de RAM 4 ports USB Ethernet / Wifi / Bluetooth Puissance 800 mA (4 W), prévoir alimentation mini 2A pour être tranquille, voir 2.5 si possible. E/S via les 40 broches du GPIO (détail ci-dessous).
Présentation détaillée des spécificités des différents modèles, Raspberry Pi A / B / 1,2 ou 3 / Zéro, etc … La bible: https://en.wikipedia.org/wiki/Raspberry_Pi
Les utilisations les plus populaires, encouragées par les Os officiels:
- mediacenter (OSMC et LibreElec)
- éducation (plein de logiciels type scratch sont préinstallés), avec raspbian et ubunutu
- fabrication, automatisation, serveur, etc… avec raspbian, en général, mais aussi Win10 iot
Un distribution très particulière que nous aimons beaucoup à 3615: http://xyzbots.com/grblweb.html , qui permet de piloter des CNC. Le projet semble par contre un peu au point mort, malheureusement.
3615 et les Raspis
Nous sommes très consommateurs de raspis, voici quelques exemples concrets, un peu à côté des utilisations communes.
Le parcours sonore à la Saline d'Arc et Senans est système de diffusion multipiste installé dans une allée d'arbres de 200 m qui comprends plus de 20 raspberrys: Echos de la Saline.
3615.rhizome est un projet commandé par le département du Doubs et déployé pendant un mois dans 6 médiathèques départementales 3615.rhizome.
3615 et les Raspis
Rester en 3.3V et 3mA par GPIO (une petite led)
Description des capacités sonores avec:
- Sortie HDMI = 7.1 avec ampli dédié
- test sortie 5.1 avec carte son pas chère
- les hat, les DAC, etc… Hifiberry land, pourquoi c'est utile, présentation des gammes
Les OS dispos
Description, spécificités de ces OS basés sur des distributions Linux très populaires. Comment installer sa carte SD.
Les Linux - la raspbian - celle qu'on connait
Linux par le graphique. Linux par la ligne de commande - ssh. … le graphique par ssh quand ca veut.
Un minimum de linux - tout est fichier - même les gpio
sudo -i echo "23" > /sys/class/gpio/export echo "out" > /sys/class/gpio/gpio23/direction cat /sys/class/gpio/gpio23/value echo "23" > /sys/class/gpio/unexport
Les langages le Python [http://deusyss.developpez.com/tutoriels/RaspberryPi/PythonEtLeGpio/|]
Paramétrages
Les différentes choses à régler sur le système fraîchement installé pour en optimiser l'utilisation future.
Un petit coup de
raspi-config
permet d'étendre le volume à la carte SD si ce n'est déjà fait, de gérer les langues, les interfaces allumées, etc…
On peut gagner environ 1 Go d'espace en supprimant quelques applis nous nous n'aurions pas l'utilité, suivant notre utilisation:
$ sudo apt-get autoremove --purge wolfram-engine minecraft-pi sonic-pi libreoffice* $ sudo apt-get clean
Source: https://korben.info/recuperez-1-gb-despace.html A tester: https://korben.info/configurer-facilement-raspberry-pi-pibakery.html
A compléter avec l'article de Linux Pratique
AddOns
Le raspberry Pi est un système modulaire, qui, tout comme l'Arduino, accepte beaucoup d'extensions.
Présentation de certains shields spécifiques Les caméras (raspicam) Les écrans
L'un des principaux intérêts du raspi, ce sont sa quarantaine de Pin GPIO, qui décuplent les possibilités. Comment les utiliser, pleins de tests pour tester des switchs, des leds, etc… GPIO 3.3V
Code
Partie pratique !! (au moins la moitié de l'atelier, soit deux heures.) Exemples en python et Processing tirant parti des GPIO
- Compiler un code Processing vers le Raspi, faire qu'il s'éxécute au démarrage, utiliser les gpio.
- Utiliser le Pi comme display : afficher une page web au démarrage et cacher le curseur
- Le pi comme outil de stream video avec uv4l + salle de chat
- ? intéressant ? Websockets pour connecter deux raspis (plantes qui vibrent)
- Arduino + pi, pourquoi, comment
Snippets
Activer SSH au premier boot
En effet, depuis quelques version, l'accès SSH n'est plus activé par défaut sur les Raspbian. Si l'on envisage de travailler “headless”, c'est assez fâcheux. il suffit d'ajouter un fichier vide nommé “ssh” pour réactiver cet accès. Ainsi, une fois la carte SD créée, il faut naviguer jusqu'à la racine de la partition montée sur votre ordinateur et taper:
$ nano ssh
puis ctrl+o pour enregistrer. Source: https://www.raspberrypi.org/forums/viewtopic.php?t=191252 (dans la source, possibilité aussi de créer le fichier qui se connectera au réseau wifi directement).
Affecter une ip fixe
Pour que le raspberry pi réclame un adresse IP particulière au routeur, il faut, assez paradoxalement, éditer le fichier dhcpcd.conf (depuis Jessie. Avant, il fallait aller bricoler /etc/network/interfaces).
$ sudo nano /etc/dhcpcd.conf
puis ajouter
interface wlan0 static ip_address=192.168.1.151 static routers=192.168.1.1 static netmask 255.255.255.0 static domain_name_servers=192.168.1.1 static domain_search=192.168.1.1
Source: http://fr.sizious.com/2015/08/28/configurer-une-ip-fixe-sur-le-raspberry-pi-avec-raspbian-20150505/
Générer un réseau adhoc
Si l'on a pas de routeur sous la main, une solution pour travailler sur son raspi à distance peut être de générer un réseau ad hoc, produit par le raspberry pi et sur lequel on se connectera.
Il faut modifier le fichier /etc/network/interfaces. Par sécurité, faire une copie préalable.
sudo cp /etc/network/interfaces /etc/network/interfaces.orig sudo nano /etc/network/interfaces
Puis ajouter
# interfaces(5) file used by ifup(8) and ifdown(8) # Please note that this file is written to be used with dhcpcd # For static IP, consult /etc/dhcpcd.conf and 'man dhcpcd.conf' # Include files from /etc/network/interfaces.d: source-directory /etc/network/interfaces.d auto lo iface lo inet loopback iface eth0 inet dhcp auto wlan0 iface wlan0 inet static address 10.2.1.1 netmask 255.255.255.0 wireless-channel 1 wireless-essid PiAdHocNetwork wireless-mode ad-hoc
Il faut ensuite paramétrer son ordinateur conformément à ce que l'on vient de configurer sur le raspi, à savoir, si l'on se fie à l'exemple:
- IP fixe 10.2.1.2 (pas de dhcp)
- Masque 255.255.255.0
- Routeur 10.2.1.1
Source: https://raspberrypi.stackexchange.com/questions/49660/ad-hoc-setup-in-rpi-3
Gestion du son
La gestion du son est un sujet très complexe (en tous cas pour moi). Voici quelques sources intéressantes pour démarrer:
https://www.rezine.org/documentation/auto-hebergement/multimedia/son/ https://wiki.debian.org/fr/ALSA http://debian-facile.org/doc:media:alsamixer https://wiki.debian.org/PulseAudio
Pour mémoire, ALSA = pilotes et API. Pulseaudio est un serveur de son, une sorte de mixeur numérique qui permet de mixer les sources. alsamixer est un utilitaire graphique qui permet de régler des choses facilement.
Lancer un script au boot
Pour lancer un script ou un programme au démarrage (si le pi démarre sur le bureau automatiquement)
Pour tous les utilisateurs
sudo nano /etc/xdg/lxsession/LXDE-pi/autostart
Pour un seul utilisateur
sudo nano ~/.config/lxsession/LXDE/autostart
Il faut faire précéder sa commande d'un @, et mettre cela à la suite des instructions déjà présentes. pour démarrer un script python:
@/usr/bin/python /home/pi/example.py
A surveiller, le placement avant ou après @xscreensaver.
https://www.raspberrypi.org/forums/viewtopic.php?t=43509
Désactiver l'économiseur d'écran
Pas si facile ! Dans le fichier /etc/xdg/lxsession/LXDE-pi/autostart , il faut commenter @xscreensaver. Et peut être ajouter (pas sûr que ce soit utile).
@xset s noblank @xset s off @xset -dpms
Certains parlent de l'installer au contraire complètement avec :
$ sudo apt-get install xscreensaver
Pour pouvoir ensuite désactiver via l'interface.
Désactiver le curseur
Peut être pratique en cas de démarrage automatique, type borne interactive ou de présentation.
sudo apt-get install unclutter
Puis dans etc/xdg/lxsession/LXDE-pi/autostart
@unclutter -idle 0.1 -root
Désactiver le wifi pour utiliser un dongle
Le WIFI intégré au Raspi3 n'est pas très puissant, de par son design (c'est intégré au chip CPU). Il peut être nécessaire d'utiliser un dongle pour augmenter la portée. Il faut dans ce cas désactiver le module Broadcom pour laisser la place au dongle.
$ sudo nano /etc/modprobe.d/raspi-blacklist.conf
Puis ajouter
blacklist brcmfmac blacklist brcmutil