فهرست مطالب:

کنترل Dynamixel 12A با ارسال بسته ها به صورت سری: 5 مرحله
کنترل Dynamixel 12A با ارسال بسته ها به صورت سری: 5 مرحله

تصویری: کنترل Dynamixel 12A با ارسال بسته ها به صورت سری: 5 مرحله

تصویری: کنترل Dynamixel 12A با ارسال بسته ها به صورت سری: 5 مرحله
تصویری: آنباکسینگ و معرفی میکرو سروو موتور داینامیکسل | DYNAMIXEL XL330 - Micro Servo Motor 2024, نوامبر
Anonim
کنترل Dynamixel 12A با ارسال بسته ها به صورت سری
کنترل Dynamixel 12A با ارسال بسته ها به صورت سری

DYNAMIXEL 12A

مرحله 1: اجزای مورد نیاز

سخت افزار:

1. Dynamixel 12A یا هر موتور Dynamixel

2. USB به Dynamixel

نرم افزار:

1. جادوگر Robotis Dynamixel.

2. پایتون --- بسته سریال نصب شده است

مرحله 2: آشنایی با Dynamixel 12A

موتورهای Dynamixel بسیار دقیق هستند و بیشتر در Robotics استفاده می شوند. هر موتور Dynamixel دارای میکروکنترلر STM در داخل است. شما می توانید گشتاور ، ولتاژ ، جریان ، دما ، موقعیت و غیره را از Dynamixels Motors بخوانید.

مشخصات Dynamixel 12A:

ولتاژ کار -12 ولت

وزن-55 گرم

حداکثر جریان -900mA

گشتاور استال-15.3 کیلوگرم بر سانتیمتر

مرحله 3: ارتباط/کنترل Dynamixel 12A

  • Dynamixel 12A مانند سروو موتورهای معمولی نیست که دارای 3 پین GND ، PWM ، VCC هستند ، منبع تغذیه و سیگنال PWM می دهند و موتور را کنترل می کنند.
  • ما می توانیم موتورهای Dynamixel را با استفاده از پروتکل ارتباطی Half Duplex UART کنترل کنیم.

پروتکل ارتباطی نیمه دو طرفه چیست؟

انتقال داده های نیمه دو طرفه به این معنی است که داده ها را می توان در هر دو جهت بر روی حامل سیگنال منتقل کرد ، اما نه به طور همزمان.

اکنون ما با پروتکل 1.0 برای Dynamixels از Robotis برای کنترل موتورهای Dynamixel آشنا می شویم.

  • شما می توانید با ارسال بسته هایی از لپ تاپ/میکروکنترلر خود مانند Arduino ، r-pi و غیره به میکروکنترلرهای موجود در موتورهای Dynamixel با موتورهای Dynamixel ارتباط برقرار کنید.
  • هر Dynamixels دارای شناسه قابل تغییر است.
  • یک بسته چیزی نیست جز مجموعه ای از بایت ها.

شامل پروتکل Dynamixel 1.0 شما دو نوع بسته خواهید داشت

  • بسته های آموزشی
  • بسته های وضعیت

بسته دستورالعمل داده های فرمان ارسال شده به دستگاه است.

بسته آموزشی به این شکل است:

Header1، Header2، ID، Length، Instruction، Param 1… Param، NChecksum

0xFF ، 0xFF ، ID ، طول ، دستورالعمل Param 1… Param، NCHKSUM

بایت دستورالعمل می گوید که باید چه کار کرد ، آیا داده ها را بخوانیم یا در موتور Dynamixel بنویسیم.

جدول کنترل یک موتور DYNAMIXEL.-Table Control ساختاری است که از چندین فیلد داده برای ذخیره وضعیت یا کنترل دستگاه تشکیل شده است.

اطلاعات بیشتر در مورد جدول کنترل را اینجا بخوانید Control 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 sum = 5 بایت

ID = Dynamixel motor ID 1-شما می توانید شناسه دینامیکسل را با استفاده از نرم افزار wizard robotis dynamixel تنظیم کنید

INST = reg write-مشخص می کند که شما در حال نوشتن روی موتور هستید.

P1 = آدرس شروع داده ها-در جدول کنترل موقعیت هدف داشتن آدرس 30 (0x1E به صورت هگزادسیمال) است.

P2 = بایت داده کمتر است

P3 = بایت بیشتر داده

محاسبه جمع حساب به زودی توضیح داده می شود ………………….

اگر بسته فوق را با استفاده از USB2Dynamixel به Dynamixel Serially ارسال کنید ، موقعیت هدف موتور Dynamixel روی 500 تنظیم می شود.

مرحله 5: کد PYTHON

#توسعه یافته توسط Madhu. آخرین به روز رسانی در 2019-07-19

وارد کردن سریال

زمان واردات

ser = سریال. سریال ('com36'، '57142')

بر این اساس ، #پورت com را تغییر دهید ، نرخ باود موتورهای دینامیکسل من 57142 است ، می توانید آن را با استفاده از نرم افزار Dynamixel wizard تنظیم کنید.

در حالی که (1):

gp1 = ورودی ('موقعیت هدف ID1 (0-1023) را وارد کنید')

l = gp1 & 255 #کم بایت

h = (gp1 >> 8) و 255 #بایت بالا

li = [0xff ، 0xff ، 0x01 ، 0x05 ، 0x04 ، 0x1e ، l1 ، h1]

#محاسبه جمع را بررسی کنید

crc = مجموع (li [2:])

low1 = crc & 255

chksum = 255-low1

li.append (chksum) #افزودن جمع چک

a = bytearray (li) #تبدیل لیست به bytearray

ser.write (a) #به صورت سری با استفاده از usb2dynamixels ارسال کنید.

زمان خواب (0.5)

#کد کد را در python IDE کپی کنید. بسته pyserial را نصب کنید. سمت USB usb2dynamixel را به پورت USB لپ تاپ و سر دیگر را به موتور Dynamixel وصل کنید. منبع تغذیه خارجی 12 ولت به USB2DYNAMIXEL بدهید.

کد را اجرا کنید ، مقدار موقعیت هدف را وارد کنید. موتور در حال حرکت را ببینید.

توصیه شده: