Daftar Isi:

Mengontrol Dynamixel 12A dengan Mengirim Paket Secara Serial: 5 Langkah
Mengontrol Dynamixel 12A dengan Mengirim Paket Secara Serial: 5 Langkah

Video: Mengontrol Dynamixel 12A dengan Mengirim Paket Secara Serial: 5 Langkah

Video: Mengontrol Dynamixel 12A dengan Mengirim Paket Secara Serial: 5 Langkah
Video: Практическое руководство. Использование управления пакетами в Dynamixel Wizard 2.0. 2024, Juli
Anonim
Mengontrol Dynamixel 12A dengan Mengirim Paket Secara Serial
Mengontrol Dynamixel 12A dengan Mengirim Paket Secara Serial

DINAMIS 12A

Langkah 1: Komponen Diperlukan

PERANGKAT KERAS:

1. Dynamixel 12A atau motor Dynamixel lainnya

2. USB ke Dynamixel.

PERANGKAT LUNAK:

1. Robotis Dynamixel wizard.

2. Python --- Paket serial diinstal

Langkah 2: Pengenalan Dynamixel 12A

Motor Dynamixel sangat presisi dan banyak digunakan dalam Robotika. Setiap motor Dynamixel memiliki mikrokontroler STM di dalamnya. Anda dapat membaca torsi saat ini, tegangan, penarikan arus, suhu, posisi, dll., dari Dynamixels Motors.

Spesifikasi Dynamixel 12A:

Tegangan Operasi --12v

Berat--55g

Arus maks --900mA

Torsi Kios--15,3 Kg.cm

Langkah 3: Mengkomunikasikan/mengendalikan Dynamixel 12A

  • Dynamixel 12A tidak seperti motor servo pada umumnya yang memiliki 3pin GND, PWM, VCC, memberikan power supply dan sinyal PWM dan mengontrol motor.
  • Kita dapat mengontrol motor Dynamixel menggunakan protokol komunikasi Half Duplex UART.

Apa itu Protokol Komunikasi Half Duplex?

Transmisi data half-duplex berarti bahwa data dapat ditransmisikan dalam dua arah pada pembawa sinyal, tetapi tidak pada waktu yang sama.

Sekarang kita belajar tentang Protokol 1.0 untuk Dynamixel dari Robotis untuk mengontrol motor Dynamixel.

  • Anda dapat berkomunikasi dengan motor Dynamixel dengan mengirimkan paket dari laptop/mikrokontroler Anda seperti Arduino, r-pi, dll., ke mikrokontroler yang ada di dalam motor Dynamixel.
  • Setiap Dynamixels memiliki ID yang dapat dimodifikasi.
  • Sebuah paket tidak lain adalah Kumpulan byte.

Dalam kasus protokol Dynamixel 1.0 Anda akan memiliki dua jenis paket

  • Paket instruksi
  • Paket status

Paket Instruksi adalah data perintah yang dikirim ke Perangkat.

Paket instruksi terlihat seperti ini:

Header1, Header2, ID, Panjang, Instruksi, Param 1…Param, NChecksum

0xFF, 0xFF, ID, Panjang, Instruksi Param 1…Param, NCHKSUM

Byte instruksi memberitahu apa yang harus dilakukan, apakah membaca data atau menulis ke motor Dynamixel.

TABEL KONTROL MOTOR DINAMIS.-Tabel Kontrol adalah struktur yang terdiri dari beberapa bidang Data untuk menyimpan status atau untuk mengontrol perangkat.

Baca lebih lanjut tentang tabel Kontrol Di Sini Tabel Kontrol Robotis.

Kita dapat mengakses data dalam tabel kontrol dari alamatnya dan juga kita dapat menulis.

Langkah 4: Menulis Posisi Sasaran ke Dynamixel Motor

Paket Instruksi untuk Menulis posisi Tujuan

setiap paket dimulai dengan header

H1 H2 ID LEN INST P1 P2 P3 CKSM

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

byte instruksi LEN+p1+p2+p3+chk sum=5 byte

ID=Dynamixel motor ID 1-anda dapat mengatur id dynamixel menggunakan software robotis dynamixel wizard

INST=reg write-menentukan bahwa Anda sedang menulis ke motor.

P1=Alamat awal Data-Dalam tabel kontrol Posisi sasaran memiliki alamat 30(0x1E dalam heksadesimal).

P2 = byte data yang lebih rendah

P3=byte data yang lebih tinggi

Perhitungan checksum akan dijelaskan segera………………….

Jika anda mengirimkan paket diatas ke Dynamixel Serially menggunakan USB2Dynamixel, posisi motor goal Dynamixel akan di set menjadi 500.

Langkah 5: KODE PYTHON

#Dikembangkan oleh Madhu. Pembaruan terakhir pada 2019-07-19

impor Serial

waktu impor

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

#ubah port com sesuai, baud rate motor dynamixel saya adalah 57142, Anda dapat mengaturnya menggunakan perangkat lunak wizard Dynamixel.

sementara (1):

gp1=input('masukkan posisi tujuan ID1 (0-1023)')

l=gp1&255 #byte rendah

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

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

#cek perhitungan jumlah

crc=jumlah(li[2:])

rendah1=crc & 255

chksum=255-rendah1

li.append(chksum) #menambahkan jumlah cek

a=bytearray(li) #mengubah daftar menjadi bytearray

ser.write(a) #Kirim serial menggunakan usb2dynamixels.

waktu.tidur(0.5)

#Copy paste kode di python IDE. Instal paket pyserial. sambungkan sisi USB usb2dynamixel ke port USB laptop dan ujung lainnya ke motor Dynamixel. Berikan suplai 12v eksternal ke USB2DYNAMIXEL.

RUN kode, masukkan nilai posisi tujuan. Lihat motor berjalan.

Direkomendasikan: