Isi kandungan:

Mengawal Dynamixel 12A dengan Menghantar Paket Serial: 5 Langkah
Mengawal Dynamixel 12A dengan Menghantar Paket Serial: 5 Langkah

Video: Mengawal Dynamixel 12A dengan Menghantar Paket Serial: 5 Langkah

Video: Mengawal Dynamixel 12A dengan Menghantar Paket Serial: 5 Langkah
Video: Что заставило братьев Менендес убить своих родителей?... 2024, Julai
Anonim
Mengawal Dynamixel 12A dengan Menghantar Paket Secara Serial
Mengawal Dynamixel 12A dengan Menghantar Paket Secara Serial

DYNAMIXEL 12A

Langkah 1: Komponen Diperlukan

PERKAKASAN:

1. Dynamixel 12A atau mana-mana motor Dynamixel

2. USB ke Dynamixel.

PERISIAN:

1. Ahli sihir Robotis Dynamixel.

2. Python --- Pakej bersiri dipasang

Langkah 2: Pengenalan kepada Dynamixel 12A

Motor Dynamixel sangat tepat dan kebanyakannya digunakan dalam Robotik. Setiap motor Dynamixel mempunyai mikrokontroler STM di dalamnya. Anda boleh membaca tork semasa, voltan, tarikan semasa, suhu, kedudukan, dan lain-lain, dari Dynamixels Motors.

Spesifikasi Dynamixel 12A:

Voltan Operasi - 12v

Berat - 55g

Arus maksimum --900mA

Tork Stall - 15.3 Kg.cm

Langkah 3: Berkomunikasi / mengawal Dynamixel 12A

  • Dynamixel 12A tidak seperti motor servo biasa yang mempunyai 3pin GND, PWM, VCC, memberikan bekalan kuasa dan isyarat PWM dan mengawal motor.
  • Kita boleh mengawal motor Dynamixel menggunakan protokol komunikasi Half Duplex UART.

Apa itu Protokol Komunikasi Half Duplex?

Penghantaran data separuh dupleks bermaksud bahawa data dapat dihantar ke kedua arah pada pembawa isyarat, tetapi tidak pada masa yang sama.

Sekarang kita belajar mengenai Protokol 1.0 untuk Dynamixels dari Robotis untuk mengawal motor Dynamixel.

  • Anda boleh berkomunikasi dengan motor Dynamixel dengan menghantar paket dari komputer riba / mikrokontroler anda seperti Arduino, r-pi, dll., Ke mikrokontroler yang terdapat di dalam motor Dynamixel.
  • Setiap Dynamixels mempunyai ID yang boleh diubah suai.
  • Satu paket tidak lain adalah Set bait.

Sekiranya terdapat protokol Dynamixel 1.0, anda akan mempunyai dua jenis paket

  • Paket arahan
  • Paket status

Instruction Packet adalah data arahan yang dihantar ke Peranti.

Paket arahan kelihatan seperti ini:

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

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

Petunjuk arahan memberitahu apa yang harus dilakukan, sama ada membaca data atau menulis ke motor Dynamixel.

JADUAL KAWALAN MOTOR DYNAMIXEL.-Jadual Kawalan adalah struktur yang terdiri daripada pelbagai medan Data untuk menyimpan status atau untuk mengawal peranti.

Baca lebih lanjut mengenai Robotis Table Control HereControl Table.

Kami dapat mengakses data dalam jadual kawalan dari alamatnya dan juga kami dapat menulis.

Langkah 4: Menulis Kedudukan Matlamat ke Dynamixel Motor

Petunjuk Arahan untuk Menulis kedudukan Matlamat

setiap paket bermula dengan pengepala

H1 H2 ID LEN INST P1 P2 P3 CKSM

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

Bait arahan LEN + p1 + p2 + p3 + jumlah chk = 5 bait

ID = Dynamixel motor ID 1-anda boleh menetapkan id dynamixel menggunakan perisian wizard robotis dynamixel

INST = reg tulis-tentukan bahawa anda menulis ke motor.

P1 = Alamat permulaan Data-Di jadual kawalan Posisi gol mempunyai alamat 30 (0x1E dalam heksadesimal).

P2 = bait data yang lebih rendah

P3 = bait data yang lebih tinggi

Pengiraan Checksum akan dijelaskan sebentar lagi ………………….

Sekiranya anda menghantar paket di atas ke Dynamixel Serial menggunakan USB2Dynamixel, kedudukan matlamat motor Dynamixel akan ditetapkan ke 500.

Langkah 5: KOD PYTHON

#Dibangunkan oleh Madhu. Kemas kini terakhir pada 2019-07-19

import bersiri

masa import

ser = bersiri. Siri ('com36', '57142')

#change com port sesuai, kadar baud motor dynamixel saya adalah 57142, anda boleh menetapkannya menggunakan perisian wizard Dynamixel.

sementara (1):

gp1 = input ('masukkan kedudukan gol ID1 (0-1023)')

l = gp1 & 255 # rendah bait

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

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

#semak pengiraan jumlah

crc = jumlah (li [2:])

rendah1 = crc & 255

chksum = 255-rendah1

li.append (chksum) # tambah jumlah cek

a = bytearray (li) #menukar senarai menjadi bytearray

ser.write (a) # Hantar secara bersiri menggunakan usb2dynamixels.

masa. tidur (0.5)

# Salin pasta kod dalam python IDE. Pasang pakej bakteria. sambungkan bahagian USB usb2dynamixel ke port USB komputer riba dan hujung lain ke motor Dynamixel. Berikan bekalan 12v luaran ke USB2DYNAMIXEL.

JALANKAN kod, masukkan nilai kedudukan gol. Lihat motor berjalan.

Disyorkan: