สารบัญ:

Prototype Arduino-Raspberry Pi Soundboard: 9 ขั้นตอน (พร้อมรูปภาพ)
Prototype Arduino-Raspberry Pi Soundboard: 9 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Prototype Arduino-Raspberry Pi Soundboard: 9 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: Prototype Arduino-Raspberry Pi Soundboard: 9 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Breadboarding & Prototyping for Electronics, Arduino & Raspberry Pi 2024, ธันวาคม
Anonim
ต้นแบบซาวด์บอร์ด Arduino-Raspberry Pi
ต้นแบบซาวด์บอร์ด Arduino-Raspberry Pi

ซาวด์บอร์ดต้นแบบที่สร้างขึ้นด้วย Arduino และ Raspberry Pi นั้นเป็นวิธีการง่ายๆ ในการเล่นเสียงหรือเสียงที่แตกต่างกัน 4 เสียง ในขณะที่มีตัวเลือกในการสลับชุดเสียงด้วยปุ่มหมุนและแสดงชุดเสียงปัจจุบันด้วยหน้าจอ LCD

*หมายเหตุ: รหัสสำหรับโครงการเสร็จสมบูรณ์ 99% แต่ใช้งานไม่ได้

Raspberry Pi ควบคุมหน้าจอ LCD ขนาด 16x2 และตัวเข้ารหัสแบบหมุนในขณะที่ Arduino อ่านอินพุตแบบอะนาล็อกจากตัวต้านทานที่ไวต่อแรงกด (FSR) และส่งสัญญาณไปยัง Arduino เพื่อเล่นเสียง เราทั้งคู่ไม่เคยใช้ Arduino หรือ Pi มาก่อนในชั้นเรียนนี้ แต่อาจารย์ของเราได้ให้เครื่องมือและคำแนะนำที่จำเป็นทั้งหมดแก่เราในการโค้ดและสร้างโครงการนี้อย่างง่ายดาย TinkerCad ซึ่งเป็นเครื่องมือสร้างแบบจำลอง 3 มิติออนไลน์ฟรีโดย AutoDesk ถูกใช้เพื่อสร้างแบบจำลองโครงการของเรา

ส่วนที่ยากที่สุดของโครงการคือการหาวิธีให้ Arduino และ Raspberry Pi สื่อสารกับการสื่อสารแบบอนุกรม เดิมทีเราต้องการใช้ Pi สำหรับโครงการทั้งหมดเท่านั้น แต่เราต้องการ Arduino เพื่ออ่านสัญญาณแอนะล็อกจาก FSR เราสามารถส่งบรรทัดของคำหรือตัวเลขจาก Arduino และแสดงบน Pi ได้อย่างง่ายดาย แต่ปัญหาเกิดขึ้นเมื่อเราพยายามอ่านค่าเหล่านั้นใน Python และนำไปใช้ในคำสั่งเงื่อนไขเพื่อประมวลผล

ทักษะที่จำเป็น

  • ความเข้าใจอย่างง่ายของ C/C++ สำหรับการเข้ารหัส Arduino
  • ความเข้าใจอย่างง่ายของ Python สำหรับการเข้ารหัส Raspberry Pi
  • ความรู้เกี่ยวกับวิธีการต่อสายเขียงหั่นขนม
  • ทักษะการสร้างแบบจำลอง 3 มิติขั้นพื้นฐาน
  • ความปรารถนาที่จะเรียนรู้และขยายการเขียนโปรแกรม การเดินสาย และการสร้างบางสิ่งที่เรียบร้อย

รายการชิ้นส่วน

1 x ราสเบอร์รี่ Pi 3

1 x Elegoo Uno หรือ Arduino Uno

1 x 830 Tie เขียงหั่นขนม

1 x บอร์ดฝ่าวงล้อม GPIO (RSP-GPIO)

1 x สายริบบิ้นสำหรับบอร์ดฝ่าวงล้อม

4 x ตัวต้านทานแบบไวต่อแรงขนาดเล็ก

1 x พื้นฐาน 16x2 ตัวอักษร LCD หน้าจอ

1 x โมดูลเข้ารหัสโรตารี่

24 x สายชายกับหญิง

10 x สายชายกับชาย

ตัวต้านทาน 4 x 10k

1 x 10k โพเทนชิออมิเตอร์

1 x แผ่นรองเข่าโฟมสวน (ร้านดอลลาร์)

ขั้นตอนที่ 1: ทดสอบ FSR ด้วย Arduino

ทดสอบ FSR ด้วย Arduino
ทดสอบ FSR ด้วย Arduino

