
สารบัญ:
- ขั้นตอนที่ 1: ทดสอบ FSR ด้วย Arduino
- ขั้นตอนที่ 2: วาดแผนสำหรับคณะกรรมการ
- ขั้นตอนที่ 3: สร้างแบบจำลองบอร์ดใน TinkerCad
- ขั้นตอนที่ 4: ทดสอบหน้าจอ LCD
- ขั้นตอนที่ 5: ทดสอบ Rotary Encoder ด้วยหน้าจอ LCD
- ขั้นตอนที่ 6: ประกอบบอร์ด
- ขั้นตอนที่ 7: วางสายทั้งหมด
- ขั้นตอนที่ 8: เสร็จสิ้นการเข้ารหัสทุกอย่าง
- ขั้นตอนที่ 9: สรุป
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-23 15:12

ซาวด์บอร์ดต้นแบบที่สร้างขึ้นด้วย 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 เนื่องจาก Pi ไม่ได้รับแอนะล็อกโดยไม่มีวงจรอื่น เราต้องการทดสอบธรณีประตูเพื่อให้แน่ใจว่าแท่นกดมีแรงดันที่ดี เราพบว่ามีประมาณ 150 จากทั้งหมด 1,000 พล็อตเตอร์แบบอนุกรมบน Arduino IDE มีประโยชน์มากสำหรับขั้นตอนนี้
ขั้นตอนที่ 2: วาดแผนสำหรับคณะกรรมการ


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



หลังจากร่างแผนแล้ว เราได้จำลองบอร์ดบนเว็บไซต์การสร้างแบบจำลอง 3 มิติแบบออนไลน์ฟรีที่ชื่อว่า TinkerCad โดย Autodesk เราขอแนะนำเป็นอย่างยิ่งสำหรับผู้ที่ไม่ต้องการใช้เงินจำนวนมากกับซอฟต์แวร์สร้างแบบจำลอง 3 มิติขนาดใหญ่ เนื่องจากใช้งานง่าย ใช้ระบบคลาวด์ และรองรับการพิมพ์ 3 มิติอย่างเต็มที่
หลังจากสร้างแบบจำลองแล้ว เราต้องแบ่งออกเป็น 2 ส่วนเพื่อให้พอดีกับเครื่องพิมพ์ มันพิมพ์ออกมาได้ดีจริงๆ แต่ความผิดพลาดของฉันไม่ได้ปรับขนาดช่องหน้าจอ LCD ให้ดีนัก (อย่าทำผิดพลาด!) เราได้อัปโหลดไฟล์. STL ด้านซ้ายและขวาแล้ว หากคุณต้องการตรวจสอบ
ขั้นตอนที่ 4: ทดสอบหน้าจอ 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 เปลี่ยนข้อความได้หรือไม่เมื่อหมุนตัวเข้ารหัส เอ็นโค้ดเดอร์ไม่ได้กำหนดมุมหรือการหมุนไว้ ดังนั้นในโค้ด เราจึงนับจำนวนครั้งที่หมุนตามเข็มนาฬิกาหรือทวนเข็มนาฬิกาแล้วนับถึง 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 อาวุโส! ขอบคุณที่อ่าน:)
แนะนำ:
Smart Motorcycle HUD Prototype (การนำทางแบบเลี้ยวต่อเลี้ยวและอีกมากมาย): 9 ขั้นตอน

Smart Motorcycle HUD Prototype (การนำทางแบบเลี้ยวต่อเลี้ยวและอื่น ๆ อีกมาก): สวัสดี ! Instructables นี้เป็นเรื่องราวของวิธีที่ฉันออกแบบและสร้างแพลตฟอร์ม HUD (Heads-Up Display) ที่ออกแบบมาเพื่อติดตั้งบนหมวกกันน็อคของมอเตอร์ไซค์ มันถูกเขียนขึ้นในบริบทของการแข่งขัน "แผนที่" น่าเศร้าที่ฉันไม่สามารถจบท
Prototype Night Vision Goggles สำหรับปืนอัดลม/เพนท์บอล: 4 ขั้นตอน

Prototype Night Vision Goggles สำหรับ Airsoft/Paintball: หมายเหตุสั้น ๆ เกี่ยวกับ Night Visionแว่นตาสำหรับมองกลางคืน True (gen 1, gen2 และ gen 3) มักจะทำงานโดยการขยายแสงโดยรอบ อย่างไรก็ตาม แว่นตากลางคืนที่เราจะสร้างที่นี่ทำงานโดยใช้หลักการที่แตกต่างกัน เราจะใช้กล้อง Pi NoIR ซึ่ง
DIY -Prototype- Arduino Timed USB Charger: 8 ขั้นตอน

DIY -Prototype- Arduino Timed USB Charger: ในระหว่างการสัมมนาของเราเกี่ยวกับ Arduino เราต้องคิดค้นแฮ็คที่มีความสุขซึ่งมี Arduino เราตัดสินใจสร้างอุปกรณ์ที่จะตัดพลังงานจากการชาร์จอุปกรณ์โดยใช้โค้ดสำหรับ Arduino พาวเวอร์บัดดี้! ต้นแบบนี้ไม่ได้ชาร์จอุปกรณ์จริง ๆ เนื่องจาก
Arduino Nano Clock พร้อม Adaptive Brightness โดยใช้ Prototype PCB จาก NextPCB.com: 11 ขั้นตอน

Arduino Nano Clock พร้อม Adaptive Brightness โดยใช้ Prototype PCB จาก NextPCB.com: ทุกคนต้องการนาฬิกาที่แสดงเวลาและวันที่ร่วมกัน ดังนั้น ในโครงการนี้ ฉันจะแสดงให้คุณเห็นว่าคุณสามารถสร้างนาฬิกา Arduino nano พร้อมความสว่างที่ปรับได้โดยใช้ RTC และการออกแบบได้อย่างไร PCB จาก NextPCB
Brainwave Computer Interface Prototype TGAM Starter Kit การบัดกรีและการทดสอบ: 7 ขั้นตอน (พร้อมรูปภาพ)

Brainwave Computer Interface Prototype TGAM Starter Kit การประสานและการทดสอบ: ศตวรรษที่ผ่านมาของการวิจัยด้านประสาทวิทยาได้เพิ่มความรู้ของเราอย่างมากเกี่ยวกับสมอง และโดยเฉพาะอย่างยิ่งสัญญาณไฟฟ้าที่ปล่อยออกมาจากเซลล์ประสาทที่ยิงในสมอง รูปแบบและความถี่ของสัญญาณไฟฟ้าเหล่านี้สามารถวัดได้