40
1 Mada Sanjaya WS, Ph.D 2012 WORKSHOP ROBOTIKA DASAR I

Materi Dasar Robotika Bolabot Institue

Embed Size (px)

DESCRIPTION

Materi ini berisi materi dasar robotik baik robot kontrol maupun robot autonomous yang dibuat oleh Bolabot Techno Robotic Institute

Citation preview

Page 1: Materi Dasar Robotika Bolabot Institue

1

Mada Sanjaya WS, Ph.D

2012 WORKSHOP ROBOTIKA DASAR I

Page 2: Materi Dasar Robotika Bolabot Institue

PENGENALAN

Rekan-rekan pasti telah mengenal istilah robot??

Gambar 1. Wall-E robot yang bisa jatuh cinta

Perkembangan Dunia Robot

Trend perkembangan dunia robot, tidak hanya ada pada angan

pembuat film Hollywood, Tetapi merupakan hasil nyata dari kerja

panjang para peneliti dan teknokrat yang bergelut di bidang otomasi dan

kecerdasan buatan. Perkembangan dunia robot salah satunya dapat

Robot menurut kamus bahasa, berasal pekerja. Sehingga robot dapat didefinisikan sebagai sebuah alat mekanik yang dapat bekerja secara terus menerus untuk membantu pekerjaan manusia, yang dalam menjalankan tugasnya dapat dikontrol langsung oleh manusia ataupun bekerja secara otomatis sesuai program yang telah ditanamkan pada chip kontroler robot.

PENGENALAN ROBOT

rekan pasti telah mengenal istilah robot??

Robot sering sekali di jadikan tema

utama dalam film-film Hollywood,

Semua mungkin tahu robot

transformer, RoboCOP, wall

DoraEMON, ataupun astroBOY.

Robot menjadi trend, kemungkinan

karena robot adalah perwujudan

dari teknologi futuristic yang

paling canggih.

E robot yang bisa jatuh cinta

Perkembangan Dunia Robot

Trend perkembangan dunia robot, tidak hanya ada pada angan

pembuat film Hollywood, Tetapi merupakan hasil nyata dari kerja

para peneliti dan teknokrat yang bergelut di bidang otomasi dan

kecerdasan buatan. Perkembangan dunia robot salah satunya dapat

Robot menurut kamus bahasa, berasal dari kata robota yang artinya pekerja. Sehingga robot dapat didefinisikan sebagai sebuah alat mekanik yang dapat bekerja secara terus menerus untuk membantu pekerjaan manusia, yang dalam menjalankan tugasnya dapat dikontrol langsung oleh

kerja secara otomatis sesuai program yang telah ditanamkan pada chip kontroler robot.

2

Robot sering sekali di jadikan tema

film Hollywood,

Semua mungkin tahu robot

transformer, RoboCOP, wall-E,

DoraEMON, ataupun astroBOY.

Robot menjadi trend, kemungkinan

karena robot adalah perwujudan

dari teknologi futuristic yang

Trend perkembangan dunia robot, tidak hanya ada pada angan-angan

pembuat film Hollywood, Tetapi merupakan hasil nyata dari kerja

para peneliti dan teknokrat yang bergelut di bidang otomasi dan

kecerdasan buatan. Perkembangan dunia robot salah satunya dapat

dari kata robota yang artinya pekerja. Sehingga robot dapat didefinisikan sebagai sebuah alat mekanik yang dapat bekerja secara terus menerus untuk membantu pekerjaan manusia, yang dalam menjalankan tugasnya dapat dikontrol langsung oleh

kerja secara otomatis sesuai program yang telah

Page 3: Materi Dasar Robotika Bolabot Institue

3

terlihat dari perkembangan robot ASIMO milik Honda yang telah

menghabiskan waktu riset selama 20 tahun.

Gambar 2. Perkembangan ASIMO

Kecerdasan Buatan

Mungkinkah robot akan dapat berfikir dan dapat berinteraksi dengan

manusia. Wahhh,,,itu sudah terjadi, meski masih sangat sederhana.

KISMET adalah robot social pertama yang dapat berinteraksi dengan

manusia. KISMET adalah robot buatan Dr. Cynthia Breazeal yang

merupakan salah satu ilmuwan robot wanita di Dunia. Beliau bekerja di

lab kecerdasan buatan MIT (ITB-nya Amrik).

Page 4: Materi Dasar Robotika Bolabot Institue

Gambar 3.

Saat ini, dunia robotika terus berkembang, bukan hanya robot

humanoid, robot berkembang dalam berbagai kondisi dan

manusia, seperti terlihat pada ilustrasi berikut.

Gambar 4.

Secara umum robot terdiri dari tiga bagian utama yaitu mekanik,

elektronik, dan pemrograman/kontrol.

Interaksi KISMET dan Dr. Cynthia Breazeal

Saat ini, dunia robotika terus berkembang, bukan hanya robot

humanoid, robot berkembang dalam berbagai kondisi dan kebutuhan

manusia, seperti terlihat pada ilustrasi berikut.

Gambar 4. Bidang-bidang robotika

Secara umum robot terdiri dari tiga bagian utama yaitu mekanik,

elektronik, dan pemrograman/kontrol.

4

Saat ini, dunia robotika terus berkembang, bukan hanya robot

kebutuhan

Secara umum robot terdiri dari tiga bagian utama yaitu mekanik,

Page 5: Materi Dasar Robotika Bolabot Institue

ROBOT MOBIL KONTROL

(Remote Control Analog Mobile Robot)

Tentu rekan-rekan sudah tidak asing lagi dengan mobil atau pesawat

remot kontrol, mobil remot kontrol merupakan salah satu jenis robot

