Sommario:

Controllo di Dynamixel 12A inviando pacchetti in serie: 5 passaggi
Controllo di Dynamixel 12A inviando pacchetti in serie: 5 passaggi

Video: Controllo di Dynamixel 12A inviando pacchetti in serie: 5 passaggi

Video: Controllo di Dynamixel 12A inviando pacchetti in serie: 5 passaggi
Video: How to Edit DYNAMIXEL X Firmware Using ControlTableItem Arduino Example for DYNAMIXEL Shield 2024, Dicembre
Anonim
Controllo di Dynamixel 12A inviando pacchetti in serie
Controllo di Dynamixel 12A inviando pacchetti in serie

DYNAMIXEL 12A

Passaggio 1: componenti necessari

HARDWARE:

1. Dynamixel 12A o qualsiasi motore Dynamixel

2. USB a Dynamixel.

SOFTWARE:

1. Procedura guidata Robotis Dynamixel.

2. Python ---Pacchetto seriale installato

Passaggio 2: Introduzione a Dynamixel 12A

I motori Dynamixel sono altamente precisi e utilizzati principalmente nella robotica. Ogni motore Dynamixel ha un microcontrollore STM all'interno. È possibile leggere la coppia corrente, la tensione, l'assorbimento di corrente, la temperatura, la posizione, ecc., da Dynamixels Motors.

Specifiche di Dynamixel 12A:

Tensione di esercizio --12v

Peso-55g

Corrente massima --900mA

Coppia di stallo--15,3 Kg.cm

Passaggio 3: comunicazione/controllo di Dynamixel 12A

  • Dynamixel 12A non è come i normali servomotori che hanno 3 pin GND, PWM, VCC, forniscono alimentazione e segnale PWM e controllano il motore.
  • Possiamo controllare i motori Dynamixel utilizzando il protocollo di comunicazione Half Duplex UART.

Che cos'è il protocollo di comunicazione Half Duplex?

La trasmissione di dati half-duplex significa che i dati possono essere trasmessi in entrambe le direzioni su una portante di segnale, ma non contemporaneamente.

Ora impariamo a conoscere il protocollo 1.0 per Dynamixels di Robotis per controllare i motori Dynamixel.

  • Puoi comunicare con i motori Dynamixel inviando pacchetti dal tuo laptop/microcontrollore come Arduino, r-pi, ecc., al microcontrollore che è presente all'interno dei motori Dynamixel.
  • Ogni Dynamixels ha ID che possono essere modificati.
  • Un pacchetto non è altro che un insieme di byte.

In caso di protocollo Dynamixel 1.0 avrai due tipi di pacchetti

  • Pacchetti di istruzioni
  • Pacchetti di stato

Il pacchetto di istruzioni è il dato di comando inviato al dispositivo.

Il pacchetto di istruzioni è simile a questo:

Intestazione1, Intestazione2, ID, Lunghezza, Istruzione, Param 1…Param, NChecksum

0xFF, 0xFF, ID, Lunghezza, Param istruzione 1…Param, NCHKSUM

Il byte di istruzione dice cosa fare, se leggere i dati o scrivere sul motore Dynamixel.

TABELLA DI CONTROLLO DI UN MOTORE DYNAMIXEL.-La Tabella di controllo è una struttura composta da più campi Dati per memorizzare lo stato o per controllare il dispositivo.

Maggiori informazioni su Control table quiControl Table Robotis.

Possiamo accedere ai dati nella tabella di controllo dal suo indirizzo e possiamo anche scrivere.

Passaggio 4: scrittura della posizione dell'obiettivo su Dynamixel Motor

Pacchetto di istruzioni per scrivere la posizione dell'obiettivo

ogni pacchetto inizia con un'intestazione

H1 H2 ID LEN INST P1 P2 P3 CKSM

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

Istruzione LEN byte+p1+p2+p3+chk somma=5 byte

ID=ID motore Dynamixel 1-puoi impostare l'ID dynamixel utilizzando il software robotis dynamixel wizard

INST=reg write-specificando che stai scrivendo sul motore.

P1=Indirizzo iniziale del Data-In nella tabella di controllo La posizione obiettivo ha un indirizzo 30 (0x1E in esadecimale).

P2=byte inferiore di dati

P3=byte di dati più alto

Il calcolo del checksum verrà spiegato a breve………………….

Se invii il pacchetto di cui sopra a Dynamixel in serie utilizzando USB2Dynamixel, la posizione dell'obiettivo del motore Dynamixel verrà impostata su 500.

Passaggio 5: CODICE PYTHON

#Sviluppato da Madhu. Ultimo aggiornamento il 2019-07-19

importazione seriale

tempo di importazione

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

#cambia la porta com di conseguenza, la mia velocità di trasmissione dei motori dynamixel è 57142, puoi impostarla utilizzando il software della procedura guidata Dynamixel.

mentre (1):

gp1=input('inserisci posizione obiettivo ID1 (0-1023)')

l=gp1&255 #byte basso

h=(gp1>>8)&255 #high byte

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

#calcolo della somma di controllo

crc=somma(li[2:])

basso1=crc & 255

chksum=255-basso1

li.append(chksum) #aggiunta di checksum

a=bytearray(li) #conversione lista in bytearray

ser.write(a) #Invia in serie utilizzando usb2dynamixels.

tempo.sonno(0.5)

#Copia il codice incolla nell'IDE Python. Installa il pacchetto pyserial. collega il lato USB di usb2dynamixel alla porta USB del laptop e un'altra estremità al motore Dynamixel. Fornire un'alimentazione 12v esterna a USB2DYNAMIXEL.

ESEGUI il codice, inserisci il valore della posizione obiettivo. Vedi motore in funzione.

Consigliato: