BAB 3
PERANCANGAN SISTEM
Perancangan sistem ini secara umum dapat dibagi kedalam tiga bagian,
Rancang bangun terdiri dari perancangan mekanik penggerak robot serta sistem
Perancangan perangkat keras sistem ini terdiri dari dua bagian dimana
bagian pertama difungsikan pada robot dan bagian kedua difungsikan untuk RFID
Robot menggunakan 2 aki yang memiliki nilai tegangan yang sama yaitu
12,4V. Aki yang memiliki arus sebesar 5Ah dan difungsikan sebagai sumber
tegangan untuk setiap motor pada robot seperti motor pada forklift dan motor pada
roda kiri dan kanan robot. Sedangkan aki yang memiliki arus sebesar 2,2 Ah
digunakan sebagi sumber tegangan modul-modul yang ada pada robot. Sedangkan
64
65
level tegangan dari TTL ke RS232 dan sebaliknya. Pada robot juga terdapat RFID
diperlukan jalur I2C. Selain itu robot juga mendeteksi sensor line follower dan
66
sebagai aktuatornya, dimana pada robot terdapat 3 motor yang difungsikan untuk
roda kiri, roda kanan dan pengangkat lengan forklift, dan diperlukan driver motor
untuk dapat menggerakkan motor DC tersebut. Selain itu robot juga dilengkapi
dengan modul LCD untuk menunjukkan pesan kesalahan yang terjadi pada robot.
dari sensor Line Follower sebagai penunjuk arah, sensor ketinggian sebagai
67
penunjuk ketinggian lengan forklift, RFID sebagai pendeteksi barang, serta serial
UART untuk menerima perintah dari PC. Selain itu AVR juga dapat mengontrol
komunikasi I2C dengan menggunakan pin SDA dan SCL pada AVR (U1)
3.3V sebagai sumber tegangan RFID. Pada pin RFID_IN diberikan pembagi
tegangan dengan memfungsikan dua buah resistor yaitu R5 yang bernilai 2KΩ
dan R6 yang bernilai 2K2Ω seperti pada Gambar 3.3. Alasan digunakan pembagi
tegangan tersebut karena karakteristik dari keadaan high tegangan input VTH
RFID yaitu 0,6VDD untuk minimum dan 0,7VDD untuk maksimum. Pada modul
ini digunakan dua buah transistor Q1 dan Q2 dengan tipe S9013 yang berfungsi
68
sebagai stepup tegangan untuk RFID_OUT. Ketika pin 5 menghasilkan logika ‘0’
maka Kolektor pada Q1 akan bernilai ‘1’ sehingga Base pada Q2 bernilai ‘1’ dan
akan bernilai ‘0’. Begitu pula sebaliknya ketika pin 5 menghasilkan logika ‘1’
maka Kolektor dan Emitter pada Q1 akan terhubung sehingga Base pada Q8 akan
bernilai ‘0’ dan mengakibatkan RFID_OUT akan bernilai ‘1’ karena terhubung
AVR, yaitu dari logic RS232 (-12 s.d.+12 V) ke dalam logic TTL (0 s.d.+5 V).
69
RX (R1OUT) yang terkoneksi ke AVR (U1) yang berfungsi sebagai penerima dan
begitu juga sebaliknya dengan TX (T1IN) yang terkoneksi ke AVR (U1) dengan
RX (T1OUT) yang terkoneksi ke PC. Data yang dikirim dalam format 8 bit data
dengan LSB dikirim terlebih dahulu, serta 1 start bit (berlogika 0) dan 1 stop bit
digunakan pada AVR (U1) dan nilai baudrate antar AVR (U1) dengan PC harus
disamakan.
kolom) dengan konsumsi daya rendah. Modul LCD ini dihubungkan dengan
AVR (U1) yang di desain untuk mengendalikan LCD (U4). Untuk mengakses
LCD (U4) diperlukan pengaturan pada pin RS, saat berlogika 0, register yang
70
dilakukan adalah perintah, sedangkan pada saat berlogika 1, register yang diakses
adalah register data. Agar dapat mengaktifkan LCD (U4), proses inisialisasi harus
dilakukan dengan mengeset bit RS dan membuat bit E dalam kondisi clear. Untuk
jalur data digunakan pin 11-14 dan pengaturan pengesetan terang display dari
LCD (U4) dapat dilakukan dari potensiometer R10 yang bernilai 10KΩ yang
71
dan U6) yang merupakan dual full-bridge driver yang dirancang untuk menerima
logika TTL tingkat standar dan men-drive beban induktif seperti relay, solenoid,
dan motor. Dua input enable dapat mengaktifkan atau menonaktifkan alat secara
independent berdasarkan sinyal input. Driver motor L298N (U5 dan U6)
mempunyai 4 input yang digunakan untuk mengontrol pergerakan dari motor dan
dua input enable yang dipergunakan untuk switching motor dari keadan on dan
off. Untuk mengontrol kecepatan dari motor suatu bentuk gelombang PWM
dengan variabel duty cycle dapat dipergunakan pada pin enable. Pergantian
tegangan listrik dengan cepat di antara Vs dan GND akan memberikan suatu
tegangan listrik efektif di antara Vs dan GND dimana nilainya tergantung dari
duty cylcle dari PWM. Duty cycle sebesar 100% akan memberikan nilai tegangan
listrik sama dengan Vs, dan duty cycle sebesar 50 % sama dengan 0.5Vs dan
seterusnya. PWM yang diberikan untuk menjalankan motor dapat bervariasi dari
30Hz sampai 4KHz, tergantung dari jenis motor DC yang digunakan. Penggunaan
PWM yang tidak sesuai dengan motor DC akan menyebabkan driver menjadi
terlalu panas dan motor DC yang digunakan tidak akan beroperasi dengan baik.
terlindungi jika ada gangguan seperti kelebihan arus yang menyebabkan panas
berlebihan pada driver. Secara fungsional driver L298 (U5 dan U6) dapat
digunakan untuk dua motor untuk setiap driver. Namun untuk menjalankan motor
yang memerlukan arus yang besar diatas 2A, maka output dari driver dapat di
72
pararel sehingga arus yang dihasilkan adalah output yang berasal dari output 1
dan output 2. Komponen diode FR301 digunakan untuk melindungi motor dimana
arus yang dilewati dapat lebih dari 2A. Penggunaan heatsink pada driver sangat
disarankan karena panas yang dihasilkan cukup tinggi, apalagi pada saat PWM
73
dapat dihasilkan tegangan yang bernilai tetap namun dapat diatur tegangan
dibutuhkan komponen eksternal yang sederhana dan panas yang dihasilkan pun
relatif lebih rendah dari regulator LM7805. Alasan dari penggunaan buffer (U26)
pada H-Bridge karena motor yang ingin dikendalikan akan diatur dengan
langsung diatur dari H-Bridge maka sinyal yang hilang ataupun terlalu cepat
dapat tidak tertangkap ke motor, oleh karena itu outputnya lebih baik jika
TIP3055 (Q8 dan Q13) dan PNP TIP2955 (Q7 dan Q12), dimana kedua transistor
ini dapat beroperasi pada besaran 15A dan 60V. Selain power transistor,
digunakan juga transistor silicon dengan tipe NPN S9013(Q9, Q10, Q11, Q14,
Q15, dan Q16) dengan tujuan sebagai penguatan dari input motor. Untuk
menghasilkan arus yang memadai bagi motor maka diperlukan arus lebih besar
dari 2A untuk menggerakkan motor. Dan cara yang dilakukan ialah dengan
74
................................................................. (4.1)
Arus yang diinginkan untuk menjalankan motor lebih besar dari 2A (IC),
sampai dengan 50 dan Vc yang digunakan sebesar 5V. Dari yang diketahui
75
bawah :
RB = 25 Ω
Robot
76
sensor akan menghasilkan logika high jika tidak ada penghalang antara
photodiode dan phototransistor dan sensor akan menghasilkan logika low jika ada
sensor memiliki peran masing-masing yaitu sebagai penanda level highest, middle
2, middle 1, dan lowest. Penggunaan transistor S9013 (Q17 - Q20) ialah sebagai
penguat tegangan untuk logika dari optocoupler sehingga nilai logika high
ataupun low dapat diterima dengan lebih pasti pada level tegangan analog.
77
maka diperlukan suatu cara untuk mendeteksinya. Karena itu digunakan gerbang
logika AND (U21) untuk memproses nilai input dari sensor ketinggian Middle 1
dan Middle 2. Nilai output dari gerbang logika AND (U21) akan dipengaruhi dari
nilai pin 1 dan pin 2 karena nilai pin 4 dan pin 5 telah bernilai logika high,
78
sehingga output dari gerbang logika adalah high. Namun saat forklift melewati
sensor Middle 1 atau Middle 2 maka output dari gerbang logika akan bernilai
logika low karena operasi logika AND akan bernilai low jika ada inputnya yang
bernilai low.
Sensor pantul digunakan sebagai sensor pada line follower dimana dalam
satu sensor tersebut terdapat sinar infra merah yang berfungsi sebagai transceiver
yang dihasilkan relatif kecil sehingga akan sulit untuk membedakan kondisi high
dan low dan sistem akan bekerja, tidak sesuai dengan yang diharapkan.
dari nilai resistansi pada pin negatifnya. Maksud dari pengaturan tersebut ialah
untuk mendapatkan nilai input yang sesuai untuk komparator sehingga bisa
dihasilkan output yang maksimal dari input antara pin negatif dan positifnya.
Ketika sensor terkena daerah berwarna putih maka base dan collector pada
optocoupler akan terhubung sehingga arus akan mengalir pada input positif pada
komparator, dan komparator akan memberikan nilai high berupa tegangan kepada
AVR berdasarkan perbandingan dari input negatif dan positif. Sedangkan jika
sensor terkena garis hitam maka optocoupler tidak akan mengalirkan arus, dan
Untuk sensor line follower digunakan 7 buah sensor pantul dimana cahaya
yang digunakan ialah sinar infra merah yang memiliki jangkauan yang lebih baik
dibandingkan dengan cahaya yang berasal dari LED. Sensor disusun secara 2
baris dimana baris depan terdiri dari 5 sensor dan baris belakang terdiri dari 2
sensor. Penggunaan 5 sensor pada baris depan dan 2 sensor pada baris belakang
dimaksudkan untuk membuat suatu acuan posisi dari titik yang ditangkap oleh
sensor terhadap garis. Sensor pada baris depan akan menjaga posisi robot ketika
berjalan maju dimana keadaan sensor akan mempengaruhi pergerakan dari robot
80
sehingga robot akan memperbaiki kesalahan posisi berdasarkan acuan dari sensor
pada baris depan. Untuk jalan mundur, sensor pada baris belakang akan
memberikan input ke kontroler apakah robot masih berjalan dalam garis atau
tidak, dan posisi robot akan dipengaruhi oleh sensor pada baris depan.
Gambar 3.13 Suply Tegangan (5V/3A) AVR dan Sensor pada Robot
81
sehingga arus yang dihasilkan dari power transistor bisa lebih dari 3A. Karena
beroperasi dalam watt yang besar maka resistor yang digunakan dapat beroperasi
pada 5 W agar kerusakan pada resistor dapat dihindari. Output dari LM7805
diparalelkan dengan collector pada MJ2955 dan output yang dihasilkan ialah 5 V
dengan besar arus kelipatan dari 2 regulator LM7805 dan penguatan arus dari
power transistor MJ2955. Untuk gambar rangkaian dari modul powernya dapat
82
RS232 yang dikonversikan oleh MAX232 ke dalam level tegangan TTL. AVR
akan melakukan instruksi yang diberikan dari PC untuk mengecek kondisi Tag,
membaca Tag, menulis Tag, ataupun menghapus isi dari Tag menggunakan
A. Modul RFID_PC
83
Modul RFID_PC digunakan untuk melakukan read atau write pada Label
Tag RFID yang ada di barang yang menunjukkan spesifikasi dari barang tersebut.
Sebelum barang di bawa oleh robot ke tempat tujuan maka Label Tag RFID di
tulis dahulu oleh RFID_PC dimana dilakukan sepenuhnya oleh pengguna dengan
menggunakan program pada PC. Setelah setiap Label Tag di write maka Label
tersebut telah memiliki nilai atau isi masing-masing. Setiap Label Tag yang telah
memiliki nilai atau isi maka dapat dilihat dengan melakukan read pada Label Tag
tiap program dijalankan pada komputer, modul RFID_PC, dan modul AVR, dan
dengan robot dan tag RFID. Program pada komputer menggunakan bahasa
pemrograman Visual Studio 2005, dimana pemilihan Visual Studio 2005 sendiri
SQL 2005 sebagai program database, dimana database yang akan disimpan
84
menjadi I2C dan sebaliknya, serta menjadi buffer data. Dimana fungsi-fungsi dari
modul RFID-PC antara lain untuk membaca nomor seri tag, membaca isi tag,
komputer menggunakan jalur UART, membaca isi dari tag, menjalankan motor
menggerakkan roda, membaca sensor garis yang kemudian akan diolah agar robot
dapat mengikuti garis tersebut, serta menampilkan pesan kesalahan pada LCD.
85
Start
Initialisasi
T
Input = RFID? Robot?
RFID?
Taruh Ambil
Cek Tag
Baca Tag Tulis Tag Hapus Tag
Hapus Tag
86
antara pengguna dengan RFID dan juga dengan robot. Program ini dapat
mengupdate database. Program pada komputer ini memiliki lima perintah yang
87
dapat di akses oleh pengguna yang terdapat dalam dua pilihan, antara lain pilihan
untuk RFID dan pilihan untuk Robot. Perintah – perintah yang terdapat dalam
pilihan RFID antara lain membaca nomor seri tag, menulis isi tag, membaca isi
tag, dan menghapus isi tag. Sedangkan perintah – perintah yang terdapat dalam
pilihan robot antara lain menaruh barang dan mengambil barang. Program pada
pada gambar 3.17 dan gambar 3.18. Pada gambar tersebut terlihat ada dua buah
menu utama yaitu menu untuk RFID dan menu untuk Robot. Adapun fungsi dari
4. User interface untuk membaca, menulis, dan menghapus isi dari Tag.
pada robot.
88
14. Koordinat dan isi Tag yang akan ditaruh atau diambil oleh robot.
untuk membaca nomor seri dari tag yang terdeteksi. Fungsi ini juga dapat dipakai
untuk membaca isi data pada memori tag, kemudian data tersebut diolah dan
untuk menulis isi data pada memori tag dengan koordinat dan keterangan yang
untuk membaca isi tag yang kemudian data hasil baca tersebut dipakai untuk
memperbaharui database status dan keterangan dari tag yang ingin dihapus.
Kemudian memerintahkan modul RFID_PC untuk menghapus isi tag dengan data
0FFh.
89
koordinat yang dituju setelah robot membaca tag. Setelah tag terdeteksi oleh
robot dan data koordinat berhasil dibaca, data tersebut kemudian akan dikirimkan
oleh robot ke program untuk kemudian diolah dan dicocokkan dengan status dari
tag tersebut pada database. Kalau statusnya adalah ‘wait’, maka program
memerintahkan robot untuk berjalan, bila bukan, maka program meminta robot
barang dengan koordinat yang telah dimasukkan oleh pengguna dan kemudian
memperbaharui status pada database dari koordinat yang dipilih tersebut menjadi
‘lemari’.
C. Database Robot
digunakan untuk mendata isi dari slot lemari. Adapun tabel database yang
digunakan :
90
Nomor adalah nomor dari slot lemari, sedangkan jalur, sisi, baris dan
kolom adalah koordinat dari slot lemari tersebut. Keterangan adalah isi dari slot
lemari tersebut. Status adalah status dari barang yang disimpan pada slot tersebut.
Status dapat berupa wait, lemari, ataupun kosong. Wait artinya slot tersebut sudah
terisi barang tetapi barang tidak berada pada slot lemari, lemari artinya slot
tersebut sudah terisi barang dan barang berada pada slot lemari, dan kosong
berupa keterangan dan status dari setiap slot penyimpanan. Isi dari database dapat
dilihat langsung pada user interface baik untuk menu RFID atau pada menu Robot
91
perintah baru baik untuk RFID ataupun untuk Robot. Pada kolom keterangan
digunakan untuk mengetahui keterangan yang telah dituliskan pada tag. Untuk
kolom status ada tiga jenis status yang digunakan untuk menandakan status dari
slot penyimpanan yaitu ‘kosong’, ‘wait’, dan ‘lemari’ seperti contoh yang
ditunjukkan pada Gambar 3.19 . Status ‘kosong’ artinya slot penyimpanan dalam
keadaan tersedia untuk diisi, status ‘wait’ artinya slot penyimpanan sudah akan
diisi oleh robot, dan status ‘lemari’ artinya slot penyimpanan dalam keadaan
terisi.
perincian 2 byte pada MSB sebagai koordinat dan 94 byte sisanya sebagai
keterangan. 2 byte koordinat terdiri dari 1 bit sisi, 7 bit jalur, 4 bit kolom dan 4 bit
baris. Dengan demikian sistem dapat mencakup 128 jalur dengan 2 sisi, 16 kolom
92
Robot Controller dengan robot dan modul RFID_PC. Format tersebut ditunjukkan
seperti pada Gambar 3.21 dengan format 1 Byte panjang data dari perintah hingga
penghubung komputer dengan modul RFID. Dimana AVR pada modul RFID-PC
akan menjalankan perintah yang diberikan oleh komputer. Modul RFID-PC ini
memiliki empat perintah yang dapat diberikan, antara lain: perintah untuk
mendeteksi ada tidaknya tag, perintah untuk membaca isi tag, perintah untuk
menulis tag, dan perintah untuk menghapus isi tag. Semua perintah itu diberikan
oleh komputer sesuai dengan kebutuhan dari program komputer. Semua perintah
akan menghasilkan respon berupa status dari proses yang dikerjakannya, yang
93
inisialisasi jalur I2C, program akan menunggu hingga ada perintah yang diberikan
oleh komputer. Setelah perintah diterima, maka perintah akan dibaca. Apabila
94
perintahnya merupakan perintah untuk mengecek ada atau tidaknya tag, maka
akan dipanggil fungsi Cek_tag. Bila perintahnya adalah untuk membaca isi tag,
maka program akan memanggil fungsi Baca_tag. Bila perintahnya adalah untuk
menulis tag, maka program akan memanggil fungsi Tulis_tag. Bila perintahnya
adalah untuk menghapus isi tag, maka program akan memanggil fungsi hapus tag.
Bila perintahnya tak terdefinisikan, maka program akan membuat status menjadi
mengirimkan status dari proses yang dilakukan melalui jalur UART untuk diolah
Fungsi Cek_tag adalah fungsi untuk membaca nomor seri dari tag yang
terdeteksi. Untuk bisa membaca nomor serial dari tag maka digunakan perintah
Select Mifare Card ke modul RFID. Perintah tersebut dimaksudkan agar modul
95
RFID dapat mengenali jenis tag yang terdeteksi dan membaca nomor serial dari
tag tersebut. Setelah perintah tersebut dikirimkan, maka akan ada balasan dari
modul RFID berupa nomor serial dari tag yang terdeteksi tersebut dan status yang
menyatakan pembacaan tag berhasil atau tidak, kemudian nomor seri tersebut
dikirimkan ke program Robot Controler. Apabila fungsi Cek_tag dipilih pada saat
tidak ada tag yang dideteksi, maka nomor serial idak akan muncul dan dikirimkan
96
Fungsi Baca_tag berfungsi untuk membaca isi tag pada sector dua dan
tiga. Fungsi ini akan menunggu hingga tag yang mau dibaca didekatkan ke modul
RFID dan terdeteksi oleh modul RFID, baru kemudian menjalankan semua
karena data hanya dapat dibaca setiap satu block, dimana tiap block berisi 16 byte
data. Dan untuk mengakses setiap block harus log-in dahulu pada sector dimana
sebuah block terlebih dahulu harus dikirimkan perintah log-in sector melalui jalur
I2C ke modul RFID. Setelah log-in baru dikirimkan perintah membaca block
melalui jalur I2C ke modul RFID. Delay 100ms diberikan untuk menunggu modul
RFID selesai menjalankan perintah. Setelah itu baru dikirimkan perintah untuk
membaca status pengerjaan melalui jalur I2C ke modul RFID. Setelah data
terkirim data yang berada di dalam buffer dicopy ke variable array hasil, variabel
97
Fungsi Tulis_tag berfungsi untuk menulis isi dari tag yang diinginkan.
Pada saat fungsi ini dijalankan, maka modul RFID akan melakukan log-in terlebih
dahulu ke tag yang ingin ditulis agar dapat masuk ke dalam sector dalam tag.
Program bekerja dalam dua looping, karena data hanya dapat ditulis setiap satu
block, dimana tiap block berisi 16 byte data. Dan untuk mengakses setiap block
harus log-in dahulu pada sector dimana block tersebut berada, sehingga sebelum
98
dikirimkan perintah log-in sector melalui jalur I2C ke modul RFID. Setelah log-in
baru dapat dikirimkan perintah untuk menulis block beserta isi block yang mau
dituliskan melalui jalur I2C ke modul RFID. Delay 100us diberikan untuk
menunggu modul RFID selesai menjalankan perintah. Setelah itu baru dikirimkan
perintah baca melalui jalur I2C ke modul RFID. Setelah data terkirim data yang
berada di dalam buffer dicopy ke variable array hasil, variabel hasil ini akan
Fungsi Tulis_tag menulis isi tag pada sector dua dan tiga. Fungsi ini akan
menunggu hingga tag yang mau dibaca didekatkan ke modul RFID dan terdeteksi
oleh modul RFID, baru kemudian menjalankan semua perintah-perintah yang ada
didalamnya. Program bekerja dalam dua looping, karena data hanya dapat ditulis
setiap satu block, dimana tiap block berisi 16 byte data. Dan untuk mengakses
setiap block harus log-in dahulu pada sector dimana block tersebut berada,
dahulu harus dikirimkan perintah log-in sector melalui jalur I2C ke modul RFID.
Setelah log-in baru dapat dikirimkan perintah untuk menulis block beserta isi
block yang mau dituliskan melalui jalur I2C ke modul RFID. Delay 100ms
diberikan untuk menunggu modul RFID selesai menjalankan perintah. Setelah itu
baru dikirimkan perintah baca melalui jalur I2C ke modul RFID. Setelah data
terkirim data yang berada di dalam buffer dicopy ke variable array hasil, variabel
99
Fungsi Hapus_tag untuk menulis isi tag pada sector dua dan tiga dengan
nilai 0FFh. Fungsi ini akan menunggu hingga tag yang mau dibaca didekatkan ke
modul RFID dan terdeteksi oleh modul RFID, baru kemudian menjalankan semua
dimana data hanya dapat ditulis setiap satu block dan tiap block berisi 16 byte
data. Untuk mengakess setiap block harus log-in dahulu pada sector dimana block
100
block terlebih dahulu harus dikirimkan perintah log-in sector melalui jalur I2C ke
modul RFID. Setelah log-in baru dapat dikirimkan perintah untuk menulis block
beserta nilai 0FFh melalui jalur I2C ke modul RFID. Delay 100us diberikan untuk
menunggu modul RFID selesai menjalankan perintah. Setelah itu baru dikirimkan
perintah baca melalui jalur I2C ke modul RFID. Setelah data terkirim data yang
berada di dalam buffer dicopy ke variable array temp, status yang berada
komputer melalui UART. Setiap kali AVR menerima data dari UART maka
interupsi ini dipanggil dan fungsi ini mengcopy buffer kedalam variable data. Data
pertama yang dikirimkan oleh komputer adalah jumlah data yang akan dikirimkan
oleh komputer. Oleh karena itu dibutuhkan sebuah counter untuk menghitung
jumlah data yang sudah dikirimkan. Variable dataptr berisi jumlah data yang
belum terkirim. Bila dataptr bernilai nol, maka data dicopy ke variable Dataptr
sebagai petunjuk jumlah data yang akan dikirim, kemudian data dimasukkan ke
dalam buffer. Setelah data dimasukan ke dalam bufer maka Dataptr akan dikurang
satu. Jika Dataptr sudah bernilai nol, maka perintah sudah ada dan siap untuk
101
Kemudian robot akan menunggu perintah yang diberikan oleh pengguna melalui
program yang terdapat pada PC. Jika tidak ada perintah maka robot akan
akan mencek perintah yang diberikan. Apabila perintah yang diberikan adalah
102
’ambil’, maka buffer UART akan disalin ke robot supaya robot dapat mengetahui
koordinat slot yang dituju. Apabila perintah yang diberikan adalah ’taruh’, maka
lokasi koodinat tujuan akan disalin dari memori tag yang dideteksi oleh robot
yang kemudian digunakan robot untuk menuju ke lokasi koordinat slot yang
dituju.
103
104
A2 B2
A1 B1
6
A0 7 B0
5 4
3 8
1 2 9
10
2
105
7 Robot belok mundur kearah kanan sampai keluar dari jalur lemari
mengetahui posisi robot terhadap garis. Jika terkena garis maka sensor akan
memberikan nilai logika ”0” dan jika tidak terkena garis maka sensor akan
S0 S1 S2 S3 S4
106
sensor depan dan kemudian memproses sensor depan tersebut menjadi pergerakan
berhenti
berhenti
sensor_belakang Output
mengetahui posisi robot terhadap garis. Jika terkena garis maka sensor akan
107
memberikan nilai logika ”0” dan jika tidak terkena garis maka sensor akan
dahulu, kemudian bila sensor belakang tidak bermasalah maka baru robot akan
mendeteksi sensor depan. Respon robot terhadap sensor belakang dilihat pada
Tabel 3.4, sedangkan respon robot terhadap sensor depan dapat dilihat pada Tabel
3.30. Robot akan menjalankan algoritma ini hingga robot mendeteksi sensor
Tabel 3.4 Logika pengolahan sensor belakang pada fungsi Jalan Mundur
kiri berhenti
kanan berhenti
Tabel 3.5 Logika pengolahan sensor depan pada fungsi Jalan Mundur
108
kanan diperlambat
109
mengambil barang yang sesuai dengan koordinat yang diberikan. Fungsi ini
berjalan dengan membaca lokasi dan melihat apakah lokasi tersebut adalah lokasi
yang valid ( jalur, kolom, dan baris tidak melebihi jalur yang tersedia ). Bila valid,
robot mengirimkan status siap dan menunggu perintah untuk jalan atau untuk
Taruh_barang
TX lokasi
Perintah T
ada ?
Y
T
Perintah == Perintah ==
T Cancel? Go?
Y Y
Jalan(Taruh)
Return
koordinat yang terdeteksi dari tag. Kemudian robot akan menunggu perintah jalan
110
atau perintah untuk membatalkan. Apabila jalan, maka robot akan berjalan ke
menaruh atau mengambil barang dengan posisi awal berada di depan lemari.
Fungsi ini mengecek posisi lengan forklift sesuai dengan koordinat tingkat yang
diinginkan atau tidak. Apabila tidak sesuai maka posisi lengan forklift akan diatur
111
sesuai dengan koordinat tingkat yang dituju. Jika fungsi yang diberikan oleh robot
adalah ’taruh’, maka robot akan maju menuju ke dalam slot yang dituju dan
kemudian lengan forklift akan turun sedkit untuk melepaskan barang ke dalam
slot, kemudian setelah selesai menaruh barang, maka robot akan mundur kembali
dan posisi lengan forklift diturunkan ke tingkat paling bawah. Jika fungsinya
adalah ’ambil’ maka robot akan maju ke dalam slot yang dituju dan setelah lengan
forklift mencapai posisi pas untuk mengambil, maka lengan forklift akan diangkat
sedikit supaya barang bisa diambil, kemudian robot mundur kembali dan posisi
112
komputer melalui UART. Setiap kali AVR menerima data dari UART maka
interupsi ini dipanggil dan fungsi ini mengcopy buffer kedalam variable data. Data
pertama yang dikirimkan oleh komputer adalah jumlah data yang akan dikirimkan
oleh komputer. Oleh karena itu dibutuhkan sebuah counter untuk menghitung
jumlah data yang sudah dikirimkan. Variable dataptr berisi jumlah data yang
belum terkirim. Bila dataptr bernilai nol, maka data dicopy ke variable Dataptr
sebagai petunjuk jumlah data yang akan dikirim, kemudian data dimasukkan ke
dalam buffer. Setelah data dimasukan ke dalam bufer maka Dataptr akan dikurang
satu. Jika Dataptr sudah bernilai nol, maka perintah sudah ada dan siap untuk
Mekanik forklift yang digunakan pada robot terbuat dari bahan besi. Bagian
untuk menyatukan antara bagian forklift dengan badan robot. Konstruksi forklift
melakukan setting robot. Untuk bagian badan robot, digunakan bahan aluminium
113
114
yang bisa dihasilkan dari motor tersebut karna melihat kondisi dari bobot robot
yang cukup berat yang dikarenakan bahan yang digunakan terbuat dari logam.
Motor yang digunakan untuk sistem penggerak robot forklift ini ini adalah jenis
transmisi antara dua buah gir, yaitu gir worm dan gir spur. Kombinasi kedua gir
tersebut menghasilkan efisiensi mekanik yang maksimal karena rasio gir yang
dihasilkan relatif besar sehingga torsi yang dihasilkan dari rasio kedua gir tersebut
cukup untuk bisa menahan beban yang berat. Selain itu motor power window
115
memilki keuntungan yaitu dengan adanya gir worm didalam motor tersebut, maka
robot akan berhenti apabila motor tidak mendapat sinyal listrik, hal ini
dikarenakan ketika motor berhenti maka gir worm yang terdapat didalam motor
akan menahan gir spur yang juga terdapat didalam motor, mengingat derajat
sistem gir worm yang terdiri dari satu buah gir worm dan satu buah gir spur.
Kombinasi gir tersebut memiliki keuntungan dari segi efisiensi mekanik karena
rasio gir yang dihasilkan dari perbandingan antara jumlah gigi gir pada poros
motor dan poros keluarannya dapat dibuat relatif sangat besar dengan hanya
sekali konversi. Jika ulir pada gir poros motor memiliki konfigurasi tunggal maka
satu putaran penuh pada poros motor akan menghasilkan gerakan translasi
(keliling) dari gir yang sebanding dengan jarak ulir dari sisi ke sisi. Jarak antar gir
worm yang digunakan adalah 2mm dan diameter dari gir keluarannya adalah
10cm, dan untuk mencapai satu putaran penuh pada gir output maka poros motor
harus berputar sebanyak = 50 kali, sehingga rasio gir adalah 1:50. Jadi worm
gir ini memiliki torsi yang besar. Worm gir ini tidak dapat bergerak jika poros dari
bagian spur gir yang diputar. Hal ini dapat digunakan sebagai mekanisme untuk
mengunci gerakan.
116
Sensor yang digunakan pada robot forklift ini ada 2 jenis, yaitu sensor garis
A. Sensor Garis
bagian bawah dari base robot. Sensor ini diletakkan ± 1.0cm dari lantai dan tepat
berada di tengah-tengah base robot. Sensor ini berfungsi untuk mengenali garis
berwarna hitam.
117
ditengah garis .
118
119
120
berbelok.
depan lemari.
B. Sensor Forklift
digunakan 3 buah sensor yang diletakkan pada tiang forklift yang menandai tiga
tingkatan lantai tersebut dan juga sensor tersebut berfungsi untuk menandai batas
pergerakan forklift dari yang paling bawah dan juga yang paling atas.
121
forklift robot. Penempatan modul RFID tersebut berada di bagian belakang forklift
agar RFID tersebut dapat ikut naik dan turun sesuai dengan gerakan forklift.
122
A2 B2
A1 B1
B0
A0
123
Trak untuk acuan robot forklift memakai sistem garis penuntun. Garis
penuntun tersebut digunakan oleh robot sebagai acuan untuk bisa berjalan lurus
dan berbelok ke tempat yang dituju. Garis penuntun tersebut menggunakan garis
berwarna hitam yang mempunyai lebar 2,5cm yang diletakkan diatas daerah
berwarna putih. Untuk acuan robot agar bisa berbelok, digunakan penanda garis
hitam yang ukurannya telah disesuaikan dengan ukuran dari sensor robot yang
diletakkan pada jarak 18cm dari garis lurus pada track lorong lemari. Jarak dari
sisi trak ke sisi lemari berjarak ≥ 20cm. Pada saat robot dalam keadaan standby,
terdapat sebuah base yang digunakan sebagai tempat start robot forklift dan base
tersebut juga digunakan untuk tempat pengiriman data dari PC ke robot sebelum
Tingkat 4
60 cm
Tingkat 3
Tingkat 2
9,5 cm
Tingkat 1
cm
20
60 cm
Gambar 3.42 Lemari Penyimpanan
124
berukuran 60cm x 20cm x 60cm yang terlihat seperti Gambar 3.42. Jumlah lemari
yang digunakan adalah berjumlah 2 buah. 2 buah lemari itu diletakan di dalam
koordinat yang berbeda sehingga pada saat simulasinya adalah robot bergerak
mengambil barang dari lemari 1 dan meletakan barang tersebut di lemari yang
125