![[Other] RocNaV: Custom LoRa (Latter HC-12) and GPS tracking circuit board module](https://storage-public.atomm.com/xtool/community/attachment/xtool-community/35f0486c-3a42-4162-9b3f-29fc03c19257.jpeg?x-oss-process=image/resize,w_1200,h_900,limit_0/interlace,1/format,webp/auto-orient,1)
RocNaV:客製化LoRa(後期HC-12)與GPS追蹤電路板模組
資訊
RocNav 是一款開源火箭飛行電腦,完全在 FabLab 內部設計與製造。它作為 Fab Academy 2024 年在盧安達 FabLab 的期末專案建造,成為該計畫歷史上首台以 Fab Academy 期末專案形式製造並飛行的火箭飛行電腦。
該白板在火箭飛行過程中即時讀取氣壓高度、加速度與方向。所有設計檔案——原理圖、PCB 佈局與韌體——皆為開源。最終的板材尺寸為52毫米×60毫米,尺寸適合放入內徑75毫米的火箭機身管內。
這個計畫很重要,因為它證明了航空航太級電子產品不必商業採購或昂貴。世界上任何 FabLab——包括盧安達——現在都能從零開始製造可用的火箭飛行電腦。這將改變學生、研究人員和創客社群在商業航空電子設備無法取得的地區所能達成的可能性。
完整專案文件:https://fabacademy.org/2024/labs/rwanda/students/philemon-manzi/Final%20Project.html
教程
步驟1
設計之旅:飛行板的四次迭代
這塊板子不是一次性完成的。這過程經歷了四次完整的設計迭代——每一次都教出一堂塑造最終成果的課題。
迭代 1:ATmega328 PU(KiCad)— SRM-20 Wall
第一台飛行電腦是以 Kicad 中的 ATmega328 PU 微控制器設計的。理論上是穩固的。問題出在盧安達 FabLab 的 SRM-20 PCB 銑床上製造:
第一次嘗試:誤印反
向>第二次嘗試:細間距晶片封面合併 — 線路融合而非分離
第三次嘗試:因床未調平而中途失敗
第四次嘗試:一次乾淨的列印——但立刻發現手工焊接ATmega的細間距焊盤
幾乎不可能我們也沒有ATmega晶片現貨。是時候徹底重新思考晶片的選擇了。
>迭代2:ESP32-DEVKIT-V1(KiCad)— 可行但太大
切換到ESP32-DEVKIT-V1解決了製造問題。其體積較大且間距更廣,使銑削與手工焊接都更為真實。它還內建 Wi-Fi。該板由 KiCad 重新設計,成功列印並測試良好。
但當我們想把它安裝進火箭本體時,它裝不進去。這塊板子對我們現有的機體來說太寬了。現實世界的物理限制扼殺了原本可行的設計。
迭代3:RocNaV 3.3 — 首個 EasyEDA 版本(68mm × 62mm)
尺寸限制明確後,Lambert 和我一起用 EasyEDA 重建板子——特別因為它讓密集且協作的版面更方便。設計被大幅刪減。這個版本在68毫米×62毫米,能裝進我們的第一個火箭體體:一條內徑100毫米的PVC水管。
此版本成功測試測試。這是我們對設計端到端運作的驗證。
ESP32 機載天線下方的銅製接地平面已被清除。天線下方的銅線會產生電磁干擾,降低無線效能。此間隙可見於主板底部,對於飛行期間可靠的 LoRa 遙測至關重要。
迭代4:RocNaV 3.3 — 最終版本(52mm × 60mm)
第二枚火箭——75mm內徑紙板機身——板材需要進一步縮小。我們把它剪成52mm×60mm。這就是飛行的版本。
完整的航電堆疊——RocNaV 3.3、GPS模組、LoRa遙測、LiPo電池及次要Arduino控制器——安裝在雷射切割的木製航空電子雪橇上,並置於機身管內,並以泡棉墊緩衝發射震動。
dir="ltr">兩次發行都使用此板。第二次發射時,火箭發生了快速且未預定的拆解——原因在於引擎外殼因絕緣不良導致材料薄弱,而非電子系統故障。飛行電腦在兩次飛行中正確記錄了數據。
Project Function
RocNav 自主管理模型火箭的完整飛行序列——從發射偵測到遠地點再到著陸。它以完全可製造、開源且可在任何 FabLab PCB 工廠上組裝的替代方案取代市售飛行電腦。
主要功能:
透過加速度計閾值偵測發射並開始資料記錄
利用氣壓感測器搭配滾動平均濾波器即時追蹤高度,以防止因壓力突升而產生誤觸發
當垂直速度超過零時偵測遠地點(峰值高度)及氣壓高度峰值
在整個飛行過程中將所有感測器資料(高度、加速度、方向、GPS座標)記錄到SD卡
在高度穩定
時監控下降並偵測著陸測試備註:
在兩次測試飛行中,引擎點火均透過序列監控器手動觸發。當加速度計記錄起飛時,飛行電腦的自主發射偵測隨即啟動。未來版本將整合完全自主點火序列。應用場景:
業餘與高功率火箭
大學及高中航空航天工程專案
FabLab 基礎的航太教育課程
研究有效載荷需要低成本、客製化的航電
設備Project Parameters 微控制器:ESP32-WROOM-32E(8MB 快閃記憶體)— 雙核心、Wi-Fi與藍牙 IMU: MPU9250 — 9-DOF(3軸加速度計、3軸陀螺儀、3軸磁力計)透過I2C 高度計:BMP280氣壓感測器,透過I2C GPS:陶瓷補丁天線 GPS 模組,透過 UART 遙測:LoRa 433MHz無線模組 — 即時數據下行至地面站 資料記錄:MicroSD卡經SPI(MOSI/MISO/SCK/CS)、CSV 格式 Pyro通道:2個獨立通道 — IGNITOR以及 PARACHUTE 伺服輸出:2 通道 — SERVO_X 和 SERVO_Y 用於主動尾翼或推力向量控制 電源:LiPo電池;穩定 3.3V(AMS1117-3.3)和 5V(LM1117-5V)軌道 程式介面:FTDI 序列標頭 使用者控制:板上啟動與重置按鈕 PCB尺寸(最終):52mm × 60mm 管體相容性:設計為75mm內徑Airframe 遠地點偵測:雙重條件——氣壓峰值+垂直速度零穿越,並搭配滾動平均濾鏡 次級航空電子板備註: 整合照片顯示 Arduino 與 RocNaV 3.3 並列。此裝置被加裝為次要控制器,接收主板的降落傘展開信號並處理引擎點火。它是與 RocNaV 3.3 設計本身分開的元件。 原理分析(硬體描述) RocNav 板由六個功能區塊組成: 1。電源管理 A LiPo 電池供電兩條獨立的穩定軌道——3.3V(AMS1117-3.3)供 ESP32 與數位感測器使用,5V(LM1117-5V)供伺服機與 LoRa 模組使用。兩軌上的解耦電容(4.7μF + 1μF)可確保在高電流事件如火燒時保持潔淨電力。 2. 飛行電腦(ESP32-WROOM-32E) ESP32 的雙核心架構允許感測器讀取與飛行邏輯在一核心運行,遙測傳輸則在另一核心執行。它透過 I2C(MPU9250、BMP280)和 UART(GPS、LoRa)與感測器通訊,管理 SPI 以記錄 SD 卡,並輸出 PWM 訊號以進行伺服控制。 3. 感測 MPU9250 透過 I2C 提供 9 自由度的慣性資料,用於發射偵測、方向追蹤及主動控制輸入。BMP280 提供氣壓高度——主要的遠地點偵測感測器。配備陶瓷貼片天線的GPS模組透過UART提供位置座標,用於遙測及飛行後地圖製作。 4. 遙測(LoRa) LoRa 433MHz 模組在飛行期間即時將飛行數據傳送至地面站接收器,實現實時高度、速度及狀態監控。 5. Pyro 通道 兩個獨立的 MOSFET 切換 Pyro 通道(IGNITOR 與 PARACHUTE)僅在確認發射後啟動,且無法在地面靜止點火。 6. 主動控制輸出 兩個PWM伺服輸出(SERVO_X與SERVO_Y)可實現主動鰭片偏轉或推力矢量控制——為未來閉環姿態控制奠定基礎。 7. 資料記錄 透過 SPI 儲存時間戳記、高度(原始及濾波)、加速度(X/Y/Z)、陀螺儀、磁力計、GPS 座標、伺服位置及飛行狀態,並以 CSV 格式記錄整個飛行過程。 Software 完整固件 in C/C++ (Arduino framework)).五態飛行狀態機: IDLE →感測器初始化,地面壓力基線計算<
COAST → 檢測到燒毀,感測器追蹤持續
APOGEE →氣壓峰值 + 垂直速度 零穿越→彈射炸藥點燃
DESCENT →持續記錄直到高度穩定(著陸偵測)
Libraries:
Wire.h — I2C 通訊(MPU9250,BMP280)
TinyGPS++.h — 解析來自 GPS 模組的 NMEA 資料
ESP32Servo.h — 伺服馬達控制
SD.h — SD 卡讀寫
SPI.h — SPI 匯流排通訊
LoRa.h — LoRa 無線遙測
安全備註
在你抵達發射場準備飛行前,切勿連接彈射裝置。在所有測試台測試中,使用LED或導通蜂鳴器代替火焰爆破。
啟動前請確認連續性。發射前確認準備就緒指示器。
遠地點偵測使用氣壓數據的滾動平均。在強風條件下,請在韌體中調整濾波器視窗大小,以避免誤觸發遠地點。
start="4">地面層級校正很重要。板子在啟動時的壓力是基準。在發射場、發射高度啟動,而不是在室內或移動中的車輛裡。
PCB銑削公差:使用0.4mm V位元進行線路,並用萬用表確認連續性後再焊接。Pyro 通道電路中一條斷線將阻止復原部署。
引擎隔熱至關重要。第二次試飛以機體故障告終,原因是引擎外殼絕緣不足,而非電子系統故障。飛行前務必確保引擎外殼有良好絕緣並符合推進劑燃燒溫度的額定。
Assembly Process
Mill PCB 使用 Roland MDX 提供的 Gerber 檔案(或送至製造廠)
檢查所有走線是否通通——在填充前修復任何斷裂<
p dir="ltr" aria-level="1">先焊接SMD元件(被動元件、IC)——從小到大<p dir="ltr" aria-level="1">焊接穿孔元件(連接器、SD插座)請在放大鏡下檢查所有焊點
工作台供電時開機——確認3.3V與5V導軌<
p dir="ltr" aria-level="1">透過FTDIFlash韌體 — 確認序列顯示器顯示感測器讀數驗證 BMP280 高度是否符合你已知的高度(±10 公尺可接受)
Verify MPU9250顯示靜止時垂直軸 ~1.0G,陀螺儀接近零
驗證 LoRa 遙測 — 與地面站配對並確認資料包<
p dir="ltr" aria-level="1">用LED替換品測試兩個Pyro通道測試SERVO_X與SERVO_Y輸出
雷射切割航電滑橇上的安裝板;防震泡棉墊
座椅滑橇插入車身管並確認合適後再關閉機身
在最終整合後對所有 pyro 通道執行連續性檢查
Finished Product
>照片1 RocNaV 3.3 板卡已開機並程式化,板子連接 FTDI 程式器。紅色LED顯示電力。ESP32-WROOM-32E 在中央可見。感測器、伺服機和火花通道周圍有連接器接頭。
照片2 天線間隙(底部)ESP32 內建天線下方的銅製接地平面被移除(「天線空間」)。若沒有這個間隙,銅線平面會干擾 LoRa 訊號品質。
照片3 ESP32-WROOM-32E晶片特寫 Espressif ESP32-WROOM-32E 顯示板載PCB天線(頂部有蛇形線路)。藍色標註標示天線區域,顯示主機PCB上需要銅線間隙。
照片4 雷射切割航空電子雪橇 圓柱形航空電子安裝座由盧安達工廠的雷射切割機製成。這個滑板將所有電子元件置於車身管內,本身是FabLab製造的零件,並非商業採購。
照片5 車身管:限制 75mm 內徑紙板車身管空。這種物理限制驅動了PCB設計中每一次微型化決策——電路板必須縮小到52mm×60mm才能安裝在這裡。
照片6 電池整合於熱熔膠 LiPo 電池內,並以熱熔膠固定於航電艙內,RocNaV 3.3 板顯示於上方,下方為泡棉襯墊。一種實用的現場組裝技術用於隔振。
照片7 航空電子艙與標籤 電子艙打開,顯示飛行電腦(RocNaV 3.3銅板)、泡棉墊片,以及堆疊在機身切口內的鋰聚合物電池。
照片8 火箭完全組裝完成機身:3D列印藍色鼻錐(降落傘艙)、黑色PVC機身管及航電艙區段,透過切口顯示電子設備。黃色降落傘繩索可見於機頭錐體——準備在遠地點彈射。
照片9 首次發射(100mm PVC 火箭) 首枚測試火箭從發射軌道升空。該機使用68毫米×62毫米的電路板,安裝在較大的100毫米PVC機身內——這是對電子設計的驗證飛行。
照片10 第二次發射(75毫米紙板火箭) 第二次發射,最後52毫米×60毫米板材置於75毫米紙板機身內。飛行最終因馬達外殼絕緣失效而迅速非預期拆解,而非電子系統故障。飛行電腦正確記錄資料直到訊號遺失。
照片11 飛行殘骸 T引擎外殼失效後,發動機支架部分的殘骸。3D 列印的鰭罐部分熔化。飛行電腦與航電設備分別回收。教訓:正確絕緣你的馬達外殼。



















