Wednesday, 30 November 2016

Robot Pengikut Dinding Berbasis ATmega16


Assalammu'alaikum...
Hai teman elektro. gimana kabarnya hari ini ? sehat ? alhamdulillah...

    Kali ini saya akan post informasi tentang robot pengikut dinding dengan atmega16. Robot pengikut atau wall follower adalah sebuah robot yang telah diprogram untuk menelusuri dinding atau labirin. Biasanya robot ini digunakan pada konter robot indonesia (KRI) pada divisi pemadam api beroda (KRPAI Beroda) untuk mencari titik api pada suatu labirin. 
    Untuk mendeteksi jarak antara robot dan dinding, digunakan sensor ultrasonik. Banyak tipe sensor ultasonik dipasaran. Tapi disini saya menggunakan sensor ultrasonik HC-SR04 sebagai sistem navigas robot. Karena ini hanya prototype, maka saya gunakan satu sensor yang terletak pada sisi kanan robot. Baiklah langsung saja dibawah ini adalah blok diagram dari robot yang saya buat.

BLOK DIAGRAM & PENJELASAN


Keterangan
   ·         Input dari robot ini berupa sensor ultrasonik HC-SR04 dengan range jarak >= 3m. Sensor ini terletak pada bagian sisi kanan robot.
   ·         Mikrokontroller ATmega16 sebagai device pemroses I/O.
   ·         Driver motor digunakan untuk mendriver atau memberi sinyal dari mikrokontroller ke motor DC Driver motor yang digunakan sudah dalam bentuk IC yaitu L293D.
   ·         Outputnya menggunakan motor DC 12V 12000 RPM dengan system gearbox.
   ·         Baterai 12V digunakan untuk mensuplai kerja system robot.
   ·         IC 7805 digunakan untuk menkonversi tegangan 12V dari baterai menjadi 5V yang kemudian di arahkan ke mikrokontroller dan I/O.

Prinsip kerja Robot Wall Follower
Algoritma jalan robot:
   ·         Jika robot berjarak  sama dengan 30 cm atau lebih kecil atau sam dengan 25 cm, maka motor kanan akan berputar searah jarum jam dan motor kiri berputar berlawanan arah jarum jam dengan kecepatan yang sama. Dalam kondisi ini robot bergerak maju.
   ·         Jika tidak terdapat objek atau halangan lebih dari 30 cm, maka motor kiri akan berputar berlawan arah jarum jam dengan pwm 190 dan motor kanan berhenti. Dalam kondisi ini robot belok kanan.


RANGKAIAN MINSIS





Penjelasan rangkaian minsis:
   1.      PORTA sebagai port input yang dihubungkan pada sensor ultrasonic HC-SR05.
   2.      PORTB sebagai port untuk downloader dan fungsi lainnya untuk lcd 16x2.
   3.      PORTD sebagai port output yang dihubungkan pada driver motor.
   4.      Kemudian terdapat juga rangkaian regulator 5V yang berfungsi untuk menurunkan tegangan 12V dari baterai menjadi 5V yang dibutuhkan untuk mengaktifkan mikrokontroller. Rangkaian terdapat beberapa komponen yaitu, switch on/off, diode 1N4002, elco 100uf/16v, IC 7805, resistor 220 Ohm, dan led.
   5.      Pada bagian reset terdapat beberapa komponen yaitu, push button, resistor 1k, dan elco 100uf/16.


RANGKAIAN DRIVER MOTOR L293D

Penjelasan rangkaian driver motor L293D:
   1.      Komponen yang digunakan sebagai driver motor adalah L293D. Komponen ini dalam bentuk IC yang lebih mudah dalam instalasinya. Di IC ini terdapat 1A, 2A, 3A, 4A,  1-2EN, 3-4EN. 1A, 2A, 3A, 4A dihubungkan ke PORTD.1, PORTD.2, PORTD.3, PORTD.4 ATmega16 sebagai output dan 1-2EN, 3-4EN dihubungkan ke PORTD.5, PORTD.6 yang digunakan untuk mengatur kecepatan putaran motor.
   2.      Diode 1N4004 digunakan untuk pengaman untuk mikrokontroller jika ada ada tegangan balik dari motor.


FLOWCHART

Keterangan:
   1.      Void kanan(){…} berisi script program untuk mendeteksi jarak.
   2.      Void maju(){…} berisi script program untuk gerak robot maju.
   3.      Void nganan(){…} berisi program untuk robot belok kanan

Penjelasan:
   1.      Memulai program robot wall follower
   2.      Scanning data (dalam bentuk jarak), keadaan awal robot maju.
   3.      Jika sensor ultrasonik mendeteksi ada dinding pada jarak sama dengan 30cm dan lebih kecil atau sama dengan 25cm, maka robot akan bergerak maju mengikuti dindig.
   4.      Jika sensor ultrasonik tidak mendeteksi adanya dinding lebih dari 30cm, maka robot akan belok kanan dengan ketentuan (motor kanan berhenti dan motor kiri berputar berlawanan arah jarum jam).
   5.      Selesai.

Video :





untuk listing program dapat diunduh disini



Mengakses LCD 16x2 dengan Arduino

    Pada postingan sebelumnya kita sudah membahas tentang mengakses lcd 16x2 dengan atmega16. Kali ini saya akan berbagi tutorial cara menga...