Spisu treści:
2025 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2025-01-13 06:58
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.