buku standar pembelajaran.docx

  • Upload
    feri

  • View
    28

  • Download
    2

Embed Size (px)

Citation preview

Buku Pegangan Robot Digital INDoBOT-I BAB IPENGENALAN ROBOT DIGITAL INDoBOT-II. DASAR TEORI Beberapa dari kita mungkin penasaran bagaimana suatu robot dapat melakukan tugasnya dengan otomatis. Disini kita akan belajar bagaimana memprogram robot sesuai dengan keinginan kita dan memberikan kecerdasan buatan pada robot sehingga robot mampu melalui rintangan rintangan dan melakukan tugas tertentu.Dalam pembelajaran pemprograman robot kali ini kita menggunakan kit robotik INDoBOT-I. Untuk merakit robot tentulah kita membutuhkan suatu alat untuk mengontrol dan mengendalikan outputoutput berupa lampu,motor,dll dan menerima data informasi dari sensor, tentu kita memerlukan sebuah tahapan pemrosesan, proses ini di kendalikan oleh chip mikrokontroller yang berfungsi sebagai pusat kendali dari robot ini. Selain itu kita juga memerlukan mekanik robot agar robot dapat bermanuver dengan baik yang terdiri dari motor elektrik, roda penggerak, roda pengikut (ball caster), rangka (chasis), dll yang telah terintegrasi menjadi satu pada robot INDoBOT-I jadi kita hanya perlu konsentrai dengan bagaiman cara kita memprogramnya.Dalam memprogram robot agar dapat memproses masukan masukan (input) dan memeberikan keluaran (output) sesuai dengan keinginan maka kita harus memprogram kontroller, dalam memprogramnya kita dapat mengunakan bahasa pemrograman C, basic, assembly dan Java. Tapi kali ini kita menggunakan bahasa pemrograman C dan untuk software pemrograman yang dipakai adalah CodeVision AVR. Gambar 1. Robot digital INDoBOT-I

SPESIFIKASI TEKNIS ROBOT INDoBOT-IRobot INDoBOT-I didesin dengan performa yang cukup tinggi dalam kecepatan dan kehandalan, robot ini didesain untuk dapat diaplikasikan menjadi line follower, maze solving, robot transporter, wall follower, dan masih banyak project aplikatif robot. Fitur robot digital INDoBOT-I : Processor pusat kendali menggunakan mikrokontroller ATMEGA 32A. Fungsi mikrokontroller adalah sebagai pusat kendali robot. Chip ini memiliki kaki/terminal sebanyak 32 pin dan kecepatan proses chip mencapai 16Mhz, memiliki memori Flash 32 KB yaitu tempat penyimpanan kodekode program untuk di eksekusi yang dapat ditulis dan di hapus, memori SRAM 2 KB yang berfungsi menyimpan data sementara jika catu daya mati maka data menghilang (volatile) dan memori EEPROM 1 KB adalah memori yang berfungsi sebagai penyimpanan data pada saat chip mengeksekusi program dan tidak dapat terhapus meskipun catu daya mati (non volatile).

Gambar 2. Bentuk fisik dan diagram konfigurasi chip ATMega32

Motor driver L298N yang berfungsi mengendalikan arah putaran motor serta kecepatan putaran motor sesuai dari perintah mikrokontroller. Mampu mensuplai arus ke motor hingga 3 Ampere (maximum).

Gambar 3. Bentuk fisik dan diagram konfigurasi driver motor L298

LCD 16 x 2 character (16 kolom dan 2 baris) yang berfungsi menampilkan tulisan huruf, angka dan berbagai karakter

Gambar 4. Bentuk fisik dan diagram konfigurasi LCD 16x2

2 motor DC 12 V dengan kecepatan 630rpm dan torsi 1 kg.cm

Gambar 5. Bentuk fisik motor DC 12 V 630rpm dan torsi 1 kg.cm

2 set roda dengan ban karet diameter 3.5 cm 4 buah tombol input untuk keperluan menu konfigurasi robot 3 buah lampu led indikator (merah di PB.7, kuning PA7 dan hijau PA6) 1 buzzer untuk indikator suara yang terhubung ke pin PB.6 16 buah photodiode sebagai sensor garis USB downloader untuk memprogram robot

