Sisukord:
2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
Tere kõigile, Selles juhendis selgitan, kuidas tegin Raspberry Pi abil taasesituse salvestaja. Seade on Raspberry Pi mudel B+, mille peal on 7 vajutusnuppu, kõlar on ühendatud ühe Pi USB -pordiga ja mikrofon on ühendatud teise USB -pordiga. Iga nupp on seotud heliga, nii et see võib esitada 7 erinevat heli. Heli esitatakse pärast lühikest nupuvajutust. Uue heli salvestamiseks vajutage lihtsalt nuppu üle 1 sekundi, salvestage pärast piiksu ja vabastage nupp salvestuse lõpus. See ei muutu lihtsamaks!
Samm: vajalik materjal
Selle projekti jaoks vajasin:
- A Raspberry Pi mudel B + ja micro SD -kaart - 29,95 $ + 9,95 $
- Raspberry Pi plastkott - 7,95 dollarit
- USB kõlarid - 12,50 dollarit
- USB -mikrofon - 5,95 dollarit
- Poole suurune perma-proto plaat-4,50 dollarit
- 7 hetkelist nuppu - 2,50 dollarit
Mul oli ka vaja:
- Mingi elektrijuhe
- Täisnurksed naissoost päised
- Nööbikarbi jaoks natuke puitu, musta värvi ja liimi
- Jootekolb ja jootekolb
2. samm: nupud
Kasutatavad nupud on üsna kõrged (6 mm), nii et need võivad korpuse paksusest läbi minna.
Asetasin oma 7 nuppu perma-proto tahvlile, mis on nagu leivaplaat, välja arvatud komponendid, mis on sellele joodetud. See on vastupidavam kui leivalaud ja odavam kui trükkplaadi printimine. Iga nupp ühendab Raspberry Pi GPIO -ga. Mul pole siin takistoreid, kuna Pi-l on juba sisemised tõmbe-/allalaadimistakistid, mis programmis seatakse. Sel juhul olen määranud need tõmbamiseks (vt programmi allpool).
Nupud asetatakse iga 4 rea või iga 0,4 tolli järel.
3. samm: nuppude ümbris
Tegin nööpidele väga lihtsa ümbrise, vineerplaatide ja puidust nelinurkse tüübliga. Tüübli suurus peab olema piisavalt suur, et sellesse mahuks nööpide alus ja laud, kuid piisavalt väike, et nööp korpusest välja lasta. Ma kasutasin 1/4 tolli x 1/4 tüüblit.
Pärast plaadi korpuse sobivuse kontrollimist liimitakse tüüblid aluslehe külge. Seejärel puuritakse ülemisele lehele augud (tahvli abil saab täpselt teha jälgi iga 0,4 tolli järel). Kõik puitdetailid on värvitud, plaat paigutatud korpusesse ja pealmine leht liimitud selle peale.
Samm: Vaarika Pi
Ma ei tahtnud juhtmeid otse Pi külge joota, juhuks, kui soovin tulevikus Pi -d millekski muuks kasutada. Seetõttu jootsin juhtmed täisnurksete naissoost päiste külge ja ühendasin päised Pi külge.
Kasutatavad GPIO -d on 21, 26, 20, 19, 13, 6 ja 5. Samuti kasutatakse maandusnõela.
Mikrofon ja kõlar on lihtsalt ühendatud 2 -st neljast USB -pordist.
Pi saab toite mikro-USB-pistikupesa kaudu
Samm: programmeerimine
Pi programmeerimiseks ühendasin selle Etherneti kaabli abil Internetiga ja juhtisin seda kaugarvutist VNC vaataja abil. Kuid te ei saa seda seadistust kasutada esmakordsel Pi -ga ühenduse loomisel, kuna OS pole veel installitud ja SSH pole keelatud. Seega peate vähemalt esimest korda ühendama ekraani, klaviatuuri ja hiire.
Õige helikaardi heli salvestamise ja esitamise käskude leidmine oli üsna tülikas. Need käsklused töötasid minu jaoks:
-
aplay -D plughw: CARD = Device_1, DEV = 0 0.wav
Mängib 0.wav
-
arecord 0.wav -D sys vaikimisi: CARD = 1 -f cd -d 20
Salvestab CD -kvaliteediga faili 0.wav maksimaalselt 20 sekundiks
Helifailid asuvad vaikekataloogis (/home/pi). Vajalik on ka piiksu helifail, mis on paigutatud vaikekataloogi ja nimega beep.wav.
Pythoni kood ise on järgmine:
pythoni kood Raspberry Pi taasesituse salvestajale
RPi. GPIO importimine GPIO -na |
impordi aeg |
import os |
#muutujad: |
butPressed = [True, True, True, True, True, True, True, True]#kui vajutatakse nuppu i, siis on vajutatud vale |
pin = [26, 19, 13, 6, 5, 21, 20] #GPIO tihvtid iga nupu kohta |
recordBool = False#Tõsi, kui kirje on pooleli |
GPIO.setmode (GPIO. BCM) |
i jaoks vahemikus (0, 7): |
GPIO.seadistus (tihvt , GPIO. IN, pull_up_down = GPIO. PUD_UP)#määrab Pi sisetakistused üles tõmbamiseks |
kuigi tõsi: |
i jaoks vahemikus (0, 7): |
butPressed = GPIO.input (pin )#kontrollib, kas nuppu vajutatakse |
kui vajutatakse == Vale:#kui nuppu vajutatakse |
previousTime = time.time () |
samas kui vajutatud == Vale ja recordBool == Vale: |
butpressed = GPIO.input (pin ) |
if time.time () - previousTime> 1.0:#kui nuppu vajutatakse üle sekundi, siis recordBool on True |
recordBool = Tõsi |
kui recordBool == Tõsi: #if recordBool on tõene, mängib see piiksu ja seejärel salvestab |
os.system ("aplay -D plughw: CARD = Device_1, DEV = 0 beep.wav") |
os.system ("arecord %d.wav -D sysdefault: CARD = 1 -f cd -d 20 &" %i) #rekordid maksimaalselt 20 sekundiks failis i.wav, CD kvaliteediga |
samal ajal kui vajutatud == Vale: |
butpressed = GPIO.input (pin ) |
os.system ("pkill -9 arecord")#kirje peatatakse, kui nupp lahti lastakse või 20 sekundi pärast |
recordBool = Vale |
else: #if recordBool on vale, ta esitab heli i.wav |
os.system ("aplay -D plughw: CARD = Device_1, DEV = 0 %d.wav" %i) |
aeg. uni (0,1) |
vaata rawPlayback salvestajat, mille hostiks on GitHub ❤
Samm: käivitage Pythoni skript igal käivitamisel
Pythoni skripti käivitamiseks iga Pi käivitamisel sisestatakse järgmised read faili playback.desktop kaustas /home/pi/.config/autostart/
käivitab playback.py Raspberry Pi käivitamisel
[Töölaua sisestus] |
Kodeerimine = UTF-8 |
Tüüp = rakendus |
Nimi = taasesitus |
Kommentaar = See on taasesituse rakendus |
Exec = python /home/pi/playback.py |
StartupNotify = vale |
Terminal = tõsi |
Varjatud = vale |
vaadake rawplayback.desktopi, mida GitHub haldab koos ❤ -ga
Samm: lõpetage märkus
Palun rääkige kommentaaride osas, mida arvate sellest projektist, andke mulle oma soovitustest teada ja hääletage minu poolt Raspberry Pi konkursil, kui see teile meeldis.
Ootan teid lugema!