Enregistreur de lecture avec Raspberry Pi : 7 étapes (avec photos)
Enregistreur de lecture avec Raspberry Pi : 7 étapes (avec photos)
Anonim
Image
Image
Matériel nécessaire
Matériel nécessaire

Salut à tous, Dans ce instructable, j'explique comment j'ai fait un enregistreur de lecture à l'aide de Raspberry Pi. L'appareil est un Raspberry Pi modèle B+, avec 7 boutons poussoirs sur le dessus, un haut-parleur connecté à l'un des ports USB du Pi et un microphone connecté à un autre port USB. Chaque bouton est associé à un son, il peut donc jouer 7 sons différents. Les sons sont joués après une brève pression sur le bouton. Pour enregistrer un nouveau son, il suffit d'appuyer sur le bouton pendant plus d'1 seconde, d'enregistrer après le bip, et de relâcher le bouton à la fin de l'enregistrement. Rien de plus simple que ça !

Étape 1: Matériel nécessaire

Matériel nécessaire
Matériel nécessaire
Matériel nécessaire
Matériel nécessaire

Pour ce projet j'avais besoin de:

  • Un Raspberry Pi modèle B+ et une carte micro SD - 29,95 $ + 9,95 $
  • Un boîtier en plastique Raspberry Pi - 7.95 $
  • Haut-parleurs USB - 12.50 $
  • Un micro USB - 5.95 $
  • Une planche perma-proto demi-taille - 4.50 $
  • 7 boutons poussoirs momentanés - 2.50 $

J'avais aussi besoin de:

  • Quelques fils électriques
  • Embases femelles à angle droit
  • Du bois, de la peinture noire et de la colle pour l'étui à boutons
  • Un fer à souder et de la soudure

Étape 2: les boutons

Les boutons
Les boutons
Les boutons
Les boutons
Les boutons
Les boutons

Les boutons utilisés sont assez hauts (6 mm) pour pouvoir traverser l'épaisseur du boîtier.

J'ai placé mes 7 boutons sur une carte perma-proto, qui ressemble à une planche à pain, sauf que les composants sont soudés dessus. C'est plus robuste qu'une maquette et moins cher que l'impression d'un circuit imprimé. Chaque bouton relie la masse à un GPIO sur le Raspberry Pi. Je n'ai pas de résistances ici car le Pi a déjà des résistances internes pull-up/down qui seront définies dans le programme. Dans ce cas, je les ai mis en pull-up (voir programme ci-dessous).

Les boutons sont placés toutes les 4 rangées, ou tous les 0,4 pouces.

Étape 3: Le cas des boutons

L'étui à boutons
L'étui à boutons
L'étui à boutons
L'étui à boutons
L'étui à boutons
L'étui à boutons

J'ai fait un étui très simple pour les boutons, avec des feuilles de contreplaqué et une cheville carrée en bois. La taille du goujon doit être suffisamment grande pour contenir la base du bouton et la planche, mais suffisamment petite pour laisser le bouton sortir du boîtier. J'ai utilisé une cheville de 1/4 po x 1/4 po.

Après s'être assuré que la planche tient dans le boîtier, les chevilles sont collées à la feuille de base. Des trous sont ensuite percés sur la feuille supérieure (la planche peut être utilisée pour faire des marques avec précision tous les 0,4 pouces). Toutes les pièces en bois sont peintes, la planche placée dans le boîtier et la feuille supérieure collée dessus.

Étape 4: Le Raspberry Pi

Le Raspberry Pi
Le Raspberry Pi
Le Raspberry Pi
Le Raspberry Pi
Le Raspberry Pi
Le Raspberry Pi

Je ne voulais pas souder les fils directement au Pi, au cas où je voudrais utiliser le Pi pour autre chose à l'avenir. J'ai donc soudé les fils à des embases femelles à angle droit et branché les embases sur le Pi.

Les GPIO utilisés sont 21, 26, 20, 19, 13, 6 et 5. La broche de masse est également utilisée.

