สารบัญ:
- ขั้นตอนที่ 1: ภาพรวมโครงการ
- ขั้นตอนที่ 2: แผนผัง
- ขั้นตอนที่ 3: ไดอะแกรมคอนโทรลเลอร์ PS2
- ขั้นตอนที่ 4: ตั้งค่าการเชื่อมต่อโมดูล Zio
- ขั้นตอนที่ 5: เชื่อมต่อ Robotic Arm Servo กับ Zio 16 Servo Controller
- ขั้นตอนที่ 6: เชื่อมต่อ 16 Servo ของคุณกับ DC/DC Booster และตั้งค่าที่ 6.0V
- ขั้นตอนที่ 7: เชื่อมต่อ Zuino M Uno กับ Zio 16 Servo Controller
- ขั้นตอนที่ 8: เชื่อมต่อ Uno กับตัวรับสัญญาณ PS2
- ขั้นตอนที่ 9: รหัสสำหรับ Robotic Arm
- ขั้นตอนที่ 10: เรียกใช้รหัสของคุณ
- ขั้นตอนที่ 11: คำอธิบายโค้ด
วีดีโอ: แขนกลพร้อมโมดูล Zio ตอนที่ 2: 11 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:06
ในบทช่วยสอนวันนี้ เราจะใช้เซอร์โวทั้งหมด 4 ตัวและคอนโทรลเลอร์ไร้สาย PS2 เพื่อควบคุมแขนหุ่นยนต์
โพสต์บล็อกนี้เป็นส่วนหนึ่งของ Zio Robotics Series
บทนำ
ในบล็อกที่แล้ว เราโพสต์บทช่วยสอนตอนที่ 1 เกี่ยวกับวิธีควบคุม Robotic Arm โดยใช้โมดูล Zio ส่วนที่ 1 ส่วนใหญ่เน้นที่การควบคุม Robotic Arm's Claw ของคุณโดยอัตโนมัติเพื่อเปิดและปิด
ในบทช่วยสอนวันนี้ เราจะปรับปรุงเล็กน้อยโดยเพิ่มคอนโทรลเลอร์ PS2 Wireless เพื่อควบคุม Robotic Arm สำหรับโครงการนี้ เราจะใช้เซอร์โว 4 ตัว
ขั้นตอนที่ 1: ภาพรวมโครงการ
ระดับความยาก:
ซิโอ พาดาวัน
แหล่งข้อมูลที่เป็นประโยชน์:
คุณควรมีความเข้าใจพื้นฐานเกี่ยวกับวิธีการติดตั้งบอร์ดพัฒนา Zio ในบทช่วยสอนนี้ เราถือว่าบอร์ดพัฒนาของคุณได้รับการกำหนดค่าแล้วและพร้อมที่จะตั้งค่า หากคุณยังไม่ได้กำหนดค่าบอร์ดของคุณ ลองดูบทแนะนำ Zio Qwiic Start Guide ด้านล่างเพื่อเริ่มต้น:
คู่มือเริ่มต้น Zio Zuino M UNO Qwiic
ขั้นตอนที่ 2: แผนผัง
นี่คือแผนผังการเดินสายไฟของโครงการ Robotic Arm Part 2 รวมถึงแผนภาพ PS2 Controller ที่จำเป็นสำหรับการทำความเข้าใจส่วนการเข้ารหัสของคุณ
ขั้นตอนที่ 3: ไดอะแกรมคอนโทรลเลอร์ PS2
ขั้นตอนที่ 4: ตั้งค่าการเชื่อมต่อโมดูล Zio
ด้านล่างนี้คือการเชื่อมต่อโมดูล Zio ของเราเพื่อตั้งค่ากับ Robotic Arm การเชื่อมต่อโมดูลทั้งหมดเข้าด้วยกันนั้นค่อนข้างง่ายและจะใช้เวลาไม่เกิน 10 นาทีในการตั้งค่า
ขั้นตอนที่ 5: เชื่อมต่อ Robotic Arm Servo กับ Zio 16 Servo Controller
ขั้นตอนที่ 6: เชื่อมต่อ 16 Servo ของคุณกับ DC/DC Booster และตั้งค่าที่ 6.0V
เราใช้ DC/DC Booster เพื่อเพิ่มและปรับแรงดันไฟฟ้าของแบตเตอรี่เป็น 6.0
ใช้โพเทนชิออมิเตอร์บน DC Booster เพื่อปรับแรงดันไฟฟ้าจนกว่าคุณจะได้รับ 6.0 กดปุ่ม In/Out จนขึ้นหน้าจอ 6.0 คุณต้องจ่ายไฟ (แบตเตอรี่ 3.7V) ให้กับ DC/DC Booster ก่อนเพื่อปรับแรงดันไฟฟ้า
ขั้นตอนที่ 7: เชื่อมต่อ Zuino M Uno กับ Zio 16 Servo Controller
Qwiic เชื่อมต่อ Zuino M Uno กับตัวควบคุม Zio Servo ด้วยสาย qwiic
ขั้นตอนที่ 8: เชื่อมต่อ Uno กับตัวรับสัญญาณ PS2
นี่คือพินไดอะแกรมของการเชื่อมต่อ คุณต้องมีสายจัมเปอร์ตัวผู้ถึงตัวเมีย 5 เส้นสำหรับส่วนนี้
ขั้นตอนที่ 9: รหัสสำหรับ Robotic Arm
เราจะใช้ไลบรารี PS2 Arduino เพื่อเข้ารหัส PS2 Wireless Controller เพื่อทำงานกับ Robotic Arm ของเรา คุณสามารถค้นหาและดาวน์โหลดซอร์สโค้ดสำหรับโปรเจ็กต์ Robotic Arm Part 2 ได้ที่หน้า Github ของเรา
ดาวน์โหลดและติดตั้งไลบรารีต่อไปนี้และบันทึกไว้ในโฟลเดอร์ไลบรารี Arduino IDE ในเครื่องของคุณ:
- ไลบรารีไดรเวอร์ Adafruit PWM Servo
- ห้องสมุด PS2 Arduino
ในการติดตั้งไลบรารี่ให้เปิด Arduino IDE ของคุณ ไปที่แท็บ Sketch เลือก Include Library -> Add. Zip Library เลือกไลบรารีด้านบนที่จะรวมไว้ใน IDE ของคุณ
Arduino มีคู่มือที่มีประโยชน์เกี่ยวกับวิธีการติดตั้งไลบรารีลงใน Arduino IDE ของคุณ ตรวจสอบพวกเขาที่นี่ !
ขั้นตอนที่ 10: เรียกใช้รหัสของคุณ
เปิด Arduino IDE ภายใต้ ไฟล์ > ตัวอย่าง > PS2_Arduino_Library เลือก PS2X_Servo
หมายเหตุ: ก่อนที่คุณจะควบคุมแขนหุ่นยนต์ด้วยคอนโทรลเลอร์ PS2 ให้ตรวจสอบขั้นตอนต่อไปนี้: เปิดคอนโทรลเลอร์ PS2 ของคุณ ตรวจสอบว่าไฟ LED ของโหมดสว่างขึ้น หากไม่เป็นเช่นนั้น ให้กดปุ่มโหมดบนคอนโทรลเลอร์ของคุณ หลังจากทำตามขั้นตอนข้างต้นแล้ว คุณต้องกดปุ่มรีเซ็ตบน Zuino M Uno เพื่อให้อ่านการตั้งค่าคอนโทรลเลอร์ของคุณ คุณต้องกด L1 และจอยสติ๊กเพื่อขยับแขนกลของคุณ
- จอยสติ๊กด้านซ้ายควบคุมการงอของแขนขึ้นหรือลง
- จอยสติ๊กขวาควบคุมกรงเล็บให้เปิดหรือปิด และหมุนกรงเล็บไปทางซ้ายหรือขวา
ขั้นตอนที่ 11: คำอธิบายโค้ด
การใช้ไลบรารี PS2X Arduino นั้นง่าย เพียงต้องการการเริ่มต้น การตั้งค่า และคำสั่งอ่าน
ในการตั้งค่าการเชื่อมต่อสำหรับคอนโทรลเลอร์ PS2 ของคุณด้วย Uno ด้านล่างนี้คือพินที่คุณต้องกำหนดในโค้ดของคุณ:
/****************************************************** *************** * ตั้งค่าพินที่เชื่อมต่อกับคอนโทรลเลอร์ PS2: * - คอลัมน์ 1e: ดั้งเดิม * - 2e colmun: Stef? * แทนที่หมายเลขพินด้วยหมายเลขที่คุณใช้****************************************** **********************/#define PS2_DAT 13 //14 #define PS2_CMD 11 //15#define PS2_SEL 10 //16#define PS2_CLK 12 // 17
เราได้แทนที่พินด้วยพินที่เราใช้เพื่อเชื่อมต่อกับ Uno ของเราตามที่ระบุไว้ในไดอะแกรมพินด้านบน
/****************************************************** **************** เลือกโหมดของคอนโทรลเลอร์ PS2: * - แรงดัน = การอ่านปุ่มกดแบบอะนาล็อก * - rumble = มอเตอร์ดังก้อง * ไม่ใส่เครื่องหมาย 1 ของบรรทัดสำหรับการเลือกแต่ละโหมด** ******************************************************** ************/ //#กำหนดความกดดันจริง#กำหนดความกดดันเท็จ //#กำหนดดังก้องจริง#กำหนดดังก้องเท็จ
ที่นี่เรากำหนดโหมด PS2 สำหรับแรงกดดันและเสียงดังก้องเป็นเท็จ เราแสดงความคิดเห็นสิ่งที่เราไม่ได้ใช้
เราจะใช้เฉพาะคำสั่งจอยสติ๊กของคอนโทรลเลอร์และ L1 เพื่อควบคุมการเคลื่อนไหวของแขนกลของเราเท่านั้น
void loop() {/* คุณต้องอ่าน Gamepad เพื่อรับค่าใหม่และตั้งค่าการสั่นสะเทือน ps2x.read_gamepad (มอเตอร์ขนาดเล็กเปิด/ปิด, ความแข็งแกร่งของมอเตอร์ที่ใหญ่ขึ้นตั้งแต่ 0-255) หากคุณไม่เปิดใช้งาน rumble ให้ใช้ ps2x.read_gamepad (); โดยไม่มีค่าใด ๆ คุณควรเรียกสิ่งนี้อย่างน้อยหนึ่งครั้งต่อวินาที*/ if(error == 1) //skip loop ถ้าไม่พบตัวควบคุมที่ส่งคืน; อื่น {// DualShock Controller ps2x.read_gamepad (เท็จ, สั่น); // อ่านคอนโทรลเลอร์และตั้งค่ามอเตอร์ขนาดใหญ่ให้หมุนด้วยความเร็ว 'สั่น' ถ้า (ps2x. Button(PSB_START))//จะเป็น TRUE ตราบใดที่กดปุ่ม Serial.println ("สตาร์ทจะถูกระงับ"); if(ps2x. Button(PSB_SELECT)) Serial.println("การเลือกถูกระงับ"); สั่น = ps2x. Analog (PSAB_CROSS); // สิ่งนี้จะตั้งค่าความเร็วการสั่นสะเทือนของมอเตอร์ขนาดใหญ่ขึ้นอยู่กับว่าคุณกดปุ่มสีน้ำเงิน (X) แรงแค่ไหน if(ps2x. Button (PSB_L1) || ps2x. Button (PSB_R1)) {// พิมพ์ค่าแท่งถ้าอันใดอันหนึ่งเป็น TRUE RY_Value =ps2x.อนาล็อก(PSS_RY); RX_Value=ps2x. Analog(PSS_RX); LY_Value=ps2x.อนาล็อก(PSS_LY); LX_Value=ps2x. Analog(PSS_LX);Serial.print("ค่าติด:"); Serial.print(RX_Value); Serial.print(" "); Serial.print(RY_Value); Serial.print(" "); Serial.print(LY_Value); Serial.print(" "); Serial.println(LX_Value);
โค้ดด้านล่างเป็นที่ที่เราโค้ดเซอร์โวของเราที่ควบคุมแขนหุ่นยนต์ของเรา ซึ่งเรารวมไว้ในการเรียกใช้ฟังก์ชันภายใต้ ps2x.button(PSB_L1)|| ปุ่ม ps2x.(PSB_R1)
คุณต้องกดปุ่ม L1 หรือ R1 ร่วมกับจอยสติ๊กเพื่อควบคุม Robotic Arm ของคุณ
เซอร์โวควบคุมจอยสติ๊กด้านซ้าย 2 และ 3 สำหรับส่วนแขน - ควบคุมการงอแขนขึ้นและลงตามลำดับ ในขณะที่จอยสติ๊กควบคุมเซอร์โวควบคุม 0 และ 1 ของ Robotic Arm's Claw เพื่อเปิดหรือปิด และหมุนไปทางซ้ายหรือขวา
SERVO 0, 1 - กรงเล็บ SERVO 2, 3 - Arm
คุณสามารถเปลี่ยนแปลงค่าในส่วนนี้เพื่อควบคุมระดับของมุมแขนกลของคุณ:
pulselen0=แผนที่ (RY_Value, 0, 127, SERVOMIN0, SERVOMAX0); pulselen1=แผนที่(RX_Value, 0, 127, SERVOMIN0, SERVOMAX0); pulselen2=แผนที่(LY_Value, 0, 127, SERVOMIN2, SERVOMAX2); pulselen3=map(LX_Value, 0, 255, SERVOMIN3, SERVOMAX3);
แนะนำ:
รีโนเวทไฟกลางคืน Rayotron (ตอนที่ 2): 13 ขั้นตอน
การปรับปรุงแสงไฟกลางคืน Rayotron (ตอนที่ 2): โคมไฟกลางคืน Rayotron ของฉันได้รับแรงบันดาลใจจากเครื่องกำเนิดไฟฟ้าสถิตขนาดครึ่งล้านโวลต์ที่ออกแบบมาเพื่อผลิตรังสีเอกซ์พลังงานสูงสำหรับการวิจัยฟิสิกส์อะตอม โปรเจ็กต์ดั้งเดิมใช้แหล่งจ่ายไฟ DC 12 โวลต์เพื่อจ่ายพลังงานให้กับเครื่องสร้างประจุไอออนแบบไฟฟ้าขนาดเล็กที่ไม่
Retro "Rayotron" Night Light (ตอนที่ 1): 16 ขั้นตอน
Retro "Rayotron" Night Light (ตอนที่ 1): บทนำในเดือนธันวาคมปี 1956 Atomic Laboratories ได้โฆษณา Rayotron ว่าเป็นเครื่องกำเนิดไฟฟ้าสถิตและเครื่องเร่งอนุภาคต้นทุนต่ำเครื่องแรกสำหรับครูวิทยาศาสตร์และมือสมัครเล่น [1] Rayotron เป็นสายพานยางขนาดใหญ่พิเศษ
BLE พลังงานต่ำมากง่าย ๆ ใน Arduino ตอนที่ 2 - เครื่องวัดอุณหภูมิ / ความชื้น - Rev 3: 7 ขั้นตอน
BLE พลังงานต่ำมากง่าย ๆ ใน Arduino ตอนที่ 2 - ตัวตรวจสอบอุณหภูมิ/ความชื้น - Rev 3: อัปเดต: 23 พฤศจิกายน 2020 - การเปลี่ยนแบตเตอรี่ AAA 2 ก้อนครั้งแรกตั้งแต่วันที่ 15 มกราคม 2019 เช่น 22 เดือนสำหรับ 2xAAA AlkalineUpdate: 7 เมษายน 2019 – Rev 3 ของ lp_BLE_TempHumidity เพิ่มการพล็อตวันที่/เวลา โดยใช้ pfodApp V3.0.362+ และการควบคุมปริมาณอัตโนมัติเมื่อ
แขนกลพร้อมโมดูล Zio ตอนที่ 3: 4 ขั้นตอน
Robotic Arm With Zio Modules ตอนที่ 3: โพสต์ในบล็อกนี้เป็นส่วนหนึ่งของ Zio Robotics Series บทนำ ในบล็อกที่แล้ว เราโพสต์บทช่วยสอนตอนที่ 1 และ 2 เกี่ยวกับวิธีการควบคุมแขนหุ่นยนต์โดยใช้โมดูล Zio ส่วนที่ 1 ส่วนใหญ่เน้นที่การควบคุม Robotic Arm's Claw ของคุณโดยอัตโนมัติเ
ควบคุมแขนกลหุ่นยนต์ด้วยโมดูล Zio ตอนที่ 1: 8 ขั้นตอน
ควบคุมแขนหุ่นยนต์ด้วยโมดูล Zio ส่วนที่ 1: โพสต์ในบล็อกนี้เป็นส่วนหนึ่งของซีรี่ส์ Zio Robotics บทนำในบทช่วยสอนนี้ เราจะสร้างโครงการที่เราจะใช้โมดูล Zio เพื่อควบคุมแขนกล โปรเจ็กต์นี้จะสอนวิธีทำกรงเล็บ Robotic Arm ของคุณให้เปิดและปิด น