teleoperated. Yang dapat di kendalikan arah geraknya. Mobil tersebut

dapat dikendalikan maju, mundur, belok kiri, ataupun belok kanan.

Gambar 1

Pada pembahasan kali ini, kita akan membuat sebuah robot remot

kontrol sederhana yang sangat mudah untuk dibuat.

Simulasi Proteus

Berikut adalah sebuah desain seder

(Untuk simulasinya dapat di lihat pada CD lampiran)

ROBOT MOBIL KONTROL

ANALOG

Control Analog Mobile Robot)

rekan sudah tidak asing lagi dengan mobil atau pesawat

ontrol, mobil remot kontrol merupakan salah satu jenis robot

teleoperated. Yang dapat di kendalikan arah geraknya. Mobil tersebut

maju, mundur, belok kiri, ataupun belok kanan.

Gambar 1. Satu set mobil remot kontrol

Pada pembahasan kali ini, kita akan membuat sebuah robot remot

kontrol sederhana yang sangat mudah untuk dibuat.

Berikut adalah sebuah desain sederhana dari robot kontrol analog.

(Untuk simulasinya dapat di lihat pada CD lampiran)

5

Control Analog Mobile Robot)

rekan sudah tidak asing lagi dengan mobil atau pesawat

ontrol, mobil remot kontrol merupakan salah satu jenis robot

teleoperated. Yang dapat di kendalikan arah geraknya. Mobil tersebut

maju, mundur, belok kiri, ataupun belok kanan.

Pada pembahasan kali ini, kita akan membuat sebuah robot remot

hana dari robot kontrol analog.

Page 6: Materi Dasar Robotika Bolabot Institue

Gambar 2. Desain dan simulasi robot kontrol analog sederhana

Desain Aktual

Untuk membuat desain actual robot, dalam buku ini dibuat

menggunakan software Fritzing.

Desain dan simulasi robot kontrol analog sederhana

Untuk membuat desain actual robot, dalam buku ini dibuat

menggunakan software Fritzing.

6

Untuk membuat desain actual robot, dalam buku ini dibuat

Page 7: Materi Dasar Robotika Bolabot Institue

Gambar 3. Desain aktual robot kontrol analog sederhana

Robot kontrol analog ini dapat dibuat modifikasi dengan berbagai

bentuk dan fungsi, misalnya robot soccer, walking robot kontrol dan

lainnya. Berikut adalah robot beetlebot yang siap untuk di uji coba

(a)

Desain aktual robot kontrol analog sederhana

Robot kontrol analog ini dapat dibuat modifikasi dengan berbagai

bentuk dan fungsi, misalnya robot soccer, walking robot kontrol dan

lainnya. Berikut adalah robot beetlebot yang siap untuk di uji coba

(b)

7

Robot kontrol analog ini dapat dibuat modifikasi dengan berbagai

bentuk dan fungsi, misalnya robot soccer, walking robot kontrol dan

lainnya. Berikut adalah robot beetlebot yang siap untuk di uji coba.

Page 8: Materi Dasar Robotika Bolabot Institue

Gambar 4.

Walking Robot Kontrol Analog 4 Kaki

Dengan sedikit memodifikasi roda menjadi bentuk kaki, maka akan

diperoleh walking robot kontrol analog berikut:

Gambar 5.

Ayo tunjukkan kreativitasmu

(c)

Gambar 4. Robot mobil kontrol analog

Walking Robot Kontrol Analog 4 Kaki

Dengan sedikit memodifikasi roda menjadi bentuk kaki, maka akan

diperoleh walking robot kontrol analog berikut:

. Robot berkaki empat dengan kontrol analog

Ayo tunjukkan kreativitasmu !!!

8

Dengan sedikit memodifikasi roda menjadi bentuk kaki, maka akan

Page 9: Materi Dasar Robotika Bolabot Institue

PENGENALAN ELEKTRONIKA

DIGITAL: BERMAIN

Gambar 1.

Berbagai jenis aplikasi teknologi yang ada saat ini, sebagian besar

merupakan produk teknologi digital. Begitupula dengan bidang robotika,

sebagian besar merupakan pengembangan teknologi digital yang

dikombinasikan dengan kecerdasan buatan (

PENGENALAN PROGRAM CODE VISION AVR

CodeVisionAVR merupakan salah satu software

mikrokontroler yang berfungsi sebagai text editor dalam menulis baris

perintah sekaligus sebagai compiler yang dapat mengubah file sum

PENGENALAN ELEKTRONIKA

DIGITAL: BERMAIN

DENGAN LED

Gambar 1. Ilustrasi aplikasi teknologi digital

Berbagai jenis aplikasi teknologi yang ada saat ini, sebagian besar

teknologi digital. Begitupula dengan bidang robotika,

sebagian besar merupakan pengembangan teknologi digital yang

dikombinasikan dengan kecerdasan buatan (soft computing).

PENGENALAN PROGRAM CODE VISION AVR

CodeVisionAVR merupakan salah satu software untuk menmprogram

yang berfungsi sebagai text editor dalam menulis baris

perintah sekaligus sebagai compiler yang dapat mengubah file sum

9

Berbagai jenis aplikasi teknologi yang ada saat ini, sebagian besar

teknologi digital. Begitupula dengan bidang robotika,

sebagian besar merupakan pengembangan teknologi digital yang

).

tuk menmprogram

yang berfungsi sebagai text editor dalam menulis baris

perintah sekaligus sebagai compiler yang dapat mengubah file sumber

Page 10: Materi Dasar Robotika Bolabot Institue

10

menjadi file hexa. Software CodeVision AVR versi demo dapat di unduh

dari http://www.hpinfotech.ro/html/cvavr.htm.

