Proyek Smart Helmet AI adalah sistem helm pintar yang mengintegrasikan berbagai teknologi canggih seperti AR HUD, deteksi blind spot berbasis LiDAR, asisten suara AI, navigasi GPS, rekaman dashcam, dan konektivitas smartphone (Android Auto, Apple CarPlay). Sistem ini bertujuan meningkatkan keselamatan dan kenyamanan pengendara dengan informasi real-time dan kontrol suara.
S.U.N.D.A/
βββ core/
β βββ config.py # Konfigurasi sistem dan variabel global
β βββ logger.py # Modul logging standar proyek
β βββ main.py # Entrypoint utama menjalankan semua modul
β
βββ hud/
β βββ hud_renderer.py # Modul untuk menampilkan HUD AR (OpenGL/Pygame)
β
βββ sensors/
β βββ lidar_parser.py # Parsing data LiDAR dan deteksi obstacle
β βββ imu_handler.py # Pembacaan IMU dan deteksi impact
β βββ gps_handler.py # Pembacaan data GPS
β βββ battery_monitor.py # Monitor status baterai ESP32
β
βββ voice_assistant/
β βββ assistant_engine.py # Engine asisten suara utama (STT, TTS, Wake word)
β βββ stt.py # Speech to text (offline/online)
β βββ tts.py # Text to speech
β βββ wake_word.py # Engine wake word (Snowboy, Porcupine)
β
βββ camera/
β βββ dashcam_recorder.py # Pengelolaan perekaman video continuous loop
β βββ imu_trigger.py # Trigger rekaman saat impact terdeteksi
β βββ overlay_timestamp.py # Overlay timestamp pada video hasil rekaman
β
βββ connectivity/
β βββ wifi_manager.py # Pengelolaan koneksi Wi-Fi dan LTE
β
βββ mobile_interface/
β βββ server.py # REST API (FastAPI) untuk kontrol dari smartphone
β βββ websocket_handler.py # WebSocket untuk live telemetry & update
β βββ layout_config.py # Penyimpanan konfigurasi layout HUD dari HP
β
βββ esp32_firmware/
β βββ battery_display.ino # Firmware ESP32 untuk baca status baterai
β βββ button_handler.ino # Firmware tombol voice command
β βββ serial_comm.ino # Firmware komunikasi serial ESP32-Pi
β
βββ test/
β βββ test_lidar.py # Simulasi data LiDAR
β βββ test_gps.py # Simulasi GPS
β βββ test_imu.py # Simulasi IMU
β βββ test_battery.py # Simulasi baterai
β βββ test_voice_assistant.py # Simulasi voice assistant (CLI)
β
βββ boot.sh # Script startup otomatis saat boot
βββ helmet.service # Systemd service file untuk manajemen proses
βββ README.md # Dokumentasi proyek (file ini)
core/main.pysebagai entrypoint utama yang menjalankan semua modul secara paralel (multithreading).- Modul sensors/ membaca dan memproses data sensor seperti LiDAR, IMU, GPS, dan baterai.
- Modul hud/ menampilkan informasi penting seperti waktu, battery, navigasi, dan indikator blind spot pada HUD AR helm.
- Modul voice_assistant/ mengelola interaksi suara, mulai dari mendengar wake word, mengenali perintah, hingga merespon dengan suara.
- Modul camera/ merekam video perjalanan secara terus-menerus, dengan trigger khusus saat terjadi kecelakaan.
- Modul connectivity/ memastikan helm selalu terhubung ke internet atau smartphone untuk update dan sinkronisasi.
- Modul mobile_interface/ menyediakan API dan WebSocket untuk mengatur HUD dan menerima perintah dari aplikasi smartphone.
- Firmware esp32_firmware/ bertugas mengirim data baterai dan input tombol ke sistem utama melalui komunikasi serial.
- Folder test/ berisi simulasi berbagai sensor untuk pengujian tanpa hardware.
- Python 3.7+
- FastAPI β REST API server
- uvicorn β ASGI server untuk FastAPI
- websockets β WebSocket server
- PyOpenGL atau Pygame β untuk rendering HUD
- ffmpeg β perekaman dan overlay video
- ESP32 SDK untuk firmware (Arduino IDE)
- Library pendukung AI: Mycroft, Snowboy (offline wake word), Vosk (offline STT), Google TTS (online)
- Library sensor (contoh:
pyserialuntuk serial ESP32,pygpsuntuk GPS parsing) - Virtual environment (disarankan)
core/config.pyVIDEO_DIRβ Folder penyimpanan video rekamanAPI_PORTβ Port FastAPI berjalan (default 5000)HUD_LAYOUT_FILEβ File konfigurasi HUDSERIAL_PORTβ Port komunikasi serial ESP32 (misal:/dev/ttyUSB0)BATTERY_THRESHOLDβ Persen minimum baterai sebelum peringatanWIFI_SSIDdanWIFI_PASSWORDβ Untuk koneksi Wi-Fi otomatis (jika dipakai)
esp32_firmware/sesuaikan pin ADC baterai, tombol, dan kecepatan serial di firmware
- Clone repo ke Raspberry Pi atau Jetson Nano:
git clone https://github.com/muhammadIdhamMaarif/S.U.N.D.A.git
cd S.U.N.D.A- Setup environment Python:
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt- Pastikan dependencies sistem terinstall:
ffmpeglibusb-dev(untuk LiDAR)- Driver kamera CSI / USB
- Sesuaikan
core/config.pysesuai kebutuhan hardware dan jaringan. - Upload dan compile firmware ESP32 melalui Arduino IDE.
- Jalankan sistem dengan:
./boot.shatau aktifkan systemd:
sudo systemctl start helmet.service- Untuk development, jalankan test sensor di folder
test/untuk simulasi.
- Modular: Setiap fitur terpisah di folder masing-masing, mudah untuk maintenance dan testing.
- Gunakan logger
core/logger.pyuntuk debugging dan audit log. - Tambahkan unit test dan integrasi test pada folder
test/. - Gunakan virtual environment agar dependensi konsisten.
- Dokumentasi API FastAPI ada di
http://localhost:5000/docs.
| Variabel | Fungsi/Deskripsi | Lokasi |
|---|---|---|
VIDEO_DIR |
Tempat penyimpanan file rekaman video | core/config.py |
API_PORT |
Port untuk FastAPI API | core/config.py |
HUD_LAYOUT_FILE |
File JSON konfigurasi layout HUD | core/config.py |
SERIAL_PORT |
Port komunikasi serial dengan ESP32 | core/config.py |
BATTERY_THRESHOLD |
Batas minimal baterai untuk peringatan | core/config.py |
WIFI_SSID, WIFI_PASSWORD |
Data login Wi-Fi | core/config.py |
start_hud(), start_lidar() ... |
Fungsi entrypoint modul masing-masing | Di folder masing-masing |
core/logger.pyβ Logger standar dengan timestamp dan tag modul.hud/hud_renderer.pyβ Renderer HUD, menampilkan overlay info AR.sensors/β Membaca dan mengolah data sensor LiDAR, IMU, GPS, baterai.voice_assistant/β Wake word detection, speech recognition, voice response.camera/β Pengelolaan rekaman video, trigger kecelakaan.connectivity/wifi_manager.pyβ Manajemen koneksi Wi-Fi dan LTE.mobile_interface/β API dan websocket untuk smartphone control.esp32_firmware/β Firmware ESP32 pengirim data baterai dan tombol.
- Integrasi AI wake word dan voice command yang lebih canggih.
- Otomatis update OTA firmware dan software helm.
- Implementasi UI mobile app lengkap (Flutter/Android/iOS).
- Penambahan sensor fall detection dan emergency alert.
- Live streaming video ke smartphone via LTE.
- Pengamanan komunikasi (enkripsi, token auth API).
Silakan fork, buat issue, atau pull request di repo GitHub untuk kolaborasi.
Terima kasih sudah menggunakan dan berkontribusi di proyek S.U.N.D.A !