Mini Game Center -2-
Par makoto doushite le vendredi, 10 janvier 2020, 10:16 - Raspberry Pi - Lien permanent
Le système électronique/informatique est maintenant validé et avant d'aller plus loin, il est temps de récapituler le détail la configuration informatique complète à installer sur la carte SD du RaspberryPi.
1 - Installer et configurer le système d'exploitation, Raspbian Lite :
- Télécharger Raspbian Lite https://www.raspberrypi.org/downloads/raspbian/
- Déployer l'image sur une carte SD. Depuis un système GNU/Linux, le plus simple c'est avec la commande dd :
(attention, of=/dev/sdx à adapter pour la cible de votre carte SD, en cas d'erreur risque d'effacement d'un disque dur non désiré)
sudo dd bs=4M if=2019-09-26-raspbian-buster-lite.img of=/dev/sdx conv=fsync status=progress
- Placer la carte SD dans le Raspberry, et le mettre sous tension.
Au premier boot, le système de fichier est étendu à la carte SD entière, puis reboot automatique.
Au second boot, le système est prêt, mais en US…
Pour rappel :
Login : pi
Pass : raspberry
- Première chose à faire, autoriser les réseaux WiFi, éditer :
sudo nano /etc/network/interfaces
Renseigner :
auto wlan0 allow-hotplug wlan0 iface wlan0 inet dhcp wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
- Exécuter raspi-config, et configurer tous les trucs comme on veut, notamment les variables locales (time zone, clavier, etc), et surtout le login automatique de l'utilisateur.
sudo raspi-config
Voici sans image les options à activer :
2 Network Options > N2 Wi-fi --> ssid et passphrase
3 Boot Options > B2 Wait for Network at Boot --> No
3 Boot Options > B1 Desktop / CLI > B2 Console Autologin
4 Localisation Options > I1 Change Locales --> fr_FR.UTF-8 UTF-8
4 Localisation Options > I2 Change Timezone --> au choix
4 Localisation Options > I3 Change Keyboard Layout --> au choix
5 Interfacing Options > P2 SSH --> Yes
5 Interfacing Options > P4 SPI --> Yes
5 Interfacing Options > P6 Serial --> Yes
7 Advanced Options > A2 Overscan --> No
<Finish>, Reboot
- Si la config du wifi par raspi-config échoue, éditer le fichier /etc/wpa_supplicant/wpa_supplicant.conf et modifier comme suit la section wlan0 :
sudo nano /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev update_config=1 country=FR network={ ssid="le nom du réseau wi-fi" psk="le mot de passe du réseau wi-fi" }
- Relancer ensuite le réseau avec la commande :
sudo service networking restart
- Effectuer les mises à jour :
sudo apt update sudo apt upgrade
- Mettre les fichiers temporaires en ram pour économiser sur la durée de vie la la carte SD.
sudo nano /etc/fstab
tmpfs /tmp tmpfs defaults,size=256M 0 0 tmpfs /var/tmp tmpfs defaults,size=256M 0 0 tmpfs /var/log tmpfs defaults,size=256M 0 0
2 - Réglages et configuration du matériel embarqué :
Prérequis logiciels :
sudo apt install omxplayer python3-rpi.gpio
Activer et régler l'écran ili9340 :
- Pour plus de détails, se référer au billet : Un écran LCD piloté via SPI pour le RaspberryPi.
- Éditer le fichier /boot/config.txt, pour activer le mode SPI :
sudo nano /boot/config.txt
Avec dedans :
dtparam=spi=on disable_overscan=1 framebuffer_width=320 framebuffer_height=240
- Créer le fichier, avec dedans le nom des modules à charger :
sudo nano /etc/modules-load.d/fbtft.conf
Avec dedans :
spi-bcm2835 fbtft_device
- Créer le fichier, avec dedans les paramètres du module à charger au démarrage du Rpi :
sudo nano /etc/modprobe.d/fbtft.conf
Avec dedans :
options fbtft_device custom name=fb_ili9341 gpios=reset:24,dc:25,led:18 speed=64000000 fps=60 bgr=1 rotate=270
- Installer fbcp, soft de Framebuffer mirroring, pour obtenir la console sur l'écran et plus encore :
sudo apt-get update sudo apt-get install cmake git git clone https://github.com/tasanakorn/rpi-fbcp cd rpi-fbcp/ mkdir build cd build/ cmake .. make sudo install fbcp /usr/local/bin/fbcp
La partie sonore :
- Pour plus de détails, se référer au billet : Une carte son pour le RaspberryPi Zero
- Éditer le fichier /boot/config.txt, activer le mode PMW Audio :
sudo nano /boot/config.txt
Avec dedans :
dtoverlay=pwm-2chan,pin=12,func=4,pin2=13,func2=4
- Puis configurer la sortie sonore sur le jack plutôt que le HDMI (par défaut) :
amixer cset numid=3 1
- Régler le niveau sonore, puis sauvegarder les modifications :
alsamixer sudo alsactl store 0
Gestion du bouton power :
- Pour plus de détails, se référer au billet : Bouton on/off Raspberry Pi, Version µContrôleur.
- Écrire le script :
nano /home/pi/SoftOffButton.py
Avec dedans :
import RPi.GPIO as GPIO import time import os import signal print ("Soft Off Button") GPIO.setmode(GPIO.BCM) GPIO.setup(21, GPIO.IN, pull_up_down = GPIO.PUD_DOWN) def button_pressed(channel): print ("Boutton Off pressé") os.system("sudo poweroff") GPIO.add_event_detect(21, GPIO.RISING, callback=button_pressed) signal.pause()
- Créer un service pour démarrer automatiquement le programme python :
sudo nano /etc/systemd/system/SoftOffButton.service
Avec dedans :
[Unit] Description=Démarre le script SoftOffButton [Service] ExecStart=/usr/bin/python3 /home/pi/SoftOffButton.py [Install] WantedBy=multi-user.target
- Installer le service au démarrage :
sudo systemctl --system daemon-reload sudo systemctl enable SoftOffButton.service
3 - Test de validation :
- On va effectuer un test de lecture de vidéo, après avoir copié un fichier mp4 dans /home/pi, lancer :
/usr/local/bin/fbcp & omxplayer /home/pi/deathsml_15-07-2015_1cc_h264-21.mp4 --aspect-mode stretch -o local
- Presser le bouton power devrait éteindre le RPien quelques secondes.
La prochaine fois nous écrirons un programme pour exploiter et automatiser la lecture de vidéos.