Spisu treści:

Sterowanie Dynamixel 12A poprzez szeregowe wysyłanie pakietów: 5 kroków
Sterowanie Dynamixel 12A poprzez szeregowe wysyłanie pakietów: 5 kroków

Wideo: Sterowanie Dynamixel 12A poprzez szeregowe wysyłanie pakietów: 5 kroków

Wideo: Sterowanie Dynamixel 12A poprzez szeregowe wysyłanie pakietów: 5 kroków
Wideo: Miriam the Hexapod Bluetooth test 2024, Lipiec
Anonim
Sterowanie Dynamixel 12A poprzez szeregowe wysyłanie pakietów
Sterowanie Dynamixel 12A poprzez szeregowe wysyłanie pakietów

DYNAMIKSEL 12A

Krok 1: Wymagane komponenty

SPRZĘT KOMPUTEROWY:

1. Dynamixel 12A lub dowolny silnik Dynamixel

2. USB na Dynamixel.

OPROGRAMOWANIE:

1. Kreator Robotis Dynamixel.

2. Python --- Zainstalowany pakiet seryjny

Krok 2: Wprowadzenie do Dynamixelu 12A

Silniki Dynamixel są bardzo precyzyjne i najczęściej stosowane w robotyce. Każdy silnik Dynamixel ma wewnątrz mikrokontroler STM. Możesz odczytać aktualny moment obrotowy, napięcie, pobór prądu, temperaturę, pozycję itp. z Dynamixels Motors.

Specyfikacje Dynamixelu 12A:

Napięcie robocze-12 v

Waga-55g

Maksymalny prąd-900mA

Moment obrotowy przeciągnięcia-15.3 Kg. cm

Krok 3: Komunikacja/sterowanie Dynamixel 12A

  • Dynamixel 12A nie przypomina normalnych serwomotorów, które mają 3 piny GND, PWM, VCC, dostarczają zasilanie i sygnał PWM oraz sterują silnikiem.
  • Możemy sterować silnikami Dynamixel za pomocą protokołu komunikacyjnego Half Duplex UART.

Co to jest protokół komunikacji półdupleksowej?

Transmisja danych w trybie półdupleksowym oznacza, że dane mogą być przesyłane w obu kierunkach na nośniku sygnału, ale nie w tym samym czasie.

Teraz dowiadujemy się o protokole 1.0 dla Dynamixels firmy Robotis do sterowania silnikami Dynamixel.

  • Możesz komunikować się z silnikami Dynamixel, wysyłając pakiety z laptopa/mikrokontrolera, takiego jak Arduino, r-pi, itp., do mikrokontrolera znajdującego się w silnikach Dynamixel.
  • Każdy Dynamixel posiada ID, które można modyfikować.
  • Pakiet to nic innego jak zestaw bajtów.

W przypadku protokołu Dynamixel 1.0 będziesz mieć dwa rodzaje pakietów

  • Pakiety instrukcji
  • Pakiety statusu

Pakiet instrukcji to dane poleceń wysyłane do Urządzenia.

Pakiet instrukcji wygląda tak:

Nagłówek1, Nagłówek2, ID, Długość, Instrukcja, Param 1…Param, Suma kontrolna

0xFF, 0xFF, ID, Długość, Instrukcja Param 1… Param, NCHKSUM

Bajt rozkazu mówi, co robić, czy odczytywać dane, czy zapisywać do silnika Dynamixel.

TABELA STEROWANIA SILNIKA DYNAMIXEL.-Tabela sterowania jest strukturą składającą się z wielu pól danych do przechowywania stanu lub sterowania urządzeniem.

Przeczytaj więcej na temat stołu sterującego tutajControl Table Robotis.

Możemy uzyskać dostęp do danych w tabeli sterującej z jej adresu, a także możemy pisać.

Krok 4: Zapisywanie pozycji celu w Dynamixel Motor

Pakiet instrukcji do zapisu pozycji celu

każdy pakiet zaczyna się od nagłówka

H1 H2 ID LEN INST P1 P2 P3 CKSM

0xFF, 0xFF, 0x01, 0x05, 0x04, 0x1E, 0xF4, 0x01, 0xE2

bajt instrukcji LEN+p1+p2+p3+chk sum=5 bajtów

ID=ID silnika Dynamixel 1-możesz ustawić identyfikator dynamixela za pomocą oprogramowania robotis dynamixel wizard

INST=reg write-określający, że piszesz do silnika.

P1=Adres początkowy danych-W tabeli sterującej Pozycja celu ma adres 30(0x1E w systemie szesnastkowym).

P2=mniejszy bajt danych

P3=wyższy bajt danych

Obliczanie sumy kontrolnej zostanie wkrótce wyjaśnione……………………….

Jeśli wyślesz powyższy pakiet do Dynamixel Serial za pomocą USB2Dynamixel, pozycja celu silnika Dynamixel zostanie ustawiona na 500.

Krok 5: KOD PYTHONA

#Opracowany przez Madhu. Ostatnia aktualizacja 2019-07-19

importuj numer seryjny

czas importu

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

#Zmień odpowiednio port com, szybkość transmisji moich silników dynamixel wynosi 57142, możesz ją ustawić za pomocą oprogramowania kreatora Dynamixel.

podczas (1):

gp1=input('wprowadź pozycję celu ID1 (0-1023)')

l=gp1&255 #mały bajt

h=(gp1>>8)&255 #wysoki bajt

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

#obliczanie sumy kontrolnej

crc=suma(li[2:])

low1=crc & 255

suma=255-niski1

li.append(chsum) #dodawanie sumy kontrolnej

a=tablica bajtów(li) #konwertowanie listy do tablicy bajtów

ser.write(a) #Serial wysyłaj używając usb2dynamixels.

czas.sen(0.5)

#Skopiuj kod wklej w Pythonie IDE. Zainstaluj pakiet Pserial. podłącz stronę USB usb2dynamixel do portu USB laptopa, a drugi koniec do silnika Dynamixel. Podaj zewnętrzne zasilanie 12V do USB2DYNAMIXEL.

URUCHOM kod, wprowadź wartość pozycji celu. Zobacz pracę silnika.

Zalecana: