MIKROKONTROLER DAN ROBOTIKA.pdf

35

Click here to load reader

description

MIKROKONTROLER DAN ROBOTIKA

Transcript of MIKROKONTROLER DAN ROBOTIKA.pdf

Page 1: MIKROKONTROLER DAN ROBOTIKA.pdf

-

1

MIKROKONTROLER DAN ROBOTIKA

Oleh

TIM URO

Page 2: MIKROKONTROLER DAN ROBOTIKA.pdf

-

2

1. PENGENALAN ROBOT

Apakah Robot itu? Robot adalah sebuah alat mekanik yang dapat melakukan tugas fisik, baik menggunakan pengawasan dan kontrol manusia, ataupun menggunakan program yang telah didefinisikan terlebih dulu .

Tujuan Dari Robot?

• Menciptakan tenaga kerja yang berkinerja tinggi dan dapat bekerja 24 jam. • Untuk menjalankan pekerjaan yang memerlukan ketelitian tinggi. • Menggantikan manusia dalam pekerjaan yang bersifat selalu berulang-

ulang • Untuk dapat bekerja pada tempat yang berbahaya bagi manusia • Sebagai media entertainment (hiburan) bagi manusia

Bentuk Dan Jenis Robot?

• Humanoid : Bentuk robot ini menyerupai manusia. Memiliki dua kaki, memiliki tangan, seperti manusia.

• Animaloid : Bentuk robot ini menyerupai binatang, memiliki prilaku seperti binatang dan bergerak seperti binatang.

• Mesin : bentuk robot ini biasanya tergantung kebutuhan atau fungsi robot itu.

• Vehicles : bentuk robot ini memiliki roda.

Cara Membuat Robot?

Dalam pembuatan Robot dilakukan 3 Tahap yaitu:

1. Tahap Mekanik Ditahap ini robot dibuat bentuk dan rangkanya terlebih dahulu dengan mempertimbangkan banyak hal. Dan rancangan bentuk harus sesuai dengan tujuan utama robot itu dibuat untuk apa

2. Tahap Elektronika Ditahap ini, robot dilengkapi dengan elektronika yang akan digunakan untuk bergeraknya robot. Termasuk Motor Roda,MC, Sound Detector, Optocoupler, Sensor sensor. Untuk pembuatan rangkaian elektronika ini dapat dengan menggunakan perhitungan atau juga tersedia di internet.

Page 3: MIKROKONTROLER DAN ROBOTIKA.pdf

-

3

3. Tahap Programing Tahap ini merupakan tahap terakhir yang dilakukan karena untuk melihat hasil dari tahap ini harus melewati 2 tahap sebelumnya. Tahap programing ini juga memiliki tahapan tersendiri yaitu pembuatan Algoritma, Pembuatan Kode Program, Kompilasi Program Dan Download Program ke MicroControler. Microcontroler, Sensor Dan Komponen

• Sensor merupakan sebuah tools yang digunakan untuk mendeteksi suatu element. Yang ada pada robot Unila, terdapat 2 Sensor, yaitu sensor jarak (Ultrasonic Ping) dan sensor panas(TPA81).

• Komponen yang digunakan pada robot ini yaitu Microcontroler Place Holder, Rangkaian Optocoupler, Motor Driver, Sound Activation, Relay on-Off dan Power Suplay Microcontroller

• Microcontroller ialah sebuah komponen elektronika yang digunakan untuk mengatur gerak robot dengan cara diprogram. MicroControler ini juga dapat disebut sebagai sebuah Otak dari robot. Karena dengan microcontroler inilah robot dikendalikan.

• Microcontroler yang saat ini menjadi favorit ialah jenis AtMega8535, Atmega16, Atau Atmega32. IC Microcontroler atmega 8535 dan sejenisnya ini dapat di isi program hasil Kompilasi sebuah bahasa pemrograman yang disebut C AVR. Jadi setiap perintah yang akan robot lakukan kita setting dengan bahasa pemrograman C. kemudian hasil kompilasi dari bahasa C ini kita Masukan ke Microcontroler dengan menggunakan sebuah alat yang diberi nama Donwloader.

Page 4: MIKROKONTROLER DAN ROBOTIKA.pdf

-

4

BAB I PENGENALAN DENGAN MICROCONTROLER( µC)

A. Karakteristik Utama Microcontroler

