Implementasi PenggunaanSensorAccelerometer ADXL335 Pada Quadcopter Robot Berbasis Atmega32
on
C-005
Prosiding Conference on Smart-Green Technology in Electrical and Information Systems
Bali, 14-15 November 2013
Implementasi PenggunaanSensorAccelerometer ADXL335 Pada Quadcopter Robot Berbasis Atmega32
I GD DARKO PANCEV1, I B ALIT SWAMARDIKA2, I NYOMAN BUDIASTRA3 Jurusan Teknik Elektro, Fakultas Teknik, Universitas Udayana Jalan Kampus Bukit Jimbaran, Kuta 80361, Bali email:[email protected]1, [email protected]2, [email protected]3
Abstrak - ADXL335 merupakan sebuah sensor accelerometer 3 axis (x,y,z) yang memiliki keluaran tegangan analog pada masing-masing axisnya sehingga untuk membaca nilai sensor dari ADXL335, pin output dari sensor dihubungkan dengan pin ADC pada chip mikrokontroller AVR ATmega32. Quadcopterrobotadalah sebuah robot terbang dengan empat buah baling-baling yang dihubungkan dengan empat buah motor brushless yang berfungsi sebagai actuatorrobot. Implementasi penggunaan sensor accelerometerADXL335 3 axis (x,y,z) akan dimasukkan kedalamflight controller pada Quadcopterrobot yangtelah terkaliberasi sehingga dapat dijadikan sebagai sensor untuk mengatur derajat kemiringan dari robot agar dapat stabil pada saat terbang diudara.
Kata Kunci – Accelerometer; ADXL335; Quadcopter; Mikrokontroller AVR ATmega32.
I. PENDAHULUAN
Perkembangan teknologi khususnya dibidang teknologi robotika saat ini berkembangan dengan sangat pesat, dilihat dari banyaknya pengaplikasian teknologi robotika berbasis sistem kontrol maupun kecerdasan buatan, baik itu dibidang industri, pendidikan, maupun kehidupan sehari-hari.Salah satunya adalah Quadcopterrobot.
Quadcopterrobotmerupakan sebuah pesawat tanpa awak atau UAV (Unmanned Aerial Vehicle) yang memiliki empat buah baling-baling (propeller)dan empat buah motor brushless sebagai actuator. Penggunaan UAV saat ini sangat dibutuhkan baik itu dibidang militer maupun sipil yaitu untuk pencarian korban bencana pada kondisi ekstrim, penginderaaan jarak jauh seperti sistem monitoring serta bermanfaat sebagai alat pemetaan dan pengawasan pada suatu wilayah. Permasalahan yang sering dihadapi dalam mengoprasikan robotquadcopter ini adalah masalah kestabilan dari robot yang tidak bisa hanya dengan menggunakan sensor gyroscope (sirajuddin,2012), sehingga melalui paper ini salah satu alternatif untuk mengimplementasikan derajat kemiringan dari robot adalah dapat menggunakan sensor accelerometerADXL335 untuk mendeteksi kemiringan sudut (pitch, roll, yaw) agar robot dapat bergerak dengan baik dan mampu mempertahankan kestabilannya sendiri (self balancing).
II.KAJIAN PUSTAKA
A.Quadcopter
Quadcoptermemiliki 6 defree of freedom (DoF) yang menentukan attitude dari quadcopter. Quadcoptermemiliki 4 buah motor brushless yang dipasang dengan propellersebagai penggerak yang digunakan untuk menghasilkan gaya angkat. Tipe dari quadcoptersendiri terdiri dari 2 jenis, yaitu tipe X dan tipe +. Untuk dapat bergerak naik dan stabil, diperlukan kecepatan yang sama dan cukup besar pada keempat rotornya. Terlihat pada Gambar 1, pengaruh kecepatan rotor terhadap gerakan quadcopter. Adalah sebagai berikut:
Gambar 1 Pergerakan dari quadcopter
(sumber: Andika.F.2012)
Dari gambar diatas terlihat quadcopterdengan konfigurasi +, tanda merah menunjukkan motor bergerak dengan putaran yang cepat, tanda abu-abu menunjukkan motor bergerak dengan kecepatan sedang dan tanda putih menunjukkan motor bergerak dengan kecepatan lambat. Dengan meilhat pada gambar 1 kita dapat mengetahui bagaimana sistem pergerakan pada quadcopter.
B. Behavior Based Robotic
Pada sistem kendali robot, pendekatan yang biasa digunakan adalah dengan menguraikan setiap masalah kedalam rangkaian unit fungsional sebagaimana ditunjukkan pada Gambar 2.
fungsional (sumber:Andika.F.2012[2])
Dari gambar 2.2 dapat dijelaskan bahwa dalam merancang sebuah sistem kendali, salah satu metode yang dapat digunakan adalah behavior based robotic. Tahapan yang pertama adalah membaca nilai sensor sebagai inputan kedalam sistem, kemudian kita persepsikan nilai tersebut sebagai suatu satuan (perception) dan memodelkannya kedalam bentuk suatu persamaan (modeling) sehingga kita dapat merencanakan (planning) pergerakan robot. Tahap selanjutnya mengeksekusi perencanaan yang telah dilakukan (task execution) untuk menendalikan motor sebagai actuator robot (motor control).
C. ATmega32
(XCKZTC) PBO (T1> PBI (INTiVAINO) PB? (OCO'AIN1> PB3
(SS) PB4 (MOSI) PBb (MISO) PD6 (SCK) PB7 RESET
VCC GND XTAL2 XTALI (RXU) PDO (TXD) PD1 (INTO) PD2 (INTI) PDT (OCIB) PD4 (0C1A) PDS (ICPI) PD6
PAO (ADCO) PA1 (ADCI) PA2 (ADC2) PA3 (ADC3)
PA4 (ADC4)
PA5 (ADCS) PAO (ADCt) PA7 (ADCT) ARFF
GND
AVCC
PC7 (TOSC2) PC6 (TOSC1) PCn (TDI)
PC4 (TDO) PCS (TMS)
PC2 (ICKj PC I (SDA) PCO (SCL) PDT (0C2)
Gambar 3 Konfigurasi PIN AVR ATmega 32 (sumber: Anonim.2011)
AVR merupakan seri mikrokontroler Complementary Metal Oxide Semiconductor (CMOS) 8-bit buatan Atmel berbasis arsitektur RISC (Reduced Instruction Set Computer).Hampir semua instruksi pada program dieksekusidalam satu siklus clock. AVR mempunyai 32 register general-purpose, timer/counter fleksibel dengan modecompare, interupsi internal dan eksternal,serial UART, programmable Watchdog Timer, power saving mode, ADC danPWM. AVR pun mempunyai In-System Programmable (ISP) Flash on-chip yangmengijinkan memori program untuk diprogram ulang (read/write) dengan koneksisecara serial yang disebut Serial Peripheral Inteface (SPI).
AVR memilki keunggulan dibandingkan dengan mikrokontroler lain, keunggulan mikrokontroler AVR yaitu
memiliki kecepatan dalam mengeksekusi program yang lebih cepat, karena sebagian besar instruksi dieksekusi dalam 1 siklus clock (lebih cepat dibandingkan mikrokontroler keluarga MCS 51 yang memiliki arsitektur Complex Intrukstion Set Compute). ATMEGA32 mempunyai throughput mendekati 1 Millions Instruction PerSecond (MIPS) per MHz, sehingga membuat konsumsi daya menjadi rendah terhadap kecepatan proses eksekusi perintah. Adapun beberapa keistimewaan dari AVR ATMEGA32 antara lain:
-
1. Mikrokontroler AVR 8 bit yang memilliki kemampuan tinggi dengan konsumsi daya rendah.
-
2. Arsitektur RISC dengan throughput mencapai 16 MIPS pada frekuensi 16MHz
-
3. Memiliki kapasitas Flash memori 32 Kbyte, EEPROM 512 Byte dan SRAM 1 Kbyte
-
4. Saluran I/O sebanyak 32 buah, yaitu Port A, Port B, Port C dan Port D
-
5. CPU yang terdiri dari 32 buah register
-
6. Unit interupsi dan eksternal
-
7. Port USART untuk komunikasi serial
-
8. Fitur peripheral
-
a. Tiga buah Timer/Counter dengan kemampuan perbandingan (compare)
-
1. Dua buah Timer/Counter 8 bit dengan Prescaler terpisah dan Mode Compare
-
2. Satu buah Timer/Counter 16 bit dengan Prescaler terpisah, Mode Compare dan Mode Capture
-
3. Real Time Counter dengan Oscillator tersendiri
-
b. Empat kanal PWM
-
c. 8 kanal ADC
-
1. 8 Single-ended Channel dengan keluaran hasil konversi 8 dan 10 resolusi (register ADCH dan ADCL)
-
2. 7 Diferrential Channel hanya pada kemasan Thin Quad Flat Pack (TQFP)
-
3. 2 Differential Channel dengan Programmable Gain
-
d. Antarmuka Serial Peripheral Interface (SPI) Bus
-
e. Watchdog Timer dengan Oscillator Internal
-
f. On-chip Analog Comparator
-
9. Non-volatile program memory
-
III. METODELOGI PERANCANGAN
-
A. Spesifikasi Sistem
Kebutuhan sistem pada penelitian ini adalah sebuah quadcopter yang difungsikan sebagai plant, sensor accelerometer ADXL335 sebagai pembaca kemiringan roll, pitch dan yaw, sebuah remote RC sebagai pengendali manual jarak jauh serta sebuah minimum system mikrokontroller sebagai flight controller tempat dimana sinyal masukan dari sensor diproses untuk mengendalikan kecepatan motor brushless untuk menjaga kestabilan robot.
-
B. Perancangan dan Implementasi Perangkat Keras
Dalam perancangan quadcopter ini dibagi menjadi dua bagian yaitu perancangan mekanik dan perancangan sistem elektronik.
-
1. Perancangan Mekanik
Perancangan quadcopter ini dirancang dengan model (+) seperti yang terlihat pada gambar 4.Body dari robot terbuat dari acrylic dengan tebal 3mm kemudian kaki-kaki dari quadcopter terbuat dari alumunium kotak agar body robot menjadi lebih kokoh.Titik berat dari robot juga harus diperhitungkan untuk meminimalisir ketidak seimbangan beban pada robot. Adapun design dan implementasinya adalah sebagai berikut:
Gambar 4Design Quadcopter
Gambar 5 Implementasi Perancangan Design Mekanik
-
2. Design Sistem Elektronik
Sistem elektronik yang terdapat pada quadcopterrobot mengacu pada pengendalian empat buah motor brushless sebagai penggerak robot. Dari blok diagram sistem elektronik pada gambar 6 motor brushless dikendalikan oleh ESC berdasarkan output yang diberikan oleh mikrokontroller ATmega32. Sensor ADXL335 memberikan
masukkan berupa nilai kemiringan sudut roll, pitch dan yaw kedalam mikrokontroller ATmega 32 untuk selanjutnya diproses dan diolah sebagai nilai refrensi untuk mencapai kestabilan dari robotquadcopter.Transmitter memberikan sinyal control manual yang diterima oleh receiver untuk diproses oleh mikrokontroller agar dapat mengendalikan robot secara manual. LCD 16x2 berfungsi memberikan display pengaturan dari sistem kendali quadcopter.
Gambar 6 Design Sistem Elektronik
3. Perancangan Sistem Kendali
Gambar 7 Perancangan sistem kendali
Dari gambar diatas terlihat bahwa perancangan sistem kendali pada quadcopterrobot. Dari blok diagram diatas dapat dijelaskan bahwa nilai inputan dari sensor diatas berupa nilai refrensi dari transmitter yang diterima oleh receiver dan diteruskan ke dalam mikrokontroller.
Mikrokontroller sebagai processor pada robotakan memberikan perintah kepada ESC untuk mengendalikan kecepatan motor brushless berdasarkan nilai inputan remote RC. Motor brushless yang telah terhubung dengan balingbaling (propeller)akan menggerakkan quadcopter. Untuk menjaga kestabilan behavior dari robot selama terbang
sudut kemiringan dari robot di feedbackuntuk selanjutnya diolah dalam mikrokontroller dengan menggunakan metode kontrol self balancing sehingga kestabilan dari quadcopter dapat terjaga.
-
IV.HASIL DAN PEMBAHASAN
-
A. Proses Pembacaan Nilai Sensor ADXL335 pada
Mikrokontroller ATmega 32
Untuk dapat membaca nilai dari sensor accelerometer ADXL335 maka kita perlu mengaktifkan fungsi ADC pada chip ATmega 32dengan. Berikut ini merukan langkah yang dilakukan untuk dapat mengakses ADC pada chip ATmega 32 melalui software Code Vision AVR.
-
1. Pada Toolbar ADC
-
2. Centang “ADC enable
-
3. Centang “Use 8 bits”
-
4. Untuk volt ref. pilih “AVCC PIN (disesuaikan dengan
hardware).
Gambar 8 Tampilan Code Wizard AVR pengaturan ADC
Setelah melakukan pengaturan tersebut maka langkah selanjutnya adalah memasukkan program utama kedalam chip mikrokontroller. Berikut ini merupakan program utama dari proses pembacaan nilai sensor accelerometer ADXL335.
//Pendeklarasian awal
int X;
char data_X[16];
int Y;
char data_Y[16];
int Z;
char data_Z[16];
//Program Utama
while (1) { //Pengambilan data dari sensor //melalui PIN ADC 5,6 dan 7
X = read_adc(5);
Y = read_adc(6);
Z = read_adc(7);
//menampilkan nilai pada LCD sprintf(data_X,"X : %d",X);
lcd_gotoxy(0,0);
lcd_puts(data_X);
sprintf(data_Y,"Y : %d",Y);
lcd_gotoxy(7,0);
lcd_puts(data_Y);
sprintf(data_Z,"Z : %d",Z);
lcd_gotoxy(0,1);
lcd_puts(data_Z); delay_ms(300); lcd_clear();
}
}
-
B. Pengujian Sensor ADXL335
Berikut ini merupakan pengujian yang dilakukan pada sensor accelerometer ADXL335 untuk mengetahui bagaimana respon dari sensor terhadap kemiringan yang diberikan. Output dari sensor accelerometer adalah nilai tegangan analog sehingga pada mikrokontroller nilai ini akan dibaca kedalam bentuk nilai ADC (Analog to Digital Converter) untuk membaca kemiringan dari quadcopter robot, nilai pembacaan sensor yang digunakan adalah nilai dari sumbu x (roll), dan y (aileron), adapun tabel pengujian dari sensor accelerometer ADXL335 adalah sebagai berikut:
Tabel 7Sumbu X
No |
Sudut |
Nilai ADXL335 |
1 |
0o |
67 |
2 |
15o |
68 |
3 |
30o |
71 |
4 |
45o |
73 |
5 |
60o |
77 |
6 |
75o |
82 |
7 |
90o |
84 |
8 |
105o |
87 |
9 |
120o |
92 |
10 |
135o |
95 |
11 |
150o |
97 |
12 |
165o |
99 |
13 |
180o |
101 |
Jika tabel 7 diubah kedalam bentuk grafik maka akan terlihat pengaruh perubahan sudut terhadap nilai ADC yang diberikan oleh sensor accelerometer ADXL335. Adapun grafik dari perubahan nilai sensor ADXL335 terhadap besar sudut kemiringan yang diberikan adalah sebagai berikut:
Sumbu X Sensor Accelerometer ADX1335
V. PENUTUP
Gambar 9 Grafik Pembacaan Sumbu X Sensor Accelerometer ADXL335
Tabel 8 Sumbu Y
No |
Sudut |
Nilai ADXL335 |
1 |
0o |
68 |
2 |
15o |
69 |
3 |
30o |
72 |
4 |
45o |
73 |
5 |
60o |
77 |
6 |
75o |
83 |
7 |
90o |
84 |
8 |
105o |
87 |
9 |
120o |
93 |
10 |
135o |
95 |
11 |
150o |
97 |
12 |
165o |
100 |
13 |
180o |
102 |
Jika tabel 8 diubah kedalam bentuk grafik maka akan terlihat pengaruh perubahan sudut pada sumbu Y terhadap nilai ADC yang diberikan oleh sensor accelerometer ADXL335. Adapun grafik dari perubahan nilai sensor ADXL335 terhadap besar sudut kemiringan yang diberikan adalah sebagai berikut:
Sumbu Y Sensor Accelerometer ADXL335
-
A. Simpulan
Berdasarkan pengujian yang dilakukan maka dapat simpulkan sebagai berikut:
-
1. Sensor accelerometer ADXL335 sangat cocok apabila diimplementasikan kedalam quadcopter untuk mengendalikan sudut kemiringan dari quadcopter.
-
2. Perubahan nilai sensor accelerometer ADXL335 sangat stabil terhadap kemiringan sudut sehingga akan mempermudah dalam pengolahan datanya.
-
B. Saran
Untuk memperbaiki kinerja alat dan pengembangan lebih lanjut disarankan:
-
1. Gunakan metode pengontrollan seperti PID, fuxzzy logic, ANN dll untuk mengatur kestabilan dari robot quadcopter.
-
2. Pengubahan nilai ADC sensor accelerometer ADXL335 menjadi nilai sudut akan sangat membantu dalam merancang sistem kontrol kestabilan dari quadcopter.
-
VI. DAFTAR PUSTAKA
-
[1] Andika, F. 2012. Perancangan dan Implementasi Autonomous Landing Menggunakan Behavior-Based dan Fuzzy Controller pada Quadcopter.Jurnal Teknik ITS vol.1 No.1
-
[2] Anonim. 2011. ATmega32/L datasheet. [cited 2013 October 9 ]. Avaliable From : URL; www.atmel.com/Images.jpg/doc2503.pdf.
-
[3] Budiharto, W. 2008. Membuat Robot Cerdas. Jakarta: PT. ElexMedia Komputindo.
-
[4] Jirajuddin. 2012. Rancang Bangun Robot Terbang Quadcopter Berbasis Mikrokontroller ATmega 16.Jurnal Tugas AkhirUniversitas Tanjungpura.
-
[5] Nalwan, P. 2007. Teknik Antarmuka dan Pemrograman mikrokontroler AVR Jakarta: PT. Elex Media Komputindo.
-
[6] Ogata, Katsuhiko, Teknik KontrolAutomatik Jilid 1, Diterjemahkan Oleh Ir.Edi Leksono, Erlangga, Jakarta, 1994.
Gambar 10 Grafik Pembacaan Sumbu Y sensor Accelerometer ADXL335
Halaman Ini Sengaja Dikosongkan
142
ISBN: 978-602-7776-72-2 © Universitas Udayana 2013
Discussion and feedback