まこと の ブログ

MaKoTo no burogu — Journal de bord…

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

samedi, 11 janvier 2020

Mini Game Center -3-

Suite de l'étude précédente :
Bien ! Maintenant que le système est installé, il nous faut un programme pour exploiter la mini-borne, et ainsi automatiser l'affichage des vidéos.

1 - Playlist de vidéos et pilotage par GPIO :

  • Il faut voir mes petites bornes comme des judebox à jeux vidéos, qui jouent une vidéo en boucle.

- Sur la carte SD sont stockées plusieurs vidéos de démo de jeux ou de parties enregistrées.
- Les vidéos sont jouées par un script Python, et il est alors possible d'interagir avec la vidéo qui joue. Ainsi on va pouvoir :

- augmenter/diminuer le volume sonore, à l'aide de deux boutons poussoir.
- augmenter/diminuer la luminosité de l'écran, à l'aide de ces même deux boutons, avec un appuie long (> 2s).
- sauter de 30 secondes en avant/arrière, à l'aide de deux autres boutons poussoir.
- jouer la vidéo suivante/précédente, à l'aide de ces même de deux autres boutons, avec un appuie long (> 2s).
- faire une pause/relancer la lecture de la vidéo, à l'aide du bouton dédié.


  • Voici dores et déjà une petite vidéo de démonstration pour bien comprendre l'idée :


  • Et donc, pour ce faire, voici le schéma de câblage des boutons aux GPIO :


C'est le dessin du RaspberryPi Zero qui est représenté, mais les câbles (cf. la vidéo) sont bien raccordés sur le Pi HAT (cf. le schéma structurel). Les condensateurs d'anti-rebond font 100nF.
Il ne reste plus qu'a programmer…

Lire la suite...

vendredi, 10 janvier 2020

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

Lire la suite...

mercredi, 1 janvier 2020

Un écran LCD piloté via SPI pour le RaspberryPi

L'écran utilisé pour le WebRadioReveilWiFi donnant au final une qualité d'image assez nulle, et pour le besoin d'autres projets, j'ai regardé un peu ce qu'il se faisait du côté des écrans LCD non-Composite et non-HDMI.

dsc04295.jpg

  • Ce qui revient le plus ce sont les écrans de type ili9340 qui fonctionnent en SPI et qui ont l'avantage d'exister de différentes tailles et résolutions, avec parfois aussi des fonctionnalités tactile résistives.

J'ai acquis deux modèles différents, l'un en 2,2 pouces qui vient sur une plaquette enfichable avec un connecteur GPIO de 40 broches, et un autre de 2,8 pouces tactile sur sa plaquette avec un connecteur GPIO de 26 broches.

  • Voici ce que ça donne en place sur un RPi :

dsc04299.jpg dsc04300.jpg

  • On remarque que l'écran 2.2" est directement soudé sur la plaquette, tandis que l'écran 2,8" est tenu à la plaquette avec un connecteur FCC.

dsc04298.jpg dsc04301.jpg

Fonctionnement :

Ces écrans fonctionnent en SPI, c'est à dire qu'ils exploitent directement les GPIO suivant :

- CE0 (GPIO08)
- MISO (GPIO09)
- MOSI (GPIO10)
- SCLK (GPIO11)

D'autres pins sont utilisées pour gérer le RESET et le D/CX.

Lire la suite...

lundi, 30 décembre 2019

Une carte son pour le RaspberryPi Zero

  • Le modèle RaspberryPi Zero est une machine qui ne dispose pas d'une carte son intégrée.

Donc pas de fiche Jack ni d'amplificateur, impossible donc théoriquement d'écouter du son, si ce n'est par la sortie HDMI.

Et pourtant il a été prévu de permettre cette fonction, en activant la PWM des GPIO12 (pin 32) et GPIO13 (pin 33).
Il me semble qu'on peut plus ou moins choisir d'autres GPIO que celles-ci… Je vous laisse vérifier.

  • En éditant directement le fichier /boot/config.txt, activer le mode PMW Audio pour les GPIO concernés :
dtoverlay=pwm-2chan,pin=12,func=4,pin2=13,func2=4

Si on branche donc un Jack pour y connecter un casque sur par exemple GPIO13 + Masse pour le son Droit et GPIO12 + Masse pour le son Gauche, on peut alors écouter le morceau de musique qu'on aura choisi.

  • Ensuite il faudra filtrer ce signal un poil trop brute de numérique, afin de le lisser et le rendre plus analogique.
  • Reste à amplifier le signal, et dans ce cas les solutions ne manquent pas… Je propose ici un amplificateur stéréo à base de LM386 (le même utilisé sur mon WebRadioReveilWiFi

RpiZeroSoundCard.png

  • Liste des composants:
Nom                         Type et valeur          Boîtier

R1, R2                      Résistances 270Ω        SMD 1206
R6, R7, R8, R18             Résistances 150Ω        SMD 1206

C1, C2, C9, C15             Condensateurs 33nF      SMD 1206
C12, C18                    Condensateurs 100nF     SMD 1206
C3, C4, C8, C11, C14, C17   Condensateurs 10µF 16V  SMD 4x5,4 mm
C6, C13                     Condensateur 1µF 50V    SMD 4x5,4 mm
C10, C16                    Condensateur 470µF 16V  SMD 8x10,5 mm

RV1, RV2, RV3, RV4          Potentiomètre 10kΩ      TC33X-103G

U2, U3                      Ampli LM386             SMD  SSOP 8

Ressources :
http://www.tinkernut.com/2017/04/adding-audio-output-raspberry-pi-zero-tinkernut-workbench/
https://learn.adafruit.com/adding-basic-audio-ouput-to-raspberry-pi-zero/pi-zero-pwm-audio
https://learn.adafruit.com/adafruit-max98357-i2s-class-d-mono-amp/raspberry-pi-usage

- page 1 de 6