Anda di halaman 1dari 18

Mobil Robot & Wall Tracing

Sekarang ke algoritma.
Sebelum anda jauh melihat listing programnya, biar tidak bingung sebaiknya anda pelajari
bahasa C mencakup struktur, command-command, tipe data, operator, membuat fungsi, dll.
Tetapi jika anda menguasai bahasa pemrograman lain seperti bahasa Pascal, BasCom, atau
assembler maka lihat bagaimana memprogramnya dan logika pemrogramannya lalu bagaimana
mengimplementasikan pada bahasa pemrograman yang anda kuasai.
Saya akan memprogram mobil robot untuk mempertahankan jarak mobil robot terhadap dinding
dengan jarak referensi 20 cm, bisa menggunakan hanya 1 buah sensor PING atau 2 sensor PING.
Jika anda menggunakan hanya 1 sensor PING maka pada arena yg anda buat tidak boleh ada
halangan di depan mobil robot. Mobil robot akan diprogram agar dapat berbelok dengan
tikungan hingga 180 derajat. Hal penting sebelum ke program utama adalah menentukan nilai
PWM yang akan diberikan pada mobil robot untuk kondisi jarak tertentu, tujuannya adalah agar
menghasilkan pergerakan mobil robot yang halus, selain itu juga karena karakteristik motor DC

yang berbeda-beda. Motor DC yang saya gunakan pasti berbeda dengan yang anda gunakan.

Listing pada Gambar 1 adalah pengujian untuk mengetahui karaktersitik motor DC yang anda gunak
an apakah linier atau logaritmik. Jika anda telah mengetahui linier atau logaritmik mak
a akan mempermudah mencapai hasil yang maksimal nantinya, tetapi jika anda tidak sabaran si
ahkan langsung ke listing Gambar 2 dan lakukan Trial and Error dengan mengubah nilai PWM te
rus-menerus hingga di
patkan hasil yang maksimal. Apabila anda beruntung dengan sedikit coba-coba ketemu dah.Pengu
ian yang baik dan lebih teliti tentu saja dengan menggunakan alat ukur kecepatan puta
ranatau tachometer atau encoder, tetapi saya mengangga
anda tidak memilikinya sehingga
engujian seperti di bawah ini (saya juga g
punya si).Cara pengujian sebagai berikut :
- Pr
gram awal ROBOT(Stop) selama
detik.- ROBOT(Maju) selama 3 detik dengan nilai
WM 250.- ROBOT(Stop) selama
detik.- ROBOT(Maju) selama 3 detik dengan nilai
WM 200.- ROBOT(Stop) selama
detik.- ROBOT(Maju) selama 3 detik dengan nilai
WM 150.- ROBOT(Stop) selama
detik.- ROBOT(Maju) selama 3 detik dengan nilai
PWM 100.- ROBOT(Stop) selama 3 detik.- ROBOT(Maju) selama 3 detik dengan nilai
PWM 50.- Gunakan alas yang licin (lantai keramik) atau menggunakan kertas
arton putih.- Posisikan mobil robot dan beri tanda pa da lantai posisi awal mobil robot.Setelah
obil robot di program dan sudut sensor PING telah diatur dengan baik, kemudian jalankan.- Seti
p mobil robot bergerak maju kemudian stop, be
ikan tanda pada lantai dimana posisi mobil Robot berhenti hingga mencapai akhir program.
- Catat perubahan jarak yang terjadi, dari listing diatas anda mendapatkan 5 dat
a jarak.- Dengan menggunakan rumus perbandingan antar jarak dengan nilai PWM maka dapat
disimpulkan apakah motor DC anda Linier atau logaritmik. Jika mot
DC anda linier tidak masalah tetapi jika logaritmik baru masalah (tenang ga gede kok).O
h ya satu lagi, anda ubah nilai PWM pada listing Gambar 1 hingga nilai tersebut minimum
, yaitu nilai PWM terkecil yang masih menyebabkan motor DC bergerak (pelaa

Untuk mempermudah pemahaman program, saya gunakan perintah IF THEN ELSE saja,
mengapa saya menuliskan program IF THEN ELSE seperti itu, silahkan pikirkan sendiri
(Wkkk.....).
Nilai PWM dapat anda atur sesuai perhitungan anda berdasarkan karakteristik motor DC anda.
Kalo ingin lebih cepat dan halus pergerakan mobil robot gunakan PI-Fuzzy, atau metode yg anda
inginkan. Sensor PING berada pada sisi kiri mobil robot, jadi diprogram untuk meraba dinding
kiri saja.
Kondisi awal pergerakan mobil robot adalah penting, jika mobil robot diprogram untuk
mempertahankan jarak terhadap dinding kiri maka setelah mendeteksi dinding kiri, mobil robot
tidak boleh melepas dinding ini, apabila mobil robot "tersesat" dari dinding kiri, buat prosedur
cadangan.
Kondisi awal mobil robot hanya ada 2 :

- Tidak terdapat dinding di sisi kiri mobil robot.


- Terdapat dinding di sisi kiri mobil robot.
Lebih baik menganggap kondisi awal tidak ada dinding kiri daripada ada dinding kiri oleh sebab
itu kondisi awal tidak ada dinding kiri. Jika tidak ada dinding kiri maka agar mobil robot cepat
menemukan dinding kiri, mobil robot harus bergerak lurus dengan PWM 255 sampai tersentuh
dinding kiri (atau dinding depan atau kanan --> ada PING depan dan kanan).
Bagaimana jika mobil robot lepas dari dinding kiri dan "tersesat" ?
Listing pada Gambar 2 menyebabkan mobil robot akan berputar-putar (belok kiri) jika dinding
kiri memiliki jarak > 30 cm karena nilai PWM motor kiri pelan sekali (bahkan stop) sedangkan
nilai PWM motor kanan 255 (maksimum). Gunakan variabel tambahan yaitu unsigned char
cnt_kiri (count kiri) yang akan terus bertambah jika dinding kiri jarak > 30 cm. Karena unsigned
char maka nilai maksimum cnt_kiri adalah 255. Nilai maksimum cnt_kiri anda tentukan sendiri
dan sesuaikan dengan kecepatan motor DC anda, jika terlalu besar nilainya dapat membuat mobil
robot akan berputar-putar cukup lama. Saya sarankan anda mengatur nilai maksimum cnt_kiri
yang akan menyebabkan mobil robot berputar sebanyak 1 - 1,5 putaran.
Mengapa 1 - 1,5 putaran ?

Mobil robot saat melewati tikungan 180 derajat itu berarti mobil robot telah berputar sebanyak
1/2 putaran dan arena yang dibuat berupa bidang sehingga mobil tidak mungkin berbelok lebih
dari 180 derajat, akan tetapi karena menganggap ada faktor X lainnya seperti ada batu atau
tanjakan atau yang lain maka dibatasi 1 - 1,5 putaran, lebih dari itu menurut saya terlalu lama.
Nah sudah jadi nih Mobil Robot yang bisa jalan-jalan, klo udah berhasil dan anda mendapatkan
pergerakan yang halus, sana pamerin aja trus kacak pinggang dan bilang "Ini Fuzzy ini, pake
Sugeno ma Mammdani. Apik to.."
By :
PayzZzz Jam 02:
15 Topik :
Robot-Coding, Robot-Wall Following

Mobil Robot & IC L298

Rangkaian Schematic
Mobil robot yang akan dibuat menggunakan driver motor DC H-Bridge menggunakan IC L298.
Rangkaian schematik yang saya gunakan seperti di bawah ini

Perhatikan pemilihan Port dan konfigurasi yang digunakan, mengapa PortD dan mengapa
susunan setiap pin pada PortD untuk driver Motor DC seperti itu. Hal tersebut saya bahas pada
topik Mobil Robot & AVR. Jika driver motor DC telah dibuat, sekarang pengujian pergerakan
pada mobil robot.

Pengujian Pin-pin PORTD

Apabila menggunakan IC L298, sebenarnya anda tidak perlu mengetahui atau menghapal seluruh
konfigurasi pin, yang penting adalah Pin EN12 (Enable 12) dan Pin EN34 (Enable 34). Karena
menggunakan PWM dengan rentang nilai 0 - 255 maka untuk mikrokontroler AVR ATmega8535
pasti menggunakan PORTD dan menggunakan pin OCR1B (PORTD.4) dan OCR1A (PORTD.5).
Gambar 2 adalah listing program pengujian pergerakan motor DC pada mobil robot. Pengujian
ini bertujuan untuk mengetahui apakah driver motor DC berfungsi sehingga tidak menggunakan
PWM. Pengujian yaitu dengan menggerakkan salah satu motor DC agar bergerak maju atau
mundur selama selang waktu 3 detik, oleh sebab itu mobil robot dibuat tidak menyentuh lantai
dan tetap terkoneksi dengan komputer sambil diprogram. Agar motor DC bergerak maka Pin

enable harus berlogika 1, yaitu PD.4 dan PD.5 berlogika 1 dan tidak boleh diubah logikanya.
Langkah-langkah pada program Gambar 2 sebagai berikut :

1. Motor DC di buat berhenti selama 2 detik tujuannya agar mengetahui awal program dimana
sehingga jika Motor DC bergerak, dapat diketahui baris mana pada listing yang sedang
dieksekusi.
2. PD.0 PD.4 dan PD.5 berlogika 1 yang lain berlogika 0.
3. PD.1 PD.4 dan PD.5 berlogika 1 yang lain berlogika 0.
4. PD.6 PD.4 dan PD.5 berlogika 1 yang lain berlogika 0.
5. PD.7 PD.4 dan PD.5 berlogika 1 yang lain berlogika 0.
6. PD.2 dan PD.3 tidak diuji karena port ini tidak digunakan pada driver motor DC.
Pada langkah 2 - 6 Lihat motor mana yang bergerak dan apakah maju atau mundur.
Beri catatan disamping baris listing program yang sedang dieksekusi.

Pengujian Pergerakan Mobil Robot

Gambar 3 adalah Listing program untuk menguji dan melihat pergerakan serta kecepatan mobil
robot saat kecepatan penuh. Tujuannya adalah untuk mengetahui logika-logika yang akan
diberikan pada setiap pin PD.0 PD.1 PD.6 dan PD.7 yang akan mengatur gerak robot seperti
Maju, Mundur, Belok Kanan, Belok Kiri, Rotasi Kanan, dan Rotasi Kiri. Selain itu juga
mengetahui kecepatan Maksimum mobil robot. Pengaturan port sama seperti pada Gambar 2.
Langkah-langkah pada program Gambar 3 sebagai berikut :

1. Menggunakan informasi dari pengujian Gambar 2.


2. Mobil Robot dibuat berhenti selama 2 detik, tujuannya sama.
3. Mobil Robot dibuat bergerak Maju 3 detik. Yaitu motor kanan dan motor kiri maju.
4. Mobil Robot dibuat bergerak Mundur 3 detik. Yaitu Motor Kanan dan motor kiri mundur.
5. Mobil Robot dibuat bergerak Belok Kanan 3 detik. Yaitu motor kanan stop dan motor kiri
maju.
6. Mobil Robot dibuat bergerak Belok Kiri 3 detik. Yaitu motor kanan maju dan motor kiri stop.
7. Mobil Robot dibuat bergerak Rotasi Kanan 3 detik. Yaitu motor kanan mundur dan motor kiri
maju.
8. Mobil Robot dibuat bergerak Rotasi Kiri 3 detik. Yaitu motor kanan maju dan motor kiri
mundur.

Pengujian dengan PWM


Setelah pengujian 3 berhasil, selanjutnya menggunakan PWM.

Dari hasil pengujian 3, buat subrutin atau prosedur baru dengan nama ROBOT(unsigned char
gerak) yang isinya hanya mengatur pergerakan mobil robot, jangan lupa bahasa C adalah case
sensitive yaitu huruf besar dan huruf kecil dibedakan, manfaatkan hal ini untuk membedakan
antara variabel dengan judul prosedur atau hal lainnya. Selain itu penggunaan type variabel juga
harus diperhatikan yaitu kapan menggunakan unsigned char, signed char, unsigned int, signed
int, dll, karena hal ini berpengaruh pada penggunaan memori AVR yang terbatas, berbeda pada
komputer yang menggunakan hardisk dan ram.
Mengapa unsigned char ?
signed char memiliki nilai -128 hingga 127
Unsigned char memiliki nilai 0 hingga 255
signed int memiliki nilai -32768 hingga 32767
Unsigned int memiliki nilai 0 hingga 65535
lebih jelas lihat help -> C Compiler Reference -> Data Type
Data yang dibutuhkan hanya :

- Stop dengan nilai 0


- Maju dengan nilai 1
- Mundur dengan nilai 2
- Bkanan dengan nilai 3
- Bkiri dengan nilai 4
- Rkanan dengan nilai 5
- Rkiri dengan nilai 6

Berarti data yang diperlukan hanya 7 data, jika unsigned char bahkan tersisa 256 - 7 = 249 data
yang berarti lebih dari cukup. Pada mikrokontroler nilai 0 - 255 berarti menggunakan 1 buah
register saja (1 byte memori).
.... Lanjut ....
Buat project baru dan lakukan konfigurasi seperti gambar 4 pada Code WizardAVR yaitu
menggunakan timer 1, dan atur konfigurasi Port D seperti pada Gambar 2. Berdasarkan
schematik Gambar 1 serta pengujian 2 dan pengujian 3 maka PD.4 atau OC1B adalah pin PWM
yang akan mengatur kecepatan motor kanan sedangkan PD.5 atau OC1A adalah pin yang
mengatur kecepatan motor kiri.
Lihat kembali Gambar 4.
Saat ROBOT(Stop) tidak diberikan nilai PWM karena berapapun nilai PWM yang diberikan
tetap saja kedua motor DC akan berhenti. Mobil robot akan berhenti selama 2 detik kemudian
maju 3 detik dengan PWM 255 (kecepatan penuh) lalu maju pelan 3 detik dengan nilai PWM
150. Tanpa berhenti mobil Robot akan mundur pelan 3 detik dangan nilai PWM 150 yang
kemudian menjadi mudur cepat dengan nilai PWM 255 selama 3 detik. Untuk ROBOT(Bkanan)
atau robot belok kanan berapapun nilai PWM yang diberikan pada motor kanan tidak
berpengaruh karena motor kanan berhenti dan motor kiri yang bergerak begitu pula sebaliknya
pada ROBOT(Bkiri) atau robot belok kiri . Untuk ROBOT(Rkanan) dan ROBOT(Rkiri) nilai
PWM saya buat berbeda antara kanan dan kiri agar terlihat pergeseran karena perbedaan nilai
PWM.
Jika anda ingin menguji 2 buah motor DC yang bertipe sama yaitu apakah motor DC memiliki
RPM yang sama dan simetris, begini caranya :

(dengan catatan poros atau as pada kedua roda mobil robot sejajar dan segaris).
- Ukur jarak maksimum antar roda kanan dan roda kiri pada mobil robot.
- Gunakan alas atau lantai yang tidak kasar (lantai keramik) atau kertas karton putih.
- Gambar lingkaran dengan diameter jarak maksimum antar roda.
- Program mobil robot untuk berotasi ke kanan (atau kekiri) dengan kedua PWM bernilai 255.
- Tempatkan mobil robot hingga kedua roda tepat berada didalam lingkaran dan jalankan.
Jika semakin lama mobil robot keluar dari lingkaran maka kedua motor DC tidak simetris.
Apabila anda kesulitan mendapatkan motor DC yang simetris maka usahakan agar perbedaannya
tidak besar karena bisa disesuaikan pada algoritma pemrogramannya.
Pada pengujian 4 mungkin anda mengalami hal seperti ini :

Mobil robot berjalan-jalan Maju...Maju...Mundur...Mundur...Stop.... atau Maju...Maju...Stop...


atau Maju...Stop... atau Maju...Maju...Mundur...Stop... atau banyak variasi lain.
Mengapa begitu ??
Mungkin anda akan berpikir jika logika pemrogramannya yang salah, kemudian diutak-atik
masih sama dan terus-menerus. Coba anda lihat listingnya lagi, perintah stop kemudian maju
adalah perintah awal yang diberikan pada mobil robot. Hal ini berarti program tidak sampai
selesai dieksekusi, jalan sedikit kemudian kembali ke awal yang berarti mikrokontroler selalu
Reset.
Penyebabnya adalah Mikrokontroler kekurangan tegangan atau arus karena digunakan motor
DC, apalagi jika motor DC berubah kondisi dari berputar ke kanan kemudian berputar ke kiri
dengan nilai PWM 255 (kecepatan maksimum). Oleh sebab itu Power Supply yang diberikan
untuk mikrokontroler harus berbeda dengan yang diberikan untuk motor DC.
Misal mikrokontroler baterai kotak 9 Vdc dan motor DC aki kering 24 Vdc atau mikrokontroler
baterai kotak 9 Vdc 1 buah dan motor DC baterai kotak 9 Vdc 3 buah jadi ada 4 baterai kotak.
By :
PayzZzz Jam 02:
14 Topik :
Driver Motor, Robot-Coding, Robot-Wall Following

Mobil Robot & Sensor PING


To PayZTronics Store
Pada mobil robot ini sensor yang akan digunakan adalah sensor Ultrasonik.
Saya sudah biasa menggunakan sensor PING karena ukurannya yang ideal dan memiliki akurasi
yang cukup baik. Saya tidak akan berkomentar banyak tentang Sensor Ultrasonik, saya hanya
akan membahas hal-hal perlu yang berkaitan dengan pembuatan mobil robot saja.

Silahkan lihat Data Sheet PING atau Gambar 1.

Dari Gambar 1 seharusnya sudah dapat memprogram untuk mengakses PING. Yang perlu
diperhatikan adalah sinyal dan waktu yang dibutuhkan pada SIG pin (pin Sinyal).
Langkah-langkah operasi Sensor PING :

- Kondisi awal SIG pin adalah logika 0 minimal 100 us (tidak tercantum).
- Mengaktifkan PING agar mulai pengukuran dengan memberikan logika 1 selama 2 uS - 5 uS
saya gunakan 5 uS (optional).
- Tunggu hingga 750 uS (Tholdoff) yaitu saat PING mulai memancarkan sinyal ultrasonik.
- Persiapkan SIG pin sebagai input yang akan membaca jarak dengan cara membuat SIG pin
berlogika 1, Apabila SIG pin berubah kondisi dari logika 1 menjadi logika 0 maka itulah jarak
terukur.
- Jika tidak terdapat dinding atau tidak ada jarak terukur maka waktu tin-max bernilai 18,5 ms
berarti jarak terukur adalah 300 cm.
Ada 2 cara memprogram Sensor PING, yaitu menggunakan Interupsi Timer dan Scanning.
Mana yang terbaik ? Tergantung dari penggunaannya.
Jika anda menggunakan Sensor PING untuk mengukur jarak dengan tingkat presisi hingga
milimeter maka gunakan interupsi timer. Apabila anda menggunakan banyak sensor PING
dengan tingkat presisi hingga centimeter maka gunakan Scanning.
Saya menggunakan scanning dan menggunakan interupsi timer tidak saya jelaskan.
Sebelum memprogram dengan sistem Scanning maka harus diketahui terlebih dahulu nilai
tundaan yang digunakan untuk menscan setiap sensor PING. Kecepatan sinyal suara di udara
adalah
344 M/S = 34400 cm/S = 34400 cm/1000000 uS = 1 cm/29,069767441 uS.
Karena Sensor PING menggunakan pantulan maka untuk mengukur jarak 1 cm sama
dengan 2t sehingga
1 cm = 2 x 29,069767441 uS = 58, 139534 uS ~ 58 uS.
Berarti setiap tertunda 58 uS bertambah jarak sebesar 1 cm.
Mobil robot yang baik adalah mobil robot yang selalu memberikan informasi pada programer
tentang apa yang terjadi didalam mikrokontroler dalam hal ini memberikan informasi berupa
jarak yang diukur oleh sensor PING, oleh sebab itu dibutuhkan Display tambahan berupa LCD
16x2. Programer sering kesulitan mengetahui kesalahan yang terjadi pada programnya jika tidak
terdapat umpan balik yang informatif.
Pada mobil robot yang saya buat tidak menggunakan LCD 16x2 sebagai umpan balik (lagi kere),
mungkin anda juga tidak ingin menggunakan LCD tambahan. Bagaimana caranya

meminimalkan kesalahan pada pengukuran jarak sensor PING ? Akan saya bahas selanjutnya
pada gambar 2.

Listing pada Gambar 2 adalah mengukur jarak dengan sensor PING dan menampilkannya pada
komputer melalui serial port (COM), lebih informatif dan jelas apalagi jika anda menggunakan
sensor PING yang banyak, sebab tampilan LCD memiliki ruang yang terbatas dan programer
tambah pusing lihat data yang berubah dengan cepat di ruang yang sempit. Mencatat saja tidak
sempat. Jika anda menggunakan modul Mikrokontroler AVR yang dibeli jadi, perhatikan port Rx
dan port TX atau PD.0 dan PD.1 apakah telah sesuai ?
Buat project baru, pada CodeWizzardAVR atur konfigurasi serial seperti Gambar 2 selain itu atur
seluruh Port B menjadi Output, mengapa saya memilih PortB, Hal tersebut saya bahas pada topik
Mobil Robot & AVR. Sensor PING depan di PB.0, sensor PING kanan PB.1, dan sensor PING
kiri PB.2.
Misal jarak terukur depan 20, kanan 15, dan kiri 30, maka tampilan pada komputer adalah :

Cek PING
Depan
20
Kanan
15
Kiri
30
Jika berhasil ditampilkan berarti mengakses sensor PING sukses.
Jarak terukur maksimum dibatasi hanya sampai 99 cm, hal ini karena mobil robot akan meraba
salah satu dinding dengan jarak referensi 20 cm dan maksimum 30 cm sehingga lebih dari 30 cm
dianggap jauh tak terhingga. Apabila ingin dibatasi hingga 50 cm saja lebih baik lagi karena
mengurangi waktu scanning sensor PING yang dibutuhkan.
Coba anda membaca jarak dinding diatas 45 cm akan terjadi kesalahan pembacaan jarak, misal
jarak sesungguhnya 55 cm maka jarak terukur kurang dari 55 cm, hal ini adalah kelemahan
sistem scanning. Telah didefinisikan bahwa 58 uS = 1 cm padahal jika anda menggunakan
mikrokontroler AT89S51 dengan kristal 12 MHz maka 1 siklus mesin (1 cycle) = 1 uS berarti 58
siklus = 58 uS = 1 cm. Jika menggunakan bahasa Assembler, banyaknya siklus bisa dihitung
(agak ribet tapi) sehingga bisa meminimal kesalahan, akan tetapi bahasa C jika di ubah ke bahasa
mesin akan menjadi tambah panjang bahkan lebih panjang dibanding jika anda menulis sendiri
dalam bahasa assembler apalagi dalam proses looping, hal ini menyebabkan waktu pengukuran
tidak tepat 58 uS.
Selain itu pada Gambar 2 digunakan 3 sensor PING, jika lebih banyak lagi bisa mengurangi
tingkat akurasinya. Akan tetapi untuk jarak tertentu pada sistem scanning masih bisa mendekati
akurasi yang baik. Saya mencoba, menampilkannya, dan mendapatkan nilai 4 cm - 44 cm.
Hal penting lainnya pada pengujian sensor PING adalah mengatur sudut kemiringan sensor
PING terhadap dinding yang akan diukur. Oleh sebab itu pada pengujian ini saya menyarankan
anda membuat sensor PING dapat diubah-ubah sudutnya secara fleksibel dengan membuat
pondasi sensor PING dapat diputar-putar.
Cara pengujian sensor PING dari Gambar 2 untuk sensor PING samping (sensor PING depan
tidak perlu diubah sudutnya) yaitu :

- Pasang sensor PING pada mobil robot dan longgarkan bautnya agar bisa diputar.
- Posisikan mobil robot sejajar dengan dinding samping dengan jarak 20 cm.
- Sensor PING samping dibuat tegak lurus terhadap dinding.
- Setelah di program dan dijalankan, putar secara perlahan sensor PING setiap 1 detik sambil
memperhatikan tampilan data pada komputer.
- Jika tampilan pada komputer 20 cm maka terus putar sensor PING hingga nilai tersebut
berubah menjadi >= 20 cm.
- Apabila jarak terukur >= 20 cm maka itu adalah sudut maksimum sensor PING yang
diperbolehkan untuk menghindari kesalahan pembacaan jarak.
Sudut sensor PING terhadap dinding harus diperhatikan, apalagi jika anda hanya menggunakan
sedikit sensor PING.
Oh ya, cukup dengan hanya 1 sensor PING saja, mobil robot dapat berjalan secara halus dan
bagus dengan meraba dinding selama tidak ada dinding didepan mobil robot.
Mobil robot yang saya paparkan disini minimal sensor PING adalah 2, tetapi jika anda kesulitan

mendapatkan sensor PING cukup 1 saja.


Ada hal lain yang penting mengenai sensor PING.
Sensor PING membutuhkan supply 5 Vdc dengan arus 30 mA - 35 mA, tetapi saat sinyal suara
ultrasonik dipancarkan dibutuhkan arus yang lebih besar (kurang tahu). Jika arus ini tidak
terpenuhi akan mempengaruhi pembacaan jarak pada sensor PING. Untuk mengetahui apakah
PING kekurangan supply yaitu dengan melihat LED indikatornya, jika cahayanya redup atau
kurang terang dibanding sebelumnya maka sensor PING kekurangan supply. Oleh sebab itu
karena alasan ini dan alasan lain, scanning setiap sensor PING jangan terlalu cepat, misalkan
anda membaca jarak mobil robot terhadap dinding setiap 50 mS atau 100 mS.
By :
PayzZzz Jam 01:
55 Topik :
Robot-Coding, Robot-Wall Following, Sensor-sensor

Mobil Robot & AVR ATmega8535


To PayZTronics Store
Banyak jenis dan tipe mikrokontroler, semua disesuaikan dengan kebutuhan perancangan.
Jika dulu anda menguasai MCS51 dengan bahasa assembler atau bahkan bahasa C dengan keil
C, maka saya sarankan untuk mempelajari jenis mikrokontroler tipe lain. Cari tipe
mikrokontroler yang memiliki fitur lengkap dan fleksibilitas tinggi. Jika anda menguasai DSP
(Digital Signal Processing) maka gunakan mikroprocessor DSP, menguasai display dan Grafis
maka gunakan mikroprocessor grafis, banyak lagi (apa yaa ?).
Saat ini anda akan merancang mobil robot yang menggunakan PWM dan sensor PING saja,
anggap anda punya angan-angan mobil robotnya nanti ditambah fungsi mendeteksi perbedaan
warna, mendeteksi perubahan suhu, menggunakan sensor inframerah, dapat dikendalikan dengan
JoyStick analog, mendeteksi cahaya lilin, dll, maka penggunaan setiap pin pada mikrokontroler
haruslah seefisien mungkin, sebab jika tidak mobil robot akan dibongkar kembali karena pin
mikrokontroler yang dibutuhkan atau penting telah terpakai. Apabila anda menggunakan kabel
jumper yaa lain lagi, tapi kabel jumper yang banyak membuat bingung,
ada kerusakan akan susah diperbaiki, dan mobil robot seperti rongsokan (katanya si seni).
Prioritas pin setiap mikrokontroler disusun berdasarkan fitur yang dimiliki oleh pin-pin
mikrokontroler. Disini agar lebih mudah dipelajari saya gunakan AVR ATmega8535 (bisanya ini
si). Dengan fitur yang cukup lengkap untuk diaplikasikan pada mobil robot dan rangkaian
kendali. Lihat Data Sheet ATmega8535.

Prioritas yang dapat disusun dari gambar 1 antara lain :

- Fungsi Input dan Output


- Fungsi ADC

- Fungsi USART
- Fungsi PWM
- Fungsi Interupsi eksternal
- Fungsi komparator analog
- Fungsi Serial Interface I2C
- ...
Gunakan terlebih dahulu pin-pin yang tidak memiliki fungsi khusus atau banyak jumlahnya atau
pin itu harus digunakan karena wajib.
- PD.0 dan PD.1 gunakan untuk komunikasi serial USART.
- PD.2 dan PD.3 gunakan sebagai interupsi eksternal.
- PD.4 dan PD.5 gunakan sebagai PWM pengatur kecepatan motor DC.
- PB.6 PB.7 PB.8 PC.2 PC.3 PC.4 PC.5 gunakan sebagai Input dan Output biasa.
- PC.0 dan PC.1 gunakan sebagai interface I2C, misal anda menggunakan sensor kelembaban
dengan interface I2C atau menggunakan Serial RTC I2C atau Serial EEPROM I2C tambahan.
- PB.0 - PB.7 gunakan sebagai ADC 10 bit akan tetapi jika terpaksa dapat digunakan beberapa
pin.
- Pin-pin lain yang anda tidak ketahui fungsinya dapat anda gunakan sesuai keinginan apabila
rancangan mobil robot anda sudah Final.
Saya menggunakan PortB untuk mengakses sensor PING, dan seluruh PortD untuk mengakses
Motor DC (kecuali PD.2 dan PD.3) alasannya :

Untuk PortD karena saya menggunakan kabel pelangi 10 baris dan jika PD.0 dan PD.1 tidak saya
gunakan maka harus mengambil dari port lain yang berarti ada jumper yang tidak perlu
sedangkan nantinya pin interupsi PD.2 dan PD.3 nanti akan dipakai sebagai interupsi eksternal,
selain itu mobil robot bergerak terus dan tidak perlu komunikasi serial dengan komputer.
Untuk PortB karenaaaaa...... udah terlanjur si. Seharusnya PortC dulu yang saya gunakan sampai
habis, tetapi karena tidak masalah ya lanjut aja.
Alasan anda memilih sebuah port terserah anda yang jelas sesuaikan dengan fungsi-fungsi yang
anda ingin aplikasikan.
Mungkin cukup ini saja yang dibahas pada ROBOT dan AVR, untuk mikrokontroler tipe lain
tidak saya bahas dan maaf karena tidak bisa.
By :
PayzZzz Jam 01:
48 Topik :
Robot-Wall Following

Senin, 06 April 2009


Mekanik Wall Tracing
To PayZTronics Store
Perancangan mekanik Mobil robot bisa dibilang gampang-gampang susah.
Tentu saja, karena bidang yang saya fokus adalah Elektro dan tidak maksimal pada mekanik, dan
jika saya melihat teman-teman dari teknik Mesin membuat mekaniknya, seluruh jempol yang ada
saya acungkan. (Kalo bisa kelingking menyamar jadi jempol.)
Jika anda ingin membuat mekanik robot yang kompleks atau fungsi mekanik robot yang anda
yakin bisa buat 70 % sebaiknya serahkan pada ahlinya. Pasti banyak revisinya, apalagi jika
membutuhkan presisi tinggi dan biaya tinggi.
Untuk Robot yang akan saya paparkan pada blog ini adalah mobil robot yang bisa dibuat dengan
selembar acrilic atau bahan logam dengan mekanik sederhana sehingga dapat dibuat sendiri atau
dibeli di toko mainan.
Jika anda baru pertama kali membuat mobil robot, anda yang memprogram, dan hampir semua
anda yg kerjakan, maka saya hanya bisa menyarankan untuk motor DC tegangan maksimum 24
Vdc yang torsi tinggi dengan kecepatan yang cukup (optional).
Tujuannya agar logika program pada mobil robot bisa terlihat dan anda paham kesalahan pada
program anda nantinya. Hal ini berlaku hampir pada semua program yang anda buat dan tidak
hanya pada pergerakan mobil robot.

Untuk mekanik saya tidak bisa koment banyak, yang jelas bisa mengetahui teorinya dan
rancangan dasar mekanik sudah cukup. Selanjutnya serahkan pada ahlinya dan sebaiknya anda
ahli dibidang anda sendiri dalam hal ini Elektronika Digital (Robotika).

@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

Anda mungkin juga menyukai