回到文章列表
專題競賽

115 全國專題競賽|三角立牌即時影像系統

#Robot#Android Studio#Raspberry Pi 4#Triangle Robot

115 全國專題實作及創意競賽

複賽佳作 ─ 智慧三角立牌即時影像系統

從科展留下來的問題

做完第 65 屆科展的移動式三角警示立牌之後,我們請學校老師和業師幫忙看,發現還有一個很重要的問題:駕駛在車上按下按鈕之後,根本不知道立牌到底有沒有走到定位,也看不到車後的路況。

所以這次專題,我們幫立牌加上即時影像,讓駕駛在車上用手機 App 就能看到車後的情況,不用下車冒險。


系統架構

  • 拍攝端:用 Raspberry Pi 4 當核心,接一顆 WebCam 拍車後的畫面。
  • 串流伺服器:在樹莓派上用 FFmpeg 壓縮影像,再用 MediaMTX 架 RTSP/RTMP 串流伺服器,讓延遲低一點。
  • 手機 App:我用 Android Studio 和 Java 寫了一個監控 App,可以即時看串流畫面,也能錄影存起來、之後回放。

樹莓派上跑的串流指令

樹莓派在背景跑下面這行指令,把影像推出去:

# 1. 啟動 MediaMTX RTSP 串流伺服器
./mediamtx

# 2. 使用 FFmpeg 擷取樹莓派相機並推送 H.264 影像流
ffmpeg -f v4l2 -thread_queue_size 1024 -i /dev/video0 \
  -vcodec h264_omx -b:v 2M -preset ultrafast \
  -f rtsp rtsp://localhost:8554/mystream

遇到的問題:樹莓派太熱,變超慢

整合測試的時候,我們遇到一個很麻煩的問題:

樹莓派 4 同時處理影像編碼、FFmpeg 串流和網路傳輸的時候,溫度會飆到 80°C 以上,觸發 CPU 降頻保護,網路傳輸也跟著變慢,結果手機上的畫面超卡、延遲很高,有時候還會斷線。

如果真的發生事故,畫面卡住是不行的。我們不想用降低畫質來解決,所以改從散熱下手:

  1. 量尺寸:重新量樹莓派上每顆晶片和發熱元件的高度、位置。
  2. 畫外殼:用 CAD 畫了一個有導風設計的散熱外殼,再用 3D 列印印出來。
  3. 加風扇:裝上 5V 散熱風扇,把熱風抽出去。

改完之後,樹莓派的溫度穩定在 50°C 以下,手機 App 可以很順地播 1080p 畫面,延遲不到 0.5 秒。


做完之後的感想

以前只寫軟體的時候,遇到跑不動,我第一個想到的都是去優化程式。這次才發現,有些問題是硬體的物理限制,像是發熱,只能靠機構設計來解決。軟體跟硬體要一起考慮才行。

經過很多次實車測試,這件作品最後拿到 115 全國高級中等學校電機電子群專題實作及創意競賽複賽佳作。