สารบัญ:

คอนโซลมือถือพร้อมคอนโทรลเลอร์และเซ็นเซอร์ไร้สาย (Arduino MEGA & UNO): 10 ขั้นตอน (พร้อมรูปภาพ)
คอนโซลมือถือพร้อมคอนโทรลเลอร์และเซ็นเซอร์ไร้สาย (Arduino MEGA & UNO): 10 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: คอนโซลมือถือพร้อมคอนโทรลเลอร์และเซ็นเซอร์ไร้สาย (Arduino MEGA & UNO): 10 ขั้นตอน (พร้อมรูปภาพ)

วีดีโอ: คอนโซลมือถือพร้อมคอนโทรลเลอร์และเซ็นเซอร์ไร้สาย (Arduino MEGA & UNO): 10 ขั้นตอน (พร้อมรูปภาพ)
วีดีโอ: Ep11-4 ตอน“พัฒนาทักษะการใช้เทคโนโลยีสารสนเทศ กรณีศึกษา Smart farmer” 2024, กรกฎาคม
Anonim
Image
Image
ต่อสายหน้าจอ (สัมผัส)
ต่อสายหน้าจอ (สัมผัส)

สิ่งที่ฉันใช้

- Arduino MEGA

- 2x Arduino UNO

- จอทัชสกรีน Adafruit 3.5 TFT 320x480 HXD8357D

- Buzzer

- ลำโพง 4Ohm 3W

- ไฟ LED 5 มม.

- เครื่องพิมพ์ Ultimaker 2+ พร้อมเส้นใย PLA สีดำ

- เครื่องตัดเลเซอร์พร้อมไม้ MDF

- พ่นสีดำ (สำหรับงานไม้)

- 3x nRF24L01+ เครื่องรับส่งสัญญาณไร้สาย

- ปุ่ม 2x 16 มม.

- 2x เพรสเชอร์เซนเซอร์

- ที่ใส่แบตเตอรี่ 3x 9V

- เขียงหั่นขนม

- หน้าจอ OLED I2C 2x 0.96''

- สายตัวผู้-ตัวเมีย

- บัดกรี

- ซุปเปอร์กลู

- โมดูลสัมผัสช่องเดียว 2x (สีแดง/สีน้ำเงิน)

ขั้นตอนที่ 1: ต่อสายหน้าจอ (สัมผัส)

ต่อสายหน้าจอ (สัมผัส)
ต่อสายหน้าจอ (สัมผัส)
ต่อสายหน้าจอ (สัมผัส)
ต่อสายหน้าจอ (สัมผัส)

ดังนั้นเราจะทำคอนโซลนี้แบบใช้มือถือ โดยมีคอนโทรลเลอร์ไร้สายสองตัว

ดังนั้นเราจะมีตัวเครื่องหลัก (ส่วนที่ใหญ่ที่สุดมีจอ LCD)

ยูนิตหลักจะทำงานด้วย Arduino MEGA

คอนโทรลเลอร์สองตัวที่แยกจากกันจะเรียกใช้ Arduino UNO แต่ละตัว

ต่อไปเราจะให้ Arduinos สื่อสารกันเพื่อส่งข้อมูลตัวควบคุม

เริ่มต้นด้วยการเดินสายหน้าจอ 320x480 ไปยังหน่วยหน้าจอหลักของคุณอย่างถูกต้อง (Arduino MEGA) เช่นเดียวกับในบทช่วยสอนนี้ (Adafruit มีบทช่วยสอนโดยละเอียดเกี่ยวกับการเดินสาย & รหัส)

สำหรับเสียง ฉันต่อสายออดและลำโพง 3W 4Ohm เพื่อแยกพินดิจิตอลและ GND

ด้วยโทนเสียง(พิน, ความถี่, ระยะเวลา); คุณสามารถสร้างเสียงโมโนโฟนิกพื้นฐานได้

ขั้นตอนที่ 2: ทำความคุ้นเคยกับห้องสมุด

ทำความคุ้นเคยกับห้องสมุด
ทำความคุ้นเคยกับห้องสมุด
ทำความคุ้นเคยกับห้องสมุด
ทำความคุ้นเคยกับห้องสมุด