SISTEM KERJA DARI INDoBOT-IBaterai untuk INDoBOT-I Sistem power / energy yang digunakan pada INDoBOT-I berasal dari baterai, jadi sangat penting bagi kita untuk mengetahui bagaimana cara baterai itu bekerja. Isi dari baterai merupakan bahan kimia yang memiliki kutub positif (+) dan kutub negative (-).Pada INDoBOT-I disarankan menggunakan jenis baterai yang rechargeable Litihium Polymer (LIPO), jenis baterai ini dapat di charge dan digunakan kembali sehingga tidak menyebabkan pencemaran. Baterai jenis ini memiliki tegangan sekitar 3.7 volt per cell sehingga total tegangan dapat dihitung dengan jumlah cell x 3.7volt, sebagai contoh baterai yang digunakan di INDoBOT-I menggunakan 3 cell sehinga total tegangannya adalah 11.1V.Untuk mengetahui seberapa banyak energy yang dapat kita gunakan dari baterai ini kita harus mengetahui berapa banyak electron yang di alirkan per detik, didalam istilah elektronika ini di sebut arus listrik yang satuanya ampere (A). Pada arus 1A ada sekitar 6x1018 elektron yang mengalir dalam 1 detik. Pada setiap baterai memiliki jumlah electron yang berbeda, dan jika jumlah electron pada baterai sudah habis maka baterai tidak akan mengeluarkan tegangan kembali. Energi yang di keluarkan oleh baterai merupakan perkalian antara tegangan (Volt) dan arus (Ampere) dan akan memliki hasil yang satuannya disebut watt (W), contohnya baterai yang kita gunakan memiliki tegangan 11.1 v dan arus 0,6 A maka baterai kita memiliki energy 6,6 watt. Jika kita inginkan energy yang lebih tinggi, harus menambahkan baterai lagi dengan cara pemasangan seri atau paralle dapat dilihat pada gambar 6.

Gambar 6. Hubung Paralel BateraiPada pemasangan parallel (kutub positif baterai di gabung dengan kutub positif baterai lainya dan juga negatifnya), seperti gambar 6 memiliki kentungan nilai arus maksimumnya akan di kalikan jumlah baterainya tapi tegangan dari baterainya tetap. Sedangkan pada pemasangan seri (kutub baterai positif di gabung dengan kutub negative dari baterai yang lainya), seperti gambar 7 memiliki keuntungan nilai teganganya akan di kalikan dengan jumlah baterainya namun jumlah arus maksimumnya tetap.

Gambar 7. Hubung Seri Baterai

Dalam praktek kita menggunakan pemasangan jenis parallel, karena jika ada baterai yang lebih kuat di banding baterai yang lain akan tetap mengalirkan arusnya ke robot, apabila seri baterai yang lebih kuat akan mengisi baterai yang lebih lemah sehingga membuang-buang energy, Pada gambar 8 dibawah menunjukan baterai dengan tipe NIMH.

Gambar 8. Baterai Tipe NIMH

BAHASA PEMROGRAMAN CSeperti yang telah dijelaskan bahwa robot adalah sebuat sistem terintegrasi dimana di dalamnya terdapat hardware electronic, sistem mekanik penggerak dan juga software. Software yang digunakan di INDoBOT-I dikembangkan dalam platform bahasa pemrograman C. Bahasa pemrograman Cmerupakan salah satubahasa pemrogramankomputer. Dibuat pada tahun 1972 oleh Dennis Ritchie untukSistem OperasiUnixdi Bell Telephone Laboratories. Meskipun C dibuat untuk memprogram sistem dan jaringan komputer namun bahasa ini juga sering digunakan dalam mengembangkan software aplikasi. C juga banyak dipakai oleh berbagai jenis platform sistem operasi dan arsitektur komputer, bahkan terdapat beberepa compiler yang sangat populer telah tersedia. C secara luar biasa memengaruhi bahasa populer lainnya, terutama C++ yang merupakan extensi dari C (www.wikipedia.com).Berikut ini beberapa standar bahasa pemrograman C :PengenalPengenal (identifier) merupakan sebuah nama yang didefinisikan oleh pemrogram untuk menunjukan identitas dari sebuah konstanta, variable, fungsi, label, atau tipe data khsusus. Untuk memberikan nama sebuah pengenal ada aturan-aturan yang harus dipenuhi antara lain: karakter pertama tidak boleh menggunakan angka. Karakter kedua dapat berupa huruf, angka atau garis bawah. Tidak boleh menggunakan spasi Bersifat Case sensitive yaitu huruf capital dan huruf kecil tidak dianggap sama Tidak boleh menggunakan kata-kata yang merupakan sintaks maupun operator dalam pemrograman, misal:Short, void, bit, char, int, long, float, double, include, const, case, do, while, if, else, static, switch, break, dll.

Tipe DataTipe data adalah penunjukan suatu nilai yang dapat dinyatakan dalam konstanta atau variable. Tipe data yang dinamakan tipe data dasar yaitu : bilangan bulat, bilangan pecahan, karakter, tak bertipe.

Tipe dataUkuranJangkaun Nilai

Bit1 bit0 atau 1

Char1 byte-128 s.d 127

Unsigned char1 byte0 s.d 255

Signed char1byte-128 s.d 127

Int2 byte-32.768 s.d 32.767

Short int2 byte-32.768 s.d 32.767

Unsigned int2 byte0 s.d 65.535

Signed int2 byte-32.768 s.d 32.767

Long int4 byte-2.147.483.648s.d 2.147.483.647

Unsigned long int4 byte0 s.d 4.294.967.295

Signed long int4 byte-2.147.483.648s.d 2.147.483.647

float4 byte

1.2*10 s.d 3.4*10

double4 byte

1.2*10 s.d 3.4*10

Konstanta dan variabelKonstanta dan variabel merupakan sebuah tempat untuk menyimpan data yang berbeda di dalam memory. Konstanta berisi data yang nilainya tetap dan tidak berubah selama program dijalankan, sedangkan variabel berisi data yang dapat berubah selama program dijalankan. Untuk membuat variabel dan konstanta maka hatus di deklarasikannya terlebih dahulu yaitu dengan sintaks sebagai berikut : deklarasi konstantaconst [tipe data] [nama_konstanta] = [nilai];contoh: const unsigned char jumlah = 100; deklarasi variable [tipe data] [nama variabel] = [nilai];contoh: int bilangan =40 ; variabel global dan variabel local

Variable global adalah variabel yang dapat dikenali oleh seluruh semua fungsi yang ada dalam program sedangkan variabel local adalah variabel yang hanya dikenali oleh fungsi tertentu saja. Variabel local hanya akan dibentuk/dialokasikan dalam memori setelah fungsi tersebut dijalankan, sehingga dapat menghemat dalam penggunaan memori. Contoh deklarasi varibel global (di deklarasikan di luar fungsi)#include// preprocessor untuk memasukan file indobot.hunsigned char angka; // variabel global

void test ()//fungsi test{ unsigned int jumlah;//variabel local di fungsi test }

Komentarkomentar adalah tulisan-tulisan yang tidak dianggap sebagai bagian dari program. Komentar digunakan untuk memberikan penjelasan, informasi atraupun keterangan yang dapat membantu dalam pemahaman programan. Contoh // komentar satu baris/* Komentar 2 baris atau lebih*/

Pengarah preprosesorPengarah preprosesor digunakan untuk mendefinisikan prosesor yang akan digunakan ataupun file header yang digunakan dan file library.

Contoh#include atau#include

PernyataanPernyataan adalah salah satu instruksi lengkap yang berdiri sendiri. Berikut adalah contoh sebuah pernyataan.

PORTC = 0x00; led_nyala(1);

Blok pernyataanBlok pernyataan merupakan kumpulan dari beberapa pernyataan yang berada dalam satu bagian program. Contoh :{led_nyala(1);led_mati(1);}

Operator aritmatikaOperator aritmatika adalah beberpa operator yang digunakan untuk perhitungan aritmatika. Dapat dilihat pada tabel berikut :OperatorKeterangan

+Operator operasi penjumlahan

-Oprator operasi pengurangan

*Operator operasi perkalian

/Operator operasi pembagian

%Operator operasi sisa pembagian

Operator *, / dan % memiliki prioritas yang lebih tinggi bila dibandingkan dengan operator + dan -.

Operator PembandingOperator pembanding adalah operator yang digunakan untuk membandingkan 2 buah data. Hasil operator pembanding bukan berupa nilai benar (1) atau salah (0) saja. Berikut tabel operator pembanding :

Operator ContohArti

==x == yBernilai benar jika kedua data sama dan bernilai salah jika kedua data tidak sama

!=x != yBernilai benar jika kedua data tidak bernilai samadan bernilai salah jika kedua data sama

>x > yBernilai benar jika data x lebih besar dari data y dan bernilai salah jika sebaliknya

=x >= y Bernilai benar jika data x lebih besar sama dengan data y dan bernilai salah jika sebaliknya

Lurus -> Finish . Sehingga program yang dimasukkan ke robot menjadi :Lurus();Kiri();Kanan();Lurus();Finish();Latihan 7 :1. Buatlah program setiap melewati perempatan buzzer bunyi, bunyi buzzer tiap perempatan berbeda dan pada perempatan terakhir robot berhenti.

2. Buatlah program robot berjalan sesuai dengan arah anak panah seperti pada gambar di bawah. Di akhir anak panah robot berhenti. Keterangan kotak hitam sebagai akhir dari jalan robot dan garis putih sebagai garis start robot. Tugas20 merupakan tugas akhir untuk memecahkan jalur track yang disediakan.

42 Bikin Robot Itu Mudah 2