İçindekiler:
2025 Yazar: John Day | [email protected]. Son düzenleme: 2025-01-13 06:58
DİNAMİKSEL 12A
Adım 1: Gerekli Bileşenler
DONANIM:
1. Dynamixel 12A veya herhangi bir Dynamixel motor
2. USB'den Dynamixel'e.
YAZILIM:
1. Robotis Dynamixel sihirbazı.
2. Python ---Seri paket yüklendi
Adım 2: Dynamixel 12A'ya Giriş
Dynamixel motorlar oldukça hassastır ve çoğunlukla Robotikte kullanılır. Her Dynamixel motorun içinde STM mikrodenetleyici bulunur. Dynamixels Motors'dan akım torku, voltaj, akım çekimi, sıcaklık, konum vb. bilgileri okuyabilirsiniz.
Dynamixel 12A'nın Özellikleri:
Çalışma Gerilimi --12v
Ağırlık--55g
Maksimum akım --900mA
Durak Torku - -15.3 Kg.cm
Adım 3: Dynamixel 12A ile iletişim/kontrol etme
- Dynamixel 12A, 3pin GND, PWM, VCC'ye sahip, güç kaynağı ve PWM sinyali veren ve motoru kontrol eden normal servo motorlar gibi değildir.
- Dynamixel motorları Half Duplex UART haberleşme protokolü ile kontrol edebiliyoruz.
Yarım Dubleks İletişim Protokolü Nedir?
Yarım çift yönlü veri iletimi, verilerin bir sinyal taşıyıcı üzerinde her iki yönde iletilebilmesi, ancak aynı anda iletilemeyeceği anlamına gelir.
Şimdi Robotis'ten Dynamixel motorlarını kontrol etmek için Dynamixels için Protokol 1.0'ı öğreniyoruz.
- Dynamixel motorların içinde bulunan mikrodenetleyiciye Arduino, r-pi vb. gibi laptop/mikrodenetleyicilerinizden paketler göndererek Dynamixel motorlar ile haberleşebilirsiniz.
- Her Dynamixel'in değiştirilebilen kimlikleri vardır.
- Bir paket, bayt kümesinden başka bir şey değildir.
Dynamixel protokolü 1.0 durumunda, iki tür paketiniz olacaktır.
- talimat paketleri
- Durum paketleri
Talimat Paketi, Cihaza gönderilen komut verileridir.
Talimat paketi şöyle görünür:
Header1, Header2, ID, Length, Instruction, Param 1…Param, NChecksum
0xFF, 0xFF, ID, Uzunluk, Komut Param 1…Param, NCHKSUM
Komut baytı, Dynamixel motoruna veri okumak veya yazmak için ne yapılacağını söyler.
BİR DİNAMİKSEL MOTORUN KONTROL TABLOSU.-Kontrol Tablosu, durumu saklamak veya cihazı kontrol etmek için birden fazla Veri alanından oluşan bir yapıdır.
Kontrol tablosu HereControl Table Robotis hakkında daha fazla bilgi edinin.
Adresinden kontrol tablosundaki verilere ulaşabilir ve ayrıca yazabiliriz.
Adım 4: Dynamixel Motor'a Hedef Konumu Yazma
Hedef pozisyonunu yazmak için talimat paketi
her paket bir başlık ile başlar
H1 H2 ID LEN INST P1 P2 P3 CKSM
0xFF, 0xFF, 0x01, 0x05, 0x04, 0x1E, 0xF4, 0x01, 0xE2
LEN komut baytı+p1+p2+p3+chk toplam=5 bayt
ID=Dynamixel motor ID 1-dynamixel kimliğini robotis dynamixel sihirbaz yazılımını kullanarak ayarlayabilirsiniz
INST=reg yazma-motora yazdığınızı belirtir.
P1=Kontrol tablosundaki Verilerin başlangıç adresi Hedef konumu 30(onaltılık olarak 0x1E) adresine sahip.
P2=alt veri baytı
P3=daha yüksek veri baytı
Checksum hesaplaması birazdan anlatılacaktır………………….
Yukarıdaki paketi USB2Dynamixel kullanarak Seri olarak Dynamixel'e gönderirseniz, Dynamixel motor hedef konumu 500 olarak ayarlanır.
Adım 5: PYTHON KODU
#Madhu tarafından geliştirildi. 2019-07-19 tarihindeki son güncelleme
seriyi içe aktar
ithalat zamanı
ser=serial. Serial('com36', '57142')
#com portunu buna göre değiştirin, dynamixel motorlarımın baud hızı 57142, Dynamixel sihirbaz yazılımı kullanarak ayarlayabilirsiniz.
süre(1):
gp1=input('ID1 hedef konumunu girin(0-1023)')
l=gp1&255 #düşük bayt
h=(gp1>>8)&255 #yüksek bayt
li=[0xff, 0xff, 0x01, 0x05, 0x04, 0x1e, l1, h1]
#kontrol toplamı hesaplaması
crc=toplam(li[2:])
low1=crc & 255
chksum=255-düşük1
li.append(chksum) #kontrol toplamı ekleme
a=bytearray(li) #listeyi bytearray'e dönüştürme
ser.write(a) #usb2dynamixels kullanarak seri olarak gönder.
zaman.uyku(0.5)
#python IDE'de kod yapıştırmasını kopyala. pyserial paketini kurun. usb2dynamixel'in USB tarafını dizüstü bilgisayarın USB bağlantı noktasına ve diğer ucunu Dynamixel motoruna bağlayın. USB2DYNAMIXEL'e harici bir 12v besleme verin.
Kodu ÇALIŞTIRIN, hedef konum değerini girin. Motorun çalıştığını görün.