RADAR PEMETAAN MANDIRI BERBASIS RASPBERRY PI, HC-SR04, DAN OPENCV
RADAR PEMETAAN
MANDIRI BERBASIS RASPBERRY PI, HC-SR04, DAN OPENCV
KELAS RE3C
KELOMPOK 5 SISTEM TERBENAM
Danu Prabowo¹, Gusti Muhammad Hairul A.², Prima Aji
Setyawan³, Wahyu Fradika⁴
Program Studi Teknologi Rekayasa Elektronika Jurusan
Teknik Elektro Politeknik Negeri Semarang 2025/2026 Jl. Prof.
Soedarto, Tembalang, Kota
Semarang, Jawa Tengah 50275
ABSTRAK
Perkembangan teknologi robotika
dan sistem terbenam mendorong kebutuhan akan sistem pemetaan lingkungan yang
mampu bekerja secara real-time untuk mendukung navigasi otomatis dan
menghindari tabrakan. Pada penelitian ini dirancang sebuah sistem radar pemetaan
mandiri berbasis Raspberry Pi yang mengintegrasikan sensor ultrasonik HC-SR04,
Raspberry Pi Camera, motor DC, dan pustaka OpenCV. Sensor ultrasonik digunakan
untuk mengukur jarak objek di sekitar robot, sedangkan motor DC berfungsi
memutar sensor secara bertahap hingga 360° sehingga diperoleh data lingkungan
dari berbagai arah. Raspberry Pi bertugas mengolah seluruh data sensor,
memproses citra kamera, serta menampilkan hasil pemetaan melalui antarmuka web
secara real-time. Hasil implementasi menunjukkan bahwa sistem mampu mendeteksi
objek di sekitar robot, menampilkan visualisasi peta radar, serta memberikan
informasi visual melalui kamera dengan baik. Sistem yang dikembangkan memiliki
potensi untuk diterapkan pada robot bergerak sebagai dasar pengembangan sistem
navigasi dan pemetaan lingkungan secara mandiri.
Kata Kunci:
Raspberry Pi, HC-SR04, OpenCV, Radar Mapping, Robotika, Sistem Terbenam.
I. PENDAHULUAN
A. Latar
Belakang
Perkembangan teknologi robotika
telah meningkatkan kebutuhan akan sistem yang mampu mengenali kondisi
lingkungan secara otomatis. Salah satu kemampuan penting yang harus dimiliki
robot adalah mendeteksi keberadaan objek di sekitarnya sehingga robot dapat
melakukan navigasi dengan aman dan menghindari terjadinya tabrakan. Untuk
memenuhi kebutuhan tersebut diperlukan sistem pemetaan lingkungan yang mampu
bekerja secara real-time dengan tingkat akurasi yang baik.
Salah satu pendekatan yang banyak
digunakan adalah memanfaatkan sensor ultrasonik sebagai pendeteksi jarak yang
dipadukan dengan sistem pemrosesan berbasis Raspberry Pi. Sensor ultrasonik
HC-SR04 mampu mengukur jarak objek melalui pantulan gelombang ultrasonik,
sedangkan Raspberry Pi berfungsi sebagai pusat pengendali yang mengolah data
hasil pengukuran menjadi informasi yang mudah dipahami pengguna. Selain itu,
penggunaan Raspberry Pi Camera memungkinkan sistem memberikan informasi visual
secara langsung sehingga proses pemantauan lingkungan menjadi lebih lengkap.
Pada proyek ini dikembangkan
sistem radar pemetaan mandiri yang mengintegrasikan Raspberry Pi, sensor
ultrasonik HC-SR04, motor DC, dan OpenCV. Motor DC digunakan untuk memutar
sensor secara bertahap hingga membentuk pemindaian 360°, sedangkan OpenCV dimanfaatkan
untuk membantu proses visualisasi hasil pemetaan. Seluruh data hasil pengukuran
dan tampilan kamera ditampilkan melalui dashboard berbasis web sehingga
pengguna dapat memantau kondisi lingkungan secara real-time. Sistem ini
diharapkan dapat menjadi dasar pengembangan robot navigasi maupun sistem
pemetaan lingkungan pada berbagai aplikasi robotika.
B.
Rumusan Masalah
- Bagaimana merancang sistem radar pemetaan berbasis
Raspberry Pi yang mampu bekerja secara real-time?
- Bagaimana mengintegrasikan sensor ultrasonik
HC-SR04, Raspberry Pi Camera, dan motor DC dalam satu sistem pemetaan?
- Bagaimana menampilkan hasil pemetaan lingkungan dan
monitoring visual melalui dashboard berbasis web?
- Sejauh mana sistem mampu mendeteksi objek di sekitar
robot menggunakan metode pemindaian 360°?
C.
Tujuan
- Merancang
sistem radar pemetaan berbasis Raspberry Pi.
- Mengintegrasikan sensor HC-SR04, Raspberry Pi
Camera, dan motor DC dalam satu sistem.
- Menampilkan
hasil pemetaan dan monitoring visual secara real-time melalui dashboard
web.
- Menghasilkan sistem yang mampu melakukan pemindaian
lingkungan 360° sebagai dasar navigasi robot.
II. METODOLOGI
Metode yang digunakan dalam
pembuatan sistem ini meliputi tahap perancangan perangkat keras, perancangan
perangkat lunak, integrasi sistem, serta pengujian. Pada tahap perancangan
perangkat keras dilakukan pemilihan komponen utama yang terdiri atas Raspberry
Pi sebagai pengendali sistem, sensor ultrasonik HC-SR04 sebagai pendeteksi
jarak, Raspberry Pi Camera sebagai perangkat akuisisi citra, motor DC sebagai
penggerak sensor untuk melakukan pemindaian, serta driver motor dan catu daya
sebagai pendukung sistem. Selanjutnya dilakukan perancangan perangkat lunak
menggunakan bahasa pemrograman Python dengan bantuan pustaka OpenCV untuk
pengolahan citra dan Flask sebagai web server. Program dirancang untuk membaca
data jarak dari sensor ultrasonik, mengendalikan putaran motor DC, mengambil
gambar menggunakan kamera, kemudian mengirimkan seluruh informasi tersebut ke
halaman web sehingga pengguna dapat memantau kondisi lingkungan secara
real-time.
Tahap berikutnya adalah integrasi
seluruh perangkat keras dan perangkat lunak menjadi satu sistem yang saling
berkomunikasi. Raspberry Pi menerima data dari sensor ultrasonik, memproses
hasil pembacaan, mengendalikan arah putaran motor, serta mengaktifkan kamera
ketika diperlukan. Hasil pengukuran jarak dan citra kamera kemudian ditampilkan
melalui dashboard berbasis web yang dapat diakses melalui jaringan lokal.
Setelah sistem berhasil diintegrasikan, dilakukan pengujian untuk mengetahui
kemampuan sensor dalam mendeteksi objek, kestabilan putaran motor selama proses
pemindaian, kualitas tampilan citra kamera, serta respons sistem secara
keseluruhan. Hasil pengujian digunakan sebagai dasar evaluasi terhadap performa
sistem radar pemetaan yang telah dirancang.
III. TINJAUAN
PUSTAKA
A. Raspberry
Pi
Raspberry Pi merupakan komputer
papan tunggal (Single Board Computer atau SBC) yang dikembangkan oleh
Raspberry Pi Foundation. Perangkat ini memiliki ukuran yang ringkas tetapi
mampu menjalankan sistem operasi Linux serta mendukung berbagai bahasa
pemrograman, salah satunya Python. Raspberry Pi dilengkapi dengan General Purpose
Input Output (GPIO) yang memungkinkan perangkat berkomunikasi dengan berbagai
sensor dan aktuator. Pada sistem ini, Raspberry Pi berfungsi sebagai pusat
pengendali yang mengolah data dari sensor HC-SR04, mengendalikan motor DC,
mengambil citra dari Raspberry Pi Camera, serta menampilkan hasil pemantauan
melalui antarmuka web.
B. Sensor
Ultrasonik HC-SR04
Sensor ultrasonik HC-SR04
merupakan sensor yang digunakan untuk mengukur jarak objek menggunakan
gelombang ultrasonik berfrekuensi 40 kHz. Sensor bekerja dengan memancarkan
gelombang ultrasonik melalui pin Trigger, kemudian menerima pantulan
gelombang melalui pin Echo. Selisih waktu antara gelombang yang
dipancarkan dan diterima digunakan untuk menghitung jarak objek. Pada sistem
ini, HC-SR04 berfungsi sebagai sensor utama untuk mendeteksi keberadaan objek
di sekitar robot sehingga dapat digunakan dalam proses pemetaan lingkungan.
C. Raspberry
Pi Camera
Raspberry Pi Camera merupakan
modul kamera yang dirancang khusus untuk Raspberry Pi dan terhubung melalui
antarmuka Camera Serial Interface (CSI). Kamera ini mampu menghasilkan citra
maupun video dengan kualitas tinggi serta dapat diakses langsung menggunakan
bahasa pemrograman Python. Dalam sistem yang dirancang, kamera digunakan untuk
menangkap kondisi lingkungan secara real-time sehingga pengguna tidak hanya
memperoleh data jarak dari sensor ultrasonik, tetapi juga informasi visual dari
area yang dipindai.
D. Motor DC
Motor DC merupakan aktuator yang
mengubah energi listrik menjadi energi mekanik berupa gerak putar. Pada sistem
radar pemetaan, motor DC digunakan untuk memutar sensor ultrasonik secara
bertahap sehingga proses pemindaian dapat dilakukan ke berbagai arah.
Perputaran motor memungkinkan sensor memperoleh data jarak dari beberapa sudut
pengamatan sehingga kondisi lingkungan di sekitar robot dapat dipetakan secara
lebih menyeluruh.
E. OpenCV
Open Source Computer Vision
Library (OpenCV) merupakan pustaka pemrograman yang digunakan untuk pengolahan
citra digital dan visi komputer. OpenCV menyediakan berbagai fungsi untuk
membaca gambar, mengolah video, mendeteksi objek, serta menampilkan hasil
pengolahan secara real-time. Pada sistem ini, OpenCV dimanfaatkan untuk
mengolah citra yang diperoleh dari Raspberry Pi Camera sehingga proses
monitoring menjadi lebih interaktif dan mudah dipahami oleh pengguna.
F. Flask
Flask merupakan framework
berbasis Python yang digunakan untuk membangun aplikasi web dengan ringan dan
sederhana. Flask berfungsi sebagai web server yang menghubungkan data hasil
pembacaan sensor, kamera, dan proses pemetaan dengan halaman dashboard yang
diakses pengguna melalui web browser. Dengan menggunakan Flask, informasi
kondisi lingkungan dapat ditampilkan secara real-time tanpa memerlukan
perangkat lunak tambahan.
G. Diagram
Blok Sistem
Gambar 3.1 Diagram Blok Sistem
Diagram blok sistem menunjukkan
hubungan antar komponen yang digunakan dalam perancangan radar pemetaan.
Raspberry Pi berperan sebagai pengendali utama yang menerima data dari sensor
HC-SR04 dan Raspberry Pi Camera, kemudian mengendalikan motor DC untuk melakukan
pemindaian. Seluruh data diproses menggunakan program Python dan OpenCV sebelum
ditampilkan pada dashboard berbasis web. Diagram blok sistem ditunjukkan pada
Gambar 3.1.
H. Diagram Alir Sistem
Diagram alir sistem menggambarkan
urutan kerja radar pemetaan mulai dari proses inisialisasi Raspberry Pi,
pembacaan sensor ultrasonik, pengambilan citra menggunakan kamera, pengendalian
putaran motor DC, pengolahan data menggunakan OpenCV, hingga penampilan hasil
pemetaan pada dashboard berbasis web. Diagram alir ini menunjukkan alur kerja
sistem secara keseluruhan sehingga memudahkan proses implementasi dan analisis.
J. Program
|
# Mengimpor
pustaka perangkat keras, pengolahan gambar, dan web server import time import math import cv2 import numpy as np import threading import RPi.GPIO as GPIO from flask import Flask,
render_template_string, Response from picamera2 import Picamera2 app = Flask(__name__) # Konfigurasi
pin GPIO untuk sensor jarak ultrasonik dan motor penggerak roda PIN_TRIG = 23 PIN_ECHO = 24 PIN_A1 = 5 PIN_A2 = 6 PIN_B1 = 12 PIN_B2 = 13 GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) GPIO.setup(PIN_TRIG, GPIO.OUT) GPIO.setup(PIN_ECHO, GPIO.IN) GPIO.setup(PIN_A1, GPIO.OUT) GPIO.setup(PIN_A2, GPIO.OUT) GPIO.setup(PIN_B1, GPIO.OUT) GPIO.setup(PIN_B2, GPIO.OUT) # Menyiapkan modul kamera Raspberry Pi
untuk mulai menangkap gambar kamera = Picamera2() kamera.configure(kamera.create_preview_configuration(main={"size":
(320, 240)})) kamera.start() time.sleep(2) ukuran_peta =
500 pusat_x = 250 pusat_y = 250 bingkai_kamera_global
= None bingkai_radar_global
= None # Tata letak
antarmuka web untuk menampilkan video dan peta halaman_html =
""" <!DOCTYPE
html> <html> <head>
<title>Pemetaan Robot</title> </head> <body style="background-color:
#1e1e1e; color: white; font-family: Arial, sans-serif; text-align: center;
margin-top: 20px;">
<h2>Dasbor Navigasi Langsung</h2>
<div style="display: flex; justify-content: center; gap: 20px;
margin-top: 20px;">
<div> <h3>Kamera Depan</h3> <img src="/video"
style="max-width: 320px; border: 2px solid #555; border-radius:
5px;"> </div> <div> <h3>Peta Radar</h3> <img src="/radar"
style="max-width: 320px; border: 2px solid #555; border-radius:
5px;"> </div> </div> </body> </html> """ # Fungsi
menghitung jarak halangan di depan robot menggunakan gelombang suara def
ukur_jarak(): GPIO.output(PIN_TRIG, True) time.sleep(0.00001)
GPIO.output(PIN_TRIG, False)
waktu_mulai = time.time()
waktu_selesai = time.time()
while GPIO.input(PIN_ECHO) == 0:
waktu_mulai = time.time()
while GPIO.input(PIN_ECHO) == 1:
waktu_selesai = time.time()
durasi = waktu_selesai - waktu_mulai
jarak = math.prod([durasi, 17150]) return
round(jarak, 2) # Fungsi
mengendalikan motor agar robot memutar badannya ke kanan def putar_kanan():
GPIO.output(PIN_A1, True)
GPIO.output(PIN_A2, False)
GPIO.output(PIN_B1, False)
GPIO.output(PIN_B2, True) # Fungsi
memutus aliran listrik ke semua roda untuk menghentikan gerakan def berhenti(): GPIO.output(PIN_A1,
False)
GPIO.output(PIN_A2, False)
GPIO.output(PIN_B1, False)
GPIO.output(PIN_B2, False) # Fungsi utama untuk terus memutar robot,
membaca sensor, dan menggambar garis peta def
proses_pemetaan(): global bingkai_kamera_global,
bingkai_radar_global derajat_per_putaran = 15 print("Memulai pemetaan langsung
secara berkelanjutan") while True: sudut_sekarang = 0 peta_visual = np.zeros((ukuran_peta,
ukuran_peta, 3), dtype=np.uint8) while sudut_sekarang < 360: jarak = ukur_jarak() print(f"Sudut
{sudut_sekarang} derajat | Jarak {jarak} cm") jarak_tampil = jarak if jarak_tampil > 250: jarak_tampil = 250 sudut_radian =
math.radians(sudut_sekarang) titik_x = int(pusat_x +
math.prod([jarak_tampil, math.sin(sudut_radian)])) titik_y = int(pusat_y -
math.prod([jarak_tampil, math.cos(sudut_radian)])) cv2.line(peta_visual, (pusat_x,
pusat_y), (titik_x, titik_y), (0, 255, 0), 1) cv2.circle(peta_visual, (titik_x,
titik_y), 4, (0, 0, 255), -1) bingkai_kamera =
kamera.capture_array() bingkai_bgr =
cv2.cvtColor(bingkai_kamera, cv2.COLOR_RGB2BGR) sukses_kam,
buffer_kamera = cv2.imencode('.jpg', bingkai_bgr) if sukses_kam: bingkai_kamera_global =
buffer_kamera.tobytes() sukses_rad, buffer_radar =
cv2.imencode('.jpg', peta_visual) if sukses_rad: bingkai_radar_global =
buffer_radar.tobytes() putar_kanan() time.sleep(0.1) berhenti() time.sleep(0.5) sudut_sekarang +=
derajat_per_putaran print("Satu putaran selesai,
memulai ulang kanvas pemetaan") # Fungsi
mengemas dan mengirimkan aliran data gambar secara terus-menerus ke web def
aliran_kamera(): while True: if bingkai_kamera_global is not None: yield (b'--frame\r\nContent-Type:
image/jpeg\r\n\r\n' + bingkai_kamera_global + b'\r\n') time.sleep(0.1) def
aliran_radar(): while
True:
if bingkai_radar_global is not None:
yield (b'--frame\r\nContent-Type: image/jpeg\r\n\r\n' +
bingkai_radar_global + b'\r\n')
time.sleep(0.1) # Pengaturan
rute server web untuk menangani akses halaman dan siaran langsung @app.route('/') def index():
return render_template_string(halaman_html) @app.route('/video') def video(): return
Response(aliran_kamera(), mimetype='multipart/x-mixed-replace;
boundary=frame') @app.route('/radar') def radar(): return
Response(aliran_radar(), mimetype='multipart/x-mixed-replace;
boundary=frame') # Menjalankan
fungsi pemetaan di latar belakang dan menghidupkan server web if __name__ == '__main__':
try:
thread_robot = threading.Thread(target=proses_pemetaan)
thread_robot.daemon = True
thread_robot.start()
app.run(host='0.0.0.0', port=5000, debug=False, use_reloader=False)
except KeyboardInterrupt:
print("Server dimatikan") finally: kamera.stop() kamera.close()
berhenti()
GPIO.cleanup() |
IV.
HASIL DAN PEMBAHASAN
A. Cara Kerja
Sistem
Sistem diawali dengan proses
inisialisasi Raspberry Pi sebagai pengendali utama yang mengaktifkan seluruh
perangkat keras, meliputi sensor ultrasonik HC-SR04, Raspberry Pi Camera, motor
DC, dan web server Flask. Setelah sistem aktif, sensor HC-SR04 mengukur jarak
objek di sekitarnya dengan memancarkan gelombang ultrasonik dan menerima
pantulannya. Motor DC kemudian memutar sensor secara bertahap sehingga proses
pembacaan jarak dapat dilakukan dari berbagai arah. Pada saat yang sama,
Raspberry Pi Camera menangkap citra lingkungan secara real-time. Seluruh data
yang diperoleh diproses menggunakan program Python dan pustaka OpenCV, kemudian
dikirim ke dashboard berbasis web melalui Flask. Dashboard menampilkan hasil
pembacaan sensor, tampilan kamera, serta informasi kondisi sistem sehingga
pengguna dapat memantau lingkungan secara langsung melalui web browser.
B. Foto Prototype V. Kesimpulan
Radar pemetaan mandiri berbasis
Raspberry Pi, sensor ultrasonik HC-SR04, Raspberry Pi Camera, OpenCV, dan Flask
berhasil dirancang sebagai sistem monitoring lingkungan secara real-time.
Raspberry Pi berfungsi sebagai pusat pengendali yang mengintegrasikan seluruh
komponen sehingga proses pembacaan jarak, pengambilan citra, dan penyajian
informasi dapat berlangsung secara bersamaan. Pemanfaatan dashboard berbasis
web memudahkan pengguna dalam memantau kondisi lingkungan dari perangkat lain
yang berada pada jaringan yang sama. Sistem ini dapat menjadi dasar
pengembangan teknologi navigasi robot, pemetaan lingkungan, serta sistem
monitoring berbasis Internet of Things pada penelitian selanjutnya.
VI. REFERENSI
Adrian, R. (2023). Flask
Documentation (Version 3.0). Pallets
Project. https://flask.palletsprojects.com/
Bradski,
G., & Kaehler, A. (2008). Learning OpenCV: Computer Vision with the
OpenCV Library. O'Reilly Media.
Halfacree,
G. (2020). The Official Raspberry Pi Handbook. Raspberry Pi Press.
Monk,
S. (2022). Programming the Raspberry Pi: Getting Started with Python
(3rd ed.). McGraw-Hill Education.
Raspberry
Pi Foundation. (2024). Raspberry Pi Documentation. https://www.raspberrypi.com/documentation/
Raspberry
Pi Foundation. (2024). Picamera2 Documentation. https://datasheets.raspberrypi.com/camera/picamera2-manual.pdf
Richardson,
M., & Wallace, S. (2012). Getting Started with Raspberry Pi.
O'Reilly Media.
Singh,
S., & Singh, R. (2022). Internet of Things based smart monitoring system
using Raspberry Pi. International Journal of Advanced Research in Computer
Science, 13(2), 45-52.
SparkFun
Electronics. (2023). HC-SR04 Ultrasonic Distance Sensor Hookup Guide. https://learn.sparkfun.com/
Szeliski,
R. (2022). Computer Vision: Algorithms and Applications (2nd ed.). Springer.
VII Lampiran
Link Youtube :
Link PPT : https://canva.link/6l0uk4mkqhx941s

.jpeg)

Komentar
Posting Komentar