جدول المحتويات:

التحكم في Dynamixel 12A عن طريق إرسال الحزم بالتسلسل: 5 خطوات
التحكم في Dynamixel 12A عن طريق إرسال الحزم بالتسلسل: 5 خطوات

فيديو: التحكم في Dynamixel 12A عن طريق إرسال الحزم بالتسلسل: 5 خطوات

فيديو: التحكم في Dynamixel 12A عن طريق إرسال الحزم بالتسلسل: 5 خطوات
فيديو: Arduino: Controlling Dynamixel Ax-12 With Arduino Mega 2024, يوليو
Anonim
التحكم في Dynamixel 12A عن طريق إرسال الحزم بشكل متسلسل
التحكم في Dynamixel 12A عن طريق إرسال الحزم بشكل متسلسل

ديناميكسيل 12 أ

الخطوة 1: المكونات المطلوبة

المعدات:

1. Dynamixel 12A أو أي محرك Dynamixel

2. USB إلى Dynamixel.

البرمجيات:

1. معالج Robotis Dynamixel.

2. Python - تثبيت الحزمة التسلسلية

الخطوة 2: مقدمة إلى Dynamixel 12A

محركات Dynamixel دقيقة للغاية وتستخدم في الغالب في الروبوتات. يحتوي كل محرك من محركات Dynamixel على متحكم STM بالداخل. يمكنك قراءة عزم الدوران الحالي والجهد وسحب التيار ودرجة الحرارة والموضع وما إلى ذلك من Dynamixels Motors.

مواصفات Dynamixel 12A:

جهد التشغيل - 12 فولت

الوزن - 55 جرام

ماكس الحالي - 900 مللي أمبير

عزم الكشك - 15.3 كجم سم

الخطوة 3: الاتصال / التحكم في Dynamixel 12A

  • لا يشبه Dynamixel 12A محركات المؤازرة العادية التي تحتوي على 3pin GND و PWM و VCC ، وتوفر مصدر طاقة وإشارة PWM وتتحكم في المحرك.
  • يمكننا التحكم في محركات Dynamixel باستخدام بروتوكول اتصال Half Duplex UART.

ما هو بروتوكول الاتصال أحادي الاتجاه؟

يعني نقل البيانات أحادي الاتجاه أنه يمكن نقل البيانات في كلا الاتجاهين على ناقل إشارة ، ولكن ليس في نفس الوقت.

نتعرف الآن على Protocol 1.0 لـ Dynamixels من Robotis للتحكم في محركات Dynamixel.

  • يمكنك التواصل مع محركات Dynamixel عن طريق إرسال حزم من الكمبيوتر المحمول / المتحكم الدقيق مثل Arduino و r-pi وما إلى ذلك إلى وحدة التحكم الدقيقة الموجودة داخل محركات Dynamixel.
  • كل Dynamixels لها معرفات يمكن تعديلها.
  • الحزمة ليست سوى مجموعة البايت.

في حالة بروتوكول Dynamixel 1.0 ، سيكون لديك نوعان من الحزم

  • حزم التعليمات
  • حزم الحالة

حزمة التعليمات هي بيانات الأمر المرسلة إلى الجهاز.

تبدو حزمة التعليمات كما يلي:

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

0xFF ، 0xFF ، المعرف ، الطول ، معلمة التعليمات 1 … Param ، NCHKSUM

يخبرك بايت التعليمات ما يجب فعله ، سواء لقراءة البيانات أو الكتابة إلى محرك Dynamixel.

جدول التحكم في محرك DYNAMIXEL. - جدول التحكم عبارة عن هيكل يتكون من عدة حقول بيانات لتخزين الحالة أو للتحكم في الجهاز.

اقرأ المزيد عن جدول التحكم هنا

يمكننا الوصول إلى البيانات الموجودة في جدول التحكم من عنوانه ويمكننا أيضًا الكتابة.

الخطوة 4: كتابة Goal Position على 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 بايت

المعرف = معرف محرك Dynamixel 1 - يمكنك تعيين معرف Dynamixel باستخدام برنامج معالج robotis dynamixel

INST = reg write - تحديد ما إذا كنت تكتب إلى المحرك.

P1 = عنوان البداية للبيانات - في جدول التحكم موضع الهدف هو عنوان 30 (0x1E بالنظام الست عشري).

P2 = بايت أقل من البيانات

P3 = بايت أكبر من البيانات

سيتم شرح حساب المجموع الاختباري قريبًا …………………….

إذا قمت بإرسال الحزمة أعلاه إلى Dynamixel Serially باستخدام USB2Dynamixel ، فسيتم تعيين موضع هدف Dynamixel على 500.

الخطوة 5: كود البايثون

# تم تطويره بواسطة Madhu. آخر تحديث في 2019-07-19

استيراد المسلسل

وقت الاستيراد

ser = serial. Serial ('com36'، '57142')

#change com port وفقًا لذلك ، معدل الباود الخاص بمحركات dynamixel هو 57142 ، يمكنك ضبطه باستخدام برنامج Dynamixel wizard.

بينما (1):

gp1 = الإدخال ("أدخل موضع هدف ID1 (0-1023)")

l = gp1 & 255 # منخفض البايت

h = (gp1 >> 8) & 255 # ارتفاع البايت

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

#check حساب المبلغ

crc = sum (li [2:])

low1 = crc & 255

chksum = 255-low1

li.append (chksum) # إضافة مبلغ الاختيار

a = bytearray (li) # تحويل القائمة إلى bytearray

ser.write (أ) # إرسال تسلسلي باستخدام usb2dynamixels.

وقت النوم (0.5)

# نسخ لصق الكود في Python IDE. قم بتثبيت الحزمة pyserial. قم بتوصيل جانب USB الخاص بـ USB2dynamixel بمنفذ USB بالكمبيوتر المحمول وطرف آخر بمحرك Dynamixel. امنح إمدادًا خارجيًا بجهد 12 فولت إلى USB2DYNAMIXEL.

شغّل الرمز ، أدخل قيمة موضع الهدف. انظر تشغيل المحرك.

موصى به: