SMANSA PERJAKA
PENDAHULUAN
2012
Pololo 3pi
Robot
Automation Technology
Education Center
3 robot telah di desin kecil namun memiliki performa yang cukup tinggi
dalam kecepatan, robot ini di desain untuk line follower dan Maze Solving. Robot
ini menggunakan sumber tenaga dari battrai AAA yang berjumlah 4 yang artinya
teganganya 6 volt namun keunikanya untuk motor dc teganganya di naikan
menjadi 9,25 volt agar motor dapat bekerja optimal dan kecepatanya
meningkat hingga 1,2 meter/detik (lintasan lurus). Sedangakan untuk motor
penggeraknya menggunakan motor dc micro metal gear 30:1 dan dillengkapi
ftur lainya seperti lcd 8x2, buzzer, tiga buah tombol tekan, dan lainya.
1.1
Fitur ftur robot pololu 3
adalah:
Mikrokontroller Atmel keluarga AVR seri ATMEGA 328P/ ATMEGA 168
artinya mikrokontroller yang berarsitektur AVR (Alf Vegard and Risc)
dimana Bus Data dan Bus
Alamat terpisah. Fungsinya sebagai pusat kendali untuk memproses
keluaran keluaran(output) dan menerima informasi dari sensor
sensor(input) dengan kecepatan prosess 20 Mhz, 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) perbedaanya dengan RAM ialah kata S berarti
static jenis RAM yang terbuat dari TTL(TransisitorTransistor Logic) yang
dapat Bekerja cepat dibanding jenis RAM yang lainya, 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).
Diskusi kelompok :
1. Sebutkan macam-macam bahasa pemrograman untuk robot !
2. Jelaskan tentang AVR studio 4 !
3. Jelaskan fungsi :
Mikrokontroller
Motor
Pololo 3pi
Robot
Automation Technology
Education Center
LCD 8 x 2 character
3 buah tombol input
Buzzer
5 buah sensor
Pololo 3pi
Robot
Automation Technology
Education Center
Pololo 3pi
Robot
Automation Technology
Education Center
Automation Technology
Education Center
mac.
Namun 3 yang dapat di program dengan mac jumlahnya terbatas dan untuk
windows
minimal XP SP 3 atau menggunakan SP2 yang sudah di update data hotfx
Pololo 3pi
Robot
Automation Technology
Education Center
3.2
2.
3.
4.
3.4
Pololo 3pi
Robot
Automation Technology
Education Center
4.1
Automation Technology
Education Center
Pololo 3pi
Robot
Automation Technology
Education Center
Gambaran diagram pada system energy di 3 robot terdapat pada gambar 4.4 di bawah ini:
Pololo 3pi
Robot
1
0
Automation Technology
Education Center
1
1
Automation Technology
Education Center
Pololo 3pi
Robot
1
2
Automation Technology
Education Center
PD6
0
1
0
1
1
off
off
on
off
2
Off
On
Off
Off
3
Off
On
off
on
4
off
off
on
on
M1
Berhenti (tidak mengerem)
Berputar maju
Berputar mundur
Berhenti (mengerem)
Logika kontrol di motor 2 (kondisi pin PD5 dan PB3 bernilai digital 1/0 dan akan
dibahas lebih l anjut di bab berikutnya)
PD3
0
0
1
1
PB3
0
1
0
1
1
off
off
on
off
2
off
On
off
off
3
off
on
off
on
4
off
off
on
on
M2
Berhenti (tidak mengerem)
Berputar maju
Berputar mundur
Berhenti (mengerem)
Kendali kecepatan pada motor dengan mengubah logika rendah (0V) ke nilai
tinggi (5V) secara cepat. Pada motor 1 nilai logika di PD6 akan tetap dijaga
kondisi tinggi(5V) dan pada PD5 yang akan kita ubah nilai logikanya dari rendah
ke tinggi secara cepat. Dengan pengubahan nilai secara cepat itu dapat
mengubah nilai tegangan keluaranya misalnya nilai logika tinggi dan nilai logika
rendah di lakukan pengubahanya dalam waktu yang sama akan bernilai 50% dari
Pololo 3pi
Robot
1
3
Automation Technology
Education Center
nilai tegangan 5V artinya 2,5V dan pada motor driver juga akan berubah nilai
kecepatan yang di berikan ke motor menjadi 50% dari jumlah putaran
maksimalnya. Pengubahan logika itulah yang di sebut PWM (Pulse With
Modulation) dan nilai PWM di mikrokontroller diwakilkan dengan nilai 0-255.
artinya nilai 255 lebih banyak
Pololo 3pi
Robot
1
4
Automation Technology
Education Center
Pololo 3pi
Robot
1
5
Automation Technology
Education Center
Pololo 3pi
Robot
1
6
Automation Technology
Education Center
pada contoh) agar tetap berlogika 1 jika tombol tidak ditekan, dan jika tombol
ditekan maka pin mikrokontroller terhubung dengan ground (nilai negative dari
supplai tegangan) dengan perantara R27 (resistor) yang bernilai 1 k dan
nilainya harus lebih kecil dari nilai R agar arus listrik dari VCC (nilai positif dari
supplai tegangan) dapat mengalir ke ground dan tidak ke pin mikrokontroller
sehingga rangkaian ini apabila pushbutton tertekan maka nilai pada pin
mikrokontroller bernilai 0 dan apabila tidak tertekan maka bernilai 1. Jika kita
tidak menggunakan pull-up resistor ketika pushbutton tidak di tekan maka
nilainya akan foating (tidak menentu antara 0 dan 1) maka pembacaan inputnya
akan eror. Oleh karena itu pull-up resistor penting apabila kita menggunakan
pushbutton. Tapi pada mikrokontroller jenis AVR sudah memiliki internal pull-up
artinya sudah terdapat resistor pull-up di dalam mikrokontroller ini.
b. Sensor Garis
Sensor garis refectance seperti pada gambar 4.11 merupakan rangkaian
sensor garis refectance pada komponen U4 adalah gabungan dari LED IR sebagai
pemancar atau transmitter dan photo diode/photo transistor sebagai penerima
atau receiver.
Pololo 3pi
Robot
1
7
Automation Technology
Education Center
Pololo 3pi
Robot
1
8
Automation Technology
Education Center
1
9
Automation Technology
Education Center
5.1 Pengenal
Pengenal (identifer) merupakan sebuah nama yang didefnisikan oleh pemrogram
untuk
menunjukan identitas dari sebuah konstanta, variable, fungsi, label, atau tipe data khsusus.
Untuk membrikan 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.
Contoh penamaan:
. nama . nama_pengenal_saya
. _nama
. nama1
5.2 Tipe Data
Tipe 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 data dapat dilihat pada table
5.1.
Table 5.1 Tipe
Data
Tipe
Ukura
Jangkaun Nilai
data
n
Bit
1 bit
0 atau 1
Char
Unsigned char
Signed char
Int
Short int
Unsigned int
Signed int
Long int
Unsigned long int
Signed long int
Float
Double
1 byte
1 byte
1byte
2 byte
2 byte
2 byte
2 byte
4 byte
4 byte
4 byte
4 byte
4 byte
8
8
s.d 3.4*10
3
s.d 3.4*10
8
8
Pololo 3pi
Robot
2
0
Automation Technology
Education Center
deklarasi variable
[tipe data] [nama variabel] = [nilai];
contoh
int kurang_dari = 0x14;
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<pololu/3pi.h>
preprocessor untuk
//
2
1
Automation Technology
Education Center
Contoh
// komentar satu baris
/* Komentar 2
baris atau
lebih*/
Pololo 3pi
Robot
2
2
Automation Technology
Education Center
Keterangan
Operator operasi penjumlahan
Oprator operasi pengurangan
Operator operasi perkalian
Operator operasi pembagian
Operator operasi sisa pembagian
Pololo 3pi
Robot
2
3
Automation Technology
Education Center
Operator *, / dan % memiliki prioritas yang lebih tinggi bila dibandingkan dengan operator +
dan -.
Pololo 3pi
Robot
2
4
Automation Technology
Education Center
Keterangan
Operator operasi
Operator operasi
Operator operasi
Operator operasi
Operator operasi
Operator operasi
Contoh
a = 0x12;
b = 0x34;
Pololo 3pi
Robot
2
5
Automation Technology
Education Center
maka:
a&b = 0x10;
Pololo 3pi
Robot
2
6
Automation Technology
Education Center
a<<1= 0x24;
penjelasan
a
= 0x12
b
= 0x34
a&b
= 0x10
0001 0010
00 11 01 00 &
0001 0000
Tabel 5.6 perbandingan isi variabel a sebelum dan sesudah operasi geser kiri
Nilai sebelum digeser kiri
Bit 7
Bit 6
Bit 5
0
0
0
Bit 4
1
Bit 3
0
Bit 2
0
Bit 1
1
Bit 0
0
Bit 4
0
Bit 3
0
Bit 2
1
Bit 1
0
Bit 0
0
Bit 6
0
Bit 5
1
Operator
=
+=
-=
*=
/=
%=
Keterangan
Operator untuk
Operator untuk
Operator untuk
Operator untuk
Operator untuk
Operator untuk
Contoh
a +=2; artinya nilai variabel a ditambahan dengan 2, a=a +2
b *=3; artinya nilai variabel a dikalikan dengan 3, a=b*3
5.13 Operator Penambahan dan pengurangan
Operator penambahan dan pengurangan adalah operator yang digunakan
untuk manaikan atau menurunkan nilai sebuah variable dengan selisih 1.
Operator
++
--
Pololo 3pi
Robot
2
7
Automation Technology
Education Center
Contoh
a =
1; b
= 5;
a+
+;
b-;
Maka operator a++ akan mengubah variabel a dari 1 menjadi 2 dan b-- akan
mengubah variabel
5 menjadi
4.
5.14 Algoritma dan Bilangan
bilangan
Sebelum kita mengenal apa itu bahasa C kita harus tahu dulu sistem
algoritma dan sistem bilangan yang biasa di gunakan dalam bahasa C
a.
Algoritma
controller
karena kita menggunakan mikrokontroller jadi seperti halnya computer kita membaca
input
input dan mengeluarkan perintah outputoutput. Dan mikrokontroller hanya
bisa membaca input
dalam kondisi biner, apa itu biner? biner itu bilangan yang terdiri nilai 0 dan 1,
nah pembacaan nilai
biner dalam kontroller yaitu apabila nilai 1 di anggap ada tegangan dan apabila 0
di anggap tidak ada tegangan. Sedangkan input analog kita memasukan
tegangan yang berubahubah dari 0 volt sampai
5 volt, karena controller yang kita gunakan memiliki fasilitas ADC (Analog Digital
Converter) jadi kita bisa menggunakan inputinput analog. Nah tadi kita sudah
mengetahui inputinput kontroller sekarang apa yang harus kita lakukan?,
setelah mengetahui inputinput tentu kita harus melakukan aksi ke keluaran.
Sebelumnya kita harus mengetahui kemungkinankemungkinan pada inputny.
Misalnya kita membaca PORTC.0 untuk memutar motor dalam digital, PORTC.0
bernilai 1 atau 0, jika
0 kita gerakan motor searah jarum jam dan jika 1 kita hentikan putaran
motornya. Itu contoh yang paling dasar dan masih banyak lagi yang nanti kita
bahas selanjutnya.
b.
Sistem Bilangan
pada bahasa c
Karena kita bermainmain dengan kemungkinan kita harus mendefnisikanya dalam
bilangan
bilangan untuk penyimpanan datadata dari input agar mudah kita baca
kembali, system bilngan
yang kita gunakan dalam bahasa c ada 3
jenis antara lain.
Jenis
bilangan
Pololo 3pi
Robot
2
8
Automation Technology
Education Center
Decimal
Bilangan decimal yaitu bilangan yang mempunyai sepuluh simbol angka
yaitu 0,1,2,3,4,5,6,7,8,9
Aturan penulisan
(langsung) Contoh :
128
Heksadesimal
Bilangan heksadesimal yaitu bilangan yang mempunyai enam belas simbol
angka yaitu
0,1,2,3,4,5,6,7,8,9,A,B,
C,D,E,F
Aturan penulisan diawali dengan
0x... atau $...
Contoh:
0x57FA
Biner atau binary
Bilangan biner yaitu bilangan yang mempunyai dua simbol angka yaitu 0 dan
1. Aturan penulisan diawali dengan 0b...
Contoh: 0b00111101
Pololo 3pi
Robot
2
9
Konversi
bilangan
3
2
Kunci bilangan biner dan heksadesimal adalah Heksadesimal = b*2 + b*2 +
1
0
b*2 + b*2 = b*8 +
b*4 + b*2 + b*1. Dimana b adalah nilai bit dalam bilangan biner 0 atau 1. Untuk
mempermudah konversi bilangan heksa dari dan ke biner di buat menjadi 4 bit-4
bit. Dimana tiap 4 bit mempunyai bentuk 8_4_2_1
1.
konversi biner ke
heksadesimal
0b10110001 =? bagi dua nible atas (1011) dan nible bawah (0001).
3
2
1
0=
1011 = 1*2 + 0*2 + 1*2 + 1*2 8 + 0 + 2 + 1 = B
3
2
1
0
0001 = 0*2 + 0*2 + 0*2 + 1*2 = 0 + 0 + 0 +1 = 1
0b10110001 = 0xB1
2.
konversi heksadesimal
ke biner
0x2F = ? bagi dua nible atas ( 2 ) dan nible bawah ( F )
3
2
1
0
2 = 0 + 0 + 2 + 0 = 0*2 + 0*2 + 1*2 + 0*2 = 0010 biner
3
2
1
0
F = 8 + 4 + 2 +1 = 1*2 + 1*2 + 1*2 + 1*2 = 1111 biner
0x2F = 0b00101111
3.
konversi biner ke
decimal
0b10110001 =? dalam konversi ke decimal kita tidak menggunakan
pembagian nible atas dan nible bawah dalam 4 bit langsung kita kalikan
7
0
dengan bilangan 2 sampai 2
7
6
5
4
3
2
1
0
0b10110001 = (1*2 ) + (0*2 ) + (1*2 ) + (1*2 ) + (0*2 ) + (0*2 ) + (0*2 ) + (1*2 ) = 128
+ 0 + 32 +
16 + 0 + 0 + 0 + 1 = 177
4.
konversi heksadesimal ke
decimal
0x12F =? jika dalam heksa ke biner kita menggunakan 2 pangkat karena
jumlah bilangan biner hanya dua tapi jika kita konversi ke decimal kita harus
mempangkatkan 16 sesuai jumlah bilangan
heksadesimal yang ingin di
konversi
2
2
2
0x12F = (1 x 16 ) + (2 x 16 ) + (F x 16 ) = 256 + 32 + 15 = 303
Catatan : huruf dalam heksa jika di konversi ke desimal A=10, B=11, C=12, D=13, E=14,
F=15
5.
konversi bilangan decimal ke
heksadesimal
500 =? jika kita mengkonversi heksadesimal ke decimal kita menggunakan
perkalian dengan pangkat 16 maka jika konversi sebaliknya kita membagi
dengan bilangan 16
500 : 16 = 31
sisa 4
31 : 16 = 1
sisa 15 atau F
1 (tidak di bagi lagi dengan 16 karna nilainya lebih
kecil dari 16) Jadi hasilnya kita urutkan dari nilai
paling bawah ke atas
500 = 0x1F4
6.
Konversi bilangan decimal
ke biner
Cara cepat yaitu kita rubah dulu decimal ke heksa baru ke biner.
200 = ?
200 : 16 = 12 (atau C) sisa 8
200 = 0xC8
3
2
1
0
C = 8 + 4 + 0 + 0 = 1*2 + 1*2 + 0*2 + 0*2 = 1100
3
2
1
0
8 = 8 + 0 + 0 + 0 = 1*2 + 0*2 + 0*2 + 0*2 = 1000
200 = 0xC8 = 0b11001000
logika dasar
table 5.9 logika AND
A
0
0
1
1
B
0
1
0
1
A AND B
0
1
1
1
table
A
0
0
1
1
A
1
0
Dari sifat logika tersebut banyak manfaat yang dapat kita pakai dalam
pembuatan program nanti, misalnya jika ingin mengubah data dalam variabel
kita yang sebagian datanya tidak harus di ubah, lalu jika kita ingin membaca
kondisi input dan memberikan nilai kepada output, selebihnya akan dibahas
nanti.
5.15 Kontrol Aliran program
Untuk mencerdaskan suatu program maka diperlukan sebuah algoritma
dimana terdiri dari berbagai control aliran program. kontrol aliran program
ada beberapa seperti pengendalian bersyarat, dan pengendalian tanpa syarat.
1.
pengendalian bersyarat
a. kontrol aliran program if
Gambar 5.1
Flowcart if
c.
Contoh
unsigned char data_a;
for (data_a=0; data_a<10; data_a++)
{
red_led(1);
delay_ms(20
0);
green_led(1)
;
}
Dari contoh diatas dapat disimpulkan nilai_awal(data_a) adalah kita
set 0 dan kondisi (data_a) perulangan yang diinginkan < 10 dan perubahan
yang diinginkan adalah penaikan nilai (++). Maka dari program diatas akan
melakukan perulangan sebanyak 10 kali dimulai dari 0 sampai 9 dari perubahan
data yang dinaikan nilai 1 setiap kali selesai perulangan dan program akan
berhenti jika kondisi (data_a) sudah terpenuhi.
g.
:lampu_a =
1;
break;
:lampu_b =
1;
break;
:lampu_c =
1;
break;
:lampu_a
= 0; lampu_b=0;lampu_c=0; break;
Dari program diatas dapat disimpulkan jika data (data adalah variable)
sama dengan 10 lampu_a menyala dan jika data sama dengan 9 lampu_b
menyala dan jika data sama dengan 8 lampu_c menyala dan jika tidak ada yang
sama matikan lampu_a, lampu_b, dan lampu_c (1 = hidup dan 0 = mati).
h.Arr
ay
Array adalah variable yang berisi sekumpulan data yang mempunyai
tipe data yang sama berbentuk matrik tunggal atau matrik multidimensional.
Cara penulisan Array satu dimensi:
tipe_variabel nama_array [banyaknya_elemen];
Array dua dimensi:
tipe_variabel nama_array[banyaknya_elemen1] [banyaknya_elemen2];
Contohnya:
Char urutan[8];//deklarasi penggunaan array satu dimensi dengan jumlah elemen 8
//dengan bertipe sama yaitu char.
Char urutan[8] = {20,5,12,3,43,12,56,17}; /*pemberian nilai awal ke
semua array pada awal deklarasi*/
kita juga dapat mendeklarasikan variabel array dengan jumlah elemen
tidak ditentukan, tetapi yntyuk hal ini inisial awal datanya harus diberikan.
Contoh
Char data[]; // sintaks yang salah
Char data[]={0,1,2,3,4,5,6,7};//sintaks yang benar
Deklarasi variabel array dengan jumlah elemen yang tidak ditentukan
biasanya digunakan untuk menyimpan data string. Semisal.
Char huruf*+=,pololu 3pi-;
Atau
Char huruf*+=pololu 3pi;
Unsigned int nama [2] [5]; //deklarasi penggunaan array dua dimensi dengan jumlah
//elemen 2 dan 5 dengan tipe variable unsigned int
Nama [0] [0] = 10;
// pemberian nilai ke array baris 0 kolom 0
Nama [1] [3] = 1;
// pemberian nilai ke array baris 1 kolom 3
Unsigned int nama [2] [5] =
{
{10,2,43,56,12},
{23,4,1,9.100,5}
}; /* pemberian nilai ke masing-masing array pada awal deklarasi */
i.
Fungsi
dengan pengenalnya. Dan jika kita menggunakan perulangan yang menggunakan variabel
kita bisa
tulis setelah pengenal dengan membuka tanda kurung, atau jika tidak kita tuliskan tanda ().
Contoh penulisanya:
Void maju()
{
...
}
j.
Goto
Goto di gunakan melompat ke baris program tertentu (jika di dalam fungsi
tidak dapat keluar ke fungsi lainya) yang telah di beri label.
Cara penulisanya:
Goto perintah;
Perintah adalah label yang telah di defnisikan sebelumnya
Contohny
a: Jalan:
..
..kode program..
Goto jalan;
k.
Continue
Perintah ini digunakan untuk melewati satu pernyataan/operation jika
dalam kondisi tersebut tidak melakukan operation apapun
Contohny
a:
If(a==15
)
// memeriksa kondisi a (variable) jika nilainya 15
{ continue; }
/* operation continue ini diisi continue artinya tidak ada perintah apapun
jika nilainya benar */ Else
// perintah jika nilainya tidak sama
l.
Break
perintah break digunakan untuk untuk keluar dari looping atau keluar dari
salah satu operation. Perbedaanya dengan continue, continue hanya
melewatkan perintah di salah satu operation jika tidak ada perintah, namun
perintah break di gunakan untuk keluar jika ada perintah ataupun tidak ada
perintah dalam suatu operation. Perintah break biasanya terdapat di fungsi
switch case.
Contohnya:
Switch (
data )
{
Case 10 : data ++;
break; Case 20 :
data --; break;
}
m. Super loop
Perintah ini di gunakan untuk mengulang perintah tanpa henti dari awal ke
akhir dan kembali lagi ke awal terus menerus (namun dapat keluar dari
looping/perulangan ini jika ada perintah break). Untuk perintah ini di tuliskan
perintah while namun kita tidak menaruhkan kondisi tapi kita berikan angka 1,
selain while kita juga bisa menggunakan for yang di dalam kurungnya di berikan
tanda ; ; Cara penulisanya:
While(1)
{
}
Atau
:
For( ; ; )
{
Automation Technology
Education Center
6.1.
Instalasi
programmer
interface
Untuk melakukan aksi menggunakan 3 robot lebih dari demo program kita
harus memprogram
3 robot, dan untuk melakukanya kita butuh perantara dari computer ke 3 robot
yaitu USB AVR programmer yang berfungsi memberikan program dari computer
ke 3 robot. Dan sebelum menggunakanya kita harus terlebih dahulu
menginstallalsi software untuk programmer tersebut.
Untuk programmer ini kita menggunakan pololu usb avr programmer
untuk memprogram mikrokontroller pada 3 robot.
a.
Prosedur penggunaan dan
laranganya:
Pastikan tangan dalam kondisi kering dan tidak kotor dalam menyentuh
alat ini, dan untuk menghindari kerusakan jangan dekatkan alat ini dengan
benda yang memiliki elektrosatis, dan jika menyentuh alat ini pegang bagian
sampingnya usahakan jangan terlalu sering menyentuh bagian permukaan dari
alat ini. Bentuk dari USB downloader ISP dapat dilihat pada gambar 6.1
Automation Technology
Education Center
robot dan led ini akan berkedip secara perlahan, namun jika led ini berkedip
secara cepat dan led berwarna kuning juga ikut berkedip cepat tandanya
programmer ini sedang memberikan data program ke robot.
kabel
USB
yang
Automation Technology
Education Center
Automation Technology
Education Center
instalasi di windows
Catatan:
Jika kita menggunakan windows XP selain SP3 harus mendownload fle HOTFIX
KB9168365
(http://support.microsoft.com/kb/918365 ) dan fle ini harus terinstall
terlebih dahulu sebelum menginstall driver dari programmer
Sebelum kita menginstall driver dari programmer ini harus terlebih dahulu:
o Download dahulu driver dari programmer, confgurationya, dan software applikasi
untuk SLO
scope (http://pololu.com/file/download/pgm03a_windows_090605?
fle_id=0J198) (4988k.zip)
o Kemudian ekstrak fle zip tersebut
o Buka fle yang sudah terekstrak tersebut, klik kanan pada fle pgm03a.inf lalu pilih install.
Dapat
dilihat pada gambar 6.2.
Automation Technology
Education Center
Automation Technology
Education Center
o Lalu akan muncul tampilan kedua dari found new hardware wizard lalu pilih
Install the
software automatically dan next
o Windows xp akan kembali untuk memperingatkan kita bahwa hardware ini belum di
test oleh
Microsoft dan pilih continue anyway
Automation Technology
Education Center
o Jika sudah selesai akan tampil seperti gambar di bawah, karena ada tiga device maka
ulangi
langkah found new hardware wizard sampai 3 kali
Automation Technology
Education Center
winavr
Automation Technology
Education Center
1.
secara
Buka folder libpololu-avr klik file install.bat atau dengan menulis make
install di command
promp
t.
Catatan: untuk windows vista klik kanan pada fle install.bat dan pilih
run as administrator
Installasi
manual
secara
Sebelumnya kita sudah menginstall program winAVR terlebih dahulu yang akan
kita gunakan untuk mengkompilasi program agar dapat diubah menjadi fle hex
yang dapat didownload ke mikrokontroller.
Lokasi library dari winavr ada pada C:\WinAVR-20080610\avr, nah kita tinggal
menambahkan saja fle-file library dari pololu.
Langkah
pertama
copy
fle
libpololu_atmega48.a,
libpololu_atmega168.a,
dan libpololu_atmega328p.a ke sub folder
C:\WinAVR-20080610\avr\lib.
Lalu
copy
folder
pololu
diekstrak ke C:\WinAVR20080610\avr\incl
ude.
pada
library
pololu
yang
sudah
Automation Technology
Education Center
2.
Lalu browsing file simple test pada folder libpololu-avr, lalu pilih folder
example kemudian atmega328p
(karena
3
yang
kita
pakai
menggunakan atmega 328p) lalu ke folder simple test, dan buka fle
yang berekstansi aps
Automation Technology
Education Center
3.
4.
Larangan: jangan memprogam 3 robot jika battrai dalam kondisi lemah atau
belum di charge, karena dapat membuat 3 robot rusak dan tidak dapat
diprogram kembali.
Catatan: pastikan programmer sudah terinstall secara benar sesuai dengan
cara seperti sudah di jelaskan sebelumnya.
Sebelum memprogram 3 robot pastikan 3 robot sudah terkoneksi dengan
programmer dan programmer sudah terkoneksi usb computer seperti gambar
di bawah ini,
Automation Technology
Education Center
Automation Technology
Education Center
Jika sudah terkoneksi akan muncul tampilan window STK500 in ISP mode
with ATMEGA 328p untuk mendownload program ke 3 robot kita download
kan fle test.hex hasil yang telah di compile sebelumnya, untuk
melakukanya kita pilih pada tab program bagian fash dan membrowsing
filenya clik ... yang berada pada kanan dari program lalu browse fle
tersebut di folder yang telah di jelaskan sebelumnya. Lalu jika fle sudah di
pilih klik program, pada saat memprogram led berwarna merah dan kuning
akan berkedip secara bergantian.
Setelah program sukses terdownload ke 3 robot, kalian akan mendengar nada pendek,
tampilan
pada lcd bertuliskan hello! dan led berwarna merah dan hijau akan berkedip secara
bergantian.
Jika ingin menggunakan 3pi robot dengan contoh program lainya lakukan
dengan cara yang sama.
Automation Technology
Education Center
7.1
LED
(Light
Emiting Diode)
Led adalah paling simple dalam penggunaanya untuk indicator. Catatan green led atau
right led
akan menyala secara berkedip jika mengirimkan data ke lcd karena pin yang
digunakan untuk led
sama dengan pin yang salah satunya digunakan untuk pengiriman data ke lcd.
Dan pada 3pi robot kita bisa memasang led di tampilan atas lihat bagian
accessories
Command untuk led:
a.
Green_led(data)
atau
right_led(data)
Command ini untuk menyalakan led sebelah kanan atau led berwarna hijau
data yang
diisikan 1 atau 0 yang artinya 1 menyala dan 0 mati atau kita dapat
menuliskan LOW artinya mati atau HIGH artinya menyala pada isian data
b.
Red_led(data)
atau
left_led(data)
Command ini untuk menyalakan led sebelah kiri atau led berwarna merah data yang
diisikan
1 atau 0 yang artinya 1 menyala dan 0 mati atau kita dapat menuliskan LOW
artinya mati atau HIGH
artinya menyala pada
isian data
7.2 Timer Atau
Delay
Timing atau delay ini mengunakan kinerja komponen yang bernama crystal
yang berguna sebagai pembangkit sinyal frekuensi untuk mikrokontroller
mengeksekusi program, crystal pada 3pi robot bernilai 20Mhz, artinya dalam
waktu satu detik mikrokontroller dapat mengeksekusi perintah sebanyak
20.000.000 perintah. Hubunganya dengan delay adalah proses eksekusi tersebut
dimanfaatkan untuk penundaan waktu atau delay, di dalam mikrokontroller
sudah terdapat fasilitas timer yang ketika mikrokontroller dinyalakan timer ini
mulai menghitung artinya dalam waktu satu detik sudah terdapat 20.000.000
nilai hitungan.
Command-command pada delay adalah
a.
delay_ms(nilai) atau
delay(nilai)
kita harus memasukan nilai dan nilainya berupa tunda dalam hitungan millisecond
kalau kita
masukan
1000 artinya
satu detik.
b.
delayMicroseconds(nilai) atau
delay_us(nilai)
Automation Technology
Education Center
kita harus memasukan nilai dan nilainya berupa tunda dalam hitungan
microsecond kalau kita masukan 1.000.000 artinya satu detik.
c.
Time_reset()
command ini adalah fungsi jadi kita harus menulis () , dan ini berfungsi
sebagai me-reset nili timer yang pertama kali nilainya sudah mulai menghitung.
d.
Get_ms() atau
milis()
command ini berupa nilai penyimpanan data penghitungan dari awal dinyalakan tapi
nilainya
dalam bentuk millisecond dan penyimpanan ini berupa unsigned long artinya
dapat menyimpan waktu sampai 4.294.967.295ms atau sekitar 49hari. Kita bisa
ambil datanya menggunakan perintah ini atau kita dapat melakukan pengecekan
datanya
Automation Technology
Education Center
contoh:
Hidupkan lampu_a jika sudah dinyalakan selama 5detik jika belum 5 detik matikan lampu_a
#include <pololu/3pi.h>
int main()
{
if(get_ms == 5000)
{lampu_a =
1;}
else
{lampu_a = 0;}
}
7.3 Buzzer
untuk buzzer pada 3 robot dihubungkan dengan keluaran pwm (pulse with
modulation), jadi
frekwensi keluaranya dapat kita atur sehingga membuat suara dari buzzer dapat berubah
-ubah dan
membentuk nada-nada, tapi kita tidak perlu pusing-pusing memikirkan keluaran datanya
karena
pada library sudah di sediakan perintah yang cukup menuliskan not baloknya saja,
commandnya:
a. Play(data)
Isi data yang bisa kita gunakan adalah:
Data/Nada
A s/d G
R
>
<
+ atau #
.
O
T
L
V
MS
ML
!
1 s/d 2000
keterangan
adalah not-not balok yang dapat kita gunakan
ini dituliskan untuk tempo nada
ini digunakan untuk menaikan not didepan tanda ini satu oktaf
ini digunakan untuk menurunkan not didepan tanda ini satu oktaf
tanda ini dituliskan setelah not untuk menaikan not satu
setengah langkah lebih cepat nadanya
tanda ini dituliskan setelah not untuk menurunkan not satu
setengah langkah lebih cepat nadanya
Tanda ini dituliskan setelah not untuk menambahkan waktu
lamanya not berbunyi sebanyak 50%
untuk menaikan oktaf dengan nilai yang di tentukan contoh (O4)
untuk tempo dengan nilai yang di tentukan contoh (T120)
digunakan untuk mensetting nilai lamanya not berbunyi nilainya
adalah 4 untuk seperempat nada, 8 untuk seperdelapan nada,
dan 16 untuk seperenambelas nada. Settingan defaultnya
adalah
(L4) seperempat
nada.
untuk mensetting
volume
dari nada nilainya 0-15, defaultnya (V15)
untuk mensetting semua subsequent nada dalam nada staccato
mensetting semua subsequent nada dalam legato. Setinggan ini
adalahini
defaultnya
tanda
untuk mereset kembali octave, tempo, duration, volume
,dan staccato
kembali
ketuliskan
settingan
defaultnya
nilai
ini di
setelah
not untuk mensetting not
dibelakanganya dalam nilai
lamanya not
Automation Technology
Education Center
b.
Play_from_program_space(da
tanya)
Penggunaan command ini sama dengan play tapi yang membedakanya adalah
penyimapanan
data notnya di dalam ram dari RAM, tujuanya untuk menghemat memory fash di
mikrokontroller. Untuk menggunakan fungsi ini terlebih dahulu kita harus
memasukan file header dari RAM menggunakan preprocessor #include dan fle
hedernya <avr/pgmspace.h>
Contohn
ya
#include <pololu/3pi.h>
//memasukan
fle header 3pi
#include <avr/pgmspace.h>
//memasukan fle
header //RAM
Const char melody*+ PROGMEM = !L16
V8 cdeafga;
/* deklarasi penggunaan memory di RAM dengan tipe variable char yang
namanya melody, progmem menandakan variable di lokasi RAM */
Int
main()
{ Play_from_program_space(
melody);
/* memanggil data yang sudah disimpan
sebelumnya di RAM */
}
c.
Stop_playing(
)
Command ini di gunakan untuk menghentikan bunyi buzzer ketika program
berhenti dan buzzer masih tetap berbunyi.
d.
Is_palying()
Command ini digunakan untuk memutar nada, supaya nada yang dihasilkan sesuai
dengan
nadanya. Jika menggunakan command play(data) saja nada yang dikeluarkan
akan sulit dibedakan.
7.4
Pushbutton
Untuk penggunaan pushbutton pada 3 robot kita dapat aplikasikan dalam
banyak hal contohnya untuk pengaturan kecepatan sebelum berjalan,
pengaturan kepekaan sensor dan lain-lain. Pada 3pi robot terdapat 3buah
pushbutton yaitu A,B dan C yang dapat kita gunakan untuk hal-hal tersebut,
commandnya:
a.
Wait_for_button_press(but
ton)
Automation Technology
Education Center
Command ini digunakan untuk menunggu tombol di tekan, dan button adalah
tombolnya dan
isinya adalah BUTTON_A ,BUTTON_B ,dan BUTTON_C
diisikan pada button.
b.
Wait_for_button_release(bu
tton)
Command ini digunakan untuk menunggu tombol dilepas, dan button adalah
tombolnya dan
isinya adalah BUTTON_A ,BUTTON_B ,dan BUTTON_C
diisikan pada button
c.
Wait_for_button(butt
on)
Command ini digunakan untuk menunggu tombol ditekan lalu menunggu
lagi tombol di lepas, dan button adalah tombolnya dan isinya adalah
BUTTON_A ,BUTTON_B ,dan BUTTON_C diisikan pada button
d.
Button_is_pressed(but
ton)
Sedangkan command ini bisa kita gunakan pada control aliran program
dan dituliskan pada kondisi dari control aliran program. Isi dari button adalah
BUTTON_A ,BUTTON_B ,dan BUTTON_C
Automation Technology
Education Center
7.5 Pembacaan Nilai Analog Pada Nilai Tegangan Battrai Dan Nilai Trimpot
Pada rangkaian schematic di 3 robot tegangan dari battrai sebelum di naikan ke
regulator di
hubungkan dengan pin ADC 6 dari mikrokontroller dengan jumper yang terdapat
pada bagian depan dari 3pi robot. Jadi kita dapat memantau tegangan dari 3pi
robot, tujuanya agar kita dapat melihat berapa jumlah tegangan dari battrai
pada saat memprogram, dan apabila battrai dalam kondisi lemah kita dapat
mengetahuinya, commandnya adalah
a. Read_battery_milivolts_3pi()
Command ini merupakan data penyimpanan untuk mengakses pembacaan
nilai battrai. Mengakses data ini kita dapat memindahkan datanya ke variable
atau langsung menampilkan data
pembacaanya langsung ke lcd, dan hasil pembacaanya dalam nilai milivolt.
Commandnya:
read_battery_millivolts_3pi();
b. Pembacaan nilai trimpot
Karena komponen ini menggunakan ADC kita dapat men-set nilainya menjadi 8bit atau
10bit, jika
menggunakan 8bit hasil nilainya 0-255 untuk men-set dalam nilai ini kita harus menuliskan
command
set_analog_mode(MODE_8_BIT) sebelum menuliskan pembacaan nilai
trimpotnya. Untuk
menggunakan nilai 10bit hasil nilainya 0-1023 untuk men-set dalam nilai ini
kita harus menuliskan command set_analog_mode(MODE_10_BIT) sebelum
menuliskan pembacaan nilai trimpotnya. Command pembacaan nilai trimpot:
read_trimpot();
Command ini merupakan data penyimpanan untuk mengakses data ini kita
dapat memindahkan datanya ke variable atau langsung menampilkan data
pembacaanya langsung ke lcd.
7.6 LCD (Liquid Cryatak Display)
LCD pada 3 robot menggunakan lcd yang berukuran 8x2 artinya terdapat 8
kolom 2 baris. Dan hanya bisa menampilkan 16 karakter. Dan untuk lcd
menggunakan transfer data 4 bit untuk protocol lcd HD4470, untuk menghemat
jumlah pin di mikrokontroller dan setiap karakter datanya 8 bit jadi pengiriman
datanya dilakukan dua kali. Tapi pada command pololu kita tidak perlu pusing
tentang itu karena sudah tersedia command-command yang memudahkan kita
dalam menampilkan data ke lcd. Commandnya adalah:
a. clear()
Fungsi dari command ini untuk mengosongkan data yang sebelumnya sudah
terisi di lcd. Dan krusor lcd akan berada pada pojok kiri atas atau pada koordinat
(0,0)
b. lcd_goto_xy(x,y)
Fungsi ini untuk memindahkan krusor ke posisi yang kita inginkan, x untuk data kolom
maksimal
7 (karena hanya terdiri 8 kolom 0-7) dan y untuk data baris maksimal 1 (karena hanya terdiri
Automation Technology
Education Center
2 baris
(0-1). Contohnya lcd_goto_xy(3,1);
c. print_character(data)
Fungsi ini kita hanya dapat menampilkan 1 buah karakter saja dan akan
tampil dimana krusor dari lcd diarahkan sebelumnya jika belum diarahkan secara
default akan tampil pada krusor (0,0)
Contoh:
lcd_goto_xy(1,0)
;
Print_character(
A);
Automation Technology
Education Center
d. print(data);
Perbedaan fungsi ini dengan print_character adalah jika pada print_character
hanya dapat menampilkan satu karakter saja tapi pada perintah print() dapat
menampilkan beberapa karakter secara bersamaan, dan huruf awal akan berada
dimana krusor diarahkan sebelumnya.
Contoh:
lcd_goto_xy(0,
0);
Print(ROBOTA
);
Catatan untuk menampilkan lebih dari satu karakter gunakan dan jika satu karakter saja
gunakan
e. print_from_program_space(datanya)
Penggunaan ini sama dengan play_from_program_space hanya saja ini untuk
menampilkan data di lcd bukan untuk memainkan suara di buzzer.
Contoh
#include <pololu/3pi.h>
#include <avr/pgmspace.h>
const char tampilkan*+ = Hello;
int main()
{
Print_from_program_space(tampilkan);
}
f.
print_hex(data)
Perintah ini untuk menampilkan data bilangan dalam bentuk heksa decimal.
g. print_binary(data)
Perintah ini untuk menampilkan data bilangan dalam bentuk binary
h. print_long(data)
Perintah ini digunakan untuk menampilkan data variable dan bentuk
variable maksimal dalam bentuk long,
Contohnya:
long a;
int c;
int main()
{
a =-6000; c
= 1000;
print_long(a
);
print_long(c
);}
i. print_unsigned_long(data)
Peritah ini sama dengan print_long hanya saja data yang akan di tampilkan tidak boleh
Automation Technology
Education Center
bernilai
negative.
Automation Technology
Education Center
j.
lcd_move_cursor(perintah)
Command ini untuk memindahkan krusor, isi dari perintahnya adalah LCD_LEFT dan
LCD_RIGHT.
k. lcd_show_cursor(perintah)
Command ini berfungsi untuk menampilkan krusor dan isi perintahnya
CURSOR_BLINKING untuk tampilan krusor yang berkedip dan CURSOR_SOLID
untuk tampilan krusor dengan penuh warna hitam
l.
lcd_hide_cursor()
Command ini untuk menyembunyikan krusor
Automation Technology
Education Center
7.7
Motor
control
Untuk motor kontrol menggunakan PWM pada mikrokontroller untuk mengatur
kecepatan
putaran motor penggerak pada 3 robot. Output PWM dari kedua motor ini
menggunakan fungsi timer 0 dan timer 2 pada mikrokontroller.
Commandnya
adalah:
a.
set_m1_speed(spe
ed)
Command ini digunakan untuk mengendalikan putaran motor sebelah kiri dari
3 robot. Untuk speed diisikan dengan nilai -255 sampai dengan 255 artinya
jika nilainya positif akan berputar
kedepan dan jika nilainya negative akan berputar kebelakang dan jika
nilainya 0 motor akan mati
b.
set_m2speed(spe
ed)
Command ini digunakan untuk mengendalikan putaran motor sebelah
kanan dari 3 robot. Untuk speed diisikan dengan nilai -255 sampai dengan 255
artinya jika nilainya positif akan berputar kedepan dan jika nilainya negative akan
berputar kebelakang dan jika nilainya 0 motor akan mati
c.
set_motors(m1speed,m2s
peed)
Sedangkan command ini digunakan untuk mengendalikan dua putaran motor secara
bersamaan
nilainya sama seperti
diatas
7.8 Sensor Garis
3 Robot
Pada pembacaan sensor garis kita menggunakan sensor refectance digital, sensor garis
pada 3
robot terdiri dari 5 sensor yang terpasang pada pin PC0, PC1, PC2, PC3 dan
PC4 dan pada pin PC5
digunakan sebagai pengatur kecerahan dari pemancar infrared dari masingmasing sensor, pemancar infrared dapat kita setting menyala ataupun tidak. jika
digunakan pada ruangan yang banyak cahaya ataupun diluar ruangan kita tidak
perlu menghidupkan pemancar infrared untuk menghemat energi dari battrai
dan sensor dapat membaca secara optimal, tapi jika digunakan pada ruangan
tertutup dan sedikat cahaya maka sebaiknya pemancar infrared dihidupkan.
Seperti pada yang dikatakan sebelumnya di bab cara kerja 3 robot, diketahui
pada rangkaian sensor garis harus disetting output untuk mengisi arus ke
kapasitor hal ini akan kita lakukan sebelum membaca nilai sensor garis dengan
menggunakan command yang sudah tersedia pada library dari pololu.
Command untuk pembacaan nilai sensor ini adalah:
Automation Technology
Education Center
a. pololu_3pi_init(nilai)
Perintah ini digunakan untuk inisialisasi data, untuk isian nilai adalah lama
waktu untuk pengisian arus ke kapasitor, semakin gelap ruanganya semakin
lama pengisian arus kekapasitor agar sensor dapat bekerja dengan baik, dan
isinya antara 500 sampai dengan 3000, dan setiap satu nilai waktunya
0,4microsecond.
Conto
h:
pololu_3pi_init(20
00);
Artinya lamanya waktu pengisian arus ke kapasitor adalah 0,4microsecond *
2000 = 800microsecond atau 0,8milisecond
Automation Technology
Education Center
b. read_line_sensors(target, mode)
Ini adalah perintah untuk membaca sensor garis secara keseluruhan tapi kita
dapat memisahkan data masing-masing sensor sebelum melakukan perintah ini
pastikan inisialisasi seperti command diatas harus dilakukan terlebih dahulu,
isian dari target harus berupa variable bertipe unsigned int dan memiliki 5 array
karena sensornya 5, dan untuk isian dari mode bisa berupa IR_EMITTERS_ON
untuk perintah pembacaan sensor dalam kondisi infrared menyala, dan
IR_EMITTERS_OFF untuk perintah pembacaan sensor dalam kondisi infrared
mati
Contohnya:
unsigned int sensors [5];/*deklarasi variable bernama nama dengan 5 array*/
read_line_sensors(sensors, IR_EMITTERS_ON); /* perintah untuk membaca
nilai dari garis dan datanya dimasukan ke nama dengan mode infrared
menyala */
If (sensors [0] > 1000) /*pengecekan nilai sensor ke 0 atau paling pojok sebelah
kiri dengan control aliran if*/
If (sensors > 3000) /*pengecekan nilai sensor secara keseluruhan*/
Catatan: jika melakukan pengecekan nilai secara keseluruhan jika nilainya 0
artinya robot berada jauh di sebelah kanan dari garis dan jika nilainya 4000 robot
berada jauh di sebelah kiri dari garis
c. calibrate_line_sensors(mode)
Command ini digunakan untuk mengkalibrasi sensor garis isian dari mode
sama seperti mode diatas, dan nilai hasil kalibrasi akan menetukan nilai
maksimum dan nulai minimum pada medan di bawah robot tempat kalibrasi
d. read_line_sensors_calibrated(target,mode) atau read_line(target, mode)
Untuk command ini sama dengan read_line_sensors hanya saja yang
membedakan command ini membaca nilai yang sebelumnya sudah di kalibrasi,
jadi sebelum menggunakan command ini kalibrasi dahulu sensor garis
menggunakan calibrate_line_sensors
e. read_line_white(target, mode)
Command ini sama saja dengan command read_line hanya saja command
ini membaca garis yang berwarna putih dan jika digunakan pada line follower
harus berupa garis yang berwarna putih.
Automation Technology
Education Center
Robot line follower adalah robot yang dapat mengikuti garis/jalur. Garis dibuat
dengan menggunakan bahan berwarna gelap dan daerah di sekitar berwarna
cerah atau sebaliknya. Robot menggunakan IR sensor untuk mendeteksi
jalur/garis yang dibuat.
Robot line follower ada 2 (dua) jenis yaitu robot line follower nonprogramming dan robot line follower programming.
Robot line follower non-programming adalah robot dengan system kerja
dengan mendeteksi dua kondisi saja yaitu mendeteksi ada tidaknya garis (0dan1)
dan tidak diperlukannya program dalam pembuatannya.
Robot line follower Programing adalah robot yang mempunyai system
pengolah digital dalam melakukan aksinya dan memiliki kecerdasan buatan.
Pada pembahasan 3 Robot line follower adalah robot line follower dengan
jenis programing. Programing robot digunakan untuk menentukan jalanya sendiri
sesuai sensor garisnya artinya kita memberikan kecerdasan buatan pada robot
dimana akan terjadi kemungkinan-kemungkinan dan robot harus menetukan
jalanya sendiri.
Kecerdasan buatan pada system kendali ada banyak macam dan jenisnya salah
satunya PID
(proportional, Integral, deravative).
8.1. PID Kontrol
Kecerdasan buatan pada aplikasi 3 robot line follower menggunakan PID
kontrol. PID singkatan dari ProportionalIntegralDerivative merupakan kontroler
untuk menentukan presisi suatu sistem instrumentasi dengan karakteristik
adanya umpan balik pada sistem tesebut. Komponen kontrol PID ini terdiri dari
tiga jenis yaitu Proportional, Integratif dan Derivatif. Ketiganya dapat
dipakai bersamaan maupun sendiri-sendiri tergantung dari respon yang kita
inginkan terhadap suatu tindakan kerja robot.
a. Kontroler Proporsional (P)
Pengaruh pada sistem :
1.
2.
3.
Catatan:
Untuk menghilangkan Error steady state, dibutuhkan KP (nilai proposional)
besar, yang akan membuat sistem
lebih tidak stabil. Kontroler Proporsional
memberi pengaruh langsung (sebanding) pada error. Semakin besar error,
semakin besar sinyal kendali yang dihasilkan kontroler. Untuk lebih
jelasnya maka lihat gambar berikut.
Automation Technology
Education Center
b.
Automation Technology
Education Center
c.
pada
Automation Technology
Education Center
Automation Technology
Education Center
Derivative nilai ini adalah rata-rata dari perubahan nilai proportional. Kita
menghitung nilai ini berdasarkan perbedaan dari dua nilai terakhir di
proportional
Dibawah ini merupakan code penghitungan dari rumus yang kita dapatkan
berdasarkan PID
diata
s:
Unsigned int sensors[5]; /*deklarasi variabel untuk target sensor*/
Unsigned int position; /*deklarsi varibel untuk penyimpanan data dari 5 sensor
secara keseluruhan*/
Int last_proportional; /*varaibel last propotional bertipe unsigned int*/
position = read_line_calibrated(sensors, IR_EMITTERS_ON); /* membaca nilai
keseluruhan dari sensor dan disimpan pada variabel position, apabila bernilai
dibawah 2000 berarti berada dikiri garis dan Jika bernilai lebih dari 2000 berada
dikanan garis */
int proportional = ((int) position) 2000; /*memindahkan data position ke
proportional dengan dikurangi 2000 untuk mendapatkan nilai 0 jika di tengahtengah garis*/
int derivative = proportional last_proportional; /*menentukan nilai derivative
dari hasil propotional di kurangi last propotional*/
integral += proportional; /*menetukan nilai integral berdasarkan nilai dari
proportional dengan rumus penambahan nilai ke integral untuk mendapatkan
nilai rata-rata*/
last_proportional = proportional; /* menympan data terakhir
proportional sebelum membaca Nilai sensor ke proportional lagi*/
dari
catata
n:
untuk proportional harus berupa variabel yang bertipe int karena jika
menggunakan Unsigned int tidak dapat menyimpan nilai negative hanya bisa
menyimpan nilai positive.
Dibawah ini merupakan perhitungan dari data PID yang sebelumnya sudah
disimpan di proportional, integral dan derivative untuk di umpankan ke motor
int power_diference; /*deklarasi variabel untuk penyimpanan hasil
perhitungan nilai PID*/
power_diference
=
proportional/10+integral/10000+derivative*3/2;
/*perhitungan nilai dari PID dan disimpan pada variabel power_diference
nilainya akan negative jadi harus menggunakan variabel tipe int dan untuk
Automation Technology
Education Center
mendapatkan respon lebih cepat dari sensor terhadap motor kita dapat
mengurangi nilai pembagian dari proportional*/
const int max = 60; /*deklarasi variabel yang konstan untuk pengaturan nilai
kecepatan maksimal dari robot kita dapat mengubahnya untuk mendapatkan
kecepatan yang lebih tinggi atau rendah*/
if(power_diference >
max )
{power_deifrence=max;}
Automation Technology
Education Center
Automation Technology
Education Center
PROJECT PERTAMA
Automation Technology
Education Center
4.
selanjutnya beri nama project dengan catatan nama project tidak boleh
ada spasi, seperti pada gambar 8.4.
Automation Technology
Education Center
6.
Automation Technology
Education Center
8.
setelah itu masuk ke project confguration option seperti pada gambar 8.8.
Automation Technology
Education Center
pada menu libraries ini ada beberapa library yang ada, kita gunakan
salah satu dari beberapa library yang ada sesuai dengan pololu 3
yaitu libpololu_atmega328p.a dan klik add Library dan klik ok. Seperti
pada gambar 8.10
Automation Technology
Education Center
compile
dalam bentuk hex. Jadi setelah selesai program, di compile terlebih
dahulu. Cara
mengkompile kita pilih tab build, seperti pada gambar 8.11.
Automation Technology
Education Center
Gambar 8.11 Tab Build untuk mengkompile program yang telah dibuat.
12. Selesai mengkompile proses selanjutnya mendownlod ke robot,
dengan mengklik Tab connect, untuk konfigurasi USB downloader yang
dipakai, karena kita menggunakan USB downloader tipe ISP maka pilih
ISP, maka pilih AVRISP dan pilih com mana yang telah terinstal USB
downlodernya semisal com4 dan selanjutnya pilih connect. Seperti pad
gambar
8.12.
Automation Technology
Education Center
13. Setelah confgurasi selesai dan click connect maka akan tampil menu seperti pada
gambar
8.13.
Automation Technology
Education Center
Selanjutnya clik open, dan akan kembali lagi ke menu awal, setelah itu clik
tab program yang berada di menu fash, seperti pada gambar 8.15. Setelah
proses ini program secara automatis akan mendownload fle hasil kompile ke
robot dan program siap di jalankan.
c.
Automation Technology
Education Center
#include <pololu/3pi.h>
Automation Technology
Education Center
int main()
{
wait_for_button_press(BUTTON_A); /*command untuk perintah menekan
tombol A*/
red_led(1);/*command menghidupkan led merah*/
green_led(1);/*command menghidupkan led hijau*/
}
Pada contoh program diatas maka eksekusi program yaitu jika
tombol A ditekan maka led merah dan hijau akan menyala atau baru
akan dilaksanakan program dibawah push button.
d.
program trimpot
#include <pololu/3pi.h>
unsigned char a;/*pendeklarasian variabel a bertipe unsigned char*/
int main()
{
while (1)/* Program kontrol yang akan digunakan untuk
mengulang hasil pembacaan trimpot*/
{
set_analog_mode (MODE_8_BIT); /*mode pembacaan pada
trimpot bertipe 8 bit, data yang dihasilkan 0-255*/
a=read_trimpot(); /* variabel a sama dengan read trimpot,
read_trimpot yaitu data hasil pembacaan pada trimpot*/
if(a==0) /*penggunaan program kontrol if yang berfungsi
sebagai kontrol dari hasil pembacaan trimpot untuk kontrol
program yang dinginkan*/
{
red_led(1);/*pernyataan yang nantinya akan dikerjakan sesuai dengan
c=control if*/
}
if(a==255)
{
red_led (0);
}
}
}
Penjelasan program:
while : pada program digunakan untuk melakukan eksekusi secara berulangulang, dimana
pembacaan trimpot hanya sekali dan data yang terbaca adalah data
trimpot dari posisi trimpot terakhir, jika tidak di ulang maka akan
hanya tereksekusi sekali.
e.
program LCD
#include <pololu/3pi.h>
int main()
{
Automation Technology
Education Center
lcd_goto_xy(3,1);
print("A");
}
Automation Technology
Education Center
Penjelasan program:
Lcd_goto_xy(3,1) : command untuk menaruh kursor pada kolom 3 baris 1
pada saat awal
program dijalankan.
Print(A) : command untuk menampilkan karekter/huruf A pada LCD.
f.
program motor
#include <pololu/3pi.h>
int main()
{
set_m1_speed(49);
set_m2_speed(50);
}
Penjelasan program:
Set_m1_speed(49) : Command untuk menset kecepatan motor kiri pada
kecepatan 49.
Set_m2_speed(50) : Command untuk menset kecepatan motor
kanan pada kecepatan 49. Jadi program diatas akan menjankan
robot maju dengan kecepatan 49 untuk motor kiri dan 50 untuk
motor kanan.
Automation Technology
Education Center
10
1.
LED
Gunakan fungsi library led dan timer untuk tugas dibawah ini dan jangan lupa
memasukan
fle header dari 3pi robot dengan preprocessor include
Tugas 1
Buatlah program untuk menyalakan led
merah/hijau.
Tugas 2
Buatlah program untuk mematikan led
merah/hijau.
Tugas 3
Buatlah program untuk menyalakan led merah/hijau selama 5 detik
kemudian lampu led merah/hijau mati.
Tugas 4
Buatlah program untuk menyalakan lampu led merah/hijau secara
kedip 5 kali kemudian
lampu led merah/hijau mati setelah itu
program berakhir.
Tugas 5
Buatlah program untuk menyalakan lampu led merah dan hijau
secara kedip 10 kali kemudian lampu led merah dan hijau mati
bersamaan.
Tugas 6
Buatlah program untuk menyalakan lampu led merah/hijau
secara kedip 10
kali
kemudian lampu led merah/hijau mati menggunakan
tag/command FOR.
Tugas 7
Nyalakan lampu led merah dan hijau secara kedip 10 kali kemudian
lampu led merah dan hijau mati menggunakan tag/command while.
Tugas 8
Nyalakan lampu led merah 3 detik kemudian lampu led hijau 3 detik
dan bergantian serta berulang-ulang (loop).
Tugas 9
Nyalakan lampu led merah kedip 2 kali dan lampu led hijau kedip 2 kali
secara bergantian sebanyak 3 kali kemudian program berakhir.
Tugas 10
Nyalakan lampu led merah kedip 2 kali dan lampu led hijau kedip 2 kali
secara bergantian dan berulang-ulang loop.
Tugas 11
Nyalakan lampu led merah 2 detik dan berganti lampu led hijau 2 detik
, kemudian lampu
led merah dan lampu led hijau kedip dengan menggunakan delay_ms
(500) sebanyak 10 kali secara bersamaan, lalu berganti lampu led
merah dan lampu led hijau kedip secara bergantian dengan
delay_ms(1000); dan program berakhir.
Tugas 12
Buatlah sub program dari tugas-tugas sebelumnya minimal 2 sub
program dan dipanggil satu persatu di main program (int main(),
-).
Automation Technology
Education Center
2.
BUZZER
Untuk memprogram buzzer gunakan perintah-perintah yang sudah tersedia di library
pololu.
Tugas 1
Bunyikan buzzer dengan nada A, B, C, D, E, F, G secara bergantian
untuk mangenali nada dasar pada 3PI pololu, pengujian dilakukan satu
per satu.
Tugas 2
Automation Technology
Education Center
3.
PUSHBUTTON
Untuk pushbutton terdiri dari 3 buah yang dapat kita gunakan untuk deprogram
terdiri dari
tombol A,B dan C.
Tugas 1
Buatlah program lampu led hijau akan menyala menunggu setelah
PUSHBUTTON_A di
teka
n.
Tugas 2
Buatlah program Lampu led merah akan menyala menunggu setelah
PUSHBUTTON_B di
teka
n.
Tugas 3
Buatlah program Lampu led merah dan hijau akan menyala
bersamaan menunggu setelah PUSHBUTTON_C ditekan.
Tugas 4
Buatlah program Lampu led merah/hijau akan menyala selama
PUSHBUTTON_A ditekan
Tugas 5
Buatlah program untuk menyalakan lampu led merah dan buzzer
bernada D dengan
Automation Technology
Education Center
menekan
PUSBUTTON_A.
Tugas 6
Buatlah program untuk menyalakan lampu led hijau dan buzzer
bernada C dengan
menekan
PUSBUTTON_B.
Tugas 7
Buatlah program untuk menghidupkan led selama 5 detik kemudian
dapat dimatikan
dengan semua tombol. Cat: gunakan sintaks
ALL_BUTTONS.
Tugas 8
Buatlah program untuk menyalakan lampu led merah/hijau selama 5
detik dengan menekan PUSHBUTTON_A atau PUSHBUTTON_B atau
PUSHBUTTON_B selama tombol belum di tekan lampu tidak akan
menyala. (cat: soal sama dengan hubung pararel)
Automation Technology
Education Center
Tugas 9
Buatlah program untuk menyalakan lampu led merah/hijau selama
5 detik dengan
menekan PUSHBUTTON_A dan PUSHBUTTON_B selama tombol belum di
tekan lampu tidak akan menyala. Cat (sama dengan hubung seri).
Tugas 10
Buatlah program untuk menyalakan lampu led merah/hijau dengan
menekan PUSHBUTTON_A dan PUSHBUTTON_B (operasi seri) kemudian
PUSHBUTTON_C berfungsi untuk mematikan Lampu.
Tugas11
Buatlah sub program dari tugas-tugas sebelumnya minimal 2 sub
program dan dipanggil
satu persatu di main program (int
main(),-).
4.
TRIMPOT
Tips program
o Untuk pertama-tama Set trimpot menjadi 8 bit dengan
tag/command =
set_analog_mode(MODE_8_BIT)
Tugas 1
Buatlah program untuk menyalakan lampu led merah/hijau dan
mematikan lampu led merah / hijau dengan trimpot. Jika nilai trimpot
sama dengan 0 maka nyalakan lampu led
merah/ hijau dan jika nilai trimpot sama dengan 255 maka matikan
lampu led hijau /
mera
h.
Tugas 2
Buatlah program ketika trimpot diputar semakin kearah kiri buzzer akan
bernada B dan jika sudah sampai ujung kiri maka led berwarna merah
menyala dan jika trimpot diputar semakin kearah kanan buzzer akan
bernada F dan jika sudah sampai ujung kanan led berwarna hijau
menyala.
Tugas 3
Buatlah sub program dari tugas-tugas sebelumnya minimal 2 sub
program dan dipanggil satu persatu di main program (int main(),
-).
5.
LCD
Untuk penggunaan lcd karena ukuranya 8x2 hanya dapat menampung 8
karakter di baris atas dan 8 karakter di baris bawah jadi jumlahnya 16
karakter saja
Tugas 1
Buatlah program untuk menampilkan karakter A di mulai pada
kolom 3 baris ke 1.
Tugas 2
Buatlah
program
menampilkan
karekter berjalan
ke kanan
kemudian apabila sampai pada batas akhir lcd kemudian muncul lagi
dari awal lagi dan berulang-ulang. Tips gunakan command (lcd_scroll,
if, while)
Tugas3
Automation Technology
Education Center
Automation Technology
Education Center
Tugas6
Buatlah program menampilkan nilai battery dan kalimat Press B
jika tombol ditekan
(Pushbutton B) tampilan terhapus dari LCD. tips gunakan command
(while dan button_is_pressed).
Tugas7
Buatlah program untuk menambah nilai sebesar 1 apabila BUTTON A
ditekan dan nilai akan berkurang 1 apabila BUTTON B ditekan
ditampilakan pada LCD dan BUTTON C digunakan untuk mereset.
Tips gunakan (switchcase bisa juga menggunakan if dan
button_is_pressed)gunakan sub program untuk memudahkan.
Tugas 8
Buat tampilan karakter angka 8 pada lcd dengan menggunakan
load_custom_character.
Tips
gunakan
avr/pgmspace.h,print_character,lcd_load_custom_character.
Tugas 9
Buatlah sub program dari tugas-tugas sebelumnya minimal 2 sub
program dan dipanggil satu persatu di main program (int main(),
-).
6.
MOTOR 1
Untuk tugas-tugas di motor control, ketika awal dinyalakan maka lcd akan
menampilkan nilai dari battrai dan jika di tekan tombol B baru melakukan
aksi sesuai tugas-tugas dibawah ini:
Tugas 1
Buatlah program menunggu setelah BUTTON B ditekan robot akan
bergerak maju 2 detik
kemudian berbelok 90
kemudian berhenti dan
program berakhir.
Tugas 2
Buatlah program setelah BUTTON B ditekan robot akan bergerak maju 2
detik kemudian berbelok 90 lalu belok kanan 180 dan berbelok kiri
90 kemudian mundur ke posisi awal.
Tugas 3
Buatlah program setelah ditekan robot bergerak membentuk persegi
empat dan setiap
belok lampu led merah
berkedip.
7.
MOTOR 2.
Tugas 1
Buatlah program menjalankan robot berputar ke kanan dan ke
kiri berulangulang
sebanyak 5 kali lalu
berhenti.
Tugas 2
Robot bergerak ke kanan 90 lalu ke kiri 180 dan ke kanan 90
lalu robot Berhenti.
Tugas 3
Buatlah
program
robot
berjalan
Automation Technology
Education Center
membentuk angka 8.
Tugas 4
Buatlah program dengan pengaturan nilai kecepatan motor dan
kecepatan motor di tampilkan di LCD dengan batas running test 3
detik dan Robot akan bergerak setelah
BUTTON B ditekan gunakan trimpot sebagai pengatur
kecepatan motor.
Kecepatan
Jarak
yang
ditempu
50
100
150
200
255
Automation Technology
Education Center
Tugas 5
Buatlah program untuk menambah nilai kecepatan sebesar 1 apabila
BOTTON A ditekan dan nilai kecepatan akan berkurang 1 apabila
BUTTON B di tekan. Dan BUTTON C untuk menjalankan robot. Tips
(gunakan EEPROM atau variabel
untuk menyimpan data hasil
perubahan setiap tombol ditekan)
Tugas 6
Buatlah sub program dari tugas-tugas sebelumnya minimal 2 sub
program dan dipanggil satu persatu di main program (int main(),
-).
8.
SENSOR
Untuk penggunaan sensor garis lakukan inisialisasi terlebih dahulu seperti yang
sudah
dijelaskan di bab VII. Dan lakukan ketika awal dinyalakan maka lcd akan
menampilkan nilai dari battrai dan jika di tekan tombol B baru melakukan
aksi sesuai tugas-tugas dibawah ini:
Tugas pendahuluan 1
Buatlah sub program (contoh void initial()) penampil nilai battery
dan menampilakn
karakter (Press B) dan jika di tekan tombol B (Push button B)
maka LCD clear(LCD bersih) dan robot beputar ke kanan 90 lalu ke kiri
180 lalu kembali ke kanan 90 dan robot berhenti gunakan for sebagai
control berputarya, panggil sub program ke dalam int main(),-. Tips
gunakan perulangan dengan syarat push button sebagai pemutus
perulangan.
Tugas pendahuluan 2
Buatlah program seperti pada tugas pendahuluan1 selanjutnya berikan
command calibrate_line_sensor didalam program berputar ke kanan
dan ke kiri, dengan catatan inisialisasi dahulu sensornya, (program di
buat di dalam sub program).
Sintaks
inisialisasi:
pololu_3pi_init(2000); = digunakan untuk inisialisasi
sensor robot 3.
(untuk melihat apakah sensor bekerja dapat dilihat
dengan kamera)
Tugas1
Buatlah program seperti pada tugas pendahuluan2 tambahkan program
pembacaan nilai sensor (read_line (sensors,IR_EMITTERS_ON);) dan
defnisakan variabel sensor dengan tipe data unsigned int sensor[5],
defnisikan variable untuk menyimpan data pembacaan dalam bentuk
unsigned int(contoh: position) untuk memudahkan menampilkan pada
LCD dan dapat di gunakan dalam pengontrol nantinya, kemudian
tampilkan nilai pembacaan sensor ke layar LCD. tips gunakan
command read_line(target, mode), untuk target di isi
sensors dan defnisikan dulu sebagai variabel global atau local jika
didalam satu sub program dalam bentuk array [5], dan mode diisi
IR_EMITTERS_ON yaitu menggunakan mode Infrared menyala,
Automation Technology
Education Center
Tugas2
Buatlah program seperti pada tugas1 dan tambahkan program jika
tombol B ditekan
maka LCD clear dan tampilkan karakter GO dan buzzer bunyi
nada. Tips program
hampir sama dengan tugas
pendahuluan.
Tugas3
Dari tugas2 diatas, program kalibrasi sensor dan penampil nilai
pembacaan sensor sudah
dilakukan, robot sudah siap dikendalikan sesuai dengan program
kontrol. Buatlah
Automation Technology
Education Center
Tugas6
Buatlah program setiap melewati perempatan buzzer bunyi, bunyi buzzer tiap
perempatan
berbeda dan pada perempatan terakhir robot berhenti.
Automation Technology
Education Center
Tugas7
Buatlah program robot berbelok ke kanan jika melewati pertigaan dan
buzzer berbunyi lalu pada ujung garis robot berhenti.
Tugas8
Tugas8 sama dengan tugas7 hanya saja penggunaan sensor sebelah kiri,
Buatlah program robot berbelok ke kiri jika melewati pertigaan dan
buzzer berbunyi lalu pada ujung garis robot berhenti.
Tugas9
Buatlah program robot berjalan seperti pada gambar di bawah
dengan petunjuk arah panah pergerakan robotnya, pada akhir anak panah
robot berhenti.
Automation Technology
Education Center
Tugas10
Tugas11
Buatlah program robot berjalan sesuai dengan arah anak panah seperti
pada gambar di bawah. Di akhir anak panah robot berhenti.
Tugas12
Buatlah program robot berjalan sesuai dengan arah anak panah
seperti pada gambar di bawah. Di akhir anak panah robot berhenti.
Automation Technology
Education Center
Tugas13
Buatlah program robot berjalan sesuai dengan arah anak panah seperti
pada gambar di bawah. Di akhir anak panah robot berhenti.
Tugas14
Buatlah program robot berjalan sesuai dengan arah anak panah seperti
pada gambar di bawah. Di akhir anak panah robot berhenti.
Tugas15
Buatlah program robot berjalan sesuai dengan arah anak panah seperti
pada gambar di bawah. Di akhir anak panah robot berhenti.
Automation Technology
Education Center
Tugas16
Buatlah program robot berjalan sesuai dengan arah anak panah seperti
pada gambar di bawah. Di akhir anak panah robot berhenti.
Tugas17
Buatlah program robot berjalan sesuai dengan arah anak panah seperti
pada gambar di bawah. Di akhir anak panah robot berhenti.
Tugas18
Buatlah program robot berjalan sesuai dengan arah anak panah seperti
pada gambar di bawah. Di akhir anak panah robot berhenti.
Automation Technology
Education Center
Tugas19
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
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.
Automation Technology
Education Center
11
int
last_proportional=
0; While(1)
{
position
=
read_line(sensors,IR_EMITTERS_ON);
int proportional = ((int)position)
- 2000;
int
derivative
=
proportional
last_proportional;
integral
+=
proportional;
last_proportional
=
proportional;
Automation Technology
Education Center
Automation Technology
Education Center
Automation Technology
Education Center
12
Tugas8
Buatlah program robot berbelok ke kanan jika melewati pertigaan dan
buzzer berbunyi lalu pada ujung garis robot berhenti.
Automation Technology
Education Center
Tugas9
Tugas9 sama dengan tugas8 hanya saja penggunaan sensor sebelah
kiri, Buatlah program
robot berbelok ke kiri jika melewati pertigaan dan buzzer berbunyi lalu
pada ujung garis robot berhenti.
Tugas10
Buatlah program robot berjalan seperti pada gambar di bawah dengan
petunjuk arah panah pergerakan robotnya, pada akhir anak panah robot
berhenti.
Tugas11
Tugas11 sama dengan tugas10 hanya saja arah belok berlawanan, Buatlah
program robot berjalan seperti pada gambar di bawah dengan petunjuk
arah panah pergerakan robotnya, pada akhir anak panah robot berhenti.
Automation Technology
Education Center
Tugas12
Buatlah program robot berjalan sesuai dengan arah anak panah seperti
pada gambar di bawah. Di akhir anak panah robot berhenti.
Tugas13
Buatlah program robot berjalan sesuai dengan arah anak panah
seperti pada gambar di bawah. Di akhir anak panah robot berhenti.
Tugas14
Buatlah program robot berjalan sesuai dengan arah anak panah seperti
pada gambar di bawah. Di akhir anak panah robot berhenti.
Automation Technology
Education Center
Tugas15
Buatlah program robot berjalan sesuai dengan arah anak panah seperti
pada gambar di bawah. Di akhir anak panah robot berhenti.
Tugas16
Buatlah program robot berjalan sesuai dengan arah anak panah seperti
pada gambar di bawah. Di akhir anak panah robot berhenti.
Tugas17
Buatlah program robot berjalan sesuai dengan arah anak panah seperti
pada gambar di bawah. Di akhir anak panah robot berhenti.
Automation Technology
Education Center
Tugas18
Buatlah program robot berjalan sesuai dengan arah anak panah seperti
pada gambar di
bawah. Di akhir anak panah robot
berhenti.
Tugas19
Buatlah program robot berjalan sesuai dengan arah anak panah seperti
pada gambar di
bawah. Di akhir anak panah robot
berhenti.
Tugas20
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.
Automation Technology
Education Center
Tugas21
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.
Tugas22
Buatlah program robot berjalan sesuai dengan arah anak panah seperti pada
gambar di bawah. Di akhir anak panah robot berhenti. Menggunakan PID
sebagai pengolah gerak robotnya.
45
Tugas23
Buatlah program robot berjalan sesuai dengan arah anak panah seperti pada
gambar di bawah. Di akhir anak panah robot berhenti. Menggunakan PID
sebagai pengolah gerak robotnya.
45
Catatan:
Untuk tugas 24-28 merupakan soal-soal gabungan dan atau improvisasi untuk
melatih siswa
Automation Technology
Education Center
memahami soal-soal sebelumnya dan sebagai latihan pada track perlombaan yang akan
dihadapi.
Tugas24
Untuk tugas 24 dapat berbeda dan disesuaikan. Buatlah program robot berjalan sesuai
dengan
arah anak panah seperti pada gambar di bawah. Di akhir anak
panah robot berhenti. Menggunakan PID sebagai pengolah gerak robotnya.
Tugas25
Untuk tugas 25 dapat berbeda dan disesuaikan menggunakan PID
sebagai pengolah gerak robotnya, track seperti pada gambar dan ikuti
urutan jalur pada table
1
2
3
4
5
6
7
8
Tugas 26
Buatlah program dari track pada gambar berikut ini dan ikuti urutan jalur pada table
10
11
12
13
14
15
16
Tugas27
Buatlah program dari track pada gambar berikut ini dan ikuti urutan jalur pada table
10
11
12
13
14
7
8
Tugas 28
Buatlah program dari track pada gambar berikut ini dan ikuti urutan jalur pada table
8
2
10
11
12
13