สารบัญ:
- ขั้นตอนที่ 1: วัสดุที่จำเป็น
- ขั้นตอนที่ 2: ปุ่ม
- ขั้นตอนที่ 3: กรณีปุ่ม
- ขั้นตอนที่ 4: Raspberry Pi
- ขั้นตอนที่ 5: การเขียนโปรแกรม
- ขั้นตอนที่ 6: เรียกใช้สคริปต์ Python ในการเริ่มต้นแต่ละครั้ง
- ขั้นตอนที่ 7: ปิดท้ายหมายเหตุ
วีดีโอ: บันทึกการเล่นด้วย Raspberry Pi: 7 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
สวัสดีทุกคน, ในคำแนะนำนี้ ฉันอธิบายว่าฉันสร้างเครื่องบันทึกการเล่นโดยใช้ Raspberry Pi ได้อย่างไร อุปกรณ์นี้เป็นรุ่น Raspberry Pi รุ่น B+ โดยมีปุ่มกด 7 ปุ่มอยู่ด้านบน ลำโพงที่เชื่อมต่อกับพอร์ต USB ของ Pi และไมโครโฟนที่เชื่อมต่อกับพอร์ต USB อื่น แต่ละปุ่มเชื่อมโยงกับเสียง จึงสามารถเล่นเสียงต่างๆ ได้ 7 เสียง เสียงจะเล่นหลังจากกดปุ่มสั้นๆ หากต้องการบันทึกเสียงใหม่ เพียงกดปุ่มค้างไว้นานกว่า 1 วินาที แล้วบันทึกหลังจากเสียงบี๊บ แล้วปล่อยปุ่มเมื่อสิ้นสุดการบันทึก ไม่มีอะไรง่ายไปกว่านี้แล้ว!
ขั้นตอนที่ 1: วัสดุที่จำเป็น
สำหรับโครงการนี้ฉันต้องการ:
- Raspberry Pi รุ่น B+ และการ์ด micro SD - 29.95 $ + 9.95 $
- กล่องพลาสติก Raspberry Pi - 7.95 $
- ลำโพง USB - 12.50 $
- ไมโครโฟน USB - 5.95 $
- แผ่น Perma-proto ขนาดครึ่ง - 4.50 $
- 7 ปุ่มกดชั่วขณะ - 2.50 $
ฉันยังต้องการ:
- สายไฟฟ้าบางส่วน
- ส่วนหัวเพศหญิงมุมขวา
- ไม้ สีดำ และกาวบางส่วนสำหรับกล่องกระดุม
- หัวแร้งและหัวแร้ง
ขั้นตอนที่ 2: ปุ่ม
ปุ่มที่ใช้ค่อนข้างสูง (6 มม.) จึงสามารถทะลุผ่านความหนาของเคสได้
ฉันวางปุ่มทั้ง 7 ปุ่มไว้บนบอร์ด perma-proto ซึ่งเหมือนกับเขียงหั่นขนม ยกเว้นส่วนประกอบที่บัดกรีไว้ สิ่งนี้แข็งแกร่งกว่าเขียงหั่นขนมและราคาถูกกว่าการพิมพ์ pcb แต่ละปุ่มเชื่อมโยงกราวด์กับ GPIO บน Raspberry Pi ฉันไม่มีตัวต้านทานที่นี่เนื่องจาก Pi มีตัวต้านทานแบบดึงขึ้น/ลงภายในอยู่แล้ว ซึ่งจะตั้งค่าไว้ในโปรแกรม ในกรณีนี้ฉันได้ตั้งค่าให้ดึงขึ้น (ดูโปรแกรมด้านล่าง)
วางปุ่มทุกๆ 4 แถวหรือทุกๆ 0.4 นิ้ว
ขั้นตอนที่ 3: กรณีปุ่ม
ฉันทำเคสเรียบง่ายสำหรับกระดุมด้วยแผ่นไม้อัดและเดือยไม้สี่เหลี่ยม ขนาดเดือยต้องใหญ่พอที่จะใส่ฐานปุ่มและบอร์ดได้ แต่เล็กพอที่จะปล่อยให้ปุ่มอยู่ด้านบนสุดของเคสได้ ฉันใช้เดือย 1/4 นิ้ว x 1/4 นิ้ว
หลังจากตรวจสอบให้แน่ใจว่าบอร์ดเข้ากับเคสแล้ว เดือยจะติดกาวเข้ากับแผ่นฐาน จากนั้นเจาะรูบนแผ่นด้านบน (สามารถใช้กระดานทำเครื่องหมายทุกๆ 0.4 นิ้วได้อย่างแม่นยำ) ทาสีชิ้นส่วนไม้ทั้งหมด กระดานวางไว้ในกล่อง และแผ่นด้านบนติดกาวไว้ด้านบน
ขั้นตอนที่ 4: Raspberry Pi
ฉันไม่ต้องการบัดกรีสายไฟโดยตรงกับ Pi ในกรณีที่ฉันต้องการใช้ Pi เพื่ออย่างอื่นในอนาคต ดังนั้นฉันจึงบัดกรีสายไฟเข้ากับส่วนหัวของตัวเมียในมุมฉากและเสียบส่วนหัวของ Pi
GPIO ที่ใช้คือ 21, 26, 20, 19, 13, 6 และ 5 พินกราวด์ก็ใช้เช่นกัน
ไมโครโฟนและลำโพงเสียบเข้ากับพอร์ต usb 2 ใน 4 พอร์ต
Pi ใช้พลังงานจากเต้ารับ micro-usb
ขั้นตอนที่ 5: การเขียนโปรแกรม
ในการเขียนโปรแกรม Pi ฉันเชื่อมต่อกับอินเทอร์เน็ตโดยใช้สายอีเธอร์เน็ต และควบคุมจากคอมพิวเตอร์ระยะไกลโดยใช้โปรแกรมดู VNC อย่างไรก็ตาม คุณไม่สามารถใช้การตั้งค่านี้ในครั้งแรกที่คุณเชื่อมต่อกับ Pi เนื่องจากระบบปฏิบัติการยังไม่ได้ติดตั้งและ SSH ยังไม่สามารถใช้งานได้ ดังนั้น คุณจะต้องเชื่อมต่อหน้าจอ แป้นพิมพ์ และเมาส์ อย่างน้อยในครั้งแรก
การค้นหาคำสั่งเพื่อบันทึกและเล่นเสียงบนการ์ดเสียงที่ถูกต้องค่อนข้างยุ่งยาก นี่คือคำสั่งที่ใช้ได้ผลสำหรับฉัน:
-
aplay -D plughw:CARD=Device_1, DEV=0 0.wav
เล่น 0.wav
-
arecord 0.wav -D sysdefault:CARD=1 -f cd -d 20
บันทึกได้สูงสุด 20 วินาทีในไฟล์ 0.wav พร้อมคุณภาพซีดี
ไฟล์เสียงจะอยู่ในไดเร็กทอรีเริ่มต้น (/home/pi) ไฟล์เสียงสำหรับเสียงบี๊บก็จำเป็นเช่นกัน โดยวางไว้ในไดเร็กทอรีเริ่มต้นและเรียกว่า beep.wav
รหัสหลามเองมีดังต่อไปนี้:
รหัสหลามสำหรับเครื่องบันทึกการเล่น Raspberry Pi
นำเข้า RPi. GPIO เป็น GPIO |
เวลานำเข้า |
นำเข้าระบบปฏิบัติการ |
#ตัวแปร: |
butPressed = [True, True, True, True, True, True, True]#ถ้าปุ่ม i ถูกกด, butPressed เป็นเท็จ |
พิน = [26, 19, 13, 6, 5, 21, 20]#GPIO พินของแต่ละปุ่ม |
recordBool = False#True หากบันทึกอยู่ในระหว่างดำเนินการ |
GPIO.setmode(GPIO. BCM) |
สำหรับฉันอยู่ในช่วง (0, 7): |
GPIO.setup(pin, GPIO. IN, pull_up_down=GPIO. PUD_UP)#sets internal resistors ของ Pi เป็นแบบดึงขึ้น |
ในขณะที่จริง: |
สำหรับฉันอยู่ในช่วง (0, 7): |
butPressed = GPIO.input(pin)#ตรวจสอบว่ามีการกดปุ่มหรือไม่ |
if butPressed == False:#if a button is pressed |
เวลาก่อนหน้า = time.time() |
ในขณะที่ butPressed == False และ recordBool == False: |
butPressed = GPIO.input(พิน) |
ถ้า time.time() - PreviousTime > 1.0:# ถ้ากดปุ่มนานกว่าหนึ่งวินาที แล้ว recordBool จะเป็น True |
recordBool = จริง |
ถ้า recordBool == True:#if recordBool เป็น True จะเล่นเสียงบี๊บแล้วบันทึก |
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)#records สูงสุด 20 วินาทีในไฟล์ i.wav พร้อมคุณภาพซีดี |
ในขณะที่ butPressed == เท็จ: |
butPressed = GPIO.input(พิน) |
os.system("pkill -9 arecord")#บันทึกจะหยุดลงเมื่อปล่อยปุ่มหรือหลังจาก 20 วินาที |
recordBool = เท็จ |
อื่น:#ถ้า recordBool เป็นเท็จ จะเล่นเสียง i.wav |
os.system("aplay -D plughw:CARD=Device_1, DEV=0 %d.wav" %i) |
เวลานอน(0.1) |
ดูเครื่องบันทึก rawPlayback ที่โฮสต์ด้วย ❤ โดย GitHub
ขั้นตอนที่ 6: เรียกใช้สคริปต์ Python ในการเริ่มต้นแต่ละครั้ง
ในการรันสคริปต์ python เมื่อเริ่มต้น Pi แต่ละครั้ง บรรทัดต่อไปนี้จะถูกใส่ในไฟล์ชื่อ playback.desktop ในโฟลเดอร์ /home/pi/.config/autostart/
รัน play.py เมื่อเริ่มต้น Raspberry Pi
[รายการเดสก์ท็อป] |
การเข้ารหัส=UTF-8 |
Type=Application |
ชื่อ=เล่น |
ความคิดเห็น=นี่คือแอปพลิเคชันการเล่น |
Exec= python /home/pi/playback.py |
StartupNotify=false |
เทอร์มินัล=จริง |
ซ่อน=เท็จ |
ดู rawplayback.desktop โฮสต์ด้วย ❤ โดย GitHub
ขั้นตอนที่ 7: ปิดท้ายหมายเหตุ
โปรดบอกฉันว่าคุณคิดอย่างไรกับโครงการนี้ในส่วนความคิดเห็น แจ้งให้เราทราบถึงคำแนะนำของคุณ และโหวตให้ฉันในการประกวด Raspberry Pi หากคุณชอบ
รอคอยที่จะอ่านคุณ!
แนะนำ:
บ้านอัจฉริยะโดย Raspberry Pi: 5 ขั้นตอน (พร้อมรูปภาพ)
บ้านอัจฉริยะโดย Raspberry Pi: มีผลิตภัณฑ์หลายอย่างที่ทำให้แฟลตของคุณฉลาดขึ้น แต่ส่วนใหญ่เป็นโซลูชันที่เป็นกรรมสิทธิ์ แต่ทำไมคุณต้องเชื่อมต่ออินเทอร์เน็ตเพื่อเปลี่ยนไฟด้วยสมาร์ทโฟนของคุณ นั่นเป็นเหตุผลหนึ่งที่ทำให้ฉันสร้าง Smar ของตัวเอง
จอแสดงผลเกม LED ทำจากไม้ที่ขับเคลื่อนโดย Raspberry Pi Zero: 11 ขั้นตอน (พร้อมรูปภาพ)
จอแสดงผล LED สำหรับเล่นเกมแบบไม้ที่ขับเคลื่อนโดย Raspberry Pi Zero: โปรเจ็กต์นี้ใช้จอแสดงผล LED แบบ WS2812 ขนาด 20x10 พิกเซลที่มีขนาด 78x35 ซม. ซึ่งสามารถติดตั้งได้ง่ายในห้องนั่งเล่นเพื่อเล่นเกมย้อนยุค เมทริกซ์เวอร์ชันแรกนี้สร้างขึ้นในปี 2016 และสร้างขึ้นใหม่โดยคนอื่นๆ อีกหลายคน ประสบการณ์นี้
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): 6 ขั้นตอน (พร้อมรูปภาพ)
Bolt - DIY Wireless Charging Night Clock (6 ขั้นตอน): การชาร์จแบบเหนี่ยวนำ (เรียกอีกอย่างว่าการชาร์จแบบไร้สายหรือการชาร์จแบบไร้สาย) เป็นการถ่ายโอนพลังงานแบบไร้สาย ใช้การเหนี่ยวนำแม่เหล็กไฟฟ้าเพื่อจ่ายกระแสไฟฟ้าให้กับอุปกรณ์พกพา แอปพลิเคชั่นที่พบบ่อยที่สุดคือ Qi Wireless Charging st
4 ขั้นตอน Digital Sequencer: 19 ขั้นตอน (พร้อมรูปภาพ)
4 ขั้นตอน Digital Sequencer: CPE 133, Cal Poly San Luis Obispo ผู้สร้างโปรเจ็กต์: Jayson Johnston และ Bjorn Nelson ในอุตสาหกรรมเพลงในปัจจุบัน ซึ่งเป็นหนึ่งใน “instruments” เป็นเครื่องสังเคราะห์เสียงดิจิตอล ดนตรีทุกประเภท ตั้งแต่ฮิปฮอป ป๊อป และอีฟ
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: 13 ขั้นตอน (พร้อมรูปภาพ)
ป้ายโฆษณาแบบพกพาราคาถูกเพียง 10 ขั้นตอน!!: ทำป้ายโฆษณาแบบพกพาราคาถูกด้วยตัวเอง ด้วยป้ายนี้ คุณสามารถแสดงข้อความหรือโลโก้ของคุณได้ทุกที่ทั่วทั้งเมือง คำแนะนำนี้เป็นการตอบสนองต่อ/ปรับปรุง/เปลี่ยนแปลงของ: https://www.instructables.com/id/Low-Cost-Illuminated-