Microcontroler adalah sebuah device elektronika yang sangat penting dalam dunia robotika saat ini. Dimana komponen ini berperan sebagai sebuah otak sebuah robot. Didalam MC terdapat juga microprosesor yang memproses data input dan menghasilkan data output. Data Input ialah data yang dihasilkan dari luar dan masuk sebagai sebuah data yang akan di proses dalam sebuah microcontroler. Dimana proses dalam microcontroler ini meliputi penerjemahan input-periksa kondisi-Prosesi-ouput.Sebagai sebuah contohnya dalam aplikasi robot yaitu. Sebuah sensor panas mendeteksi panas sebesar 45o, kemudian data ini masuk kedalam microontroler dan diterjemahkan oleh Microprosesor dan kemudian diperiksa kondisi yang akan dikeluarkan sebagai data output, suhu 45o merupakan suatu kondisi, kemudian jika kondisi yang diharapkan oleh programer yaitu jika suhu lebih besar dari 40o maka output yaitu menghidupkan kipas, dan kondisi diatas dimana suhu 45o lebih besar dari 45o maka data keluaran adalah menghidupkan kipas. Dalam pembahasasn ini dan seterusnya Microntroler yang digunakan adalah AtMega8/8535/16/32.dari ke 4 Jenis MC ini hanya AtMega 8 yang memiliki kaki lebih sedikit dari yang lainya. Hanya memiliki 28 Pin kaki sedangkan AtMega 8535/16/32 memiliki 40 Pin (kaki). Pada AtMega 8 Tidak terdapat PORTA seperti Atmega Lainya sedangkan yang tersedia hanya PORTB,PORTC,PORTD. Namun karakteristik MP(Microprosesor) dari 4 jenis MC ini hampir sama persis hanya kapasitas memorynya yang berbeda, sehingga dalam penulisan kode programnya tidak ada bedanya. Berikut adalah karakteristik dari masing masing atmega

Atmega8

Page 5: MIKROKONTROLER DAN ROBOTIKA.pdf

-

5

AtMega8535/16/32

Pada gambar diatas dapat dilihat setiap Pin(Kaki) memiliki nama-nama. Dan nama-nama tersebut memiliki fungsi khusus. Seperti OCR1A sebagai penghasil pulsa dalam nilai 10 Bit(0-1023), OCR1B, INT(Interupt) sebagai penerima pulsa dengan besar nilai Interger 16 Bit (0-65535). Namun semua Pin juga memiliki kesamaan fungsi yaitu dapat sebagai input atau sebagai Output bergantung dari kode program yang ditulis.

B. Hubungan Bahasa C AVR Dan Microcontroler

Bahasa C, ialah salah satu dari sekian bahasa pemrograman yang dapat dimengerti oleh Microcontroler. Software yang biasa digunakan adalah software AVR STUDIO dan CodeVision, antara AvrStudio dan Code Vision terdapat beberapa penulisan kode Program yang berbeda, sehingga jika dicompile dapat terjadi error yang dapat membuat anda bingung nantinya. Sehingga kita tetapkan disini Software yang digunakan adalah

Page 6: MIKROKONTROLER DAN ROBOTIKA.pdf

-

6

BAB II BERKENALAN DENGAN AVR STUDIO

Avr Studio ialah software yang digunakan untuk memprogram microcontroller produksi AVR Atmel. Dengan menggunakan bahasa pemrograman C, yang pada umumnya mudah dimengerti. Karena bahasa C ialah bahasa tingkat rendah,yang dimakasudkan ialah bahasa yang mudah digunakan dan dimengerti. Tidak seperti bahasa Assembly yaitu bahasa tingkat tinggi. AVR Studio tidak berdiri sendiri dalam penggunaanya, Avr studio masih membutuhkan software WinAVR sebagai Compillernya. Jadi juga disertakan software winAvr disetiap software AVRStudio. a. Library Standard dan Tambahan

Dalam bahasa C pada Umumnya, dapat anda lihat setiap awal kode program pasti ada kode seperti ini

#include <namafilelibrary.h>

Hal ini maksudnya adalah kode khusus program yang akan digunakan harus memiliki fungsi yang sudah di definisikan sebelumnya. Dan pendefinisian itu sudah dimasukan dalam namafilelibrary.h tersebut. Dalam AVR Studio juga sudah di sediakan library yang sudah mendifinisikan fungsi fungsi Micrcontroler, yaitu #include <avr / io.h> Dimana didalam library ini juga sudah dikaitkan dengan library-library standard yang lain yang dibutuhkan oleh Compiler. Sehingga kita tidak perlu lagi memanggil setiap library standard tersebut. Selain library standard juga terdapat library tambahan, library tambahan merupakan library yang kita buat sendiri. Hal ini bertujuan untuk mempermudah dalam pembagian penulisan dan membuat penulisan kode program menjadi lebih rapi.contoh penulisan library tambahan #include “namafilelibrarykamu.h” Maksud dari tanda petik ini menunjukan bahwa file yang dijadikan library berada dalam satu folder dengan file kode program utama.

Page 7: MIKROKONTROLER DAN ROBOTIKA.pdf

-

7

b. Fungsi “Mostly Used” Fungsi Mostly Used ialah fungsi yang paling sering digunakan. Dalam pemrograman microcontroler untuk aplikasi robotika, fungsi fungsi yang paling sering digunakan adalah � if else . Penulisanya :

If (sebab) {akibat;} Else {akibat3;} Maksud dari fungsi ini ialah jika input memberikan sebab dengan bernilai benar maka akan menghasilkan akibat sebagai data keluaran dan jika sebab bernilai salah maka akibat3 sebagai Output.

