Мазмуну:

Пакеттерди сериялык жөнөтүү менен Dynamixel 12Aны көзөмөлдөө: 5 кадам
Пакеттерди сериялык жөнөтүү менен Dynamixel 12Aны көзөмөлдөө: 5 кадам

Video: Пакеттерди сериялык жөнөтүү менен Dynamixel 12Aны көзөмөлдөө: 5 кадам

Video: Пакеттерди сериялык жөнөтүү менен Dynamixel 12Aны көзөмөлдөө: 5 кадам
Video: NO GPS? Решение есть! Решение проблемы GPS Ublox M8N в программе U-Center 2024, Июль
Anonim
Пакеттерди сериялык жөнөтүү менен Dynamixel 12Aны көзөмөлдөө
Пакеттерди сериялык жөнөтүү менен Dynamixel 12Aны көзөмөлдөө

DYNAMIXEL 12A

1 -кадам: компоненттери талап кылынат

ЖАБДУУ:

1. Dynamixel 12A же каалаган Dynamixel мотору

2. USB Dynamixel үчүн.

ПРОГРАММА:

1. Robotis Dynamixel устасы.

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

2 -кадам: Dynamixel 12A менен таанышуу

Dynamixel моторлору абдан так жана көбүнчө робот техникасында колдонулат. Ар бир Dynamixel моторунун ичинде STM микроконтроллери бар. Dynamixels Motorsтон учурдагы моментти, чыңалууну, токту, температураны, абалды ж.б. окуй аласыз.

Dynamixel 12Aнын өзгөчөлүктөрү:

Иштөө чыңалуусу -12v

Салмагы-55 гр

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

Токтоочу момент-15.3 кг

3 -кадам: Dynamixel 12A менен байланышуу/көзөмөлдөө

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

Жарым дуплекстүү байланыш протоколу деген эмне?

Маалыматты жарым дуплекстүү берүү сигналды алып жүрүүчүдө эки багытта берилиши мүмкүн экенин билдирет, бирок ошол эле учурда эмес.

Эми биз Dynamixel моторлорун башкаруу үчүн Robotisтен Dynamixels үчүн 1.0 протоколун үйрөнөбүз.

  • Сиз Dynamixel моторлору менен ноутбуктан/микроконтроллерден Arduino, r-pi ж.б. сыяктуу пакеттерди Dynamixel моторлорунун ичиндеги микроконтроллерге жөнөтүү менен байланышсаңыз болот.
  • Ар бир Динамикселдин IDлерине өзгөртүү киргизүүгө болот.
  • Пакет - бул байттардын жыйындысынан башка эч нерсе эмес.

Dynamixel 1.0 протоколу болгондо, сизде пакеттердин эки түрү болот

  • Нускамалык пакеттер
  • Статус пакеттери

Instruction Packet - бул түзмөккө жөнөтүлгөн буйрук маалыматы.

Инструкция пакети мындай көрүнөт:

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

0xFF, 0xFF, ID, Length, Instruction Param 1… Param, NCHKSUM

Нускоо байты эмне кылуу керектигин, маалыматтарды окуу же Dynamixel моторуна жазуу керектигин айтат.

ДИНАМИКСЕЛДҮҮ МОТОРДУН КОНТРОЛДУК ТАБЛИГАСЫ.-Башкаруу столу-бул түзүлүш, ал статусту сактоо үчүн же түзүлүштү башкаруу үчүн бир нече маалымат талааларынан турат.

Бул жерде Control Table жөнүндө көбүрөөк окуңуз Control Table Table Robotis.

Биз көзөмөлдөө столундагы маалыматтарга анын дарегинен кире алабыз, ошондой эле жаза алабыз.

4 -кадам: Dynamixel Моторуна Максат Жазуу

Максатты жазуу үчүн нускамалар пакети

ар бир пакет баш менен башталат

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 мотор ID 1-сиз robotis dynamixel уста программасын колдонуп динамиксель ID орното аласыз

INST = reg моторго жазып жаткандыгыңызды көрсөтөт.

P1 = Маалыматтардын көзөмөлдөө столунун баштапкы дареги Максаттын позициясы 30 дарегине ээ (он алтылыкта 0x1E).

P2 = маалыматтын төмөнкү байты

P3 = маалыматтын байт

Чек суммасын эсептөө жакында түшүндүрүлөт ………………….

Эгерде сиз жогорудагы пакетти USB2Dynamixel аркылуу Dynamixel Serialге жөнөтсөңүз, Dynamixel моторунун максаты 500гө коюлат.

5 -кадам: ПИТОН КОДУ

#Мадху тарабынан иштелип чыккан. Акыркы жаңыртуу 2019-07-19

Import Serial

импорттоо убактысы

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

#ошого жараша ком портун өзгөртүү, менин динамиксель моторлорумдун ылдамдыгы 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 = сумма (ли [2:])

төмөн1 = crc & 255

chksum = 255-low1

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

a = bytearray (li) #тизмени bytearrayге айландыруу

ser.write (a) #Serial usb2dynamixels аркылуу жөнөтүү.

убакыт.уйку (0.5)

#Python IDEдеги кодду көчүрүңүз. Pyserial пакетин орнотуу. usb2dynamixelдин USB жагын ноутбуктун USB портуна, дагы бир четин Dynamixel моторуна туташтырыңыз. USB2DYNAMIXELге тышкы 12в берүүнү бериңиз.

Кодду иштетиңиз, максат позициясынын маанисин киргизиңиз. Мотордун иштеп жатканын караңыз.

Сунушталууда: