Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
openatelier:projet:sampler_puredata_pour_raspberry_pi_sans_ecran [2025/09/02 12:45]
cyril [En Python avec des boutons physiques de récupération]
openatelier:projet:sampler_puredata_pour_raspberry_pi_sans_ecran [2025/10/16 09:18] (Version actuelle)
cyril [Lancement automatique du script python au démarrage du Raspberry Pi]
Ligne 63: Ligne 63:
  
 ====En Python avec des boutons physiques de récupération==== ====En Python avec des boutons physiques de récupération====
 +On commence par installer le module "​pip"​ pour Python 3: <​code>​ sudo apt install python3-pip</​code>​ suivi d'un <​code>​sudo apt install python3-full</​code>​
 +Puis la bibliothèque Pygame:
 +<​code>​python3 -m pip install -U pygame --user --break-system-packages</​code>​
 +La dernière option permet de faire l'​installation,​ sinon, il faut le faire et dans un environnement virtuel de Python....et bof...
  
 Le script python 3.11 qui fonctionne est le suivant (à adapter à vos GPIO, noms de fichiers à déclencher,​ etc...): Le script python 3.11 qui fonctionne est le suivant (à adapter à vos GPIO, noms de fichiers à déclencher,​ etc...):
Ligne 158: Ligne 162:
  
 ====Lancement automatique du script python au démarrage du Raspberry Pi ==== ====Lancement automatique du script python au démarrage du Raspberry Pi ====
 +Si vous avez testé votre script mais qu'il ne se lance pas et que vous avez ce genre de retour dans la console:
 +<​code>​ Can't set permissions (436) for /​home/​patch/​waxmonde/​.lgd-nfy0,​ No such file or directory</​code>​
 +
 +Il est possible qu'il faille donner les droits en lecture/​écriture/​utilisation au dossier dans lequel se trouve votre script python. En effet, il y en a besoin pour la gestion des GPIO et créer le fichier .lgd-nfy0. Il faut donc faire un <​code>​sudo chmod 777 "​chemin de votre dossier où dans lequel se situe votre script"</​code>​
  
 On va utiliser la méthode "​systemd"​ (si j'ose dire...) qui gère le lancement de "​services"​ au démarrage du Raspberry Pi (en gros...). On va utiliser la méthode "​systemd"​ (si j'ose dire...) qui gère le lancement de "​services"​ au démarrage du Raspberry Pi (en gros...).
Ligne 167: Ligne 175:
 <​code>​ sudo nano /​etc/​systemd/​system/​waxmonde.service</​code> ​ -> vous pouvez donner le nom du service que vous voulez bien entendu... <​code>​ sudo nano /​etc/​systemd/​system/​waxmonde.service</​code> ​ -> vous pouvez donner le nom du service que vous voulez bien entendu...
  
-  * Dans nano, on édite le fichier avec ce qui suit: +  * Dans nano, on édite le fichier avec ce qui suit et qui fonctionne au 16/10/2025
-<​code>​ [Unit]+<​code>​[Unit]
 Description=Lecteur de samples Waxmonde v1.0 Description=Lecteur de samples Waxmonde v1.0
 After=alsa-restore.service After=alsa-restore.service
 +
 [Service] [Service]
-ExecStart=/​usr/​bin/​python3 /home/waxmonde/samples/​gpio_music_box08.py +ExecStart=/​usr/​bin/​python3 /home/patch/waxmonde/​gpio_music_box08.py 
-WorkingDirectory=/​home/​waxmonde/​samples +WorkingDirectory=/​home/patch/​waxmonde/​ 
-User=waxmonde+User=patch
  
 [Install] [Install]
 WantedBy=multi-user.target WantedBy=multi-user.target
 +
 </​code>​ </​code>​
  
Ligne 281: Ligne 291:
 Le projet va maintenant s'​installer dans une radio dont le haut-parleur est sous 4 Ohms pour une puissance de 2W. Le projet va maintenant s'​installer dans une radio dont le haut-parleur est sous 4 Ohms pour une puissance de 2W.
 Il y a une carte qui correspond à ces paramètres at qui s'​appelle la Audio Amp Shim, de chez Pimoroni. Elle prend peu de place, communique en i2s et sert d'​amplificateur de bonne qualité. Il y a une carte qui correspond à ces paramètres at qui s'​appelle la Audio Amp Shim, de chez Pimoroni. Elle prend peu de place, communique en i2s et sert d'​amplificateur de bonne qualité.
