Pas de son au lancement d'un script python au démarrage  [RESOLU]

Python est le langage de prédilection du Raspberry Pi

Modérateurs : Francois, Manfraid

Répondre
Fred55
Messages : 4
Enregistré le : mer. 30 juin 2021 06:35

Pas de son au lancement d'un script python au démarrage

Message par Fred55 » mer. 30 juin 2021 10:49

Bonjour,

J'ai écrit un script python qui fonctionne très bien lorsqu'il est lancé à partir de l'interface graphique avec l'Idle ou depuis le terminal. Ce script lance entre autre la lecture d'un fichier son. Jusqu' là, tout est ok. L'idée de script est de réalisé un "Repasse hirondelle" pour diffuser le chant des hirondelles à certains moments de la journée pour les attirer et qu'elles nichent à proximité. Tout est dit. Pour ce qui suit, ce script est limité à la lecture d'un fichier son, ce qui me pose problème.

En effet, ce script doit s'exécuter au démarrage de la raspberry. J'ai utilisé cette méthode: https://www.raspberrypi-france.fr/lance ... pberry-pi/ . Le script est bien exécuté au démarrage (aucun doute) mais pas de son lors de la lecture du fichier son. J'ai essayé avec Pygame ou mpg321, même résultat.

J'ai essayé plusieurs solutions mais aucune ne fonctionne. Je penche vers un problème de la configuration de la sotie son au démarrage mais je sèche...

Une idée ?

Merci d'avance

piper
Raspinaute
Messages : 645
Enregistré le : sam. 5 juin 2021 18:57

Re: Pas de son au lancement d'un script python au démarrage

Message par piper » mer. 30 juin 2021 11:46

Bonjour,
Donc tu as mis ceci dans la crontab :

Code : Tout sélectionner

@reboot sh /home/pi/lancement.sh > /home/pi/logs/log.txt 2>&1
Donc tu a un fichier de log qui contient à la fois la sortie 1 (sortie normale de ton script si tu affiches des choses) et la sortie 2 (les erreurs éventuelles)
Tu peux donc regarder ce fichier de log et voir s'i précise un problème.

Avec @reboot, tu risques de rencontrer le soucis que le pilote son n'est pas disponible au moment où le script se lance.
Comme tu ne souhaite pas un lancement au boot mais à certaines heures, tentes ta chance avec un truc du genre (c'est un lancement toutes les 3 minutes)

Code : Tout sélectionner

*/3 * * * * bash /home/pi/monscript > /home/pi/log.txt 2>&1
Une question aussi, tu as mis ça dans la crontab de quel utilisateur ?
Peut-être que l'utilisateur en question n'a pas le droit de faire ce que tu demandes ? Le fichier de log en dira plus.
3 Pi4 : Emby / Samba , Librelec, Android TV
3 Pi3 : Hifiberry /OSMC, Games station, Samba / VPN / HotSpot Wifi
2 Pi2 : RFID, radio reveil (PiReveil)
1 Pi0 : traker GPS et acquisitions
1 Pi0 2W : tests divers
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32

Artemus24
Raspinaute
Messages : 1077
Enregistré le : ven. 15 sept. 2017 19:15

Re: Pas de son au lancement d'un script python au démarrage

Message par Artemus24 » mer. 30 juin 2021 19:49

Salut à tous.

Qu'est-ce que vous utilisez comme interface son ?

@+
RPI4B/8GB + Argon FanHAt
Rpi3A+, Rpi3B+
RPi 2B + Joy-It I2C Serial 20x4 2004 LCD Module
RPi 2B + PIM273 Unicorn HAT HD 16x16 Leds RGB
RPi0v1.3, RPi0W + LibreElec/Kodi, Rpi0WH + Tuner TV HAT
NodeMCU ESP32

Fred55
Messages : 4
Enregistré le : mer. 30 juin 2021 06:35

Re: Pas de son au lancement d'un script python au démarrage

Message par Fred55 » jeu. 1 juil. 2021 09:41

Bonjour,

Tout d'abord un complément d'informations qui manque dans mon premier message...

J'ai commencé avec la raspberry via un server VNC (je n'avais pas d'écran et de clavier à la maison). Le son fonctionne bien sur la prise jack lorsque je suis en mode graphique (sortie son prise jack sélectionnée). C'est sur cette sortie que j'attends le son pour y connecter des enceintes.

J'ai fait un test avec un écran sur port hdmi et surprise, le son est bien là avec le lancement via crontab. J'ai suivi les conseils de piper, toutes les 3 minutes je diffuse le son sur le port hdmi, et non la prise jack.

J'ai exécuté alors la commande sudo rapsi-config afin de sélectionner la bonne sortie son en mode console et ça marche à chaque redémarrage. Sauf que si j'ai le malheur de relancer l'interface graphique, la config par défaut repasse à la sortie son HDMI. Je suis obligé de reconfigurer la sortie son avec raspi-config en mode console.

J'ai eu l'idée (peut être pas bonne ...) d'ajouter une petite ligne dans mon script bash de lancement du fichier python : amixer cset numid=3 1 mais j'obtiens ce message dans mon fichier de logs : amixer : Cannot find the given element from control default.

Ça avance, mais si je pouvais imposer la bonne sortie son dans mon script bash, ce serait cool. En effet, je souhaite garder la connexion VNC afin de pouvoir modifier/reprogrammer la carte qui sera placé à 10 mètres de haut sans accès forcément facile. Et le mode console n'est accessible qu'avec un écran + clavier directement connectés, pas via VNC.

En attendant vos remarques, je continue de chercher.

Et merci pour votre aide !!!

A+

piper
Raspinaute
Messages : 645
Enregistré le : sam. 5 juin 2021 18:57

Re: Pas de son au lancement d'un script python au démarrage

Message par piper » jeu. 1 juil. 2021 23:36

Bonsoir,
J'essaierai ceci : ça devrait fonctionner, sous réserve.
editer le fichier /boot/config.txt (une copie de sauvegarde est la bienvenue avant !!! )

Code : Tout sélectionner

sudo cp /boot/config.txt  /boot/config_txt.bak

Code : Tout sélectionner

sudo nano /boot/config.txt
Trouver la ligne "hdmi_drive" (CTRL +W)
et mettre hdmi_drive=2
car :

Code : Tout sélectionner

 hdmi_drive=1 # pour ne pas sortir le son car le canal HDMI
 hdmi_drive=2           # pour sortir le son par le HDMI si supporté et activé
Evidement, après sauvegarde du fichier (CTRL+O, CTRL+X), il faut rebooter.
3 Pi4 : Emby / Samba , Librelec, Android TV
3 Pi3 : Hifiberry /OSMC, Games station, Samba / VPN / HotSpot Wifi
2 Pi2 : RFID, radio reveil (PiReveil)
1 Pi0 : traker GPS et acquisitions
1 Pi0 2W : tests divers
5 Arduinos dont 4 nanos et 1 Mega
1 ESP32

Fred55
Messages : 4
Enregistré le : mer. 30 juin 2021 06:35

Re: Pas de son au lancement d'un script python au démarrage  [RESOLU]

Message par Fred55 » ven. 2 juil. 2021 17:47

Bonjour,

Solution trouvée en parcourant de nombreux sites. J'ai découvert que certains lecteurs fonctionnaient très bien sous interface graphique et d'autres en mode console.

Sur un site, j'ai vu que je pouvais peux forcer la sortie audio avec omxplayer avec la commande :

[code=python] omxplayer /home/pi/hirondelles/HirondelleFenetre.mp3 -o alsa:hw:1,0 [/code]

Et là bingo. Exactement ce que je voulais. Le son sort par la fiche jack dans toutes les situations.

Je vais aussi essayer ta solution piper histoire d'être moins bête.

Merci à toi pour ton aide !

A+

Répondre

Retourner vers « Python »