Mundarija:
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-13 06:58
Hammaga salom, Bu yo'riqnomada men qanday qilib Raspberry Pi yordamida yozib oluvchi yozganimni tushuntiraman. Qurilma Raspberry Pi modeli B+bo'lib, tepasida 7 ta tugma, Pi -ning usb portlaridan biriga ulangan karnay va boshqa usb portlariga ulangan mikrofon mavjud. Har bir tugma tovush bilan bog'liq, shuning uchun u 7 xil tovushni ijro etishi mumkin. Ovozlar tugmani qisqa bosgandan so'ng eshitiladi. Yangi ovoz yozish uchun tugmani 1 soniyadan ko'proq bosib turing, ovozli signaldan keyin yozib oling va yozuv oxiridagi tugmani qo'yib yuboring. Undan ko'ra oddiyroq narsa yo'q!
1 -qadam: kerakli materiallar
Ushbu loyiha uchun menga kerak edi:
- Raspberry Pi modeli B + va micro SD karta - 29,95 $ + 9,95 $
- Raspberry Pi plastik sumkasi - 7,95 dollar
- USB karnaylari - 12,50 dollar
- USB mikrofon - 5,95 dollar
- Yarim o'lchamli perma-proto taxta-4,50 dollar
- 7 lahzali tugma - 2,50 dollar
Menga ham kerak edi:
- Ba'zi elektr simlari
- To'g'ri burchakli ayol sarlavhalar
- Tugma qutisi uchun bir oz yog'och, qora bo'yoq va elim
- Lehimlash temir va lehim
2 -qadam: tugmalar
Ishlatiladigan tugmalar ancha baland (6 mm), ular korpus qalinligidan o'tishi mumkin.
Men 7 tugmachani perma-proto taxtaga joylashtirdim, u non paneliga o'xshaydi, lekin uning tarkibiy qismlari lehimlangan. Bu non taxtasidan ko'ra mustahkamroq va kompyuterni chop etishdan ko'ra arzonroq. Har bir tugma Raspberry Pi -dagi GPIO -ga ulanadi. Menda bu erda qarshilik yo'q, chunki Pi dasturda o'rnatiladigan ichki tortish/tushirish rezistorlariga ega. Bu holda men ularni tortib olishni o'rnatdim (pastdagi dasturga qarang).
Tugmalar har 4 qatorda yoki har 0,4 dyuymda joylashtiriladi.
3 -qadam: Tugmalar ishi
Men tugmachalar uchun kontrplakdan yasalgan choyshab va yog'ochdan yasalgan dübel bilan juda oddiy korpus yasadim. Dübelning o'lchami tugmachaning tagini va taxtani o'z ichiga oladigan darajada katta bo'lishi kerak, lekin tugmachani korpusdan tashqariga chiqarish uchun etarlicha kichik bo'lishi kerak. Men 1/4 dyuymli x 1/4 dübel ishlatardim.
Kengash korpusga mos kelishiga ishonch hosil qilgandan so'ng, dublonlar taglik varag'iga yopishtiriladi. Keyin yuqori varaqda teshiklar ochiladi (taxtadan har 0,4 dyuymda aniq belgilash uchun foydalanish mumkin). Yog'ochdan yasalgan barcha qismlar bo'yalgan, taxta korpusga joylashtirilgan va ustki varaq uning ustiga yopishtirilgan.
4 -qadam: Raspberry Pi
Agar men kelajakda Pi -ni boshqa narsaga ishlatmoqchi bo'lsam, simlarni to'g'ridan -to'g'ri Pi ga lehimlashni xohlamadim. Men shuning uchun simlarni to'g'ri burchakli ayol sarlavhalarga lehimladim va sarlavhalarni Pi-ga uladim.
Qo'llaniladigan GPIO 21, 26, 20, 19, 13, 6 va 5. Tuproq pimi ham ishlatiladi.
Mikrofon va karnay 4 usb portining 2 tasiga ulangan.
Pi mikro-usb rozetkasi orqali quvvatlanadi
5 -qadam: Dasturlash
Pi dasturlash uchun men uni chekilgan kabel yordamida internetga uladim va uni VNC tomoshabin yordamida masofali kompyuterdan boshqarardim. Biroq, siz Pi -ga birinchi marta ulanganingizda ushbu sozlamadan foydalana olmaysiz, chunki OS hali o'rnatilmagan va SSH o'chirilmagan. Shunday qilib, hech bo'lmaganda birinchi marta ekran, klaviatura va sichqonchani ulashingiz kerak bo'ladi.
To'g'ri ovoz kartasida ovoz yozish va ijro etish buyruqlarini topish juda qiyin edi. Bu men uchun ishlaydigan buyruqlar:
-
aplay -D plughw: CARD = Device_1, DEV = 0 0.wav
0.wav o'ynaydi
-
arecord 0.wav -D sysdefault: CARD = 1 -f cd -d 20
0.wav faylida maksimal 20 soniya davomida yozib olinadi, sd sifati
Ovozli fayllar standart katalogda joylashgan (/home/pi). Ovozli fayl ham kerak bo'ladi, u standart katalogga joylashtirilgan va beep.wav deb nomlangan.
Python kodining o'zi quyidagicha:
Raspberry Pi ijro etish yozuvchisi uchun python kodi
RPi. GPIO -ni GPIO sifatida import qilish |
import vaqti |
import qilish os |
#o'zgaruvchilar: |
butPressed = [True, True, True, True, True, True, True] #if tugmasi i bosilsa, but Buted noto'g'ri |
pin = [26, 19, 13, 6, 5, 21, 20] Har bir tugmachaning #GPIO pinlari |
recordBool = False#True, agar yozuv davom etayotgan bo'lsa |
GPIO.setmode (GPIO. BCM) |
i uchun (0, 7): |
GPIO.setup (pin , GPIO. IN, pull_up_down = GPIO. PUD_UP)#Pi ichki rezistorlarini tortish uchun o'rnatadi |
rost bo'lsa: |
i uchun (0, 7): |
butPressed = GPIO.input (pin )#tugma bosilganligini tekshiradi |
if butPressed == False:#agar tugma bosilsa |
previousTime = time.time () |
butPressed == False va recordBool == False: |
lekin bosilgan = GPIO.input (pin ) |
if time.time () - previousTime> 1.0:#agar tugma bir soniyadan ko'proq bosilsa, recordBool rost |
recordBool = To'g'ri |
if recordBool == To'g'ri: #if recordBool rost bo'lsa, u ovozli signal chiqaradi va keyin yozib oladi |
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)#i.wav faylida maksimal 20 soniya davomida#CD sifati bilan#qayd qilinadi |
butPressed == False: |
lekin bosilgan = GPIO.input (pin ) |
os.system ("pkill -9 arecord")#tugma qo'yilganda yoki 20 soniyadan keyin yozuv to'xtatiladi |
recordBool = noto'g'ri |
boshqa: #if recordBool False bo'lsa, u i.wav tovushini o'ynaydi |
os.system ("aplay -D plughw: CARD = Device_1, DEV = 0 %d.wav" %i) |
uyqu (0.1) |
GitHub ❤ bilan joylashtirilgan rawPlayback yozuvchisini ko'rish
6 -qadam: Har bir ishga tushirishda Python skriptini ishga tushiring
Python skriptini har bir Pi ishga tushganda ishga tushirish uchun /home/pi/.config/autostart/ papkasida playback.desktop nomli faylga quyidagi satrlar qo'yiladi.
Raspberry Pi ishga tushganda playback.py -ni ishga tushiradi
[Ish stoliga kirish] |
Kodlash = UTF-8 |
Turi = Ilova |
Ism = ijro |
Sharh = Bu ijro uchun dastur |
Exec = python /home/pi/playback.py |
StartupNotify = noto'g'ri |
Terminal = rost |
Yashirin = noto'g'ri |
GitHub ❤ bilan joylashtirilgan rawplayback.desktop -ni ko'rish
7 -qadam: Eslatmani tugating
Iltimos, sharhlar bo'limida ushbu loyiha haqida o'z fikringizni ayting, o'z tavsiyalaringizni menga ayting va agar sizga yoqsa, Raspberry Pi tanlovida menga ovoz bering.
Sizni o'qishni orziqib kutaman!