สารบัญ:
- ขั้นตอนที่ 1: ส่วนประกอบที่จำเป็น
- ขั้นตอนที่ 2: บทนำสู่ Dynamixel 12A
- ขั้นตอนที่ 3: การสื่อสาร/การควบคุม Dynamixel 12A
- ขั้นตอนที่ 4: การเขียนตำแหน่งเป้าหมายไปยัง Dynamixel Motor
- ขั้นตอนที่ 5: รหัสหลาม
วีดีโอ: การควบคุม Dynamixel 12A โดยการส่งแพ็คเก็ตตามลำดับ: 5 ขั้นตอน
2024 ผู้เขียน: John Day | [email protected]. แก้ไขล่าสุด: 2024-01-30 13:02
ไดนามิกเซล 12A
ขั้นตอนที่ 1: ส่วนประกอบที่จำเป็น
ฮาร์ดแวร์:
1. Dynamixel 12A หรือมอเตอร์ Dynamixel ใดๆ
2. USB ไปยังไดนามิกเซล
ซอฟต์แวร์:
1.ตัวช่วยสร้าง Robotis Dynamixel
2. Python --- ติดตั้งแพ็คเกจอนุกรม
ขั้นตอนที่ 2: บทนำสู่ Dynamixel 12A
มอเตอร์ Dynamixel มีความแม่นยำสูงและส่วนใหญ่ใช้ในวิทยาการหุ่นยนต์ มอเตอร์ Dynamixel ทุกตัวมีไมโครคอนโทรลเลอร์ STM อยู่ภายใน คุณสามารถอ่านค่าแรงบิดปัจจุบัน แรงดันไฟ การดึงกระแส อุณหภูมิ ตำแหน่ง ฯลฯ.. จาก Dynamixels Motors
ข้อมูลจำเพาะของ Dynamixel 12A:
แรงดันไฟฟ้าที่ใช้งาน ---12v
น้ำหนัก--55g
กระแสสูงสุด --900mA
แรงบิดแผงลอย--15.3 Kg.cm
ขั้นตอนที่ 3: การสื่อสาร/การควบคุม Dynamixel 12A
- Dynamixel 12A ไม่เหมือนกับเซอร์โวมอเตอร์ทั่วไปที่มี 3 พิน GND, PWM, VCC ให้แหล่งจ่ายไฟและสัญญาณ PWM และควบคุมมอเตอร์
- เราสามารถควบคุมมอเตอร์ Dynamixel โดยใช้โปรโตคอลการสื่อสาร Half Duplex UART
Half Duplex Communication Protocol คืออะไร?
การส่งข้อมูลฮาล์ฟดูเพล็กซ์หมายความว่าข้อมูลสามารถส่งได้ทั้งสองทิศทางบนตัวส่งสัญญาณ แต่ไม่ใช่ในเวลาเดียวกัน
ตอนนี้เราเรียนรู้เกี่ยวกับโปรโตคอล 1.0 สำหรับ Dynamixels จาก Robotis เพื่อควบคุมมอเตอร์ Dynamixel
- คุณสามารถสื่อสารกับมอเตอร์ Dynamixel ได้โดยส่งแพ็กเก็ตจากแล็ปท็อป/ไมโครคอนโทรลเลอร์ เช่น Arduino, r-pi ฯลฯ ไปยังไมโครคอนโทรลเลอร์ที่มีอยู่ในมอเตอร์ Dynamixel
- Dynamixels ทุกตัวมี ID ที่สามารถแก้ไขได้
- แพ็กเก็ตไม่มีอะไรเลยนอกจากชุดของไบต์
ในกรณีของ Dynamixel protocol 1.0 คุณจะมีแพ็คเก็ตสองประเภท
- แพ็กเก็ตคำสั่ง
- แพ็กเก็ตสถานะ
Instruction Packet เป็นข้อมูลคำสั่งที่ส่งไปยังอุปกรณ์
แพ็กเก็ตคำสั่งมีลักษณะดังนี้:
Header1, Header2, ID, Length, Instruction, พารามิเตอร์ 1…พารามิเตอร์, NChecksum
0xFF, 0xFF, ID, Length, Instruction Param 1…Param, NCHKSUM
ไบต์คำสั่งบอกสิ่งที่ต้องทำ ไม่ว่าจะอ่านข้อมูลหรือเขียนไปยังมอเตอร์ Dynamixel
ตารางควบคุมของมอเตอร์ไดนามิกเซล - ตารางควบคุมเป็นโครงสร้างที่ประกอบด้วยช่องข้อมูลหลายช่องเพื่อจัดเก็บสถานะหรือควบคุมอุปกรณ์
อ่านเพิ่มเติมเกี่ยวกับตารางควบคุม HereControl Table Robotis
เราสามารถเข้าถึงข้อมูลในตารางควบคุมจากที่อยู่ของมันและยังสามารถเขียนได้อีกด้วย
ขั้นตอนที่ 4: การเขียนตำแหน่งเป้าหมายไปยัง Dynamixel Motor
ชุดคำสั่งเขียนตำแหน่งเป้าหมาย
ทุกแพ็กเก็ตเริ่มต้นด้วยส่วนหัว
H1 H2 ID LEN INST P1 P2 P3 CKSM
0xFF, 0xFF, 0x01, 0x05, 0x04, 0x1E, 0xF4, 0x01, 0xE2
LEN-คำสั่งไบต์+p1+p2+p3+chk ผลรวม=5 ไบต์
ID=Dynamixel motor ID 1-คุณสามารถตั้งค่า dynamixel id โดยใช้ซอฟต์แวร์ตัวช่วยสร้าง robotis dynamixel
INST=reg เขียน-ระบุว่าคุณกำลังเขียนถึงมอเตอร์
P1=ที่อยู่เริ่มต้นของข้อมูล-ในตารางควบคุม ตำแหน่งเป้าหมายมีที่อยู่ 30(0x1E ในเลขฐานสิบหก)
P2=ไบต์ล่างของข้อมูล
P3=ไบต์ที่สูงกว่าของข้อมูล
การคำนวณ Checksum จะอธิบายในไม่ช้า……….
หากคุณส่งแพ็กเก็ตข้างต้นไปยัง Dynamixel Serially โดยใช้ USB2Dynamixel ตำแหน่งเป้าหมายของมอเตอร์ Dynamixel จะถูกตั้งค่าเป็น 500
ขั้นตอนที่ 5: รหัสหลาม
#พัฒนาโดย Madhu ปรับปรุงล่าสุดเมื่อ 2019-07-19
นำเข้า Serial
เวลานำเข้า
ser=serial. Serial('com36', '57142')
#เปลี่ยนพอร์ต com ตามนั้น อัตรารับส่งข้อมูลของมอเตอร์ไดนามิกเซลของฉันคือ 57142 คุณสามารถตั้งค่าได้โดยใช้ซอฟต์แวร์ตัวช่วยสร้าง Dynamixel
ในขณะที่(1):
gp1=input('ป้อน ID1 ตำแหน่งเป้าหมาย(0-1023)')
l=gp1&255 #ไบต์ต่ำ
h=(gp1>>8)&255 #ไบต์สูง
li=[0xff, 0xff, 0x01, 0x05, 0x04, 0x1e, l1, h1]
#ตรวจสอบการคำนวณผลรวม
crc=sum(li[2:])
ต่ำ1=crc & 255
chksum=255-low1
li.append(chksum) #เพิ่มเช็คซัม
a=bytearray(li) #converting list เป็น bytearray
ser.write(a) #ส่งแบบอนุกรมโดยใช้ usb2dynamixels
เวลานอน(0.5)
#Copy การวางโค้ดใน python IDE ติดตั้งแพ็คเกจ pyserial เชื่อมต่อ USB ด้าน USB ของ usb2dynamixel เข้ากับพอร์ต USB ของแล็ปท็อปและปลายอีกด้านหนึ่งกับมอเตอร์ Dynamixel จ่ายไฟ 12v ภายนอกให้กับ USB2DYNAMIXEL
เรียกใช้รหัส ป้อนค่าตำแหน่งเป้าหมาย ดู การทำงานของมอเตอร์
แนะนำ:
การควบคุม Led ผ่านแอพ Blynk โดยใช้ Nodemcu ทางอินเทอร์เน็ต: 5 ขั้นตอน
การควบคุม Led ผ่านแอพ Blynk โดยใช้ Nodemcu ทางอินเทอร์เน็ต: สวัสดีทุกคน วันนี้เราจะแสดงให้คุณเห็นว่าคุณสามารถควบคุม LED โดยใช้สมาร์ทโฟนผ่านอินเทอร์เน็ตได้อย่างไร
การควบคุม PC RGB ด้วย Arduino: 3 ขั้นตอน
การควบคุม PC RGB ด้วย Arduino: พีซีสำหรับเล่นเกมของคุณไม่มี RGB! เพียงแค่ซื้อบางอย่าง! แต่ถ้าเมนบอร์ดของคุณไม่รองรับล่ะ ก็… สร้างตัวควบคุมของคุณเอง
การควบคุม LED ของ Google Assistant โดยใช้ Raspberry Pi: 3 ขั้นตอน
การควบคุม LED ของ Google Assistant โดยใช้ Raspberry Pi: เฮ้! ในโครงการนี้ เราจะใช้การควบคุมด้วย Google Assistant ของ LED โดยใช้ Raspberry Pi 4 โดยใช้ HTTP ใน Python คุณสามารถเปลี่ยน LED เป็นหลอดไฟได้ (แน่นอนว่าไม่ใช่อย่างแท้จริง คุณจะต้องมีโมดูลรีเลย์ในระหว่างนั้น) หรือบ้านอื่นๆ
การควบคุม ESP8266 โดยใช้แอป Telegram: 7 ขั้นตอน
การควบคุม ESP8266 โดยใช้แอพ Telegram: ว่าไงพวก! Akarsh จาก CETech คุณเคยสงสัยเกี่ยวกับการสนทนากับอุปกรณ์ของคุณผ่านแอพส่งข้อความหรือไม่? ฟังดูแปลกใช่มั้ย แต่วันนี้เราจะมาทำสิ่งที่คล้ายคลึงกัน ไม่ต้องกังวลคุณไม่จำเป็นต้องซื้อโทรศัพท์มือถือ
การควบคุม NODE MCU-LED (ระบบอัตโนมัติภายในบ้านอย่างง่าย): 5 ขั้นตอน
การควบคุม NODE MCU-LED (ระบบอัตโนมัติในบ้านอย่างง่าย): สวัสดีทุกคน ในคำแนะนำนี้ ให้เรามาดูวิธีควบคุมหลอดไฟ LED โดยใช้สมาร์ทโฟนของคุณ เราจะใช้ Node-MCU สำหรับโครงการนี้ โปรดดูลิงก์ด้านล่างเพื่อติดตั้ง Node MCU ไลบรารี่ (ไลบรารี ESP) ใน Arduino IDE.NODE MCU-BASICS ของคุณ{Follow Ste