ก่อนอื่นเราตัดสินใจลองใช้ FSR กับ Arduino FSR ส่งสัญญาณแอนะล็อก ดังนั้นเราจึงต้องใช้ Arduino เนื่องจาก Pi ไม่ได้รับแอนะล็อกโดยไม่มีวงจรอื่น เราต้องการทดสอบธรณีประตูเพื่อให้แน่ใจว่าแท่นกดมีแรงดันที่ดี เราพบว่ามีประมาณ 150 จากทั้งหมด 1,000 พล็อตเตอร์แบบอนุกรมบน Arduino IDE มีประโยชน์มากสำหรับขั้นตอนนี้

ขั้นตอนที่ 2: วาดแผนสำหรับคณะกรรมการ

วาดแผนสำหรับคณะกรรมการ
วาดแผนสำหรับคณะกรรมการ
วาดแผนสำหรับคณะกรรมการ
วาดแผนสำหรับคณะกรรมการ

จากนั้นเราก็ร่างและวัดแผนสำหรับคณะกรรมการ เราต้องการมีแผ่นเสียง 4 แผ่นสำหรับเล่นเสียง จุดสำหรับหน้าจอ LCD เพื่อแสดงกลุ่มเสียงปัจจุบัน และตัวเข้ารหัสแบบหมุนเพื่อเปลี่ยนกลุ่มเสียง

ขั้นตอนที่ 3: สร้างแบบจำลองบอร์ดใน TinkerCad

จำลองบอร์ดใน TinkerCad
จำลองบอร์ดใน TinkerCad
จำลองบอร์ดใน TinkerCad
จำลองบอร์ดใน TinkerCad
จำลองบอร์ดใน TinkerCad
จำลองบอร์ดใน TinkerCad

หลังจากร่างแผนแล้ว เราได้จำลองบอร์ดบนเว็บไซต์การสร้างแบบจำลอง 3 มิติแบบออนไลน์ฟรีที่ชื่อว่า TinkerCad โดย Autodesk เราขอแนะนำเป็นอย่างยิ่งสำหรับผู้ที่ไม่ต้องการใช้เงินจำนวนมากกับซอฟต์แวร์สร้างแบบจำลอง 3 มิติขนาดใหญ่ เนื่องจากใช้งานง่าย ใช้ระบบคลาวด์ และรองรับการพิมพ์ 3 มิติอย่างเต็มที่

หลังจากสร้างแบบจำลองแล้ว เราต้องแบ่งออกเป็น 2 ส่วนเพื่อให้พอดีกับเครื่องพิมพ์ มันพิมพ์ออกมาได้ดีจริงๆ แต่ความผิดพลาดของฉันไม่ได้ปรับขนาดช่องหน้าจอ LCD ให้ดีนัก (อย่าทำผิดพลาด!) เราได้อัปโหลดไฟล์. STL ด้านซ้ายและขวาแล้ว หากคุณต้องการตรวจสอบ

ขั้นตอนที่ 4: ทดสอบหน้าจอ LCD

ทดสอบหน้าจอ LCD
ทดสอบหน้าจอ LCD

เราใช้หน้าจอบน Arduino แล้วและตั้งค่าได้ง่ายมาก อย่างไรก็ตาม การใช้งาน Pi นั้นยากกว่า ด้วยชั่วโมงการแก้ปัญหาหลายชั่วโมงใน Google และปัญหาเรื่องสายไฟ ในที่สุดเราก็ทำให้มันใช้งานได้ โปรดดูรหัส Python สุดท้ายในตอนท้ายเพื่อดูว่ามันทำงานอย่างไร เราใช้เว็บไซต์สองแห่งเพื่อช่วยเราต่อสายและเขียนโค้ด ลองดูสิ:

learn.adafruit.com/drive-a-16x2-lcd-direct…

www.raspberrypi-spy.co.uk/2012/07/16x2-lcd…

ขั้นตอนที่ 5: ทดสอบ Rotary Encoder ด้วยหน้าจอ LCD

ทดสอบเครื่องเข้ารหัสแบบหมุนด้วยหน้าจอ LCD
ทดสอบเครื่องเข้ารหัสแบบหมุนด้วยหน้าจอ LCD

เราต้องการดูว่าเราสามารถทำให้หน้าจอ LCD เปลี่ยนข้อความได้หรือไม่เมื่อหมุนตัวเข้ารหัส เอ็นโค้ดเดอร์ไม่ได้กำหนดมุมหรือการหมุนไว้ ดังนั้นในโค้ด เราจึงนับจำนวนครั้งที่หมุนตามเข็มนาฬิกาหรือทวนเข็มนาฬิกาแล้วนับถึง 3 ถ้ามันผ่านไป มันจะกลับไปเป็น 0 และ ถ้ามันต่ำกว่า 0 มันจะกลับไปเป็น 3 ตัวเลขเหล่านี้สามารถตั้งค่าสำหรับชุดเสียงกี่ชุดก็ได้ที่คุณต้องการ แต่เราลงเอยด้วยการทดสอบชุดเสียงเพียงชุดเดียวเท่านั้น ตรวจสอบให้แน่ใจว่าเสียงของคุณอยู่ในโฟลเดอร์/ตำแหน่งเดียวกับที่รันโค้ด Python หลัก

ขั้นตอนที่ 6: ประกอบบอร์ด

ประกอบบอร์ด
ประกอบบอร์ด
ประกอบบอร์ด
ประกอบบอร์ด
ประกอบบอร์ด
ประกอบบอร์ด

FSRs เลื่อนไปใต้ช่องต่างๆ สี่ช่อง เราวางพวกเขาไว้ตรงกลางและติดเทปไว้ เราขอแนะนำเทปพันสายไฟหรืออาจถึงกับติดกาวเพราะเทปสก๊อตธรรมดาจะเกาะติดกับวัสดุที่พิมพ์ 3 มิติได้แย่มาก หลังจากเดินทางไปร้านดอลล่าร์อย่างรวดเร็ว เราพบแผ่นรองเข่าแบบสวนที่นุ่มแต่ก็นุ่ม ซึ่งเราสามารถหั่นเป็นสี่ชิ้นเพื่อใช้เป็นปุ่มสำหรับกระดานได้ เราตัดพวกมันเพื่อให้พอดีกับที่ของมันอย่างแนบแน่นเพื่อให้พวกมันอยู่กับที่ แต่ยังถอดออกได้อย่างง่ายดายหากจำเป็น

ขั้นตอนที่ 7: วางสายทั้งหมด

วางสายทั้งหมด
วางสายทั้งหมด
วางสายทั้งหมด
วางสายทั้งหมด

หลังจากประกอบบอร์ดและวาง FSR ตัวเข้ารหัส และหน้าจอ เราก็ต่อสายทุกอย่างเข้าด้วยกัน คุณสามารถใช้เขียงหั่นขนม 2 อัน แต่เราสามารถใส่ทุกอย่างลงในอันเดียวได้ รูปภาพดูเหมือนยุ่งเหยิง แต่เราสร้างไดอะแกรมในโปรแกรมฟรีที่เรียกว่า Fritzing โปรดทราบว่าคุณสามารถเปลี่ยนหมุดที่คุณต้องการแนบทุกอย่างได้ แต่ไดอะแกรมสอดคล้องกับรหัสของเรา

ขั้นตอนที่ 8: เสร็จสิ้นการเข้ารหัสทุกอย่าง

นี่เป็นส่วนที่ยุ่งยาก ตามที่ระบุไว้ในบทนำ เราไม่สามารถทำส่วนนี้ให้สมบูรณ์ได้ รหัสมีทั้งหมด 99% แต่ส่วนที่ไม่ทำงานคือการสื่อสารแบบอนุกรมจาก Arduino ไปยัง Pi เราสามารถส่งข้อมูลได้อย่างง่ายดายเมื่อเราเชื่อมต่อ Arduino กับ Pi ด้วยสาย USB แต่ Pi ไม่สามารถทำอะไรได้นอกจากแสดงข้อมูลนั้นบนหน้าจอ เราต้องการที่จะสามารถบอกได้ว่าปุ่มใดถูกกดและทำให้มีเสียงเฉพาะ แต่ข้อมูลที่ส่งผ่านการสื่อสารไม่สามารถใส่ลงในคำสั่งเงื่อนไขเพื่อทดสอบว่าปุ่มใดถูกกด

โปรดดูรหัสที่แนบมามีการแสดงความคิดเห็นในรหัส Python สำหรับ Pi รหัส Arduino ควรเป็น 100%

ขั้นตอนที่ 9: สรุป

สรุป
สรุป

โดยรวมแล้ว โครงการนี้เป็นประสบการณ์การเรียนรู้ที่ยิ่งใหญ่สำหรับเราสองคน และเราหวังว่าบทความนี้จะสร้างแรงบันดาลใจให้กับนักเรียน ครู หรือคนจรจัดสำหรับโครงการของตนเองในอนาคต และเพื่อเป็นแนวทางให้พวกเขาโดยการเรียนรู้จากความผิดพลาดของเรา ขอแสดงความชื่นชมยินดีกับศาสตราจารย์ด้านวิทยาการหุ่นยนต์ที่ยอดเยี่ยมของเราที่ช่วยอย่างมากในช่วงเวลาของเราในชั้นเรียน และให้โอกาสเราได้มีความสนุกสนานมากมายและเรียนรู้มากมายในชั้นเรียน COMP อาวุโส! ขอบคุณที่อ่าน:)

แนะนำ: