De Python à C (sur Raspberry)
Bonjour,
je code depuis plus d'un an en Python sur un Raspberry pi 3b+, et depuis peu sur un Zero. Et donc forcement c'est pas très rapide le Python dessus.
le projet est une petite boite à rythme: Des boutons (sur les GPIO) et des fichier .wav à déclenché "rapidement" suite à l'appuis des boutons donc...
En python ça marche mais y a une latence trop importante sur le Zero, sur le 3b+ ça passe encore, et je pense que si j'investi un 4 ça le fera.
Mais le Zero est intéressant pour la petite taille :mrgreen:
Mes question ou demande d'aide sont:
- pensez-vous qu'en codant en C la parti Bouton/lecture de .wav je gagnerai au niveau de la latence?
- est-il possible de faire un script C utilisable avec mon script Python, comme Cython ou quelque chose de similaire..
-j'aimerai aussi un petit coup de main sympa pour m'aider à faire un mini script C pour comparer la latence sur le Zero.
en Python voila mon script:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| from gpiozero import Button
import pygame.mixer
pygame.mixer.init()
userCHANNEL1 = pygame.mixer.Channel(0)
userCHANNEL2 = pygame.mixer.Channel(1)
userCHANNEL3 = pygame.mixer.Channel(2)
userCHANNEL4 = pygame.mixer.Channel(3)
snd1 = pygame.mixer.Sound('son1.wav')
snd2 = pygame.mixer.Sound('son2.wav')
snd3 = pygame.mixer.Sound('son3.wav')
snd4 = pygame.mixer.Sound('son4.wav')
def MakeSound():
if pad1.is_pressed:userCHANNEL1.play(snd1)
elif pad2.is_pressed:userCHANNEL2.play(snd2)
elif pad3.is_pressed:userCHANNEL3.play(snd3)
elif pad4.is_pressed:userCHANNEL4.play(snd4)
pad1 = Button(23)
pad2 = Button(18)
pad3 = Button(24)
pad4 = Button(15)
pad1.when_pressed = MakeSound
pad2.when_pressed = MakeSound
pad3.when_pressed = MakeSound
pad4.when_pressed = MakeSound |
je ne sais pas par ou commencer pour faire la même chose en C.
J'utilise les lib GPIOzero et Pygame inclue dans Raspbian Buster par facilité.
Donc je suppose qu'il me faut des lib pour le C, mais je suis perdu, sans compter que "C" pour google c'est pas très parlant^^
voila si vous pouviez m'orienter sur des exemple ou tuto orienter spécifiquement pour Coder un petit test histoire de voir si en C le Raspberry Pi Zero peu faire tourner mon application.
merci a vous pour votre aide, je suis totalement débutant donc il manque surement quelque information dans mon message, n'hésitez pas à me dire quoi pour avancer ;)