CodeVisionAVR menyediakan berbagai fasilitas yang memudahkan

pengguna. Salah satunya adalah CodeWizardAVR yang memberikan

kemudahan dalam melakukan konfigurasi fungsi-fungsi pin dan fitur

yang yang ingin digunakan. Selain itu juga CodeVisionAVR menyediakan

toolbar yang memudahkan pengguna untuk melakukan berbagai interaksi

yang diinginkan.

Berikut adalah metode penulisan program pada CV AVR:

PROYEK DIGITAL 1. MEMBUAT BLINKING LED

Memulai Program

1. Double klik CodeVisionAVR Evaluation V2.05.0 untuk memulai

program

#include <mega16.h>

//deklarasi variabel global dapat dituliskan disini.

……

void main(void)

{

//deklarasi variabel local dapat dituliskan disini.

……

// kode-kode yang dihasilkan CodeWizard

……..

while (1)

{

//program utama dapat dituliskan disini.

……

}

}

Page 11: Materi Dasar Robotika Bolabot Institue

11

2. Membuat new file

3. Kemudian akan muncul dialog, pilih project, klik OK.

4. Kemudian muncul pula dialog confirm, klik Yes.

5. Setelah itu akan muncul dialog CodeWizardAVR, pilih AT90,

ATtiny, ATmega, FPSLIC, klik OK.

6. Maka akan muncul file CodeWizard-untitled.cwp , setelah itu buka

chip, kemudian isikan dengan jenis mikrokontroler yang digunakan,

Page 12: Materi Dasar Robotika Bolabot Institue

12

dalam eksperimen ini kita gunakan ATmega16 dengan Clock dari

crystal sebesar 12 MHz.

7. Untuk menyimpan file, pilih program, pilih Generate, Save and

Exit seperti berikut

8. Setelah itu, isikan nama file yang ingin digunakan dengan mengisi

kotak dialog berikut

Page 13: Materi Dasar Robotika Bolabot Institue

13

9. File yang tersimpan terdiri dari tiga file, dengan masing-masing

nama ditulis sama, dan klik save. Setelah itu akan tampil

running_led.prj yang merupakan file program project yang siap

untuk diisi logika program. Kemudian isikan Keterangan Project,

Version, Author, Company, Comment sesuai kebutuhan.

10. Kemudian lengkapi program sesuai project yang dibuat,

dalam eksperimen membuat rangkaian blinking LED kita dapat

menambahkan kode program pada Preprocessor (#), inisialisasi

pada bagian void main(void), serta program utama dalam while(1).

Berikut adalah contoh tambahan kode program untuk membuat

rangkaian blinking LED. /*****************************************************

This program was produced by the

CodeWizardAVR V2.05.0 Professional

Automatic Program Generator

Page 14: Materi Dasar Robotika Bolabot Institue

14

© Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.

http://www.hpinfotech.com

Project : Blinking LED

Version : I

Date : 11/17/2012

Author : Mada Sanjaya WS, Ph.D

Company : Bolabot Techno Robotic School

Comments: "SEMANGAT!!!"

Chip type : ATmega16

Program type : Application

AVR Core Clock frequency: 12.000000 MHz

Memory model : Small

External RAM size : 0

Data Stack size : 256

*****************************************************/

#include <mega16.h>

#include <delay.h>

void main(void)

{

//mendefinisikan output berupa LED

DDRD=0xFF;

while (1)

{

PORTD=0x00; // LED menyala

delay_ms(1000); // LED menyala selama satu detik

PORTD=0xFF; // LED mati

delay_ms(1000); // LED mati selama satu detik

}

}

11. Setelah semua kode program ditulis dengan benar. Tekan tombol

F9 untuk compile, maka akan muncul kotak informasi ada tidaknya

error. Jika sudah tidak ada error klik OK.

Page 15: Materi Dasar Robotika Bolabot Institue

12. Program siap di

menghidupkan sistem

Simulasi Proteus Program

Gambar

Program siap di upload pada hardware mikrokontroler untuk

sistem yang telah dibuat.

Simulasi Proteus Program Blinking LED

Gambar 2. Simulasi proteus rangkaian blinking led

15

pada hardware mikrokontroler untuk

Page 16: Materi Dasar Robotika Bolabot Institue

16

Cara mengcompile program CV AVR ke Proteus

1. Klik kanan, pada bagian mikrokontroler, kemudian pilih edit

properties

2. Cari program file, berupa file Exe, dari program yang telah dibuat,

dalam proyek ini, file bernama running_led.hex. Kemudian klik OK.

3. Kemudian klik Play untuk memulai simulasi, dan Stop untuk

menghentikan simulasi Proteus.

Page 17: Materi Dasar Robotika Bolabot Institue

PROYEK DIGITAL 2. MENYALAKAN LED DENGAN TOMBOL

Simulasi Proteus Menghidupkan LED dengan Tombol

Gambar 3. Simulasi Proteus menghidupkan LED dengan tombol

Membuat Program

Untuk langkah 1-8, prosedurnya sama dengan proyek digital 1.

9. Isikan nama tiga file: tombol_led.c, tombol_led.cwp, tombol_led.prj.

10. Isikan program berikut:

/*****************************************************

This program was produced by the

CodeWizardAVR V2.05.0 Professional

Automatic Program Generator

© Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.

http://www.hpinfotech.com

Project : Menghidupkan LED dengan tombol

Version : I

PROYEK DIGITAL 2. MENYALAKAN LED DENGAN TOMBOL

Simulasi Proteus Menghidupkan LED dengan Tombol

Simulasi Proteus menghidupkan LED dengan tombol

8, prosedurnya sama dengan proyek digital 1.

Isikan nama tiga file: tombol_led.c, tombol_led.cwp, tombol_led.prj.

10. Isikan program berikut:

/*****************************************************

CodeWizardAVR V2.05.0 Professional

2010 Pavel Haiduc, HP InfoTech s.r.l.

Project : Menghidupkan LED dengan tombol

17

PROYEK DIGITAL 2. MENYALAKAN LED DENGAN TOMBOL

8, prosedurnya sama dengan proyek digital 1.

Isikan nama tiga file: tombol_led.c, tombol_led.cwp, tombol_led.prj.

Page 18: Materi Dasar Robotika Bolabot Institue

18

Date : 11/17/2012

Author : Mada Sanjaya WS, Ph.D

Company : Bolabot Techno Robotic School

Comments: "SEMANGAT!!!"

Chip type : ATmega16

Program type : Application

AVR Core Clock frequency: 12.000000 MHz

Memory model : Small

External RAM size : 0

Data Stack size : 256

*****************************************************/

#include <mega16.h>

void main(void)

{

// Mendefinisikan input tombol

DDRB.0=0;

DDRB.1=0;

//Mendefinisikan output LED

DDRD.1=1;

DDRD.2=1;

DDRD.3=1;

DDRD.4=1;

//kondisi awal PORT

PORTD.1=1; //semua led mati

PORTD.2=1;

PORTD.3=1;

PORTD.4=1;

while (1)

{

if (PINB.0==0)

{

PORTD.1=0; //led biru nyala

PORTD.2=0; //led biru nyala

PORTD.3=1; //led kuning mati

PORTD.4=1; //led kuning mati

}

else if (PINB.1==0)

{

PORTD.1=1; //led biru mati

PORTD.2=1; //led biru mati

PORTD.3=0; //led kuning nyala

PORTD.4=0; //led kuning nyala

}

else

{

Page 19: Materi Dasar Robotika Bolabot Institue

19

PORTD.1=1; //semua led mati

PORTD.2=1;

PORTD.3=1;

PORTD.4=1;

}

}

}

SELAMAT MENCOBA !!! (^v^)

Page 20: Materi Dasar Robotika Bolabot Institue

ROBOT KONTROL DIGITAL

Gambar 1. Ilustrasi robot kontrol

Secara umum robot tergolong menjadi dua bagian yaitu robot otomatis dan robot

teleoperated. Robot otomatis dapat bekerja tanpa kontrol langsung oleh manusia, robot

tersebut bekerja berdasarkan program yang ditanamkan seperti robot line follower,

robot avoider obstacle, robot humanoid, lampu lalu lintas, pintu otomatis, dan

sebagainya. Sedangkan robot teleoperated harus

seperti robot kontrol, televisi, komputer dan lainnya.

ROBOT KONTROL DIGITAL

REMOTE KABEL

Film Real steel !!?, Gambar

disamping menampilkan impian

robot masa depan yang dapat

dikontrol langsung mengikuti

gerak manusia yang menjadi

pengontrolnya.

Ilustrasi robot kontrol

Secara umum robot tergolong menjadi dua bagian yaitu robot otomatis dan robot

erated. Robot otomatis dapat bekerja tanpa kontrol langsung oleh manusia, robot

tersebut bekerja berdasarkan program yang ditanamkan seperti robot line follower,

robot avoider obstacle, robot humanoid, lampu lalu lintas, pintu otomatis, dan

angkan robot teleoperated harus dikontrol langsung oleh manusia,

seperti robot kontrol, televisi, komputer dan lainnya.

20

Gambar

disamping menampilkan impian

robot masa depan yang dapat

dikontrol langsung mengikuti

gerak manusia yang menjadi

Secara umum robot tergolong menjadi dua bagian yaitu robot otomatis dan robot

erated. Robot otomatis dapat bekerja tanpa kontrol langsung oleh manusia, robot

tersebut bekerja berdasarkan program yang ditanamkan seperti robot line follower,

robot avoider obstacle, robot humanoid, lampu lalu lintas, pintu otomatis, dan

dikontrol langsung oleh manusia,

Page 21: Materi Dasar Robotika Bolabot Institue

Pada eksperimen dalam bab ini, kita akan membuat robot digital

teleoperated sederhana yang dapat dikontrol untuk bergerak maj

mundur, belok kiri, belok kanan, serta berputar.

Untuk robot kontrol dalam eksperimen didalam bab ini masih

menggunakan kontrol berbasis kabel.

Tombol Push Button

diperalatan rumah tangga sekalipun seperti k

juga menggunakan push button.

Aktif high pushbutton

Aktif high pushbutton meru

karakteristik saat tidak ada penekanan maka dalam keadaan

terputus (off) sedangkan saat ditekan akan tersambung

Gambar

Pada eksperimen dalam bab ini, kita akan membuat robot digital

teleoperated sederhana yang dapat dikontrol untuk bergerak maj

mundur, belok kiri, belok kanan, serta berputar.

Untuk robot kontrol dalam eksperimen didalam bab ini masih

menggunakan kontrol berbasis kabel.

Push button merupakan

sebuah device untuk menghubungkan dan

memutuskan rangkaian listrik antara 2

titik. Penggunaan push button dikehidupan

sehari-hari hampir menyentuh semua

bidang. Di bidang komputer dengan

keyboard dan mouse, dibidang otomotif

dengan panel-panel kontrolnya, bahkan

diperalatan rumah tangga sekalipun seperti kontrol peralatan listrik

push button.

merupakan push button yang memiliki

karakteristik saat tidak ada penekanan maka dalam keadaan

(off) sedangkan saat ditekan akan tersambung (on).

Gambar 2. Bentuk Fisik Push Button 4 pin

21

Pada eksperimen dalam bab ini, kita akan membuat robot digital

teleoperated sederhana yang dapat dikontrol untuk bergerak maju,

Untuk robot kontrol dalam eksperimen didalam bab ini masih

untuk menghubungkan dan

ngkaian listrik antara 2

dikehidupan

hari hampir menyentuh semua

bidang. Di bidang komputer dengan

keyboard dan mouse, dibidang otomotif

panel kontrolnya, bahkan

ontrol peralatan listrik

yang memiliki

karakteristik saat tidak ada penekanan maka dalam keadaan

(on).

Page 22: Materi Dasar Robotika Bolabot Institue

Aktif low pushbutton

Aktif low push button merupakan

karakteristik saat tidak ada penekanan maka dalam keadaan

tersambung (on) sedangkan saat ditekan akan terputus (off).

Desain Lengkap Robot Kontrol Digital

Gambar

Sesuai desain pada tombol gerak kiri dihubungkan dengan PIN D.0,

tombol gerak kanan dihubungkan dengan PIN D.1, tombol gerak maju

dihubungkan dengan PIN D.2, serta gerak mundur dihubungkan dengan

PIN D.3. Motor kiri diatur oleh PORTD.5 dan PORTD.6, sedang

motor kanan diatur oleh PORTD.7 dan PORTB.0. Logika yang dibuat

merupakan push button yang memiliki

karakteristik saat tidak ada penekanan maka dalam keadaan

tersambung (on) sedangkan saat ditekan akan terputus (off).

Desain Lengkap Robot Kontrol Digital

Gambar 3. Skema proteus robot kontrol digital

Sesuai desain pada tombol gerak kiri dihubungkan dengan PIN D.0,

tombol gerak kanan dihubungkan dengan PIN D.1, tombol gerak maju

dihubungkan dengan PIN D.2, serta gerak mundur dihubungkan dengan

PIN D.3. Motor kiri diatur oleh PORTD.5 dan PORTD.6, sedang

motor kanan diatur oleh PORTD.7 dan PORTB.0. Logika yang dibuat

22

memiliki

karakteristik saat tidak ada penekanan maka dalam keadaan

tersambung (on) sedangkan saat ditekan akan terputus (off).

Sesuai desain pada tombol gerak kiri dihubungkan dengan PIN D.0,

tombol gerak kanan dihubungkan dengan PIN D.1, tombol gerak maju

dihubungkan dengan PIN D.2, serta gerak mundur dihubungkan dengan

PIN D.3. Motor kiri diatur oleh PORTD.5 dan PORTD.6, sedangkan

motor kanan diatur oleh PORTD.7 dan PORTB.0. Logika yang dibuat

Page 23: Materi Dasar Robotika Bolabot Institue

23

untuk membuat sebuah robot kontrol dapat diringkas dalam tabel

berikut

Tabel 1. Kondisi Gerak Motor dan Kondisi Logika Tiap Pin Motor

Kondisi Tombol

Push-Button

D.5 D.6 D.7 B.0

Maju D.2 = 0 1 0 1 0

Belok Kiri D.0 = 0 1 0 0 0

Belok Kanan D.1 = 0 0 0 1 0

Mundur D.3 = 0 0 1 0 1

Membuat Program Robot Kontrol Digital dengan CV AVR

/*****************************************************

This program was produced by the

CodeWizardAVR V2.05.0 Professional

Automatic Program Generator

© Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.

http://www.hpinfotech.com

Project : Robot Kontrol Digital

Version : I

Date : 11/20/2012

Author : Mada Sanjaya WS, Ph.D

Company : Bolabot Techno Robotic School

Ingat motor hanya akan

bergerak jika diberi beda

polaritas antara dua pin

motor!

Page 24: Materi Dasar Robotika Bolabot Institue

24

Comments: Bekerja untuk Kebangkitan Teknologi Indonesia

Chip type : ATmega8

Program type : Application

AVR Core Clock frequency: 12.000000 MHz

Memory model : Small

External RAM size : 0

Data Stack size : 256

*****************************************************/

#include <mega8.h>

#include <delay.h>

// Declare your global variables here

void main(void)

{

// Declare your local variables here

// Input/Output Ports initialization

// Port B initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=Out Func1=Out Func0=In

// State7=T State6=T State5=T State4=T State3=T State2=0 State1=0 State0=T

PORTB=0x00;

DDRB=0x06;

// Port C initialization

// Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State6=T State5=T State4=T State3=T State2=T State1=T State0=T

PORTC=0x00;

DDRC=0x00;

// Port D initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T

PORTD=0x00;

Page 25: Materi Dasar Robotika Bolabot Institue

25

DDRD=0x00;

// Timer/Counter 0 initialization

// Clock source: System Clock

// Clock value: Timer 0 Stopped

TCCR0=0x00;

TCNT0=0x00;

// Timer/Counter 1 initialization

// Clock source: System Clock

// Clock value: 11.719 kHz

// Mode: Fast PWM top=0x00FF

// OC1A output: Non-Inv.

// OC1B output: Non-Inv.

// Noise Canceler: Off

// Input Capture on Falling Edge

// Timer1 Overflow Interrupt: Off

// Input Capture Interrupt: Off

// Compare A Match Interrupt: Off

// Compare B Match Interrupt: Off

TCCR1A=0xA1;

TCCR1B=0x0D;

TCNT1H=0x00;

TCNT1L=0x00;

ICR1H=0x00;

ICR1L=0x00;

OCR1AH=0x00;

OCR1AL=0x00;

OCR1BH=0x00;

OCR1BL=0x00;

// Timer/Counter 2 initialization

// Clock source: System Clock

// Clock value: Timer2 Stopped

Page 26: Materi Dasar Robotika Bolabot Institue

26

// Mode: Normal top=0xFF

// OC2 output: Disconnected

ASSR=0x00;

TCCR2=0x00;

TCNT2=0x00;

OCR2=0x00;

// External Interrupt(s) initialization

// INT0: Off

// INT1: Off

MCUCR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization

TIMSK=0x00;

// USART initialization

// USART disabled

UCSRB=0x00;

// Analog Comparator initialization

// Analog Comparator: Off

// Analog Comparator Input Capture by Timer/Counter 1: Off

ACSR=0x80;

SFIOR=0x00;

// ADC initialization

// ADC disabled

ADCSRA=0x00;

// SPI initialization

// SPI disabled

SPCR=0x00;

// TWI initialization

Page 27: Materi Dasar Robotika Bolabot Institue

27

// TWI disabled

TWCR=0x00;

DDRD.0=0; // mendefinisikan sebagai input dari tombol gerak ke kiri

DDRD.1=0; // mendefinisikan sebagai input dari tombol gerak ke kanan

DDRD.2=0; // mendefinisikan sebagai input dari tombol gerak maju

DDRD.3=0; // mendefinisikan sebagai input dari tombol gerak mundur

DDRD.5=1; // mendefinisikan sebagai ouput motor kiri

DDRD.6=1; // mendefinisikan sebagai ouput motor kiri

DDRD.7=1; // mendefinisikan sebagai ouput motor kanan

DDRB.0=1; // mendefinisikan sebagai ouput motor kanan

PORTD.0=1; // kondisi awal

PORTD.1=1;

PORTD.2=1;

PORTD.3=1;

PORTD.5=1;

PORTD.6=1;

PORTD.7=1;

PORTB.0=1;

OCR1A=200; // pengatur kecepatan motor menggunakan PWM untuk motor kiri

OCR1B=200; // pengatur kecepatan motor menggunakan PWM untuk motor kanan

while (1)

{

if (PIND.0==0) //robot gerak ke kiri

{

PORTD.5=1;

PORTD.6=0;

PORTD.7=0;

PORTB.0=0;

}

else if (PIND.1==0) //robot gerak ke kanan

{

PORTD.5=0;

PORTD.6=0;

Page 28: Materi Dasar Robotika Bolabot Institue

28

PORTD.7=1;

PORTB.0=0;

}

else if (PIND.2==0) //robot gerak maju

{

PORTD.5=1;

PORTD.6=0;

PORTD.7=1;

PORTB.0=0;

}

else if (PIND.3==0) //robot gerak mundur

{

PORTD.5=0;

PORTD.6=1;

PORTD.7=0;

PORTB.0=1;

}

else //robot diam

{

PORTD.5=0;

PORTD.6=0;

PORTD.7=0;

PORTB.0=0;

}

}

}

Page 29: Materi Dasar Robotika Bolabot Institue

ROBOT LINE FOLLOWER

DIGITAL DENGAN IC

Line follower Robot (Robot Pengikut Garis) adalah robot yang dapat

berjalan mengikuti sebuah lintasan, ada yang menyebutnya dengan

Tracker, Line Tracer Robot

garis berwarna hitam diatas permukaan

ada juga lintasan dengan warna lain dengan permukaan yang kontras

dengan warna garisnya. Ada juga garis yang tak terlihat yang digunakan

sebagai lintasan robot, misalnya medan magnet.

Seperti layaknya manusia, bagaimana manusia dapat berjalan mengikuti

jalan yang ada tanpa menabrak dan sebagainya, tentunya karena manusia

memiliki “mata” sebagai penginderanya. Begitu juga robot line f

ROBOT LINE FOLLOWER

DIGITAL DENGAN IC KOMPARATOR

(Robot Pengikut Garis) adalah robot yang dapat

berjalan mengikuti sebuah lintasan, ada yang menyebutnya dengan

Line Tracer Robot dan sebagainya. Garis yang dimaksud adalah

garis berwarna hitam diatas permukaan berwarna putih atau sebaliknya,

ada juga lintasan dengan warna lain dengan permukaan yang kontras

dengan warna garisnya. Ada juga garis yang tak terlihat yang digunakan

sebagai lintasan robot, misalnya medan magnet.

Gambar 1. Ilustrasi robot line follo

dengan posisi sensor di atas permukaan

putih

Seperti layaknya manusia, bagaimana manusia dapat berjalan mengikuti

jalan yang ada tanpa menabrak dan sebagainya, tentunya karena manusia

memiliki “mata” sebagai penginderanya. Begitu juga robot line f

29

KOMPARATOR

(Robot Pengikut Garis) adalah robot yang dapat

berjalan mengikuti sebuah lintasan, ada yang menyebutnya dengan Line

dan sebagainya. Garis yang dimaksud adalah

berwarna putih atau sebaliknya,

ada juga lintasan dengan warna lain dengan permukaan yang kontras

dengan warna garisnya. Ada juga garis yang tak terlihat yang digunakan

Ilustrasi robot line follower

dengan posisi sensor di atas permukaan

Seperti layaknya manusia, bagaimana manusia dapat berjalan mengikuti

jalan yang ada tanpa menabrak dan sebagainya, tentunya karena manusia

memiliki “mata” sebagai penginderanya. Begitu juga robot line follower

Page 30: Materi Dasar Robotika Bolabot Institue

ini, dia memiliki sensor garis yang berfungsi seperti “mata” pada

manusia. Sensor garis ini mendeteksi adanya garis atau tidak pada

permukaan lintasan robot tersebut, dan informasi yang diterima sensor

garis kemudian diteruskan ke prosesor untuk di

dan akhirnya hasil informasi hasil olahannya akan diteruskan ke

penggerak atau motor agar motor dapat menyesuaikan gerak tubuh

robot sesuai garis yang dideteksinya.

Untuk merangkai rangkaian

elektroniknya kita perlu

tahu dulu diagram blok

sistem yang akan kita

bangun, dengan demikian

akan menjadi mudah

mengerjakannya. Blok

sistem yang akan kita bagun

paling tidak tampak seperti gambar berikut. Sistemnya terdiri dari

sensor garis, rangkaian komparator, sistem minimum AT

motor driver.

ini, dia memiliki sensor garis yang berfungsi seperti “mata” pada

manusia. Sensor garis ini mendeteksi adanya garis atau tidak pada

permukaan lintasan robot tersebut, dan informasi yang diterima sensor

garis kemudian diteruskan ke prosesor untuk diolah sedemikian rupa

dan akhirnya hasil informasi hasil olahannya akan diteruskan ke

penggerak atau motor agar motor dapat menyesuaikan gerak tubuh

robot sesuai garis yang dideteksinya.

rangkaian

elektroniknya kita perlu

tahu dulu diagram blok

sistem yang akan kita

bangun, dengan demikian

akan menjadi mudah

mengerjakannya. Blok

sistem yang akan kita bagun

paling tidak tampak seperti gambar berikut. Sistemnya terdiri dari

gkaian komparator, sistem minimum AT Mega 16 dan

Gambar 2. Diagram blok robot line follower

30

ini, dia memiliki sensor garis yang berfungsi seperti “mata” pada

manusia. Sensor garis ini mendeteksi adanya garis atau tidak pada

permukaan lintasan robot tersebut, dan informasi yang diterima sensor

olah sedemikian rupa

dan akhirnya hasil informasi hasil olahannya akan diteruskan ke

penggerak atau motor agar motor dapat menyesuaikan gerak tubuh

paling tidak tampak seperti gambar berikut. Sistemnya terdiri dari

Mega 16 dan

line follower

Page 31: Materi Dasar Robotika Bolabot Institue

31

Skema Lengkap Line follower Digital IC Komparator

Pada skema lengkap robot line follower didesain dengan posisi sensor di

atas permukaan putih. Dua buah sistem sensor di pasang pada pin B.0

dan B.1, sedangkan sistem actuator motor DC dipasang pada Port D.0

dan D.1 untuk motor kiri, D.2 dan D.3 untuk motor kanan. Prinsip kerja

robot line follower berikut adalah saat sistem sensor berada di atas

permukaan putih, akan ada pantulan cahaya dari LED yang akan

mengenai sensor cahaya LDR sehingga resistansi sensor LDR berkurang

sehingga arus bergerak melalui LDR. Kondisi tersebut menyebabkan

arus output sensor menuju IC komparator LM 393 menjadi minimum,

oleh IC LM 393, arus di non-inverting sehingga output menuju pin

mikrokontroler menjadi LOW (0). Sebaliknya, saat sistem sensor

berada di atas garis hitam, tidak akan ada pantulan cahaya dari LED

yang akan mengenai sensor cahaya LDR sehingga resistansi sensor LDR

sangat besar sehingga arus tidak akan melalui LDR. Kondisi tersebut

menyebabkan arus output sensor menuju IC komparator LM 393

menjadi maksimum, oleh IC LM 393, arus di non-inverting sehingga

output menuju pin mikrokontroler menjadi HIGH (1). Oleh

mikrokontroler data logika pin tersebut kemudian diolah untuk

mengerakan motor, motor akan bergerak jika kedua pin motor tersebut

Page 32: Materi Dasar Robotika Bolabot Institue

32

memiliki beda polaritas. Selengkapnya mengenai logika gerak robot

dapat dilihat pada Tabel 1 dan 2.

Tabel 1. Kondisi Gerak Motor dan pengaruh Sensor

Kondisi B.0 = 0 B.0 =1

B.1 = 0 Maju Belok Kiri

B.1 = 1 Belok Kanan Mati

Tabel 2. Kondisi Gerak Motor dan Kondisi Logika Tiap Pin Motor

Kondisi D.0 D.1 D.2 D.3

Maju 0 1 0 1

Belok Kiri 0 0 0 1

Belok Kanan 0 1 0 0

Mati 1 1 1 1

Page 33: Materi Dasar Robotika Bolabot Institue

Gambar 3. Skema lengkap robot

Bentuk Robot Line Follower

Gambar 4. Bentuk jadi

Skema lengkap robot line follower menggunakan AT Mega 16

Bentuk Robot Line Follower

Bentuk jadi robot line follower menggunakan AT Mega 16

33

menggunakan AT Mega 16

menggunakan AT Mega 16

Page 34: Materi Dasar Robotika Bolabot Institue

34

Membuat Program Robot Line Follower dengan CV AVR

/*****************************************************

This program was produced by the

CodeWizardAVR V2.05.0 Professional

Automatic Program Generator

© Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.

http://www.hpinfotech.com

Project : Robot Line follower

Version : I

Date : 11/8/2012

Author : Mada Sanjaya WS, Ph.D

Company : Bolabot Techno Robotic School

Comments: www. bolabot. com

Chip type : ATmega16

Program type : Application

AVR Core Clock frequency: 12.000000 MHz

Memory model : Small

External RAM size : 0

Data Stack size : 256

*****************************************************/

#include <mega16.h>

# include <delay.h> //tambahan program untuk membuat waktu tunda

// Alphanumeric LCD Module functions

#include <alcd.h>

// Declare your global variables here

void main(void)

Page 35: Materi Dasar Robotika Bolabot Institue

35

{

// Declare your local variables here

// Input/Output Ports initialization

// Port A initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T

PORTA=0x00;

DDRA=0x00;

// Port B initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T

PORTB=0x00;

DDRB=0x00;

// Port C initialization

// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In

// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T

PORTC=0x00;

DDRC=0x00;

// Port D initialization

// Func7=In Func6=In Func5=Out Func4=Out Func3=In Func2=In Func1=In Func0=In

// State7=T State6=T State5=0 State4=0 State3=T State2=T State1=T State0=T

PORTD=0x00;

DDRD=0x30;

// Timer/Counter 0 initialization

// Clock source: System Clock

// Clock value: Timer 0 Stopped

// Mode: Normal top=0xFF

// OC0 output: Disconnected

TCCR0=0x00;

Page 36: Materi Dasar Robotika Bolabot Institue

36

TCNT0=0x00;

OCR0=0x00;

// Timer/Counter 1 initialization

// Clock source: System Clock

// Clock value: 11.719 kHz

// Mode: Fast PWM top=0x00FF

// OC1A output: Non-Inv.

// OC1B output: Non-Inv.

// Noise Canceler: Off

// Input Capture on Falling Edge

// Timer1 Overflow Interrupt: Off

// Input Capture Interrupt: Off

// Compare A Match Interrupt: Off

// Compare B Match Interrupt: Off

TCCR1A=0xA1;

TCCR1B=0x0D;

TCNT1H=0x00;

TCNT1L=0x00;

ICR1H=0x00;

ICR1L=0x00;

OCR1AH=0x00;

OCR1AL=0x00;

OCR1BH=0x00;

OCR1BL=0x00;

// Timer/Counter 2 initialization

// Clock source: System Clock

// Clock value: Timer2 Stopped

// Mode: Normal top=0xFF

// OC2 output: Disconnected

ASSR=0x00;

TCCR2=0x00;

TCNT2=0x00;

Page 37: Materi Dasar Robotika Bolabot Institue

37

OCR2=0x00;

// External Interrupt(s) initialization

// INT0: Off

// INT1: Off

// INT2: Off

MCUCR=0x00;

MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization

TIMSK=0x00;

// USART initialization

// USART disabled

UCSRB=0x00;

// Analog Comparator initialization

// Analog Comparator: Off

// Analog Comparator Input Capture by Timer/Counter 1: Off

ACSR=0x80;

SFIOR=0x00;

// ADC initialization

// ADC disabled

ADCSRA=0x00;

// SPI initialization

// SPI disabled

SPCR=0x00;

// TWI initialization

// TWI disabled

TWCR=0x00;

Page 38: Materi Dasar Robotika Bolabot Institue

38

// Alphanumeric LCD initialization

// Connections specified in the

// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:

// RS - PORTC Bit 0

// RD - PORTC Bit 1

// EN - PORTC Bit 2

// D4 - PORTC Bit 4

// D5 - PORTC Bit 5

// D6 - PORTC Bit 6

// D7 - PORTC Bit 7

// Characters/line: 16

lcd_init(16);

// Tambahan kode mendefinisikan input output

DDRB.0=0;

DDRB.1=0;

DDRD.0=1;

DDRD.1=1;

DDRD.2=1;

DDRD.3=1;

// Tambahan kode mendefinisikan kecepatan motor PWM

OCR1A=200;

OCR1B=200;

// Tambahan kode mendefinisikan kondisi awal

PORTB.0=1; //sensor kiri

PORTB.1=1; //sensor kanan

PORTD.0=0;

PORTD.1=0;

PORTD.2=0;

PORTD.3=0;

while (1)

{

if (PINB.0==1 & PINB.1==0) // Tambahan kode sensor kiri hitam, kanan putih, maka belok kiri

{

Page 39: Materi Dasar Robotika Bolabot Institue

39

PORTD.0=0;

PORTD.1=0;

PORTD.2=0;

PORTD.3=1;

lcd_clear ();

lcd_gotoxy(0,0);

lcd_putsf("B0=1 B1=0");

lcd_gotoxy(0,1);

lcd_putsf("BELOK KIRI");

delay_ms(100);

}

else if (PINB.0==0 & PINB.1==1) // Tambahan kode sensor kiri putih, kanan hitam, maka belok

kanan

{

PORTD.0=0;

PORTD.1=1;

PORTD.2=0;

PORTD.3=0;

lcd_clear();

lcd_gotoxy(0,0);

lcd_putsf("B0=0 B1=1");

lcd_gotoxy(0,1);

lcd_putsf("BELOK KANAN");

delay_ms(100);

}

else if (PINB.0==1 & PINB.1==1) // Tambahan kode sensor kiri hitam, kanan hitam, maka mati

{

PORTD.0=0;

PORTD.1=0;

PORTD.2=0;

PORTD.3=0;

lcd_clear ();

lcd_gotoxy(0,0);

lcd_putsf("B0=1 B1=1");

Page 40: Materi Dasar Robotika Bolabot Institue

40

lcd_gotoxy(0,1);

lcd_putsf("MATI");

delay_ms(100);

}

else // Tambahan kode sensor kiri putih, kanan putih, maka bergerak maju

{

PORTD.0=0;

PORTD.1=1;

PORTD.2=0;

PORTD.3=1;

lcd_clear();

lcd_gotoxy(0,0);

lcd_putsf("B0=0 B1=0");

lcd_gotoxy(0,1);

lcd_putsf("MAJU");

delay_ms(100);

}

}

}

SELAMAT MENCOBA…

MARI BERJUANG BERSAMA BOLABOT

“BEKERJA UNTUK KEBANGKITAN

TEKNOLOGI INDONESIA”