สารบัญ:
วีดีโอ: Arduino ควบคุมแขนหุ่นยนต์จาก Lego Mindstorm: 6 ขั้นตอน
2025 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2025-01-13 06:58
เปลี่ยนมอเตอร์ Lego Mindstorm เก่าสองตัวให้เป็นแขนจับที่ควบคุมโดย Arduino Uno
นี่คือโครงการ Hack Sioux Falls ที่เราท้าทายเด็กๆ ให้สร้างสิ่งที่เจ๋งด้วย Arduino
ขั้นตอนที่ 1: อะไหล่ที่จำเป็น
วัสดุที่จำเป็น:
- มอเตอร์มายด์สตอร์ม Lego ev3 ขนาดใหญ่ 2 ตัว
- ชิ้นส่วนและอุปกรณ์เทคนิคของเลโก้
- Arduino Uno
- บอร์ดมอเตอร์
- ชิ้นส่วนของ perfboard
- สายยาว
- ตัวต้านทาน 4 ตัว
- 4 ปุ่ม
- แบตเตอรี่ USB แบบพกพา
- ที่ชาร์จ usb
- หัวแร้งและหัวแร้ง
- ชุดไขควง
- เครื่องตัดลวด
ขั้นตอนที่ 2: ถอดตัวเรือนมอเตอร์
เริ่มต้นด้วยการถอดสกรูที่ด้านหลังของมอเตอร์ทั้งสองตัว จากนั้นถอดฝาสีขาวออก จากนั้นคุณสามารถทิ้งได้
ดึงมอเตอร์ออก ตรวจสอบให้แน่ใจว่าไม่ได้ถอดเฟืองด้านในออก หากคุณถอดเกียร์ใดๆ ออก ให้ใส่กลับเข้าที่
เมื่อถอดมอเตอร์แล้ว ให้ตัดปลั๊กที่ปลายมอเตอร์ด้วยเครื่องตัดลวด
ขั้นตอนที่ 3: บัดกรีบนสายที่ยาวกว่า
บัดกรีลวดใหม่ที่ยาวขึ้น วิธีนี้ง่ายกว่ามาก และใช้เวลาเพียงไม่กี่วินาทีหากคุณรู้ว่ากำลังทำอะไรอยู่
ใส่มอเตอร์กลับเข้าไปในปลอกพลาสติก แล้วขันกลับเข้าไป ขณะนี้คุณสามารถเริ่มสร้างแขนได้แล้ว คุณสามารถสร้างการออกแบบของคุณเองหรือเลือกแบบในภาพก็ได้
ขั้นตอนที่ 4: เพิ่มมอเตอร์ลงใน Motor Board
ใช้ไขควงปากแฉกเสียบสายไฟที่มาจากมอเตอร์เข้ากับแผงมอเตอร์ตามที่แสดงในภาพ จากนั้นเสียบบอร์ดเข้ากับ Arduino Uno
ตัดที่ชาร์จ USB ครึ่งหนึ่งโดยเปิดสายไฟด้านใน ลอกฉนวนออก จากนั้นดึงสายบวกและขั้วลบทั้งสองออก แล้วเสียบเข้ากับบอร์ดมอเตอร์
ขั้นตอนที่ 5: สร้างบอร์ดสวิตช์
บัดกรีที่ตัวต้านทาน สวิตช์ และสายไฟบนแผ่นไม้อัดตามภาพ
เพิ่มหมุดขั้วต่อตัวเมียสองสามตัวบนบอร์ด perfboard และบอร์ดมอเตอร์ดังที่แสดงในรูปภาพ จากนั้นเชื่อมต่อทั้งสอง
ขั้นตอนที่ 6:
เสียบ Arduino เข้ากับคอมพิวเตอร์และอัปโหลดรหัสนี้ไปยัง Arduino
เราใช้ไลบรารีไดรเวอร์มอเตอร์นี้จาก Adafruit แต่ไลบรารีไดรเวอร์อื่นก็ใช้งานได้เช่นกัน
#อินลูด
int buttonLeft = A0;int buttonRight = A1; ปุ่ม int เปิด = A2; ปุ่ม int ปิด = A3; AF_DCMotor มอเตอร์หมุน (1); AF_DCMotor motorGrabber(2); การตั้งค่าเป็นโมฆะ () { Serial.begin (9600); // ตั้งค่า Serial library ที่ 9600 bps Serial.println("Motor test!"); โหมดพิน (buttonLeft, INPUT); pinMode (ปุ่มขวา, อินพุต); pinMode (ปุ่มเปิด, อินพุต); pinMode(ปุ่มปิด, INPUT); // เปิดมอเตอร์ motorRotate.setSpeed(200); motorGrabber.setSpeed (200); motorRotate.run (ปล่อย); motorGrabber.run(ปล่อย); } วงเป็นโมฆะ () { int buttonStateLeft = digitalRead (buttonLeft); int buttonStateRight = digitalRead (ปุ่มขวา); int buttonStateOpen = digitalRead (เปิดปุ่ม); int buttonStateClose = digitalRead (ปุ่มปิด); ถ้า (buttonStateLeft == สูง) { Serial.println ("ปุ่มซ้าย"); motorRotate.run (ย้อนกลับ); ล่าช้า (250); motorRotate.run (ปล่อย); } else if (buttonStateRight == HIGH) { Serial.println ("ปุ่มขวา"); motorRotate.run (ไปข้างหน้า); ล่าช้า (250); motorRotate.run (ปล่อย); } else if (buttonStateOpen == HIGH) { Serial.println ("ปุ่มเปิด"); motorGrabber.run(ย้อนกลับ); ล่าช้า (150); motorGrabber.run(ปล่อย); } else if (buttonStateClose == HIGH) { Serial.println ("ปุ่มปิด"); motorGrabber.run (ไปข้างหน้า); ล่าช้า (150); motorGrabber.run(ปล่อย); } }