本文是「打造一台無線遙控車」系列的第一篇。在動手做遙控車之前,我們需要先有一支可靠的無線搖桿——這篇就是從零開始,教你怎麼把市售的搖桿擴展板,改造成一支真正用藍牙連線的控制器。
📂 完整韌體原始碼已公開於 GitHub:ai-e2d/JoyStick
前言
如果你曾經買過 Arduino 的搖桿擴展板(Joystick Shield),應該知道它原本是設計給有線的 UNO 板用的。但當我們想把它升級成無線控制器,搭配 ESP32 D1 R32 Type-C 開發板 使用時,卻會遇到一個很多人踩過的坑:搖桿一接上去,藍牙就不能用了。

這篇文章會帶你一步步解決這個問題,最後做出一支可以直接被手機、電腦、模擬器當成「藍牙遊戲控制器」辨識的搖桿——而這支搖桿,正是下一篇「無線遙控車」的核心控制裝置。
為什麼搖桿一接上去,藍牙就壞了?
遊戲搖桿擴展板 的類比搖桿,原始設計是接在 A0(X 軸)、A1(Y 軸)。如果直接套用在 ESP32 D1 R32 上,這兩隻腳剛好對應到 IO-02、IO-04。

問題就出在這裡:ESP32 內部把類比輸入分成兩組硬體——ADC1(GPIO32–39)跟 ADC2(GPIO0、2、4、12–15、25–27)。ADC2 這組硬體,其實是跟無線通訊子系統(Wi-Fi / 藍牙共用同一套 2.4GHz RF 前端)共用資源的。一旦韌體啟用藍牙,RF 子系統就會搶占 ADC2,搖桿的類比訊號自然讀不到、甚至直接卡死。
解法很單純:把搖桿的 X/Y 軸,從 ADC2 改接到 ADC1。
動手改:把 X/Y 軸搬到 GPIO34 / GPIO35
實測把搖桿訊號線從原本的 A0/A1,改焊到 GPIO35(X 軸)、GPIO34(Y 軸)——這兩隻腳都在 ADC1 範圍內,改完之後藍牙跟搖桿類比訊號就能同時穩定運作。
因為這個修改沒辦法靠軟體解決,只能動手改板子,所以我們也推出了「手工改造版 — 遊戲搖桿擴展板」這款商品(與原版併入同一個可變商品頁面,選「手工改造版」規格即可),買了直接是已經處理好 ADC1 接腳的版本,不需要自己拆機焊接。

材料清單

| 元件 | 用途 | 購買連結 |
|---|---|---|
| 遊戲搖桿擴展板(手工改造版) | 類比搖桿 + 7 組按鍵輸入 | 購買選「手工改造版」規格(也可直接選「ESP32藍牙搖桿完整組裝版」規格買現成組好的) |
| ESP32 D1 R32 Type-C 開發板 | WiFi + 藍牙雙模主控板,Arduino UNO 腳位相容 | 前往購買 |
| 18650 電池盒 | 行動供電,2 節串聯 7.4V | 前往購買 |
| 3D 列印固定座 | 固定底板與電池盒,讓搖桿可以單手握持 | 加入購物車 |
🔒 接下來的「閱讀全文」內容僅限 e2d 會員與訂閱者觀看。
登入或註冊帳號

