Spisu treści:
- Krok 1: Wymagane komponenty
- Krok 2: Wprowadzenie do Dynamixelu 12A
- Krok 3: Komunikacja/sterowanie Dynamixel 12A
- Krok 4: Zapisywanie pozycji celu w Dynamixel Motor
- Krok 5: KOD PYTHONA
Wideo: Sterowanie Dynamixel 12A poprzez szeregowe wysyłanie pakietów: 5 kroków
2024 Autor: John Day | [email protected]. Ostatnio zmodyfikowany: 2024-01-30 11:27
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:
Interfejs człowiek-komputer: obsługa chwytaka (wykonanego przez Kirigami) poprzez ruch nadgarstka za pomocą EMG.: 7 kroków
Interfejs człowiek-komputer: Funkcja chwytaka (wykonanego przez Kirigami) za pomocą ruchu nadgarstka za pomocą EMG.: Więc to była moja pierwsza próba z interfejsem człowiek-komputer. Uchwyciłem sygnały aktywacji mięśni mojego ruchu nadgarstka za pomocą czujnika EMG, przetworzyłem je przez pytona i arduino i uruchomiono chwytak oparty na origami
Czujnik wizyjny Micro:bit MU - połączenie szeregowe i ekran OLED: 10 kroków
Micro:bit MU Vision Sensor - Połączenie szeregowe i ekran OLED: To jest mój trzeci przewodnik po czujniku wizyjnym MU. Do tej pory próbowaliśmy używać MU do rozpoznawania kart z liczbami i kształtami, ale aby zbadać nasz czujnik MU w bardziej złożonym projekcie, chcielibyśmy uzyskać lepsze wyniki. Nie możemy uzyskać tak wielu informacji
Ponowne wykorzystanie starych ozdób choinkowych LED poprzez ich remiksowanie: 7 kroków
Ponowne wykorzystanie starych ozdób choinkowych LED przez ich remiksowanie: Kupiłem dość ohydną świąteczną dekorację w sklepie Funt (tj. sklepie za dolara) podczas wyprzedaży po sezonie trzy lata temu. To był rozczarowujący „NOEL”; znak, który został oświetlony przez niewystarczającą liczbę diod LED zasilanych bateryjnie
Sterowanie jasnością Sterowanie diodami LED w oparciu o PWM za pomocą przycisków, Raspberry Pi i Scratch: 8 kroków (ze zdjęciami)
Kontrola jasności Sterowanie diodami LED w oparciu o PWM za pomocą przycisków, Raspberry Pi i Scratch: Próbowałem znaleźć sposób, aby wyjaśnić moim uczniom, jak działa PWM, więc wyznaczyłem sobie zadanie kontrolowania jasności diody LED za pomocą 2 przycisków - jeden przycisk zwiększający jasność diody LED a drugi ją przyciemniający. Aby zaprogramować
System obecności poprzez wysyłanie danych RFID do serwera MySQL za pomocą Pythona z Arduino: 6 kroków
System Attendance poprzez wysyłanie danych RFID do serwera MySQL przy użyciu Pythona z Arduino: W tym projekcie skomunikowałem RFID-RC522 z arduino, a następnie wysyłam dane RFID do bazy danych phpmyadmin. W przeciwieństwie do naszych poprzednich projektów, w tym przypadku nie używamy żadnej osłony Ethernet, tutaj tylko odczytujemy dane szeregowe pochodzące z ar