Professional Documents
Culture Documents
Daftar Isi
1
Pendahuluan.............................................................................................
1.1
Spesifikasi SPC SERVO MOTOR CONTROLLER..................................
1.2
Sistem yang Dianjurkan............................................................................
3
3
3
4
4
4
6
6
6
7
8
8
9
10
11
12
13
14
15
15
16
18
Prosedur Pengujian..................................................................................
19
19
Lampiran
A.
22
1.
PENDAHULUAN
Smart Peripheral Controller / SPC SERVO MOTOR CONTROLLER merupakan
sebuah modul pengendali motor servo yang mampu digunakan untuk
mengendalikan 20 buah motor servo secara serentak maupun sekuensial.
Modul ini dilengkapi dengan jalur komunikasi UART RS-232, UART TTL, dan I 2C.
Jika menggunakan jalur komunikasi I2C, maka beberapa SPC SERVO MOTOR
CONTROLLER dapat digunakan untuk mengontrol sampai dengan maksimum
160 buah motor servo.
SPC SERVO MOTOR CONTROLLER dapat digunakan untuk mengendalikan
motor servo standar maupun kontinu serta dilengkapi dengan fasilitas untuk
menyimpan sekuen gerakan sehingga sesuai untuk aplikasi-aplikasi robotik
atau aplikasi yang menggunakan motor servo lainnya.
1.1.
1.2.
2.
2.1.
2.2.
Nama
Fungsi
GND
Titik referensi untuk catu daya input
6,5-12VDC Terhubung ke catu daya untuk input (6,5 12 Volt)
Konektor J24 berfungsi sebagai konektor untuk catu daya motor servo.
Pin
1
Nama
GND
VEXT
Fungsi
Titik referensi untuk catu daya input
Terhubung ke catu daya untuk motor servo.
Lihat spesifikasi motor servo yang digunakan untuk
memastikan nilai tegangan yang diberikan.
Nama
NC
GND
TX
RX
Fungsi
Tidak terhubung kemana-mana
Titik referensi
Jalur data serial keluar dari modul
Jalur data serial masuk ke modul
5 4 3 2
RX GND
TX
Konektor UART TTL (J26) berfungsi sebagai konektor untuk antarmuka UART
TTL.
Pin
1
2
3
Nama
GND
TX
RX
Fungsi
Titik referensi
Jalur data serial (TTL) keluar dari modul SPC
Jalur data serial (TTL) masuk ke modul SPC
Konektor I2C PORT (J27) berfungsi sebagai konektor untuk antarmuka I2C.
Pin
1
2
3
Nama
GND
SDA
SCL
Fungsi
Titik referensi
I2C-bus data input / output
I2C-bus clock input
Jumper PULL-UP (J28) berfungsi untuk mengaktifkan resistor pull-up untuk pin
SDA dan SCL pada antarmuka I2C.
Jumper PULL-UP
J28
Fungsi
Pull-up tidak aktif
(jumper terlepas)
SCL SDA
Pull-up aktif
(jumper terpasang)
SCL SDA
Penting !
Apabila lebih dari satu modul dihubungkan pada I 2C-bus maka jumper PULLUP (SCL/SDA) salah satu modul saja yang perlu dipasang.
Jumper ADDR (J2) berfungsi untuk mengatur alamat I2C dari modul SPC SERVO
MOTOR CONTROLLER.
Alamat I2C
J2 (A2)
Pin 1-2
J2 (A1)
Pin 3-4
J2(A0)
Pin 5-6
0xE0
0xE1
0xE2
0xE3
0xE4
0xE5
0xE6
0xE7
0xE8
0xE9
0xEA
0xEB
0xEC
0xED
0xEE
0xEF
Keterangan:
: jumper terpasang
5
Penting!
Perubahan alamat I2C harus dilakukan saat modul SPC tidak terhubung ke catu
daya.
Konektor SERVO1 - SERVO20 (J3 - J22) sebagai konektor untuk motor servo.
Pin
1
2
3
Nama
SRV-GND
S-PWR
SERVOx
Fungsi
Titik referensi catu daya ke motor servo
Tegangan catu daya ke motor servo
Output pulsa ke motor servo
3.
3.1.
ANTARMUKA UART
Parameter komunikasi UART adalah sebagai berikut:
38400 bps
8 data bit
1 stop bit
tanpa parity bit
tanpa flow control
Semua perintah dikirim menggunakan karakter ASCII (angka 123 dikirim
dalam bentuk 3 karakter "123" atau byte ASCII 0x31 0x32 0x33). Spasi
kosong (0x20) digunakan sebagai separator antar parameter perintah.
Karakter \r (bilangan desimal 13 atau bilangan hexadesimal 0x0D)
digunakan sebagai akhir perintah beserta parameternya.
Jika transmisi perintah berserta parameternya berhasil, maka SPC SERVO
MOTOR CONTROLLER akan mengirimkan string ACK. Jika perintah tidak
dikenal, maka SPC SERVO MOTOR CONTROLLER akan mengirimkan string
NCK. Sedangkan jika perintah dikenal tetapi parameter perintah salah,
maka SPC SERVO MOTOR CONTROLLER tidak akan mengirimkan balasan.
Baik ACK ataupun NCK akan selalu diikuti dengan karakter \r.
Perintah dan parameter yang bisa digunakan dapat dilihat pada bagian 3.3.
3.2.
ANTARMUKA I2C
Modul SPC SERVO MOTOR CONTROLLER memiliki antarmuka I 2C. Pada
antarmuka I2C ini, modul SPC SERVO MOTOR CONTROLLER bertindak sebagai
slave dengan alamat sesuai dengan telah ditentukan sebelumnya melalui
pengaturan jumper (lihat bagian 2.2). Antarmuka I2C pada modul SPC SERVO
MOTOR CONTROLLER mendukung bit rate sampai dengan maksimum 100 kHz.
Semua perintah yang dikirim melalui antarmuka I 2C diawali dengan start
condition dan kemudian diikuti dengan pengiriman 1 byte alamat modul SPC
SERVO MOTOR CONTROLLER. Setelah pengiriman alamat, selanjutnya master
harus mengirim 1 byte data yang berisi <nomor perintah> dan (jika
diperlukan) n-byte data parameter perintah. Selanjutnya, setelah seluruh
parameter perintah telah dikirim, urutan perintah diakhiri dengan stop
condition.
6
Alamat Tulis
X
Command
X
... +
Stop
Alamat Baca
0
ACK / NCK
... +
Stop
COMMAND SET
Berikut ini daftar lengkap perintah-perintah dalam antarmuka UART dan I2C.
7
3.3.1. PING
Fungsi
Command UART
Command I2C
Parameter
Respon UART
Respon I2C
Delay antara
Command dan
Respon
Keterangan
//
//
//
//
Start Condition
Tulis ke modul SPC SERVO CONTROLLER
Perintah Ping
Stop Condition
delay_us(10);
// delay 10 us
i2c_start();
i2c_write(0xE1);
temp = i2c_read(0);
i2c_stop();
//
//
//
//
Start Condition
Baca ke modul SPC SERVO CONTROLLER
Data Acknowledgement
Stop Condition
Respon I2C
Delay antara
Command dan
Respon
Keterangan
//
//
//
//
delay_us(10);
// delay 10 us
i2c_start();
//
i2c_write(0xE1);
//
temp1 = i2c_read(1);//
temp2 = i2c_read(1);//
temp3 = i2c_read(0);//
i2c_stop();
//
Start Condition
Tulis ke modul SPC SERVO CONTROLLER
Perintah Get Version Number
Stop Condition
Start Condition
Baca ke modul SPC SERVO CONTROLLER
Data Acknowledgement
Version Number
Revision Number
Stop Condition
Respon UART
Respon I2C
Delay antara
Command dan
Respon
Keterangan
Contoh dengan antarmuka UART untuk memerintah motor servo 1 untuk menuju
ke posisi lebar pulsa 1500 s dengan rate 10:
User
:
RN 1 1500 10\r
SPC
:
ACK\r
Berikut ini contoh pseudo code C untuk menggunakan perintah ini dengan
antarmuka I2C (misalkan alamat I2C = 0xE0):
i2c_start();
i2c_write(0xE0);
i2c_write(0x02);
i2c_write(1);
i2c_write(0x05);
i2c_write(0xDC);
i2c_write(10);
i2c_stop();
//
//
//
//
//
//
//
//
delay_us(15);
// delay 15 us
i2c_start();
//
i2c_write(0xE1);
//
temp1 = i2c_read(0);//
i2c_stop();
//
Start Condition
Tulis ke modul SPC SERVO CONTROLLER
Perintah Run Servo Motor
Nomor Motor Servo
Lebar pulsa kontrol (MSB)
Lebar pulsa kontrol (LSB)
Rate
Stop Condition
Start Condition
Baca ke modul SPC SERVO CONTROLLER
Data Acknowledgement
Stop Condition
Respon UART
Respon I2C
Delay antara
Command dan
Respon
Keterangan
Contoh dengan antarmuka UART untuk mengatur agar motor servo 2 memiliki
posisi lebar pulsa Home 1250 s:
User
:
ST 2 1250\r
SPC
:
ACK\r
Berikut ini contoh pseudo code C untuk menggunakan perintah ini dengan
antarmuka I2C (misalkan alamat I2C = 0xE0):
10
i2c_start();
i2c_write(0xE0);
i2c_write(0x03);
i2c_write(2);
i2c_write(0x04);
i2c_write(0xE2);
i2c_stop();
//
//
//
//
//
//
//
delay_us(100);
// delay 100 us
i2c_start();
//
i2c_write(0xE1);
//
temp1 = i2c_read(0);//
i2c_stop();
//
Start Condition
Tulis ke modul SPC SERVO CONTROLLER
Perintah Set Home
Nomor Motor Servo
Lebar pulsa kontrol (MSB)
Lebar pulsa kontrol (LSB)
Stop Condition
Start Condition
Baca ke modul SPC SERVO CONTROLLER
Data Acknowledgement
Stop Condition
3.3.5. GO TO HOME
Fungsi
Command UART
Command I2C
Parameter
Respon UART
Respon I2C
Delay antara
Command dan
Respon
Keterangan
Contoh dengan antarmuka UART untuk memerintah motor servo 3 untuk menuju
ke posisi Home-nya dengan rate 50:
User
:
HM 3 50\r
SPC
:
ACK\r
Berikut ini contoh pseudo code C untuk menggunakan perintah ini dengan
antarmuka I2C (misalkan alamat I2C = 0xE0):
i2c_start();
i2c_write(0xE0);
i2c_write(0x04);
// Start Condition
// Tulis ke modul SPC SERVO CONTROLLER
// Perintah Go to Home
11
i2c_write(3);
i2c_write(50);
i2c_stop();
delay_us(10);
// delay 10 us
i2c_start();
//
i2c_write(0xE1);
//
temp1 = i2c_read(0);//
i2c_stop();
//
Start Condition
Baca ke modul SPC SERVO CONTROLLER
Data Acknowledgement
Stop Condition
//
//
//
//
//
Start Condition
Tulis ke modul SPC SERVO CONTROLLER
Perintah Start Sequence
Nomor Sekuen
Stop Condition
delay_us(10);
// delay 10 us
i2c_start();
// Start Condition
12
i2c_write(0xE1);
// Baca ke modul SPC SERVO CONTROLLER
temp1 = i2c_read(0);// Data Acknowledgement
i2c_stop();
// Stop Condition
Respon I2C
Delay antara
Command dan
Respon
Keterangan
//
//
//
//
delay_us(10);
// delay 10 us
i2c_start();
//
i2c_write(0xE1);
//
temp1 = i2c_read(1);//
temp2 = i2c_read(0);//
i2c_stop();
//
Start Condition
Tulis ke modul SPC SERVO CONTROLLER
Perintah Read Sequence Status
Stop Condition
Start Condition
Baca ke modul SPC SERVO CONTROLLER
Data Acknowledgement
Data status sekuen
Stop Condition
13
Respon I2C
Delay antara
Command dan
Respon
Keterangan
Contoh dengan antarmuka UART untuk mengetahui status aktifnya servo ke-10
dan posisi lebar pulsa kontrolnya sekarang:
User
:
RD 10\r
SPC
:
ACK\r
1 2000\r
Pada contoh tersebut, berarti motor servo 10 dalam keadaan aktif (1) dan
lebar pulsa kontrolnya adalah 2000 s.
Berikut ini contoh pseudo code C untuk menggunakan perintah ini dengan
antarmuka I2C (misalkan alamat I2C = 0xE0):
i2c_start();
i2c_write(0xE0);
i2c_write(0x07);
i2c_write(10);
i2c_stop();
//
//
//
//
//
delay_us(25);
// delay 25 us
i2c_start();
//
i2c_write(0xE1);
//
temp1 = i2c_read(1);//
temp2 = i2c_read(1);//
temp3 = i2c_read(1);//
temp4 = i2c_read(0);//
i2c_stop();
//
Start Condition
Tulis ke modul SPC SERVO CONTROLLER
Perintah Read Servo Position
Nomor Motor Servo
Stop Condition
Start Condition
Baca ke modul SPC SERVO CONTROLLER
Data Acknowledgement
Enable/Disable
Pulsa Kontrol (MSB)
Pulsa Kontrol (LSB)
Stop Condition
14
Respon UART
Respon I2C
Delay antara
Command dan
Respon
Keterangan
//
//
//
//
//
//
delay_us(10);
// delay 10 us
i2c_start();
//
i2c_write(0xE1);
//
temp1 = i2c_read(0);//
i2c_stop();
//
4.
Start Condition
Tulis ke modul SPC SERVO CONTROLLER
Perintah Set Enable/Disable Servo
Nomor Motor Servo
Enable/Disable
Stop Condition
Start Condition
Baca ke modul SPC SERVO CONTROLLER
Data Acknowledgement
Stop Condition
menggerakkan robot agar belok ke kanan, dan juga sekuen gerakan untuk
menggerakkan robot berputar. Maka tiap sekuen gerakan tersebut dapat
disimpan pada EEPROM SPC SERVO MOTOR CONTROLLER. Sehingga jika
kita ingin menggerakkan robot maju, kita cukup mengirimkan 1 perintah untuk
memulai sekuen saja tanpa mengirimkan banyak perintah ke setiap motor
servo.
Membuat dan merubah sekuen gerakan dapat dilakukan dengan
menggunakan perangkat lunak "SPC SERVO MOTOR CONTROLLER GUI"
yaitu servoCon.exe yang disertakan pada CD/DVD.
Secara umum, terdapat 2 bagian utama pada perangkat lunak "SPC SERVO
MOTOR CONTROLLER GUI" yaitu "Sequence(s) Editor" dan "Command
Tester".
4.1.
SEQUENCE(s) EDITOR
Tampilan tab "Sequence(s) Editor" dapat dilihat pada gambar berikut ini.
COMMAND TESTER
Tampilan tab "Command Tester" dapat dilihat pada gambar berikut ini.
Melalui tab "Command Tester" ini, kita dapat menguji perintah-perintah untuk
modul SPC SERVO MOTOR CONTROLLER melalui jalur komunikasi UART RS232. Pengaturan Serial/COM port yang digunakan dilakukan melalui tombol
COM Settings pada tab "Sequence(s) Editior" (parameter komunikasi UART
dapat dilihat pada bagian 3.1).
18
PROSEDUR PENGUJIAN
1. Hubungkan sumber catu daya ke SPC SERVO MOTOR CONTROLLER.
2. Jika catu daya telah terhubung dengan baik, maka LED IND PWR akan
menyala.
3. Hubungkan konektor RJ11 UART RS232 (J25) ke Serial/COM port pada
PC dengan menggunakan kabel serial yang disertakan pada saat
pembelian SPC SERVO MOTOR CONTROLLER.
4. Jalankan perangkat lunak komunikasi serial pada PC (misalnya:
HyperTerminal). Lalu sesuaikan parameter komunikasinya (lihat bagian
3.1).
5. Untuk menguji koneksi UART kirimkan perintah PING (PG\r). Jika koneksi
antarmuka UART bekerja dengan baik, maka SPC SERVO MOTOR
CONTROLLER akan membalas dengan memberikan respon ACK\r (lihat
bagian 3.3.1).
6. Hubungkan sebuah motor servo ke konektor SERVO1. Kemudian kirimkan
perintah untuk menggerakkan motor servo ke posisi lebar pulsa 1000 s
dengan rate 100 (RN 1 1000 100\r). Jika motor servo dan SPC SERVO
MOTOR CONTROLLER bekerja dengan baik, maka motor servo akan
bergerak ke posisi 1000 s.
7. Hubungkan sebuah motor servo ke konektor SERVO1. Kemudian kirimkan
perintah untuk menggerakkan motor servo ke posisi lebar pulsa 2000 s
dengan rate 10 (RN 1 2000 10\r). Jika motor servo dan SPC SERVO
MOTOR CONTROLLER bekerja dengan baik, maka motor servo akan
bergerak ke posisi 2000 s.
8. Pengujian juga dapat dilakukan menggunakan perangkat lunak SPC
SERVO MOTOR CONTROLLER - GUI melalui tab "Command Tester".
6.
DT-AVR LCMS
19
J3
J4
J5
SERVO1
SERVO2
SERVO3
SPC
Servo Motor
Controller
MOTOR SERVO
MOTOR SERVO
MOTOR SERVO
DT-AVR
LCMS
20
J3
J4
J5
MOTOR SERVO
SERVO1
MOTOR SERVO
SERVO2
MOTOR SERVO
SERVO3
SERIAL PORT
PC
SPC
Servo Motor
Controller
(UART RS232)
J25
Terima Kasih atas kepercayaan Anda menggunakan produk kami, bila ada kesulitan,
pertanyaan atau saran mengenai produk ini silahkan menghubungi technical support
kami :
support@innovativeelectronics.com
21
LAMPIRAN A.
Skematik SPC SERVO MOTOR CONTROLLER
22