Оглавление:
- Шаг 1. Необходимые компоненты
- Шаг 2: Знакомство с Dynamixel 12A
- Шаг 3: обмен данными / управление Dynamixel 12A
- Шаг 4: Запись положения цели в динамиксельный двигатель
- Шаг 5: КОД PYTHON
Видео: Управление Dynamixel 12A путем последовательной отправки пакетов: 5 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:48
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:
Рабочее напряжение - 12 В
Вес - 55 г
Максимальный ток --900 мА
Крутящий момент в стойле - 15,3 кг / см
Шаг 3: обмен данными / управление Dynamixel 12A
- Dynamixel 12A не похож на обычные серводвигатели, которые имеют 3 контакта GND, PWM, VCC, подают питание и сигнал PWM и управляют двигателем.
- Мы можем управлять двигателями Dynamixel, используя протокол связи Half Duplex UART.
Что такое протокол полудуплексной связи?
Полудуплексная передача данных означает, что данные могут передаваться на несущей сигнала в обоих направлениях, но не одновременно.
Теперь мы узнаем о протоколе 1.0 для Dynamixel от Robotis для управления двигателями Dynamixel.
- Вы можете связываться с двигателями Dynamixel, отправляя пакеты со своего ноутбука / микроконтроллера, такого как Arduino, r-pi и т. Д., На микроконтроллер, который присутствует внутри двигателей Dynamixel.
- У каждого Dynamixels есть ID, которые можно изменить.
- Пакет - это не что иное, как набор байтов.
В случае протокола Dynamixel 1.0 у вас будет два типа пакетов
- Пакеты инструкций
- Пакеты статуса
Пакет инструкций - это командные данные, отправляемые на устройство.
Пакет инструкций выглядит так:
Заголовок1, Заголовок2, ID, Длина, Инструкция, Параметр 1… Параметр, NC Контрольная сумма
0xFF, 0xFF, ID, длина, инструкция Param 1… Param, NCHKSUM
Байт инструкции сообщает, что делать, читать ли данные или записывать в двигатель Dynamixel.
ТАБЛИЦА УПРАВЛЕНИЯ ДИНАМИКСЕЛЬНЫМ ДВИГАТЕЛЕМ. Таблица управления - это структура, которая состоит из нескольких полей данных для хранения статуса или управления устройством.
Подробнее о таблице управления читайте здесь. Таблица управления Robotis.
Мы можем получить доступ к данным в управляющей таблице по ее адресу, а также можем писать.
Шаг 4: Запись положения цели в динамиксельный двигатель
Пакет инструкций для записи позиции цели
каждый пакет начинается с заголовка
H1 H2 ID LEN INST P1 P2 P3 CKSM
0xFF, 0xFF, 0x01, 0x05, 0x04, 0x1E, 0xF4, 0x01, 0xE2
LEN-инструкция byte + p1 + p2 + p3 + chk sum = 5 байтов
ID = идентификатор двигателя Dynamixel 1 - вы можете установить идентификатор Dynamixel с помощью программного обеспечения robotis Dynamixel wizard
INST = reg write - указывает, что вы пишете в мотор.
P1 = Начальный адрес входных данных в таблице управления. Позиция цели имеет адрес 30 (0x1E в шестнадцатеричном формате).
P2 = младший байт данных
P3 = старший байт данных
Расчет контрольной суммы будет объяснен в ближайшее время ………………….
Если вы отправите вышеуказанный пакет в Dynamixel Serially с помощью USB2Dynamixel, целевое положение двигателя Dynamixel будет установлено на 500.
Шаг 5: КОД PYTHON
# Разработано Мадху. Последнее обновление 19.07.2019
импорт серийного номера
время импорта
ser = serial. Serial ('com36', '57142')
# соответственно измените com-порт, скорость передачи моих двигателей Dynamixel составляет 57142 бода, вы можете установить ее с помощью программного обеспечения Dynamixel wizard.
в то время как (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:])
low1 = crc & 255
chksum = 255-низкий1
li.append (chksum) # добавление контрольной суммы
a = bytearray (li) # преобразование списка в bytearray
ser.write (a) # Последовательно отправить, используя usb2dynamixels.
time.sleep (0,5)
# Скопируйте вставку кода в среде IDE Python. Установите пакет pyserial. Подключите USB-разъем usb2dynamixel к USB-порту ноутбука, а другой конец - к двигателю Dynamixel. Подайте внешнее питание 12В на USB2DYNAMIXEL.
ЗАПУСТИТЕ код, введите значение позиции цели. См. Двигатель работает.
Рекомендуемые:
Raspberry PI 3 - включение последовательной связи с TtyAMA0 в BCM GPIO 14 и GPIO 15: 9 шагов
Raspberry PI 3 - включение последовательной связи с TtyAMA0 в BCM GPIO 14 и GPIO 15: недавно у меня был интерес к включению UART0 на моем Raspberry Pi (3b), чтобы я мог подключить его напрямую к устройству уровня сигнала RS-232, используя стандарт 9 -контактный разъем d-sub без необходимости переходить через переходник с USB на RS-232. Часть моего интереса
Повторное использование старых светодиодных рождественских украшений путем их ремикширования: 7 шагов
Повторное использование старых светодиодных рождественских украшений путем их ремикширования: три года назад я купил довольно отвратительное рождественское украшение в магазине Pound (то есть долларовом магазине) во время распродаж после сезона. Это был неутешительный "NOEL". знак, который был подсвечен недостаточным количеством светодиодов с питанием от батареи
УФ-облучение печатной платы путем переработки старого сканера: 6 шагов (с изображениями)
УФ-облучение печатной платы путем переработки старого сканера: Привет, вот как я сделал УФ-облучение печатной платы, переработав старый сканер
Система посещаемости путем отправки данных RFID на сервер MySQL с использованием Python с Arduino: 6 шагов
Система посещаемости путем отправки данных RFID на сервер MySQL с использованием Python с Arduino: в этом проекте я подключил RFID-RC522 к arduino, а затем отправляю данные RFID в базу данных phpmyadmin. В отличие от наших предыдущих проектов, в этом случае мы не используем какой-либо сетевой экран, здесь мы просто читаем последовательные данные, поступающие из ar
ArduBaby - половинный Arduboy с 500 играми на последовательной вспышке: 10 шагов
ArduBaby - половинный Arduboy с 500 играми на последовательной флэш-памяти: вы можете просмотреть это видео на YouTube, чтобы увидеть, как я создал этот крошечный самодельный Arduboy с последовательной флэш-памятью, который может хранить до 500 игр для игры в дороге . Благодарим создателя (Кевина Бейтса), Arduboy очень