� If-else if-else. penulisanya : if (sebab) {akibat;} else if (sebab2) {akibat2;} else {akibat3;} Maksud dari fungsi ini ialah jika input memberikan kondisi dengan bernilai benar maka akan menghasilkan akibat sebagai data keluaran dan jika kondisi bernilai salah maka akan memeriksa sebab2, jika sebab2 bernilai benar maka akan menghasilkan akibat2 sebagai Output namun jika semua kondisi salah maka akibat3 sebagai Output.

� while (1) Maksud dari fungsi ini ialah pengulangan (loop) tanpa batas. Jadi program akan melakukan perulangan selama Microcontroler masih memiliki daya untuk terus mengeksekusi intruksi program.

� while (kondisi) Penulisanya :

while (kondisi=True) {Akibat;} Maksud dari fungsi ini ialah program akan melakukan pengulangan selama kondisi bernilai benar. Dan jika kondisi salah maka program akan keluar dari looping dan mengeksekusi baris selanjutnya.

Page 8: MIKROKONTROLER DAN ROBOTIKA.pdf

-

8

#include <avr/io.h> #include <util/delay.h> int main(void) { . . . . . . _delay_ms(1000); //1000 milisecond. . . . . . . _delay_us(1000); //1000 mikrosecond . . . . . . }

� Beda PIN,PORT,DDR PIN ialah setiap kaki yang ada pada sebuah mikro,sebagai contoh PINA1(dapat ditulis PA1) ialah kaki yang terdapat dalam PORTA dan kaki ke 1. PORT ialah bagian bagian berupa huruf yang ada pada sebuah mikro sebagai contoh PORTA,PORTB,PORTC,PORTD. Tapi jika kita menyebutkan kaki pada PORTA (contoh : PORTA1 ) ini sama dengan PINA1. DDR(Data Direct Register) ialah bagian yang menentukan PIN tersebut sebagai masukan(input) atau sebagai keluaran(output). Keluaran bernilai 1 Masukan bernilai 0 Sebagai contoh jika kita ingin membuat PINA0 sebgai masukan dan PINB1,PINB2 dst sebagai keluaran maka kita dapat menulis

� Timer Counter Timer Counter ialah fasilitas yang terdapat dalam mikrokontroler yang berfungsi sebagai waktu,sehingga kita dapat menggunakan mikro untuk menghitung delay (waktu tunda) atau bahkan membuat jam digital dengan menggunakan mikro ini. Contoh penggunaan timer sederhana :

int main(void) { DDRB = 0b11111110; . . . . . . . . }

Page 9: MIKROKONTROLER DAN ROBOTIKA.pdf

-

9

c. Pembuatan Algoritma Pembuatan Algoritma Sangatlah penting dalam Robotika, karena anda tidak dapat menulis program dengan baik tanpa algoritma. Algoritma merupakan suatu metode membentuk suatu keadaan/kondisi menjadi suatu blok blok diagram, sehingga dengan blok blok diagram ini alur pemrograman anda akan menjadi jelas, dan penulisan kode program akan menjadi sangat mudah (ref:dx-077). Mengingat sangat pentingnya algoritma dalam pemrograman, maka sebaiknya saya perkenalkan blok-blok diagram tersebut untuk mempermudah pemahaman anda dalam memahami algoritma.

START/STOP Blok yang menyatakan mulai atau berhentinya suatu algoritma

DECISION/KEPUTUSAN Blok yang menyatakan 2 pilihan

keadaan yaitu Ya dan Tidak

Benar dan Salah

PROSES Blok ini menggambarkan suatu prosesi suatu keadaan. Sehingga kode

yang memproses keadaan terdapat dalam blok ini.

Page 10: MIKROKONTROLER DAN ROBOTIKA.pdf

-

10

C. Ponyprog “Program Downloader”

Ponyprog ialah suatu software yang digunakan untuk mendownload program hasil compile oleh Avrstudio kedalam microcontroler. Cara menggunakan Ponyprog sangatlah mudah. Cukup memilih tipe Microcontroler, Cek Kabel Downloader Terhubung atau tidak, Open *.Hex(Hexadesimal) atau *.eep(eeprom File) yang merupakan File hasil Compile avr studio. Lalu Klik Write Flash dan masuklah program anda tersebut kedalam Microcontroler.Software Ponyprog merupakan software gratisan yang dapat anda download dari internet.Ponyprog ini digunakan jika kita menggunakan downloader paralel DB25 atau serial DB9.

Input Blok yang menyatakan adanya Input Masuk

Output Blok yang menyatakan output dari sebuah

keadaan yang diproses

Page 11: MIKROKONTROLER DAN ROBOTIKA.pdf

-

11

BAB III. LATIHAN I MENGGUNAKAN PEMROGRAMAN BAHASA C AVR DENGAN LED

Agar lebih mudah memahami sesuatu sebaiknya kita perlu latihan atau

praktik. Dengan latihan ini kita dapat belajar dari kesalahan kesalahan yang dilakukan dan dapat mengingatnya dikemudian hari.

Untuk latihan pemrograman ini kita akan menggunakan LED sebagai

indikator outputnya.sedangkan untuk inputnya sendiri kita dapat gunakan potensiometer atau push Button High Atau Low. Sebagai media rangkaianya kita menggunakan Project Board.

1. Menghidupkan dan Mematikan LED secara periodik.

Tujuan dari latihan ini ialah agar siswa mengetahui cara menggunakan logika High atau Low. Alat dan Bahan :

1. Project Board (1 buah) 2. lampu LED ( 1 Buah ) 3. Kabel Jumper Secukupnya 4. Kabel Downloader 5. Microcontroler (1 Buah)

Cara kerja : 1. Rangkai project board seperti skematik berikut ini :

Page 12: MIKROKONTROLER DAN ROBOTIKA.pdf

-

12

2. Ketik Program Berikut ini

3. Download Program tersebut kedalam Microcontroler. 4. Lihat hasilnya

2. Menghidupkan Dan mematikan lebih dari satu buah LED secara bergantian

Tujuan dari latihan ini agar siswa dapat mengerti cara menghidupkan dan mematikan lebih dari satu buah LED. Alat dan Bahan :

1. Project Board (1 buah) 2. lampu LED ( 3 Buah ) 3. Kabel Jumper Secukupnya 4. Kabel Downloader 5. Microcontroler (1 Buah)

Cara Kerja : 1. Rangkai rangkaian seperti gambar berikut ini.

#include <avr/io.h> #include <util/delay.h> int main() { DDRA = 0b00000001; while(1) { PORTA |=1<<PA0; _delay_ms(1000); PORTA &=~(1<<PA0); _delay_ms(1000); } }

Page 13: MIKROKONTROLER DAN ROBOTIKA.pdf

-

13

2. Ketik Program Berikut ini

Page 14: MIKROKONTROLER DAN ROBOTIKA.pdf

-

14

5. Download Program tersebut kedalam Microcontroler. 6. Lihat hasilnya

Tugas : 1. Buat Program menghidupkan LED secara berurutan dan mati secara

berurutan. 2. Analisa mengapa jika diberi Low dia akan mati dan Jika diberi High

maka dia akan Nyala? 3. Jika Rangkaiannya seperti Berikut.Maka Program seperti apa yang

harus dibuat?

#include <avr/io.h> #include <util/delay.h> int main() { DDRA = 0b00000001; while(1) //perintah looping { PORTA |=1<<PA0; PORTA &=~(1<<PA1); PORTA &=~(1<<PA2); _delay_ms(1000); PORTA &=~(1<<PA0); PORTA |=1<<PA1; PORTA &=~(1<<PA2); _delay_ms(1000); PORTA &=~(1<<PA0); PORTA |=1<<PA2; PORTA &=~(1<<PA1); } }

Page 15: MIKROKONTROLER DAN ROBOTIKA.pdf

-

15

Page 16: MIKROKONTROLER DAN ROBOTIKA.pdf

-

16

BAB IV. MENGATUR KECEPATAN MOTOR DC DENGAN MENGUNAKAN PWM TIMER-COUNTER 1

Seperti telah dijelaskan sebelumnya, timer counter ialah fasilitas yang disediakan oleh mikrokontroler atmega8535. timer counter ini selain berfungsi sebagai pembuat waktu delay dapat d\juga digunakan sebagai pengatur kecepatan motor. Penggunaan timer counter ini biasa kita sebut PWM. Sehingga jika kita menggunakan PWM.kita dapat mengatur kecepatan dari nol sampai fullspeed.

Untuk mengatur PWM motor kita dapat menggunakan Timer Counter 1 yang memiliki 2 PIN yaitu PIND5 (OCR1A) dan PIND4(OCR1B). Untuk mengatur PWM motor kita harus terlebih dahulu menginisialisasikan baris program sebelum kita menggunakan baris program PWM dan jangan lupa memberikan nilai keluaran pada DDR PWM. Sebagai contoh :

Untuk memanggil fungsi pada sebuah PWM maka dapat digunakan perintah OCR1A = “nilai”; OCR1B = “nilai”; “Nilai” tersebut memiliki batasan yaitu dari 0 sampai 1023, Dimana 0 = Kecepatan Fullspeed

#include <avr/io.h> int main(void) { DDRD = 0b00110000; //dibawah berikut adalah baris program inisialisasi //============================================ TCCR1A = 0xF3; //pengertian disamping dapat TCCR1b = 1; //dilihat didatasheet TCNT1 = 0; //============================================ . . . . . . . . }

Page 17: MIKROKONTROLER DAN ROBOTIKA.pdf

-

17

1023 = Berhenti (kecepatan Terendah) Berikut adalah contoh penulisan program lengkap untuk memanggil fungsi PWM

Dari program diatas dapat diketahui bahwa kecepatan motor pada OCR1A atau yang terhubung dengan PD5 adalah setengah dari kecepatan penuh. Dan pada PD4(OCR1B) adalah mendekati kecepatan penuh Latihan : Buat Rangkaian seperti berikut :

