22/11/12
Mobile Robot Dengan LCD
Kali ini kita membuat
robot mobil yang memiliki tampilan LCD. Mungkin kita bertanya-tanya untuk apa
suatu robot mobil dipasang LCD? LCD ataupun seven segment atau dot matrik
adalah alat tampilan yang dengannya kita dapat menampilkan suatu keadaan robot
mobil kita.
Sebagai contoh dengan dipasangnya LCD, kita mungkin dapat
menampilkan status sudah berapa kali robot mobil kita berputar misalnya.
Ataupun sekedar tampilan tentang apa yang sedang dikerjakan oleh robot mobil
kita. Sebagai contoh jika robot mobil kita sedang belok kiri, makan LCD akan
tampil tulisan “belok kiri” dan sebagainya.
Base Robot
Base robot tetap menggunakan acrylic dan menggunakan motor
servo sebagai pengerak. Sehingaga untuk base ini tidak perlu dijelaskan panjang
lebar telah dibahas pada pembuatan robot mobil yang pertama.
Liquit Crystal
Display (LCD)
Menggunakan LCD susah-susah gampang. Jika kita belum pernah
mencoba menggunakannya tentu akan merasa kesulitan. Tetapi bagi yang pernah
mencoba mungkin tidak akan mengalami kesulitan.
Memprogram mikrokontroler untuk berhubungan dengan LCD
menggunakan bahasa assembler agak terlalu rumit. Untuk itulah kali ini kita
akan menggunakan bahasa mikro Pascal saja supaya lebih muda. Adapun hubungan
antara mikrokontroler dengan LCD dengan menggunakan bahasa MikroPascal adalah
sebagai berikut.
Gambar Hugungan LCD dengan Mikrokontroler PIC16F84
Hubungan diatas merupakan 6 jalur I/O. oleh karena itu kita
akan menggunakan port B yang berukuran penuh 8 bit. Sementara sisanya (PB0 dan
PB1) akan dipakai untuk mengontrol motor sevo.
Memprogram LCD dengan bahasa mikroPascal sangatlah muda. Hal
ini karena telah tersedia rutin-rutin untuk menuliskan ke LCD dan juga
rutin-rutin untuk mengintrol LCD seperti menghapus layer, menghilangkan cursor
dll.
Prosedur pertama untuk menggunakan LCD adalah Prosedure LCD_Init
(var PORT : byte). Prosedur ini
memberitahukan ke computer mikroPascal, port mana yang dipakai untuk
berhubungan dengan LCD. Contoh penggunaan prosedur ini adalah sebagai berikut.
Lcd_Init (PORTB);
Sedangkan untuk menulis kalimat pad LCD dipergunakan.
procedure LCD_Out *var PORT :byte;ROW, column : byte; var text;array[255] of char);
Berikut contoh menulis kalimat ke layer LCD.
LCD_Out (PORTB, 1, 1, text);
Dimana text berisi kalimat yang akan dituliskan.
Adapun secara umum prosedur-prosedur yang berhubungan dengan
pemakaian LCD akan diberikan dibawah ini.
Table Procedur yang berhubungan dengan LCD
Perintah
|
Kegunaan
|
lcd_first_Row
|
Menggerakkan
Kursor ke baris 1
|
lcd_Second_Row
|
Menggerakkan
Kursor ke baris 2
|
lcd_Third_Row
|
Menggerakkan
Kursor ke baris 3
|
lcd_Fourth_Row
|
Menggerakkan
Kursor ke baris 4
|
lcd_Clear
|
Menghapus
Layar LCD
|
lcd_Retum_Home
|
Menggerakkan
Kursor ke posisi home
|
lcd_Cursor_Off
|
Mematikan
Kursor
|
lcd_Underline_On
|
Mengaktifkan
Kursor Garis Bawah
|
lcd_Blik_Cursor_On
|
Mengaktifkan
Kursor Kedip
|
lcd_Move_Cursor_Left
|
Kursor ke
kiri tanpa merubah display
RAM
|
lcd_Move_Cursor_Right
|
Mengaktifkan
display LCD (on)
|
lcd_Turn_On
|
Mematikan
display LCD (Off)
|
lcd_Turn_Off
|
Geser
display ke kiri tanpa merubah
display
data RAM
|
lcd_Shift_Left
|
Geser
display ke kekanan tanpa merubah
display
data RAM
|
lcd_Shift_Right
|
Artikel Terkait:
Rangkaian Lengkap Robot
Program Unntuk Robot Mobil Dengan LCD
Posted on 04.06
21/11/12
Membangun Mobil Robot
Setelah kita paham mengenai hardware dan software untuk
membuat mobil robot. Kini saatnya kita langsung berpraktek membangun mobil
robot sederhana berbasis motor servo dan kontroler PIC16F84.
Dasar robot akan dibuat menggunakan acrylic berwarna merah
yang agak tipis dibandingkan dengan
acrylic warna putih/clear. Namun warna apa saja tidak masalah.
Pasangkan kedua servo motor dikiri dan kanan dasar robot.
Untuk memasangkan servo tersebut gunakan lem “ castol”. Hal ini karena lem tersebut
cukup kuat, tetapi masih dapat memungkinkan untuk mengambil servo lagi tanpa
merusak servo. Dalam hal ini janganlah menggunakan lem “super glue” kareena lem
tersebut terlalu kuat dan merusak bahan yang direkatkan jika ingin diambil
lagi.
Untuk meletakan system kontroler (mikrokontoler PIC 16F84
dan rangkaian lain) kita dapat menggunakan PCB lubang atau pun menggunakan mini
breadboard. Dalam hal ini saya menggunakan mini breadboard sehingga rangkaian
masih dapat dirubah untuk ditambah kemampuannya.
Gambar mini Breadboard
Untuk memasukkan program kedalam mikrokontroler PIC16F84,
saya menggunakan mikro computer. setelah program tersimpan kedalam
mikrokontroler PIC16F84, IC mikrokontroler
diambil fan dipasangkan pada mini breadboard. Pada proyek yang lain,
board mikro computer akan langsung dipasangkan pada badan robot sehingga
pengendalian program dapat dengan mudah dilakukan.
Berikut adalah yang
selesa dirakit.
Gambar Robot Mobil Selesai Dirakit
Pada mobile robot diatas dipakai dua batrai. Hal ini harus
dilakukan karena sumber daya untuk mikrokontroler tidak boleh terganggu. Sumber
daya tersebut dapat diganggu jika motor servo sedang bekerja. Hal ini dapat
menyebabkan mikrokontroler reset. Untuk itu motor servo perlu diberikan catu
daya terpisah. Motor servo memerlukan tegangan kerja +4,5 sampai +16 volt.
Pada mobile robot ini program diberikan sederhana saja. Kita
akan membuat robot mobil tersebut berjalan maju. Dengan ditambahkan sensor dan
merubah program, maka mobile robot akan dapat menghindari tabrakan jika ada
benda yang menghalangnya.
Program untuk membuat robot tersebut berjalan maju akan
diberikan berikut ini.
program moble_robot_maju;baginTRISB :=0; //port sebagai outputrepearbaginportb := $1; // servo1 aktif maju (maju2000)delay_us(2000); // delay 2msportb :=$0; //rb0 rendahdelay_ms(18);portb := $2; // servo2 aktif maju (maju1000)delay_us(1000); // delay 1 msportb :=$0; //rb1 rendahdelay_ms(18);end;until (0=1);end;
Dengan menggunakan program maka mobile akan berjalan maju.
Artikil Terkait:
Pengerak Mobile Robot
Dasar Pemograman Servo Motor
Membuat Dasar Mobile Robot
Memprogram Servo Motor
Posted on 12.46
20/11/12
Membuat Dasar (Base) Mobile Robot
Membuat dasar Mobile Robot sangatlah muda. pertama-tama harus ditentukan terlebih dahulu material apa yang akan digunakan sebagai dasar robot. Kita dapat menggunakan plywood ataupun acrylic. selain itu kita tinggal membuat bidang kotak untuk menempatkan kedua motor servo.
Ada hal yang perlu kita perhatikan setelah selesai merakit base mobil robot ini. Yaitu arah dari pada putaran servo. Servo kiri dan servo kanan akan menjadi berlawanan. Sebagai contoh servo kiri harus diberikan pulsa selebar 2 ms agar bergerak maju. Sedangkan servo kanan harus diberikan pulsa 1 ms agar bergerak maju. Apabila kedua servo diatas diberikan pulsa 2 ms maka mobil robot tidak akan bergerak maju. Hal ini karena pulsa kedua servo saling berlawaanan.
Caster merupakan roda bebas yang dapat bergerak bebas. Namun agak sulit memang mencari roda caster yang berukuran cukup kecil. Apa bila ini terjadi, maka kita dapat menggunakan benda apa saja yang bentuknya bulat. Hal ini berguna agar pergerakan robot tidak terlalu berat
Memprogram Servo Motor
Untuk dapat memprogram servo motor dengan mikrokontroler diperlukan penguasaan untuk membuat delay. Hal ini kerana kita harus membuat pulsa dengan lebar 1,5 ms sampai 2 ms yang berulang setiap 18 ms.
Gambar: Base Mobile Robot
Ada hal yang perlu kita perhatikan setelah selesai merakit base mobil robot ini. Yaitu arah dari pada putaran servo. Servo kiri dan servo kanan akan menjadi berlawanan. Sebagai contoh servo kiri harus diberikan pulsa selebar 2 ms agar bergerak maju. Sedangkan servo kanan harus diberikan pulsa 1 ms agar bergerak maju. Apabila kedua servo diatas diberikan pulsa 2 ms maka mobil robot tidak akan bergerak maju. Hal ini karena pulsa kedua servo saling berlawaanan.
Caster merupakan roda bebas yang dapat bergerak bebas. Namun agak sulit memang mencari roda caster yang berukuran cukup kecil. Apa bila ini terjadi, maka kita dapat menggunakan benda apa saja yang bentuknya bulat. Hal ini berguna agar pergerakan robot tidak terlalu berat
Memprogram Servo Motor
Untuk dapat memprogram servo motor dengan mikrokontroler diperlukan penguasaan untuk membuat delay. Hal ini kerana kita harus membuat pulsa dengan lebar 1,5 ms sampai 2 ms yang berulang setiap 18 ms.
Gambar: Pulsa Untuk Motor Servo
Dari gambar terlihat dengan jelas bahwa alamat 2 ms sinyal akan berlogika tinggi (1). sementara selama 16 ms sinyal berlogika rendah (0). Untuk itulah diperlukan suatu tundaan (delay. Tundaan yang 16 ms tidak tidak terlalu bermasalah jika diganti dengan 18 ms ( memudahkan membuat program).
berikut akan deberikan contoh potongan program untuk mengontrol motor servo. Program ini akan menggunakan mokro pascal agar lebih mudah membuatnya ( bila dibandingkan dengan menggunakan assembler).
repeatbagianportb :=$1; // rb0 tinggi (maju2000)delay_us(2000); // delay 2 msportb :=$0; // rb0 rendahdelay_ms(18); // delay 18 msportb :=$2; // rb0 tinggi (maju1000)delay_us(1000); // delay 1 msportb :=$0; // rb0 rendahdelay_ms(18); // delay 18 msend;unil (0=1); // loop tanpa akhir
Program diatas akan membuat motor servo yang dihubungkan dengan RB0 dan RB1 pada mikrokontroler PIC 16F84 berherak maju. Adapun hubungan secara lengkap untuk kedua motor servo tersebut dapat dilihat pada gambar berikut ini.
Gambar: Hubungan Servo Dengan Sinyal Mikrokontroler dan Catu Daya
Artikil Terkait:
Pengerak Mobile Robot
Dasar Pemograman Servo Motor
Membuat Dasar Mobile Robot
Memprogram Servo Motor
Membangun Mobile Robot
Posted on 15.52
Mobile Robot
Salah satu jenis robot yang banyak diminati oleh penggemar robot adalah moble robot. Dari namanya kita akan tahu bahwa yang dimaksud dengan Moble Robot adalah Jenis Robot yang penggeraknya menggunakan roda seperti layaknya mobil, walaupun hanya menggunakan dua ruda saja
Saat sekarang banyak jenis mobile robot yang diperlombakan. ada Sumo Bot, Robot Pemain Bola, ataupun Line Follower Robot. Masing-masing jenis mobil robot diatas memiliki kelebihan dan kekurangan masing-masing.
Untuk membuat sebuah mobil robot. Ada beberapa hal yang harus diperhatikan. hal pertama adalah pemilihan tenaga penggeraknya. Untuk mengerakkan sebuah mobil robot dapat digunakan sebuah motor DC. Namun demikian yang patut diperhatikan adalah, ketika tidak boleh menghubungkan secara langsung roda dengan poros motor DC.
sebagaimana pengalaman saya, jika
kita menghubungkan roda dengan poros roda motor, maka roda tidak kuat
menggerakkan roda nantinya. Roda harus terhubung melalui system gear. Ada dua kelebihan
menggunakan system gear yaitu:
- menaikkan tenaga pada roda
- menurunkan kecepatan putaran motor
Untuk dapat membuat sebuah mobil
robot, maka kita dapat menggunakan motor DC biasa. Geared motor DC “motor
DC yang deberikan gear” maupun resvo motor. Apabila kita hanya memiliki motor DC
biasa. Maka tugas berat menanti kita.
Apa bila harus dapat membuat
system gear yang cocok dengan desain mobil kita. Mungkin kita dapat menggunakan
system gear pada mobil tamiya, part LEGO atau pun kita dapat berkereasi
sendiri. Namun hal ini tentulah sulit dilaksanakan.
Oleh karena itu saya cendrung
menyarankan untuk menggunakan geared motor DC atau pun servo motor. Geared
motor DC masih agak susah dicari. Motor servo mungkin lebih mudah dicari ditoko
elektronik besar.
Gambar Geared Motor
Gambar Servo Motor
Jika kita ingin menggunakan motor
servo, maka hal yang perlu diperhatikan adalah tipe dari motor servo itu
sendiri. Ada
dua tipe motor servo yaitu standard servo (lihat gambar) dan Continous Servo. Keterangan tersebut
tertera pada badan servo.
Standard servo adalah servo yang
putarannya memiliki batas. Hal inilah yang menyebabkan poros servo tidak dapat
berputar 360 derajat. Servo ini hanya digunakan didalam system robotic seperti
untuk menggerakkan lengan. Sedangkan Continous Servo dapat berputar 360 derajat
sehingga cocok dipakai untuk mobile robot untuk menggerakkan rodanya.
Tidak seperti motor DC biasa,
menggunakan motor servo agak sedikit rumit. Hal ini tidak lain Karena untuk
menggerakkan servo motor tersebut diperguakan dengan cara memberikan pulsa
dengan lebar tertentu.
Berikut diberikan ilusterasi arah
pergerakan pada servo motor dengan jenis Continous Servo buatan Parallax Inc.
Gambar: pulsa yang diberikan ke servo
Misalnya pada nilai 2 ms (2000us) tuas motor servo belum sampe mentok, maka dapat diberikan nilai diatasnya dan perhatikan perubahannya. Apabila pemberian nilai terlalu tinggi maka poros motor servo akan bergerak. jika didiamkan maka nilai harus diturunkan sampai diperoleh posisi maksimum yang dikehendaki.
Artikil Terkait:
Pengerak Mobile Robot
Dasar Pemograman Servo Motor
Membuat Dasar Mobile Robot
Memprogram Servo Motor
Membangun Mobile Robot
Posted on 13.15
19/11/12
Perancangan Perangkat Keras (Hardware)
Alat yang hendak kita rancang tersebut terdiri atas dua
bagian yaitu bagian perangkat keras, rangkaia antar muka (interface) antara
port parallel dengan robot dan perangkat lunak (software) pada computer untuk
mengendalikan robot. Pada disain robot terkontrol PC kali ini, supaya sederhana
akan menggunakan mobil-mobilan yang memiliki remot control. Jadi kita hendak
membuat sebuah “mobil robot terkontrol PC”. Kita dapat membuat mobil tersebut
berjalan maju, mundur, belok kiri maupun belok kanan hanya dengan meng-klik
mouse!
Gambar: Konsep Mobile Robot Terkontrol PC
Dengan
asumsi bahwa perangkat yang akan dikontrol hanya 4 macam saja yaitu maju
(forward), mundur (backward), Belok kiri (left) dan belok kanan (right) maka
akan diperlukan total 5 jalur (line) data computer ke rangkaian antarmuka.
Adapun kelima data tersebut adalah sebagai berikut.
Sinyal
|
Digunakan Sebagai
|
DP-0
|
Maju
|
DP-1
|
Mundur
|
DP-2
|
Kiri
|
DP-3
|
Kanan
|
Ground
|
Common Ground
|
Setelah
kita mendefinisikan sinyal-sinyal yang akan dipakai untuk mengontrol rangkaian
antarmuka maka kini saatnya untuk merancang rangkaian antar-muka tersebut.
Rangkaian antar-muka ini memiliki ketentuan sebagai berikut. Pada saat masukan
sinyal berlogika tinggi (high), maka pada jalur tersebut sebuah penghubung
(switch) bekerja. Adapun yang dimaksud dengan switch disini tentu saja bukanlah
switch manual, melaikan switch yang dapat dikontrol oleh arus listrik seperti
relay atau opto coupler.
Karena
pertimbangan ukuran yaitu agar ukuran rangkaian tidak terlalu besar dan juga
menghidari adanya kontak manual (seperti pada relay) yang dapat menimbulkan
kebisingan, maka pilihan jatuh pada opto coupler PC-817 dari Sharp yang
berharga murah.
Opto
coupler PC-817 berukuran cukup kecil dengan ‘footprint’ yang dapat dipasang
pada kebanyakan soket IC, menjadikannya ideal untuk digunakan. Sebuah PC-817
dapat dipakai untuk menerima satu jalur data saja, oleh karena itu kita
memerlukan 4 buah opto coupler tersebut.
Selain opto
coupler tersebut, kita masih memerlukan sebuah IC buffer yang berguna agar
leluaran dari port parallel dapat men-drive opto coupler tanpa mengganggu
logikanya. Kita akan menggunakan IC 74LS04 yang berisi 6 buah buffer/ driver
dengan sifat open collector (harus dipasang resistor pull-up pada outputnya).
Rangkaian lengkap antar-muka diberikan dibawah ini.
Cara kerja rangkaian antar-muka ini adalah sebagai berikut.
Jika pada jalur DP-0 (data port bit 0) dibuat berlogika tinggi, maka setelah
melewati buffer 74LS07 pada pin 1 maka pada pena 2 akan terdapat logika tinggi
yang akan menyebabkan opto coupler no.1 menjadi aktif, aktifnya opto coupler
ini akan menyebabkan kedua pena outputnya berhambatan rendah yang cukup untuk
mengaktifkan saklar “Maju” pada modul
remote mobil. Hal demikian juga berlaku untuk jalur yang lain.
Artikel Terkait :
Posted on 17.28
18/11/12
Perancangan Perangkat Lunak (Software)
Setelah kita membuat rangkaian antar muka dan menghubungkan dengan Modul Remot Mobil, maka berarti bagian perangkat keras telah selesai. Satu pekerjaan lagi yang harus dibuat adalah membuat program untuk komputernya.
beberapa bahasa pemograman dapat dipakai seperti Pascal, Delphi, Visual Basic dan lain-lain. Dalam hal ini kita menggunakan Delphi karena masih menggunakan dasar bahasa Pascal, yang mana beberapa proyek robot yang lain juga akan menggunakan bahasa pascal (Mikcro Pascal) untuk mengisi mikrokontrolernya.
Kita akan membuat program dengan lingkungan kerja windows. Untuk berhubungan dengan membaca atau menulis ke port parallel maka ada dua buah fungsi yang akan dipakai yaitu fungsi baca port dan fungsi tulis port. Adapun detail kedua fungsi tersebut adalah sebagai berikut.
Beberapa contoh potongan program apabila sebuah checkbox terpilih:
beberapa bahasa pemograman dapat dipakai seperti Pascal, Delphi, Visual Basic dan lain-lain. Dalam hal ini kita menggunakan Delphi karena masih menggunakan dasar bahasa Pascal, yang mana beberapa proyek robot yang lain juga akan menggunakan bahasa pascal (Mikcro Pascal) untuk mengisi mikrokontrolernya.
Kita akan membuat program dengan lingkungan kerja windows. Untuk berhubungan dengan membaca atau menulis ke port parallel maka ada dua buah fungsi yang akan dipakai yaitu fungsi baca port dan fungsi tulis port. Adapun detail kedua fungsi tersebut adalah sebagai berikut.
Sedangkan fungsi untuk menuliskan port adalah:function BacaPort (alamat : word) : byte;
Var tmp : byte;
bagin
asm
mov dx,alamat;
in ax,al;
and;
BacaPort :=tmp;
end;
Pada perancangan software menggunakan program Delphi ini, kita akan mengunakan CheckBox adalah salah satu komponen dalam pemograman Delphi, Jika kita memberi tanda centang, maka dikatakan checkbox terpilih (checked). pada saat checkbox terpilih, maka kita harus membuat jalur (line) yang bersangkutan menjadi tnggi (high).procedure TulisPort(alamat : word; data :byte);
bagin
asm
mov dx, alamat;
mov al,data;
out dx,al;
end;
end
Beberapa contoh potongan program apabila sebuah checkbox terpilih:
Dengan menggunakan prinsip diatas, maka program secara keseluruhan adalah sebagai berikut. Program berikut tentu masih standard, anda dapat melakukan tambahan perbaikan-perbaikan sesuai kebutuhan anda.begin
if checkbox.checked then
begin
tulisport ($378,$ff); // logika tinggi
end
else
begin
tulisport($378,$0); // logika rendah
end;
end;
unit Robot;
interface
uses
windowe, Messages, SysUtils, Classes, Graphics,
Controls, Forms, Dialogs
StdCtrls;
type
TForml =class(TForm)
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
GroupBox1: TCheckBox;
GroupBox2: TCheckBox;
GroupBox3: TCheckBox;
GroupBox4: TCheckBox;
procedure CheckBox1Click (Sender:TObject);
procedure CheckBox2Click (Sender:TObject);
procedure CheckBox3Click (Sender:TObject);
procedure CheckBox4Click (Sender:TObject);
private
{ private declarations}
public
function bacaport (addr:word): byte;
procedure tulisport(addr:word;data:byte);
{ Public declarations}
end;
var
Forml: TFofml;
implementation
{$*.DFM}
function TForml.bacaport(addr:word):byte;
var tmp:byte;
begin
asm
mov dx,addr;
in ax,dx;
mov tmp,al;
end
bacaport := tmp;
end;
procedure TForml.tulisport(addr :word: data : byte);
begin
asm
asm
mov dx,addr;
mov al,data;
out dx,al;
end;
end;
procedure TForml.CheckBox1Click(sender:TObject);
var tmp : byte;
begin;
tmp := bacaport($378);
if checkbox1.checked them
tulisport ($378,tmp or $1)
els
tulisport ($378,tmp end $fe);
end;
procedure TForml.Checkbox2Click(sender:TObect);
var tmp : byte;
begin;
tmp := bacaport($378);
if checkbox2.checked them
tulisport ($378,tmp or $2)
els
tulisport ($378,tmp end $fd);
end;
procedure TForml.Checkbox3Click(sender:TObect);
var tmp : byte;
begin;
tmp := bacaport($378);
if checkbox3.checked them
tulisport ($378,tmp or $4)
els
tulisport ($378,tmp end $fb);
end;
procedure TForml.Checkbox4Click(sender:TObect);
var tmp : byte;
begin;
tmp := bacaport($378);
if checkbox4.checked them
tulisport ($378,tmp or $8)
els
tulisport ($378,tmp end $f7);
end;
end.
Artikel Terkait :
Posted on 14.40
Langganan:
Postingan (Atom)