-Il est à noter que le i2s a besoin de 3 broche ​GPIO pour fonctionner. Voici la documentation à ce sujet: [[https://​pinout.xyz/​pinout/​audio_amp_shim|Pin Out Audio Amp Shim]]+Il est à noter que le i2s a besoin de 3 broches ​GPIO pour fonctionner. Voici la documentation à ce sujet: [[https://​pinout.xyz/​pinout/​audio_amp_shim|Pin Out Audio Amp Shim]]
  
-Ce sont donc des ports que nous ne pourrons pas utiliser pour d'​autres fonctionnalités,​ comme des boutons par exemple.+Ce sont donc des ports que nous ne pourrons pas utiliser pour d'​autres fonctionnalités,​ comme des boutons par exemple. Il faut donc aussi désactiver le SPI, sans quoi, les GPIO normalement utilisés par ce protocole seront vu comme utilisés par lgpio et le script se lancera puis s'​arrêtera.
  
 Il faudra aussi brider le volume de sortie, puisque la puissance admissible par le haut-parleur est inférieure à la puissance maximale délivrable par l'​amplificateur de la carte. Il faudra aussi brider le volume de sortie, puisque la puissance admissible par le haut-parleur est inférieure à la puissance maximale délivrable par l'​amplificateur de la carte.
  
 ===Nouvelle configuration de Alsa=== ===Nouvelle configuration de Alsa===
 +
 +Il faut commencer par modifier le fichier /​boot/​firmware/​config.txt pour dèsactiver les autres cartes son.
 +<​code> ​
 +sudo nano /​boot/​firmware/​config.txt</​code>​
 +
 +<​code>​
 +# For more options and information see
 +# http://​rptl.io/​configtxt
 +# Some settings may impact device functionality. See link above for details
 +
 +# Uncomment some or all of these to enable the optional hardware interfaces
 +dtparam=i2c_arm=on
 +dtparam=i2s=on
 +dtparam=spi=off
 +
 +# Enable audio (loads snd_bcm2835)
 +
 +
 +# Additional overlays and parameters are documented
 +# /​boot/​firmware/​overlays/​README
 +
 +# Automatically load overlays for detected cameras
 +camera_auto_detect=1
 +
 +# Automatically load overlays for detected DSI displays
 +display_auto_detect=1
 +
 +# Automatically load initramfs files, if found
 +auto_initramfs=1
 +
 +# Enable DRM VC4 V3D driver
 +#​dtoverlay=vc4-kms-v3d
 +#​max_framebuffers=2
 +dtoverlay=hifiberry-dac
 +dtoverlay=i2s-mmap
 +force_eeprom_read=0
 +# Don't have the firmware create an initial video= setting in cmdline.txt.
 +# Use the kernel'​s default instead.
 +disable_fw_kms_setup=1
 +
 +# Run in 64-bit mode
 +arm_64bit=1
 +
 +# Disable compensation for displays with overscan
 +disable_overscan=1
 +
 +# Run as fast as firmware / board allows
 +arm_boost=1
 +
 +[cm4]
 +# Enable host mode on the 2711 built-in XHCI USB controller.
 +# This line should be removed if the legacy DWC2 controller is required
 +# (e.g. for USB device mode) or if USB support is not required.
 +otg_mode=1
 +
 +[all]
 +</​code>​
 +
 +Il y a des explications par ici: [[https://​www.hifiberry.com/​docs/​software/​configuring-linux-3-18-x/​|HiFiBerry]]
 +
 Puisque nous n'​utilisons plus la sortie casque pour alimenter le haut-parleur,​ il faut retourner dans le fichier de configuration de alsa. Avant cela, il faut se souvenir que cela n'est pas seulement une marque de levure chimique mais bien un gestionnaire de cartes son. Il y a pas mal de documentation à ce sujet ici: [[https://​www.alsa-project.org/​wiki/​Main_Page|Site du porjet Alsa]] et ici: [[https://​www.alsa-project.org/​wiki/​Asoundrc|Alsasoundrc]] qui explique comment fonctionne le fichier de configuration de Alsa. Très intéressant! Puisque nous n'​utilisons plus la sortie casque pour alimenter le haut-parleur,​ il faut retourner dans le fichier de configuration de alsa. Avant cela, il faut se souvenir que cela n'est pas seulement une marque de levure chimique mais bien un gestionnaire de cartes son. Il y a pas mal de documentation à ce sujet ici: [[https://​www.alsa-project.org/​wiki/​Main_Page|Site du porjet Alsa]] et ici: [[https://​www.alsa-project.org/​wiki/​Asoundrc|Alsasoundrc]] qui explique comment fonctionne le fichier de configuration de Alsa. Très intéressant!
  
Ligne 301: Ligne 371:
  
 Il n'y a que cela, donc notre carte son va s'​appeler 0:0. Il n'y a que cela, donc notre carte son va s'​appeler 0:0.
-Nous modifions donc le fichier etc/​asound.conf+Nous modifions donc le fichier ​/etc/​asound.conf
  
-<​code>​sudo nano etc/​asound.conf</​code>​+<​code>​sudo nano /etc/​asound.conf</​code>​
  
 <​code>​pcm.!default { <​code>​pcm.!default {
  • openatelier/projet/sampler_puredata_pour_raspberry_pi_sans_ecran.1756809943.txt.gz
  • Dernière modification: 2025/09/02 12:45
  • par cyril