#include <avr/io.h> int main(void) { DDRD = 0b00110000; //dibawah berikut adalah baris program inisialisasi //============================================ TCCR1A = 0xF3; //pengertian disamping dapat TCCR1b = 1; //dilihat didatasheet TCNT1 = 0; //============================================ While(1) { OCR1A = 512; OCR1B = 134; }

Page 18: MIKROKONTROLER DAN ROBOTIKA.pdf

-

18

2. ketik Kode Program berikut

3. Download ke microcontroller 4. Liat hasilnya dan ulangi dengan mengubah-ubah kecepatanya .

#include <avr/io.h> int main(void) { DDRD = 0b00110000; //dibawah berikut adalah baris program inisialisasi //============================================ TCCR1A = 0xF3; //pengertian disamping dapat TCCR1b = 1; //dilihat didatasheet TCNT1 = 0; //============================================ while(1) { OCR1A = 512; OCR1B = 134; } }

Page 19: MIKROKONTROLER DAN ROBOTIKA.pdf

-

19

BAB V. SENSOR

Sensor ialah suatu alat elektronika yang digunakan untuk mengubah besaran fisis menjadi besaran elektris. Dengan menggunakan sensor, kita dapat membuat suatu perangkat yang dapat mengenali lingkungan. Sebagai contoh perangkat yang menggunakan sensor ialah Robot, AC, Mouse Komputer,termometer digital dan masih banyak lainya perangkat yang menggunakan sensor. Pada bab ini kita akan berkenalan dan membuat alat yang menggunakan sensor, sensor yang digunakan dapat berupa sensor cahaya(Phototransistor)

Gambar: Sensor cahaya (phototransitor)

Sensor phototransitor ini pada robot biasanya digunakan pada robot line follower. Dengan sensor ini robot dapat mendeteksi garis dengan warna gelap dan warna terang.

Gambar : sensor phototransistor pada robot

Sensor cahaya ini mendeteksi perubahan cahaya, tiap cahaya dikeluarkan hasil dalam bentuk setiap perubahan tegangan. Tegangan yang dihasilkan dimulai dari 0-5 Volt. Namun dalam line follower yang diukur bukan perubahan tegangannya namun berupa sinyal itu high atau low.

Page 20: MIKROKONTROLER DAN ROBOTIKA.pdf

-

20

Sehingga dibutuhkan alat yang disebut komparator untuk mengubah tegangan yang bervariasi tadi menjadi sinyal high low alat tersebut diberi nama komparator, sesuai dengan namanya perangkat tersebut membandingkan antara gelap atau terang saja.Namun untuk mempermudah pelatihan kita dapat langsung menggunakan phototransitor ini. Dengan syarat saat mencobanya harus di tutup dalam kondisi LOW dan di beri cahaya terang untuk kondisi High.

A. Cara memprogram sensor phototransisor Sensor merupakan inputan bagi mikro, sehingga dalam penulisanya kita menggunakan DDRX = 0, 1. Alat Dan Bahan

� Mikrokontroler � 1 Phototransistor � LED � DOWNLOADER

2. Ketik Kode Program berikut

BAB III PENGENALAN TOOLS

#include <avr/io.h> int main() { DDRA = 0b00000000; // PORTA Sebagai PORT Sensor DDRB = 0b11111111; // PORTB sebagai Output/LED While(1) { If (bit_is_set(PINA,0)) {PORTB = 0b00000001;} Else { PORTB = 0b00000000; } } }

Page 21: MIKROKONTROLER DAN ROBOTIKA.pdf

-

21

4. Download dan lihat hasilnya dengan cara menutupi atau menerangi sensor dengan cahaya.

Tugas : Buat Program hubungan antara 1 sensor dengan motor, Jika Sensor Terang maka Motor Berjalan dan jika sensor Gelap maka motor mati.

Page 22: MIKROKONTROLER DAN ROBOTIKA.pdf

-

22

BAB VI. PENGENALAN TOOLS

Tools adalah alat yang digunakan dalam proses permbuatan robotika yang kita gunakan. Dalam hal ini ada 2 jenis tools yang kita gunakan yaitu Tools untuk Download File program ke Microcontroler dan Microcontroler Placeholder yang digunakan sebagai wadah Microcontroler. a. Tools For MC Downloader Dalam proses Download program dibutuhkan suatu penghantar antara Komputer dan Microcontroler.Seperti apakah penghantar itu? Sementara ini penghantar yang kita gunakan adalah sebuah kabel penghubung yang disebut kable Downloader.Mungkin suatu saat akan ada sebuah penghantar lain seperti Bluetooth yang saat ini ada pada lego Mindstorm.

Terdapat beberapa jenis Kable Downloader yang dapat digunakan, tapi tergantung dari Placeholder yang digunakan, seperti Misalnya PlaceHolder DT-LOWCOST tidak dapat menggunakan Kabel downloader standard. Pada dasarnya Kabel semua kabel downloader hanya memiliki 6 kabel yang terhubung dengan Pin(kaki) MC. Yaitu

MOSI-MISO-SCK-RESET-VCC-GROUND yang jika dituliskan Pin (kaki) nya adalah

PINB5-PINB6-PINB7-RESET-VCC-GROUND

Konfigurasi Pin Downloader diatas Untuk AtMega8535/16/32 sedangkan untuk AtMega8 Konfigurasi PIN nya adalah

MOSI-MISO-SCK-RESET-VCC-GROUND yang jika dituliskan Pin (kaki) nya adalah

PINB3-PINB4-PINB5-RESET-VCC-GROUND

Pada Jenisnya ada dua jenis kabel Downloader yaitu : • Kabel Downloader Paralel • Kabel Downloader Serial

Jenis Kabel Downloader ini berpengaruh pada setingan ponyprog. Sehingga jika anda menggunakan kabel yang berbeda harus mengganti settingan pada ponyprognya. Bagaimana sich cara membedakan antara Serial Dengan Paralel? Hal ini dapat terlihat langsung dari bentuk Female konektor pada kabel Downloader. Bentuk Female Conektror pada kabel Downloader Paralel Memiliki bentuk yang lebih besar dari pada Kabel Downloader Serial. Seperti pada gambar berikut.

Page 23: MIKROKONTROLER DAN ROBOTIKA.pdf

-

23

b. Microcontroler PlaceHolder (MCPH) Microcontroler Placeholder ialah tempat beradanya Microcontroler yang terhubung dengan rangkaian rangkaian lain seperti sensor, roda, dan lain lain. Guna dari MCPH ini adalah untuk menahan microcontroler tidak lepas dengan kabel kabelnya. Ada banyak jenis MCPH, sbagai contohnya MCPH DT-LOWCOST yang dapat dibeli dengan harga diatas 300rb yang juga sudah satu paket dengan Kabel downloadernya, tapi tenang saja bray ada juga kok MCPH standard yang dapat dibuat sendiri, murah. Namun tentunya ada kekurangan jika anda menggunakan MCPH Standard ini. Dari akibat yang pernah alami,

Page 24: MIKROKONTROLER DAN ROBOTIKA.pdf

-

24

MCPH standard ini, dapat terjadinya tidak stabilnya tegangan yang masuk kedalam MC dan dapat mempercepat perusakan MC, ketidak stabilan tegangan ini dapat juga membuat MC melakukan hang (Program Error) sehingga butuh tombol reset sehingga program harus mengeksekusi dari awal baris lagi, kabel downloader yang digunakan adalah kabel downloader standard yang juga dapat dibuat sendiri dengan biaya tidak lebih dari 30rb( ref: dx-077). c. Project Board Project Board ialah alat yang digunakan untuk uji coba rangkaian sebelum dijadikan rangkaian yang tercetak pada PCB. Dengan project board kita bias meminimalisir kerugian yang diakibatkan oleh kesalahan dalam jalur. Project board memerlukan kabel yang disebut kabel “Jumper” yang fungsinya untuk menghubungkan jalur 1 dengan jalur yang lain. Kabel jumper ini biasanya diambil dari kabel kabel lan.karena kabel lan lebih kaku kabelnya.

Project Board ini dapat digunakan untuk komponen elektronika yang standar ukuranya.sebagai contoh LCD2x16,Potensiometer,IC,Microkontroler sensor2 dan lain-lain.

Page 25: MIKROKONTROLER DAN ROBOTIKA.pdf

-

25

BAB VI DEVICE ROBOTIKA

Device Robotika ada banyak jenis device robotika, namun dikelompokan dalam beberapa hal seperti Sensor, Roda, dan lain-lain. Sehingga dalam pembahasan sub bab kali ini saya membaginya menjadi beberapa bagian.

A. Sensor Sensor, setiap robot pasti memiliki sensor karena sensor merupakan proses input. Sensor yang paling mudah dan murah ialah sensor yang terbuat dari InfraRed (IR) dan Phototransistor. Contoh aplikasi dari sensor yang terbuat dari IR dan phototransistor ialah sensor garis. Berikut adalah jenis jenis sensor yang biasa digunakan di robotika Indonesia. a. Sensor Jarak

Sensor jarak ialah sensor yang mendeteksi jarak suatu daerah atau area. Ada banyak jenis sensor jarak. Di Robotika Unila, sensor yang sering kita gunakan adalah Ultrasonic Ping)). Ultrasonic Range Finder, itu nama lengkapnya. Harga sensor Ultrasonic Ping)) ini adalah US $ 29. dan dapat dibeli di Indonesia di Toko Online Digiware. Web : http://digiware.com ( ref: dX-077). Lalu bagaimanakah cara menggunakan ultrasonic Ping)) ini?

Gambar 3.1 Ping Paralax Sensor

Dalam penggunaan setiap komponen di robotika, hal yang paling utama ialah kita harus memahami terlebih dahulu karakteristik dari setiap komponen atau device tersebut. Hal ini sangat dianjurkan, malah saya wajibkan. Mengingat betapa pentingya hal ini. Untuk melihat karakteristik dan semua informasi dapat anda melihat datasheet komponen elektronika tersebut. Datasheet ialah file yang berisi semua informasi tentang suatu komponen Elektronika. Datasheet

Page 26: MIKROKONTROLER DAN ROBOTIKA.pdf

-

26

dapat anda download dari internet dengan gratis, http://alldatasheet.com (ref:dX-077). Setiap komponen elektronika pasti memiliki datasheet walaupun hanya sebuah resistor. Pada Ping)) karakteristik utama yang perlu diketahui yaitu: a. Terdapat tiga buah kawat penghubung, dengan susunan SiGnal-

5Vdc-Ground. Susunan ini tidak boleh terbalik.Sumber Listrik yang dibutuhkan ialah 5V DC.sumber listrik ini sebaiknya tidak kurang dan tidak lebih terlalu banyak. Jika kelebihan tegangan akan merusakan Ping)) dan jika kekurangan tegangan akan membuat Ping tidak akurat dalam mendeteksi jarak. Kabel signal dihibungkan dengan salah satu pin MC. Kabel signal ini ialah kabel yang digunakan sebagai penghubung yang mengirimkan dan menerima signal hasil jarak yang diperoleh untuk di proses di microcontroler.

b. Untuk mendapatkan jarak dapat dilakukan perhitungan hal seperti

berikut. • MC mengirimkan sinyal High ke Ultrasonic Ping)) dan MC

mulai melakukan perhitungan waktu dalam satuan mikrosekon(us). Jika PING mendapatkan logika High maka Ping akan mengeluarkan getaran suara sebesar 40kHz. Pada saat mengirimkan gelombang suara sebesar 40 kHz ini, LED indikator pada Ping akan menyala.

• Kemudian gelombang suara yang dikeluarkan oleh salah

satu spekaer akan diterima oleh satu speaker receiver gelombang, pada saat menerima gelombang Ultrasonic ini Led Indikator akan Padam.

• Untuk memperoleh jarak , maka diperlukan suatu perhitungan yaitu dengan menghitung Lama waktu pengiriman dan penerimaan dan dikalikan setengah.

Page 27: MIKROKONTROLER DAN ROBOTIKA.pdf

-

27

Sehingga dalam Program yang menggunakan bahasa C adalah sebagai berikut.

jarak = 0; //memulai jarak awal ialah 0 DDR_Uson|=_BV(Left_Uson); //DDR dan PORT ping diset High PORT_Uson|=_BV(Left_Uson); //untuk mengirimkan sinyal delay_tus(3); //beri delay selama 3us PORT_Uson &=~_BV(Left_Uson); //Set Low untuk menerima DDR_Uson &=~_BV(Left_Uson); //gelombang loop_until_bit_is_set(PIN_Uson,Left_Uson); // ultrasonik sudah mengirimkan sinyal while(bit_is_set(PIN_Uson,Left_Uson) && jarak<=254) { jarak = jarak + 1; delay_tus(29); } if (jarak >= 254) jarak = 255; else if (jarak<=8) jarak=2; else if (jarak==9) jarak=3; else if (jarak>9 && jarak<=31) jarak=((jarak-2)/2); else jarak=((jarak-1)/2); }

c. Karakteristik Elektronika : • Supply Tegangan – 5 VDC • Supply Arus – 30 mA typ; 35 mA max • jarak tempuh – 2 cm to 3 m (0.8 in to 3.3 yrds) • Input Trigger – positive TTL pulse, 2 uS min, 5 µs typ. • Echo Pulse – positive TTL pulse, 115 uS to 18.5 ms • Echo Hold-off – 750 µs from fall of Trigger pulse • Burst Frequency – 40 kHz for 200 µs • Burst Indicator LED shows sensor activity • Delay before next measurement – 200 µs • Size – 22 mm H x 46 mm W x 16 mm D (0.84 in x 1.8 in x 0.6 in) (ref : ping-datasheet)

Page 28: MIKROKONTROLER DAN ROBOTIKA.pdf

-

28

d. Bentuk gelombang yang dapat dibentuk oleh Ping ialah sebagai berikut dengan sebuah target adalah sebuah silinder

Page 29: MIKROKONTROLER DAN ROBOTIKA.pdf

-

29

e. Bentuk gelombang yang dapat dibentuk oleh ping jika mengenai permukaan datar

b. Sensor Suhu Sensor suhu ialah sensor yang mendeteksi temperatur suatu udara atau benda. Sensor ini sangat efektif sekali jika digunakan dalam robotika KRCI untuk mendeteksi panas ruangan yang terdapat api lilinya. Sensor suhu yang kita gunakan adalah TPA81 (Termophile Array) . Sensor TPA81 ini dapat di beli di Toko Elektronika Online indonesia yaitu Digiware dengan harga sekitar US $ 112.

Page 30: MIKROKONTROLER DAN ROBOTIKA.pdf

-

30

