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

  1. Bagaimana merancang sistem radar pemetaan berbasis Raspberry Pi yang mampu bekerja secara real-time?
  2. Bagaimana mengintegrasikan sensor ultrasonik HC-SR04, Raspberry Pi Camera, dan motor DC dalam satu sistem pemetaan?
  3. Bagaimana menampilkan hasil pemetaan lingkungan dan monitoring visual melalui dashboard berbasis web?
  4. Sejauh mana sistem mampu mendeteksi objek di sekitar robot menggunakan metode pemindaian 360°?

C. Tujuan

  1. Merancang sistem radar pemetaan berbasis Raspberry Pi.
  2. Mengintegrasikan sensor HC-SR04, Raspberry Pi Camera, dan motor DC dalam satu sistem.
  3. Menampilkan hasil pemetaan dan monitoring visual secara real-time melalui dashboard web.
  4. 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

Gambar 3.3 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             https://youtube.com/shorts/UCocDIotL28?si=Wv54GMptDBN7IyWc

            Link PPT                   : https://canva.link/6l0uk4mkqhx941s


Komentar

Postingan populer dari blog ini

SISTEM KONVEYOR OTOMATIS DENGAN SENSOR INFRARED DAN KONTROL MANUAL

Pompa Air Otomatis Berbasis ATMega8535

SISTEM PEMANTAUAN SUHU DAN KELEMBABAN PADA SUATU RUANGAN MENGGUNAKAN SENSOR DHT22 BERBASIS MIKROKONTROLLER ARDUINO UNO ATMEGA328P