หน้าจอ Adafruit 320x480 รองรับไลบรารี Adafruit_GFX และ Adafruit_TFTLCD ที่เกี่ยวข้อง

อ่านเอกสาร ฉันคิดว่ามันอธิบายได้ดีที่นั่น

ตรวจสอบให้แน่ใจว่าคุณใส่การตั้งค่าที่ถูกต้องใน Arduino IDE:

เครื่องมือ -> บอร์ด -> Arduino/Genuino MEGA หรือ MEGA 2560

เครื่องมือ -> พอร์ต -> [พอร์ตที่มี ''Arduino MEGA'' อยู่ในนั้น]

ไลบรารีหน้าจอเฉพาะนี้รองรับฟอนต์แบบกำหนดเอง รูปร่างพื้นฐาน และสีที่หลากหลาย

สิ่งที่น่าสังเกตอาจเป็นเพราะอัตราการรีเฟรชต่ำเกินไปสำหรับแอนิเมชั่นที่ราบรื่น หากคุณต้องการอัปเดตหน้าจอทุกครั้งที่ขีด การวาดใหม่แต่ละพิกเซลจะช้าเกินไปและจะกะพริบ

ดังนั้น ฉันขอแนะนำให้ทำงานอย่างสร้างสรรค์ในเรื่องนี้ เช่นวิธีที่อุปกรณ์พกพารุ่นเก่าบางรุ่นจัดการกับแอนิเมชัน: ด้วยคีย์เฟรม น้อยมาก! และแทนที่จะวาดทุกอย่างใหม่ทุกวินาที หากคุณต้องการย้ายรูปสี่เหลี่ยมผืนผ้าไปทางซ้ายหรือขวา คุณสามารถลบรอยทางที่มันทิ้งไว้ แทนที่จะลบวัตถุทั้งหมดแล้ววาดใหม่

ตัวอย่างเช่น ฉันใช้การกะพริบของหน้าจอเป็นเอฟเฟกต์การกะพริบของตัวละครในลำดับบทนำ

จากไลบรารี Adafruit_GFX ฉันใช้ tft.fillRect(x, y, width, height, color); และ tft.print(ข้อความ); ฟังก์ชั่น.

การทดลองเป็นสิ่งสำคัญ

ขั้นตอนที่ 3: ออกแบบส่วนต่อประสานกราฟิกกับผู้ใช้ / เมนูหลัก

ออกแบบส่วนต่อประสานกราฟิกกับผู้ใช้ / เมนูหลัก
ออกแบบส่วนต่อประสานกราฟิกกับผู้ใช้ / เมนูหลัก
ออกแบบส่วนต่อประสานกราฟิกกับผู้ใช้ / เมนูหลัก
ออกแบบส่วนต่อประสานกราฟิกกับผู้ใช้ / เมนูหลัก

หลังจากได้รับความรู้ภายในห้องสมุดและทราบข้อจำกัด/พลังของห้องสมุดแล้ว คุณสามารถเริ่มออกแบบหน้าจอเมนูหลักได้

อีกครั้ง คิดเกี่ยวกับสี่เหลี่ยม อย่างน้อยนั่นคือสิ่งที่ฉันทำ

นี่คือรหัสของฉันสำหรับ UI

pastebin.com/ubggvcqK

คุณสามารถสร้างแถบเลื่อนสำหรับความสว่างของหน้าจอ เพื่อควบคุมหมุด "Lite" บนหน้าจอสัมผัส Adafruit ของคุณผ่านหมุดแบบอะนาล็อก

ขั้นตอนที่ 4: ต่อสายคอนโทรลเลอร์สองตัว

ต่อสายคอนโทรลเลอร์สองตัว
ต่อสายคอนโทรลเลอร์สองตัว
ต่อสายคอนโทรลเลอร์สองตัว
ต่อสายคอนโทรลเลอร์สองตัว
ต่อสายคอนโทรลเลอร์สองตัว
ต่อสายคอนโทรลเลอร์สองตัว

สำหรับส่วนคอนโทรลเลอร์นั้น จริงๆ แล้วขึ้นอยู่กับคุณว่าต้องการใช้เซ็นเซอร์ประเภทใด ขึ้นอยู่กับว่าคุณวางแผนจะสร้างเกมใด