Cara kerja TPA81 yaitu dengan mendeteksi sinar InfraRed(IR) dengan panjang gelombang sebesar 2µm-22µm. Panjang gelombang ini dihasilkan oleh benda benda yang memancarkan panas. Jarak maksimum yang dapat dibaca oleh TPA81 ialah sejauh 3 m. TPA81 memiliki 8 Pixel dengan sudut setiap pixelnya ialah sebesar 5.12° sehingga totalnya adalah 41° Tْerhadap sumbu horizontal dan 6° terhadap sumbu vertikal.

Gambar

Jalur komunikasi data TPA81 menggunakan teknologi i2C( inter integrated circuit ).sehingga dalam menggunakanya diperlukan dua penghubung yang menghubungkan antara Microcontroler dengan TPA81 yang disebut dengan SDA (untuk jalur data) dan SCL (untuk jalur Clock). (ref: hendawan subekti)

Page 31: MIKROKONTROLER DAN ROBOTIKA.pdf

-

31

Gambar : Konfigurasi PIN TPA81.

Register dalam TPA81 terdiri dari 10 buah register yang dapat ditulis dan dibaca yaitu

Fungsi register diatas dapat kita terapkan dalam pemrograman, dalam aplikasi robotikanya yang biasa digunakan adalah register 2-9 yang digunakan untuk membaca suhu pada pixel yang berjumlah delapan pixel. TPA81 juga dapat mengendalikan servo, Pin servo pada TPA81 dihubungkan dengan pin signal pada servo, dengan sumber ground yang sama.

Page 32: MIKROKONTROLER DAN ROBOTIKA.pdf

-

32

Untuk mendapatkan panas, dapat dilakukan dengan melakukan pemrograman sebagai berikut void i2c_start (void) { PORTC |= 1<<PC1; PORTC |=1<<PC0; TWCR=(1<<TWINT)|(1<<TWSTA)|(1<<TWEN); loop_until_bit_is_set(TWCR,TWINT); } void i2c_write (uint8_t data1) { TWDR = data1; //SLA+W ditulis ke TWDR, nilai SLA+W 0xC0 TWCR = (1<<TWINT)|(1<<TWEN) ; loop_until_bit_is_set(TWCR,TWINT); // cek TWINT apakah set } uint8_t i2c_read (uint8_t data2) { TWDR = data2; //SLA+R ditulis ke TWDR, nilai SLA+R adalah 0xC1 TWCR = (1<<TWINT) | (1<<TWEN); loop_until_bit_is_set(TWCR,TWINT); return TWDR; //derajat terukur

} void i2c_stop (void) { TWCR = (1<<TWINT) | (1<<TWEN) | (1<<TWSTO); //stop operasi PORTC |= 0<<PC1;

PENTING!! Setiap Ground pada rangkaian robotika harus dihubungkan menjadi satu walaupun sumber Vcc berbeda. Jika kabel ground tidak dihubungkan menjadi satu hal ini mengakibatkan tidak dapat dikontrolnya komponen tersebut oleh microcontroler.

Page 33: MIKROKONTROLER DAN ROBOTIKA.pdf

-

33

PORTC |=0<<PC0; } untuk fungsi utama mendapatkan suhunya menggunakan perintah sebagai berikut unsigned char panas (unsigned char dx) { i2c_start (); //start kondisi i2c_write (0xD0); //kirim data SLA+W ke TPA81 i2c_write (dx); //minta data dari TPA pada pixel dx i2c_start (); //repeat start i2c_write (0XD1); //minta data dari TPA pada register 1 suhu = i2c_read(255); i2c_stop(); return suhu; } jadi untuk mendapatkan panas pada pixel 9 maka cukup menuliskan pixel (9) maka akan didapatkan berapa besar panas pada register 9. Untuk mengontrol gerakan servo dapat dilakukan dengan menambahkan program berikut : unsigned char servo (unsigned char a) { i2c_start (); //start kondisi i2c_write (0xC0); //kirim data SLA+W ke kompas i2c_write (a); //minta data dari kompas pada register 0 i2c_start (); //repeat start

i2c_write (0XC1); //minta data dari kompas pada register 1

suhu = i2c_read(255); i2c_stop(); return suhu; }

Page 34: MIKROKONTROLER DAN ROBOTIKA.pdf

-

34

Maka untuk mendapatkan posisi servo maximum, dapat dilakukan dengan menuliskan kode program “servo(31) atau servo(0x1F)”

c. Sensor Flame Detector Sensor flame detector ialah sensor yang digunakan untuk mendeteksi adanya api atau tidak. Sensor yang biasa digunakan untuk menangani ini adalah sensor Uv-Tron produksi Hamatsu.Uv-Tron dapat dibeli dengan harga US $100 di Toko digiware.

Uv-Tron menggunakan sebuah elemen kaca semi konduktor yang dapat mendeteksi efek fotolistrik dari sebuah besi atau gas. Hamatsu Uv-Tron memiliki tingkat kesensitifan sebesar 185 – 260nm

Page 35: MIKROKONTROLER DAN ROBOTIKA.pdf

-

35

Uv-Tron disuplai oleh tegangan sebesar 5- 9 V.