สารบัญ:
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
ในคำแนะนำนี้ เราสร้างหุ่นยนต์ Arcbotics Sparki ที่สามารถควบคุมได้ด้วยท่าทาง 3 มิติ คุณลักษณะที่ดีของโครงการนี้คือไม่จำเป็นต้องใช้อุปกรณ์เพิ่มเติม เช่น สมาร์ทโฟนหรือถุงมือเพื่อควบคุมหุ่นยนต์ เพียงเลื่อนมือไปเหนืออิเล็กโทรด (พื้นที่อ่อนไหว 95 x 60 มม.) MGC3130 Hillstar Development Kit จาก Microchip ใช้สำหรับระบบตรวจจับการป้อนข้อมูลด้วยท่าทางสัมผัส 3 มิติ
ขั้นตอนที่ 1: ส่วนประกอบที่จำเป็น
- Arcbotics Sparki หุ่นยนต์จาก Arduino หุ่นยนต์จาก Arduino ตัวอื่นๆ ก็ใช้งานได้เช่นกัน
- MGC3130 Hillstar Development Kit จาก Microchip, บอร์ดท่าทางสามมิติอื่นๆ เช่น Hover original หรือ Hover 2.0 จาก Hover Labs หรือ Flick! ควรทำงานด้วย
- อะไหล่ Knex นิดหน่อย (ไม่มากเท่าในรูป)
- เทปพันท่อ
- สายจัมเปอร์
ขั้นตอนที่ 2: การประกอบ
ชุดท่าทางสัมผัส Hillstar 3D ประกอบด้วยสามแผง:
- โมดูล MGC3130 นี่คือชุดควบคุมท่าทางสัมผัสหลักของ Hillstar โดยจะเชื่อมต่อที่ด้านหนึ่งกับอิเล็กโทรด และอีกด้านหนึ่งเป็นแหล่งจ่ายไฟและอินเทอร์เฟซ I2C
- อิเล็กโทรดอ้างอิงสี่ชั้นที่มีพื้นที่อ่อนไหว 85x60 มม. ที่ด้านล่างของเพลตนี้คือคอนเน็กเตอร์สำหรับเชื่อมต่อบอร์ด MGC3130
- บอร์ดบริดจ์ I2C เป็น USB ด้วยบอร์ดนี้ โมดูล MGC3130 สามารถเชื่อมต่อกับพีซีด้วย USB ได้อย่างง่ายดาย
ไม่จำเป็นต้องใช้บอร์ดบริดจ์ I2C เป็น USB เนื่องจากเราเชื่อมต่อ I2C ของโมดูล MGC3130 กับพอร์ต Robot IO โดยตรง ดังที่แสดงในแผนผังด้านบน
รถเข็น Knex ขนาดเล็กถูกสร้างขึ้นเพื่อรองรับแผงอิเล็กโทรดอ้างอิง บอร์ดติดอยู่กับรถเข็นด้วยเทปพันสายไฟ และรถเข็นที่ประกอบเสร็จแล้วจะติดเข้ากับหุ่นยนต์ด้วยกระดาษห่อหุ้ม ในที่สุด โมดูล MGC3130 ก็เชื่อมต่อกับพอร์ต IO ของหุ่นยนต์ด้วยสายจัมเปอร์
ขั้นตอนที่ 3: รหัส
ซอฟต์แวร์นี้ใช้ไลบรารี Hover จาก Hover Labs และสามารถพบได้ใน Github (https://github.com/jspark311/hover_arduino)
ด้านล่างนี้เป็นภาพร่าง Arduino ซึ่งสามารถดาวน์โหลดไปยัง Sparki ได้
มี Sparki IDE เฉพาะที่เรียกว่า SparkiDuino แต่ฉันชอบใช้ Arduino IDE มาตรฐานและติดตั้งไลบรารี Sparki Arduino ซึ่งสามารถดาวน์โหลดได้จากหน้าดาวน์โหลด: https://arcbotics.com/downloads มันไม่ง่ายอย่างนั้น เป็น SparkiDuino และไม่ได้มาพร้อมกับตัวติดตั้งไดรเวอร์ของตัวเอง (ตัวติดตั้งไดรเวอร์ Sparki อยู่ในหน้าดาวน์โหลดด้วย) แต่ใช้ตัวอย่างและรหัสไลบรารีเดียวกันทั้งหมดและใช้ร่วมกับไลบรารีอื่น ๆ เช่น Hover ได้ง่ายขึ้น กรณี.
#include // รวมไลบรารี sparki
#include #include // Pin ประกาศสำหรับ Hover int ts = 0; รีเซ็ต int = 1; โฮเวอร์โฮเวอร์ = โฮเวอร์ (); เหตุการณ์ไบต์; สตริง output_string = ""; bool driving_forward = เท็จ; การตั้งค่าเป็นโมฆะ () { ล่าช้า (4000); sparki.clearLCD(); sparki.println("กำลังเริ่มต้นโฮเวอร์…โปรดรอสักครู่"); sparki.updateLCD(); hover.begin(ts, รีเซ็ต); sparki.clearLCD(); sparki.println("พร้อมสำหรับท่าทางสัมผัส!"); sparki.updateLCD(); } void loop (เป็นโมฆะ) { // ตรวจสอบว่า Hover พร้อมที่จะส่งท่าทางหรือสัมผัสเหตุการณ์หรือไม่ถ้า (hover.getStatus (ts) == 0) { // รับเหตุการณ์ผ่าน i2c และพิมพ์เหตุการณ์ = hover.getEvent (); //ส่วนนี้สามารถแสดงความคิดเห็นได้หากคุณไม่ต้องการเห็นเหตุการณ์ในรูปแบบข้อความ output_string = hover.getEventString(event); if (output_string != ""){ sparki.print(event); sparki.println(" = " + output_string); sparki.updateLCD(); } สวิตช์ (เหตุการณ์) { กรณีที่ 40: driving_forward = true; หยุดพัก; กรณีที่ 80: sparki.moveBackward(); หยุดพัก; กรณีที่ 36: sparki.moveLeft(); ล่าช้า (500); sparki.moveStop(); หยุดพัก; กรณีที่ 34: sparki.moveRight(); ล่าช้า (500); sparki.moveStop(); หยุดพัก; กรณีที่ 72: sparki.griperOpen(); หยุดพัก; กรณีที่ 66: sparki.griperClose(); หยุดพัก; กรณีที่ 68: sparki.servo(80); หยุดพัก; กรณีที่ 65: sparki.servo(-80); หยุดพัก; กรณีที่ 48: driving_forward = false; sparki.griperStop(); sparki.เซอร์โว(0); หยุดพัก; } if (driving_forward) { sparki.moveForward(); } อื่น ๆ { sparki.moveStop(); } //รีเซ็ตโฮเวอร์สำหรับเหตุการณ์ถัดไป hover.setRelease(ts); } }
ขั้นตอนที่ 4: เพลิดเพลิน
รายการคำสั่ง:
- ปัดขึ้น - ขับไปข้างหน้า
- ปัดกลับ - หยุดการเคลื่อนไหวทั้งหมด
- ปัดไปทางซ้าย - เลี้ยวซ้าย
- ปัดขวา-เลี้ยวขวา
- แตะด้านบน - เซ็นเซอร์หมุน 90 องศา cw
- แตะล่าง - เซ็นเซอร์หมุน 90 องศา ccw
- แตะซ้าย - ปิดกริปเปอร์
- แตะขวา - เปิดกริปเปอร์