โอเค สำหรับคอนโทรลเลอร์ ฉันตัดสินใจใช้:

- เซ็นเซอร์ความดัน

- หน้าจอ OLED

- โมดูลสัมผัสหนึ่งช่องสัญญาณซึ่งเปิดหรือปิด

- เซ็นเซอร์ท่าทางสัมผัส (RobotDyn APDS9960)

- nRFL01+ Transceiver (สำหรับการสื่อสารแบบไร้สาย)

- ปุ่มกด

หมายเหตุ: เซ็นเซอร์ท่าทางสัมผัสและ OLED ใช้การเชื่อมต่อ SCL / SDA ฉันใช้เวลาสักครู่กว่าจะรู้ว่า Arduino มีเพียงสองอย่างเท่านั้น: A4 และ A5 แต่คุณสามารถต่อขนานเหล่านี้เข้าด้วยกันบนเขียงหั่นขนมและจะทำงานได้ดี

ขั้นตอนที่ 5: เริ่มเดินสายการเชื่อมต่อไร้สาย

เริ่มเดินสายการเชื่อมต่อไร้สาย
เริ่มเดินสายการเชื่อมต่อไร้สาย
เริ่มเดินสายการเชื่อมต่อไร้สาย
เริ่มเดินสายการเชื่อมต่อไร้สาย
เริ่มเดินสายการเชื่อมต่อไร้สาย
เริ่มเดินสายการเชื่อมต่อไร้สาย

การเดินสายไฟโมดูล nRF24L01+ ทำให้ฉันต้องใช้เวลาพอสมควรในการทำให้มันทำงาน

ฉันต้องหันไปใช้ห้องสมุด TMRh20 RF24 หลังจากที่ไม่สามารถรับข้อมูลเซ็นเซอร์ที่ถูกต้องที่ส่งไปยังหน้าจอได้

เพื่อให้ Arduinos หลายตัวสามารถสื่อสารกันได้ เราต้องแน่ใจว่า UNO อย่างน้อยหนึ่งตัวได้รับพลังงานแล้ว เช่นเดียวกับ MEGA

ใช้คอนโซลอนุกรมของ MEGA เพื่อพิมพ์ผลลัพธ์ที่คุณได้รับจาก UNO และดูว่าใช้งานได้หรือไม่

นี่คือรหัส

ที่นี่คือห้องสมุด

ขั้นตอนที่ 6: ลุยเลย! ลองสิ่งต่าง ๆ

ลุยป่า! ลองสิ่งต่าง ๆ
ลุยป่า! ลองสิ่งต่าง ๆ

ส่วนสำคัญของกระบวนการพัฒนาของฉันคือการลองทำอะไรหลายๆ อย่าง!

คุณต้องการใช้ปุ่มประเภทใด

คุณใส่อะไรในคอนโทรลเลอร์ของคุณ?

มองไปรอบๆ ในเว็บไซต์ คุณจะพบส่วนประกอบมากมายนอกเหนือจากปุ่ม ''A/B'' หรือจอยสติ๊กแบบอะนาล็อกทั่วไป เป็นแรงบันดาลใจและกระตุ้นให้ลงมือทำ!

เมื่อคุณได้แนวคิดที่ชัดเจนและใช้งานได้แล้วว่าต้องการใส่อะไรในคอนโทรลเลอร์ ให้ต่อส่วนประกอบต่างๆ

คุณจะต้องใช้อินพุตดิจิตอลหรืออินพุตแบบอะนาล็อกทั้งนี้ขึ้นอยู่กับวิธีการทำงาน

หมายเหตุ: ส่วนประกอบบางอย่างอาจต้องใช้หมุด SCL / SDA เพื่อให้ทำงานได้อย่างถูกต้อง และถ้าคุณมีเซ็นเซอร์สองตัวหรือมากกว่าที่ต้องการเหมือนกัน คุณอาจจะได้รับการโจมตีเสียขวัญเหมือนฉัน แต่คุณไม่ต้องกังวล

คุณสามารถใส่ทั้งหมุด SDA และ SCL ของเซ็นเซอร์แบบอนุกรมต่อกันได้ โดยไปที่ A4 และ A5 และใช้งานได้

ขั้นตอนที่ 7: ออกแบบ

