まこと の ブログ

MaKoTo no burogu — Journal de bord…

Aller au contenu | Aller au menu | Aller à la recherche

Mini Game Center -2-

Suite de l'étude précédente :

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 :

  • 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

raspi-config01.png
raspi-config02.png
raspi-config03.png
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 :

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 :

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 :

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.

À Suivre…

Ajouter un commentaire

Les commentaires peuvent être formatés en utilisant une syntaxe wiki simplifiée.

Fil des commentaires de ce billet