Le microphone et le haut-parleur sont simplement branchés sur 2 des 4 ports USB.

Le Pi est alimenté par la prise micro-usb

Étape 5: Programmation

Pour programmer le Pi, je l'ai connecté à Internet à l'aide d'un câble Ethernet et je l'ai contrôlé depuis un ordinateur distant à l'aide de la visionneuse VNC. Cependant, vous ne pouvez pas utiliser cette configuration la première fois que vous vous connectez au Pi, car le système d'exploitation n'est pas encore installé et SSH n'est pas désactivé. Il vous faudra donc connecter un écran, un clavier et une souris, au moins la première fois.

C'était assez compliqué de trouver les commandes pour enregistrer et jouer un son sur la bonne carte son. Voici les commandes qui ont fonctionné pour moi:

  • aplay -D plughw:CARD=Device_1, DEV=0 0.wav

    Joue 0.wav

  • acord 0.wav -D sysdefault:CARD=1 -f cd -d 20

    Enregistre pendant 20 secondes maximum dans le fichier 0.wav, avec une qualité cd

Les fichiers son sont situés dans le répertoire par défaut (/home/pi). Un fichier son pour le bip est également nécessaire, placé dans le répertoire par défaut et appelé beep.wav.

Le code python lui-même est le suivant:

code python pour un enregistreur de lecture Raspberry Pi

importer RPi. GPIO en tant que GPIO
heure d'importation
importer le système d'exploitation
#variables:
butPressed = [True, True, True, True, True, True, True]#si le bouton i est enfoncé, alors butPressed est False
broche = [26, 19, 13, 6, 5, 21, 20]#broches GPIO de chaque bouton
recordBool = False#True si un enregistrement est en cours
GPIO.setmode(GPIO. BCM)
pour i dans la plage (0, 7):
GPIO.setup(pin, GPIO. IN, pull_up_down=GPIO. PUD_UP)#définit les résistances internes de Pi sur pull-up
tant que vrai:
pour i dans la plage (0, 7):
butPressed = GPIO.input(pin)#vérifie si un bouton est enfoncé
if butPressed == False:#si un bouton est enfoncé
heure précédente = heure.heure()
while butPressed == False et recordBool == False:
butPressed = GPIO.input(pin)
if time.time() - previousTime > 1.0:#si le bouton est enfoncé pendant plus d'une seconde, alors recordBool vaut True
recordBool = True
if recordBool == True:#if recordBool est True, il émet un bip puis enregistre
os.system("aplay -D plughw:CARD=Device_1, DEV=0 bip.wav")
os.system("arecord %d.wav -D sysdefault:CARD=1 -f cd -d 20 &" %i)#enregistre pendant 20 secondes maximum dans le fichier i.wav, avec une qualité cd
while butPressed == False:
butPressed = GPIO.input(pin)
os.system("pkill -9 arecord")#l'enregistrement est arrêté lorsque le bouton est relâché, ou après 20 secondes
recordBool = False
else:#si recordBool est False, il joue le son i.wav
os.system("aplay -D plughw:CARD=Device_1, DEV=0 %d.wav" %i)
temps.sommeil(0.1)

voir rawPlayback recorder hébergé avec ❤ par GitHub

Étape 6: Exécutez le script Python à chaque démarrage

Pour exécuter le script python au démarrage de chaque Pi, les lignes suivantes sont placées dans un fichier appelé playback.desktop dans le dossier /home/pi/.config/autostart/

exécute playback.py au démarrage de Raspberry Pi

[Entrée de bureau]
Encodage=UTF-8
Type=Application
Nom=Lecture
Comment=Ceci est une application de lecture
Exec=python /home/pi/playback.py
StartupNotify=false
Terminal=vrai
Caché=faux

voir rawplayback.desktop hébergé avec ❤ par GitHub

Étape 7: Note de fin

Dites-moi ce que vous pensez de ce projet dans la section des commentaires, faites-moi part de vos recommandations et votez pour moi au concours Raspberry Pi si vous l'avez aimé.

Au plaisir de vous lire !