Мазмұны:

Пакеттерді сериялық жіберу арқылы Dynamixel 12A басқару: 5 қадам
Пакеттерді сериялық жіберу арқылы Dynamixel 12A басқару: 5 қадам

Бейне: Пакеттерді сериялық жіберу арқылы Dynamixel 12A басқару: 5 қадам

Бейне: Пакеттерді сериялық жіберу арқылы Dynamixel 12A басқару: 5 қадам
Бейне: Жігітім дұрыстап тықпаса не істеу керек? 2024, Шілде
Anonim
Пакеттерді сериялық жіберу арқылы Dynamixel 12A басқару
Пакеттерді сериялық жіберу арқылы Dynamixel 12A басқару

DYNAMIXEL 12A

1 -қадам: Қажетті компоненттер

ЖАБДЫҚ:

1. Dinamixel 12A немесе кез келген Dynamixel қозғалтқышы

2. USB - Dynamixel.

БАҒДАРЛАМА:

1. Robotis Dynamixel шебері.

2. Python --- Сериялық пакет орнатылды

2 -қадам: Dynamixel 12A -ға кіріспе

Динамиксельді қозғалтқыштар өте дәл және көбінесе робототехникада қолданылады. Әрбір Dynamixel қозғалтқышында STM микроконтроллері бар. Dynamixels Motors -тен ағымдағы крутящий, кернеу, ток күші, температура, позиция және т.б… оқуға болады.

Dynamixel 12A техникалық сипаттамалары:

Жұмыс кернеуі -12 в

Салмағы-55 г

Максималды ток -900 мА

Тұрақ моменті-15,3 кг

3 -қадам: Dynamixel 12A байланыс/басқару

  • Dynamixel 12A 3pin GND, PWM, VCC бар, қуат көзі мен PWM сигналын беретін және қозғалтқышты басқаратын қалыпты серво қозғалтқыштарына ұқсамайды.
  • Біз Dynamixel қозғалтқыштарын UART Half Duplex байланыс протоколы арқылы басқара аламыз.

Жартылай дуплексті байланыс протоколы дегеніміз не?

Деректерді жартылай дуплексті беру-бұл сигнал тасымалдаушыда деректерді екі бағытта да беруге болатынын білдіреді.

Енді біз Dynamixel қозғалтқыштарын басқару үшін Robotis -тен Dynamixels протоколы 1.0 туралы білеміз.

  • Dynamixel қозғалтқыштарымен Arduino, r-pi және т.б. сияқты ноутбуктерден/пакеттерден Dynamixel қозғалтқыштарының ішіндегі микроконтроллерге пакеттер жіберу арқылы хабарласа аласыз.
  • Әрбір динамиксельде өзгертуге болатын идентификаторлар бар.
  • Пакет - бұл байттар жиынтығынан басқа ештеңе емес.

Dynamixel 1.0 протоколы болған кезде сізде пакеттің екі түрі болады

  • Нұсқаулық пакеттер
  • Күй пакеттері

Нұсқаулық пакеті - бұл құрылғыға жіберілетін командалық деректер.

Нұсқаулық пакеті келесідей:

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

0xFF, 0xFF, идентификатор, ұзындық, нұсқаулық параметрі 1… Парам, NCHKSUM

Нұсқаулық байт не істеу керектігін, деректерді оқу немесе Dynamixel қозғалтқышына жазу керектігін айтады.

DINAMIXEL MOTOR БАСҚАРУ КЕСТЕСІ.-Басқару кестесі-бұл күйді сақтауға немесе құрылғыны басқаруға арналған бірнеше мәліметтер өрісінен тұратын құрылым.

Басқару кестесі туралы толығырақ мына жерден қараңыз: Control Table Robotis.

Біз бақылау кестесіндегі деректерге оның мекен -жайынан қол жеткізе аламыз, сонымен қатар жаза аламыз.

4 -қадам: Динамиксельді қозғалтқышқа мақсатты позиция жазу

Мақсатты жазуға арналған нұсқаулық пакеті

Әр пакет тақырыптан басталады

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 қозғалтқышының идентификаторы 1-сіз robis dynamixel шеберінің бағдарламалық жасақтамасын пайдаланып динамиксельді идентификаторды орната аласыз.

INST = reg моторға жазғаныңызды көрсетеді.

P1 = Деректердің бастапқы мекенжайы-Басқару кестесінде Мақсат позициясы-30 адресі (он алтылықта 0x1E).

P2 = деректердің төменгі байты

P3 = деректердің жоғары байты

Бақылау сомасын есептеу жақын арада түсіндіріледі ………………….

Егер жоғарыда көрсетілген пакетті USB2Dynamixel көмегімен Dynamixel Serial -ге жіберетін болсаңыз, Dynamixel қозғалтқышының мақсатты орны 500 -ге орнатылады.

5 -қадам: PYTHON КОДЫ

#Мадху жасаған. Соңғы жаңарту 19.07.2019 ж

сериялық импорт

импорт уақыты

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

#сәйкес портты өзгертіңіз, менің динамиксельді қозғалтқыштарымның жіберу жылдамдығы 57142, оны Dynamixel шеберінің бағдарламалық жасақтамасы арқылы орнатуға болады.

ал (1):

gp1 = енгізу ('ID1 мақсатының орнын енгізіңіз (0-1023)')

l = gp1 & 255 #төмен байт

h = (gp1 >> 8) & 255 #жоғары байт

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

#соманың есептелуін тексеріңіз

crc = қосынды (ли [2:])

төмен1 = crc & 255

chksum = 255-төмен1

li.append (chksum) #adding чек сомасы

a = bytearray (li) #тізімді bytearray -ге түрлендіру

ser.write (a) #Serial usb2dynamixels арқылы жіберу.

уақыт.ұйқы (0.5)

#Python IDE ішіндегі кодты көшіру. Pyserial пакетін орнатыңыз. usb2dynamixel -дің USB жағын ноутбуктің USB портына, екінші ұшын Dynamixel қозғалтқышына қосыңыз. USB2DYNAMIXEL -ге 12В сыртқы ток беріңіз.

Кодты іске қосыңыз, мақсат позициясының мәнін енгізіңіз. Қозғалтқыштың жұмыс істеуін қараңыз.

Ұсынылған: