Lewati ke konten utama
seratusribu.com
Semua artikel
Robotika

Cara Membuat Robot Penghindar Halangan dengan Sensor Ultrasonik HC-SR04

Oleh Anang H. Darmawan

3 menit baca
Laporkan
Cara Membuat Robot Penghindar Halangan dengan Sensor Ultrasonik HC-SR04

Foto: Palyam Dileep / Unsplash

Robot penghindar halangan sering jadi proyek robotika pertama, dan wajar: komponennya murah, logikanya bisa dipahami dalam satu sore. Tapi hampir semua yang pertama kali membuatnya bertemu momen yang sama. Robot melaju pede ke arah dinding, sensor seolah tidak melihat apa-apa, lalu tabrakan. Penyebabnya hampir selalu bisa dijelaskan dari cara kerja HC-SR04.

Cara HC-SR04 mengukur jarak

HC-SR04 memancarkan gelombang ultrasonik 40 kHz dari satu transducer, lalu menunggu pantulannya di transducer yang lain. Arduino memicu pin TRIG dengan pulsa 10 mikrodetik, lalu mengukur berapa lama pin ECHO bernilai HIGH dengan pulseIn().

Rumusnya: jarak (cm) = durasi (mikrodetik) × 0,0343 / 2. Angka 0,0343 adalah kecepatan suara di udara, sekitar 343 meter per detik, yang diubah ke cm per mikrodetik. Dibagi 2 karena suara berjalan pergi dan pulang. Contohnya, durasi 1.166 mikrodetik berarti sekitar 20 cm.

Beri timeout di pulseIn, misalnya pulseIn(ECHO, HIGH, 30000). Tanpa itu, saat pantulan tidak kembali, Arduino menunggu sampai timeout bawaan satu detik habis, dan selama itu robot terus melaju tanpa keputusan baru.

Sudut buta dan dinding miring

Datasheet HC-SR04 menyebut sudut ukur sekitar 15 derajat dan jangkauan 2 sampai 400 cm. Sudut sempit itu artinya sensor hanya melihat kerucut kecil di depannya. Kaki kursi yang ramping atau sudut meja yang sedikit di samping jalur tidak terdeteksi, padahal roda robot akan menabraknya.

Dinding miring punya masalah lain. Gelombang suara memantul seperti bola biliar. Kalau dinding tidak tegak lurus terhadap sensor, pantulannya terbuang ke samping dan tidak kembali ke receiver. Sensor membaca jarak sangat jauh atau timeout, dan robot mengira jalan di depannya kosong. Bahan lembut seperti sofa, gorden, atau boneka juga menyerap suara dengan hasil serupa.

Solusinya gabungan beberapa hal. Pasang sensor setinggi bagian robot yang paling menonjol. Anggap pembacaan timeout sebagai tanda waspada, terutama kalau pembacaan sebelumnya sudah dekat. Pertimbangkan dua sensor yang menghadap sedikit ke kiri dan kanan, atau satu sensor di atas servo yang bisa menoleh.

Logika belok yang sederhana tapi efektif

Versi paling dasar: maju terus, dan kalau jarak di bawah 20 cm, berhenti, mundur sebentar, lalu belok. Versi ini sering terjebak di pojok karena selalu belok ke arah yang sama.

Versi yang lebih cerdas memakai servo SG90 untuk menoleh. Saat ada halangan, robot berhenti, servo menoleh ke kiri dan ke kanan, sensor mengukur dua arah itu, lalu robot belok ke sisi yang lebih lega. Kalau bingung nilai pulsa untuk sudut tertentu, hitung dulu di konverter sudut servo PWM.

Atur ambang jarak sesuai kecepatan. Robot yang melaju kencang butuh jarak rem lebih panjang, jadi 20 cm yang pas di kecepatan rendah bisa terlalu mepet di kecepatan penuh.

Driver motor L298N dan tegangan yang hilang

L298N adalah driver motor yang paling umum di kit robot. Pin IN1 sampai IN4 mengatur arah dua motor, sedangkan pin ENA dan ENB menerima PWM untuk mengatur kecepatan. Lepas jumper di ENA dan ENB kalau ingin mengatur kecepatan dari Arduino, karena jumper itu membuat motor selalu jalan penuh.

Yang sering tidak disadari, L298N kehilangan tegangan sekitar 2 volt di dalam chipnya, bisa lebih saat arus besar. Baterai 7,4V hanya menyisakan sekitar 5V di motor. Kalau robot terasa lemah atau belok tidak bertenaga, ini penyebab yang umum. Sambungkan juga GND baterai motor dengan GND Arduino, karena tanpa itu sinyal kontrol tidak punya acuan yang sama.

Mulai dari kit yang sudah terbukti jalan

Robot penghindar halangan memakai HC-SR04 untuk mengukur jarak dan berbelok sebelum menabrak, dengan logika yang sengaja dibuat sederhana supaya mudah ditelusuri dan dimodifikasi. Paketnya berisi kode lengkap, skema wiring sensor dan driver motor, serta penjelasan konsep pengukuran jarak dan pengambilan keputusan arah, seharga Rp125.000.

Setelah robotmu bisa menghindar sendiri, langkah berikutnya yang umum adalah kendali jarak jauh. Mobil RC Bluetooth (kontrol HP) menambahkan modul Bluetooth ke driver motor dan dikendalikan dari aplikasi Android dengan joystick di layar (Rp175.000).

Uji sensor sebelum memasang motor. Taruh HC-SR04 di breadboard, tampilkan jarak di Serial Monitor, lalu arahkan ke dinding lurus, dinding miring 45 derajat, dan bantal. Kamu akan melihat sendiri kenapa robotmu nanti butuh logika cadangan.