ออกแบบ
ออกแบบ
ออกแบบ
ออกแบบ
ออกแบบ
ออกแบบ

เมื่อคุณได้ไอเดียเจ๋งๆ สำหรับเซ็นเซอร์ที่ต้องการใช้แล้ว ให้ร่างแนวคิดสำหรับการออกแบบที่คุณชอบ

หลังจากนั้นเข้าสู่โปรแกรมการสร้างแบบจำลองเช่น Blender, Maya, Cinema 4D

ฉันใช้ Blender เพื่อสร้างโมเดล (คร่าวๆ)

เพื่อให้ได้การวัดที่ชัดเจนใน Blender คุณสามารถเปลี่ยนหน่วยของขนาดกริดเป็นมิลลิเมตร

หลังจากที่คุณสร้างแบบจำลองแล้ว ต้องแน่ใจว่าคุณไม่มีจุดยอดสองเท่า และคุณได้คำนวณค่าปกติของคุณใหม่แล้ว

ส่งออกไฟล์เป็น.stl หากคุณต้องการใช้เครื่องพิมพ์ 3 มิติอย่างฉัน

หมายเหตุ: ใน Blender คุณจะต้องตั้งค่ามาตราส่วนการส่งออกเป็น 0.1 หากคุณต้องการขนาดที่ถูกต้องใน Cura ในขั้นตอนถัดไป

ขั้นตอนที่ 8: การพิมพ์ 3D Enclosure

การพิมพ์ 3 มิติที่ตัวเครื่อง
การพิมพ์ 3 มิติที่ตัวเครื่อง
การพิมพ์ 3 มิติที่ตัวเครื่อง
การพิมพ์ 3 มิติที่ตัวเครื่อง
การพิมพ์ 3 มิติที่ตัวเครื่อง
การพิมพ์ 3 มิติที่ตัวเครื่อง

โมเดลนี้พิมพ์ด้วยเส้นพลาสติก PLA สีดำ 2.85 มม. บนเครื่องพิมพ์ Ultimaker 2+

ดาวน์โหลด CURA

โหลด. STL ของคุณลงใน Cura และมันจะแสดงให้คุณเห็นว่าต้องใช้เวลานานแค่ไหน

สำหรับเคสแบบใช้มือถือ อาจใช้เวลานานถึง 10 ชั่วโมงในการพิมพ์ ขึ้นอยู่กับขนาด

อย่างไรก็ตาม สำหรับโมเดลที่มีรายละเอียดต่ำ คุณสามารถเร่งกระบวนการได้ ซึ่งเป็นสิ่งที่ฉันทำ

นี่คือการตั้งค่าของฉัน:

ความสูงของชั้น: 0.2

ความหนาของผนัง: 0.8

ความหนาบน/ล่าง: 0.8

หัวฉีด: 0.4

อุณหภูมิ: 60 องศาเซลเซียส

การไหล: 100%

ปีก: ทุกที่ที่สัมผัสแผ่นสร้าง

เติมความหนาแน่น: 20%

ค่อยเป็นค่อยไป: 0

อุณหภูมิหัวฉีด: 220 C

ความเร็วในการพิมพ์: 120%

ขั้นตอนที่ 9: การบัดกรีและการสิ้นสุด

บัดกรีและจบงาน
บัดกรีและจบงาน
บัดกรีและจบงาน
บัดกรีและจบงาน
บัดกรีและจบงาน
บัดกรีและจบงาน

คุณมาไกลแล้ว

ขั้นตอนสุดท้ายคือการได้รับ perfboard / veroboard และแปลการเชื่อมต่อเขียงหั่นขนมของคุณให้เป็นส่วนหนึ่งของบอร์ดต้นแบบ

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

ฉันใช้เครื่องตัดเลเซอร์สำหรับสิ่งนี้

สิ่งที่สำคัญที่สุดคือการทำตัวให้สนุก ลองทำสิ่งที่คุณไม่เคยทำมาก่อน และสนุกไปกับมัน!

หวังว่าบทช่วยสอนนี้จะชัดเจนเพียงพอ…มันเป็นโครงการที่ค่อนข้างยาก ซึ่งให้ผลลัพธ์ที่ยอดเยี่ยม!:)

ขั้นตอนที่ 10: ดูตัวอย่าง

แนะนำ: