สารบัญ:
- ขั้นตอนที่ 1: ต่อสายหน้าจอ (สัมผัส)
- ขั้นตอนที่ 2: ทำความคุ้นเคยกับห้องสมุด
- ขั้นตอนที่ 3: ออกแบบส่วนต่อประสานกราฟิกกับผู้ใช้ / เมนูหลัก
- ขั้นตอนที่ 4: ต่อสายคอนโทรลเลอร์สองตัว
- ขั้นตอนที่ 5: เริ่มเดินสายการเชื่อมต่อไร้สาย
- ขั้นตอนที่ 6: ลุยเลย! ลองสิ่งต่าง ๆ
- ขั้นตอนที่ 7: ออกแบบ
- ขั้นตอนที่ 8: การพิมพ์ 3D Enclosure
- ขั้นตอนที่ 9: การบัดกรีและการสิ้นสุด
- ขั้นตอนที่ 10: ดูตัวอย่าง
วีดีโอ: คอนโซลมือถือพร้อมคอนโทรลเลอร์และเซ็นเซอร์ไร้สาย (Arduino MEGA & UNO): 10 ขั้นตอน (พร้อมรูปภาพ)
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:07
สิ่งที่ฉันใช้
- 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
โมเดลนี้พิมพ์ด้วยเส้นพลาสติก 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: ดูตัวอย่าง
แนะนำ:
Mega RasPi - Raspberry Pi ใน Sega Mega Drive / Genesis: 13 ขั้นตอน (พร้อมรูปภาพ)
Mega RasPi - Raspberry Pi ใน Sega Mega Drive / Genesis: คู่มือนี้จะนำคุณผ่านการแปลง Sega Mega Drive เก่าไปเป็นคอนโซลเกมย้อนยุค โดยใช้ Raspberry Pi ฉันใช้เวลาในวัยเด็กของฉันในการเล่นวิดีโอเกมนับไม่ถ้วน Sega Mega Drive ของฉัน เพื่อนของฉันส่วนใหญ่ก็มีเหมือนกัน ดังนั้นเราจะ
Mastermind Star Wars ด้วย Arduino MEGA: 5 ขั้นตอน (พร้อมรูปภาพ)
Mastermind Star Wars ด้วย Arduino MEGA: นี่เป็นช่วงเวลาที่เลวร้ายสำหรับการกบฏ แม้ว่าเดธสตาร์จะถูกทำลาย แต่กองทหารของจักรวรรดิก็ใช้ฮาร์ดแวร์ฟรีและ Arduino เป็นอาวุธลับ นั่นคือข้อดีของเทคโนโลยีฟรี ทุกคน (ไม่ว่าจะดีหรือไม่ดี) ก็ใช้ได้ ผม
โครงการ Totoro - IoT & MQTT & ESP01: 7 ขั้นตอน (พร้อมรูปภาพ)
โครงการ Totoro - IoT & MQTT & ESP01: โครงการ Totoro เป็นโครงการ IoT ที่ดีที่คุณสามารถคัดลอกในรูปแบบต่างๆ ได้มากมาย การใช้บอร์ด ESP01 กับโปรโตคอล MQTT คุณสามารถสื่อสารสถานะของปุ่มไปยังโบรกเกอร์ MQTT (ใน my case AdafruitIO).คำแนะนำที่เป็นประโยชน์สำหรับ MQTT และ Ad
Nixie Tube Clock พร้อม Arduino Mega: 5 ขั้นตอน (พร้อมรูปภาพ)
Nixie Tube Clock พร้อม Arduino Mega: นี่คือ Nixie Tube Clock ที่ดำเนินการโดย Arduino Mega นอกจากนี้ยังมีชุดไฟ LED RGB และเมทริกซ์ปุ่มที่ด้านหลังเพื่อเปลี่ยนการตั้งค่าโดยไม่ต้องเสียบเข้ากับคอมพิวเตอร์ ฉันใช้ชุดตัดขวางด้วยเลเซอร์ แต่คุณสามารถสร้างของคุณเองได้โดยใช้
อีกหนึ่งสถานีตรวจอากาศ Arduino (ESP-01 & BMP280 & DHT11 & OneWire): 4 ขั้นตอน
สถานีตรวจอากาศ Arduino อีกหนึ่งสถานี (ESP-01 & BMP280 & DHT11 & OneWire): ที่นี่คุณสามารถค้นหาการวนซ้ำของการใช้ OneWire ด้วยหมุด ESP-01 เพียงไม่กี่ตัว อุปกรณ์ที่สร้างขึ้นในคำสั่งนี้เชื่อมต่อกับเครือข่าย Wifi ของคุณ ตัวเลือก (คุณต้องมีข้อมูลประจำตัว…) รวบรวมข้อมูลทางประสาทสัมผัสจาก BMP280 และ DHT11