我們的開源宗旨:自由 協調 開放 合作 共享
擁抱開源,豐富國內開源生態,開展多人運動,歡迎加入我們哈~
和一群志同道合的人,做自己所熱愛的事!
項目開源地址:https://github.com/J20RC/STM32_RC_Transmitter
碼雲(Gitee)地址:https://gitee.com/J20RC
QQ交流群:1091996634 【密碼:J20】
經過近一個月的開發,基礎版V1.0終於可以發布了,基礎的8通道遙控功能已經實現,能滿足日常飛行需求。更多人性化的功能還有待完善,接下來會持續維護。基礎版教程分為了三篇文章——制作教程、使用說明、開發說明,面向不同人群的需求,大家各取所需哈~
之所以稱為基礎版,是因為這個版本的制作成本和門檻都比較低,面向初學者。采用最小系統板,不用焊接太多芯片,9元的烙鐵基本能搞定。PCB文件待我們的項目成員畫好后再發布,可加QQ群實時關注動態哈~
1. 購物清單
你的烙鐵是否已經飢渴難耐,不要着急,“兵馬未動,糧草先行 ”,我們先來購物一波~
以下購物列表的商品基本可以一站式購齊,如果要推薦一家電子店鋪的話,那就是優信電子了,每種商品基本都是比較便宜的,6塊6包郵解君愁!
1. STM32F103C8T6最小系統板*2
2. USB轉TTL模塊*1(串口監視用)
或下面這種冷啟動的,我們不用它下載程序,也能滿足需求
3. ST-LINK V2仿真器下載器*1
調試STM32性價比極高,可燒寫程序,可斷點調試
如果你手上有舊遙控器的話,直接改造也可。
這是筆者找遍全網性價比最高的遙控器外殼了,15元不包郵,上面的遙桿基本能滿足需求。
這款遙桿和上面遙控器上的同款,都是自動回中的,不適合作為油門的遙桿,所以經濟條件允許的話,還是直接買上面的遙控器外殼吧~
極不推薦那種蘑菇頭的遙桿,手感太差,容易炸雞!
5. 無線模塊(NRF24L01)≥2
集芯微這家一個ID可購買兩個樣品,價格較低,再配個天線即可。
銅管天線配上面的模塊(IPEX接頭)
膠棒天線用於下面的模塊(內針)
接收機端可選用這種100m的,兩種引腳定義一樣。
- 遙控器端用2000m的,接收機端用2000m的——通信距離在1000m以上
-
遙控器端用2000m的,接收機端用100m的——通信距離在500m左右
-
遙控器端用100m的,接收機端用100m的——通信距離在50m左右
6. 電解電容100uF*2(用來穩壓)
7. 獨石電容0.1uF*2(用來濾波),又稱104電容
8. 金屬膜電阻1k*2、10k*3、20k*1
9. 電位器50k*2、電位器帽子*2、鈕子開關*2(三腳三檔)
輔助通道用,兩者總數量4個,可互相替代,看個人需求
10. 輕觸開關*8,按鍵帽*8
輕觸開關選用7mm高的,便於安裝按鍵帽
11. 三極管SS8050(NPN型)*2
12. 洞洞板(7*9cm)*2
13. XH2.54mm插針插座若干
14. L7805CD2T穩壓管*1(用於降壓到5V)
15. AMS1117-3.3穩壓降壓芯片*2(用於降壓到3.3V)
16. 有源蜂鳴器5V的(接電即響)
17. OLED顯示屏0.96寸,IIC通信
18. 旋轉編碼器EC11(本遙控器用戶交互的精髓)
19. 肖特基二極管(用來續流)
20. 三腳撥動開關(作為電源開關)
OK,現在您的購物車應該已經加滿了,清空它吧~等待快遞期間先看看電路圖
這里不得不提一句,DIY並不一定能省錢,對於初學者來說,買一套電子元件和烙鐵,甚至比買成品更貴。省錢只是DIY的副作用,感受DIY的樂趣才是第一位的!
2. 電路焊接
2.1遙控器端
遙控器端的電路比較復雜,先來看原理圖。幾乎把所有的引腳全用光了,可以說榨干了這個最小系統板。它提供了10個ADC的引腳,這里一個作為遙控器電池的電壓檢測,一個被編碼器占用,剩下8個全部用作通道采集,所以基礎版是8通道的遙控器。沒有更多ADC可用,通道也就無法擴充了。所以進階版和豪華版會采用其他芯片,以實現更多通道!
有網友說,看不懂這種模塊化的原理圖,更習慣看所有線連在一起的。
好的,沒有問題,這里也提供實物連接圖~ (筆者畫了一上午)
好的,現在映入您眼簾的是一團亂麻,盡情飛線吧~(大概六七十根線)
要注意的是,無線模塊和STM32最小系統板之間的連線一定要連接好,最好用排線,尤其是NRF_SCK、NRF_MISO、NRF_MOSI三根線是SPI通信主要的數據線,應避免纏繞,防止有寄生電容什么的干擾通信。
這里復用了ch1left【home鍵】、ch2up【返回】、ch2down【確定】、ch4left【數值-】、ch4right【數值+】五個微調按鍵,OLED屏幕顯示主界面的時候,是微調功能;非主界面的時候,作為【】里面的功能。為了操作方便,可復制這幾個按鍵,尤其是返回鍵和確定鍵,和旋轉編碼器放到一起,怎么舒服怎么來。
2.2接收機端
接收機端相比來說就簡單多了,先看原理圖。這里暫時還是用的最小系統板,體積比較大,現在只是作為驗證電路。我們計划開發STM8/STM32/C51三種類型的接收機,針對體積小和多通道等不同需求,等發布后再制作接收機也可以。
無線模塊豎着放
橫着放
也可以倒着放
最后,用萬用表的蜂鳴檔測試各線路是否連接正確,尤其是GND和VCC!
3. 燒寫固件
如果你的電腦安裝了keil軟件,那么編譯工程再進行燒錄即可,這里不再贅述,可參考筆者的這篇博客:
https://blog.csdn.net/weixin_42268054/article/details/106878860
如果你的電腦沒有keil軟件,又不打算開發調試源代碼,那么這里推薦使用STM32 ST-LINK Utility軟件。軟件介紹、下載、安裝、使用請參考strongerHuang的這篇博客:
https://blog.csdn.net/ybhuangfugui/article/details/52597133
先將ST-LINK下載器連接STM32開發板,接線如下:
GND 電源地
3V3 接3.3v
SWCLK 接DCLK
SWDIO 接DIO
打開軟件,點擊該按鈕進行連接;
點擊Target》Program...;
點擊Browse,打開遙控器端或者接收機端的hex文件,點擊Start進行燒寫;
看到提示信息即說明燒寫完成。
4. 常見問題匯總與解答
-
遙控器供電方案
由於使用L7805CD2T降壓芯片來獲得5V,它的輸入電壓是5-35V。
而一節鋰電池(比如18650鋰電池)的電壓是3.7V-4.2V,所以要串聯2節或者3節鋰電池才能達到電壓的要求。但是電池串聯起來,平衡充電是個問題,所以這里筆者的建議是使用充放電一體模塊(下圖)。 用一節鋰電池或者多節並聯即可,3.7V通過這個模塊升壓到5V—7V,再輸入給L7805CD2T,直接使用這個模塊的microUSB口充電即可。
-
什么是通道,什么是8通道?
通俗來說,一個通道指的就是一個電位器或者鈕子開關,遙控器所用的電位器遙桿實際上包含的是XY兩個方向的電位器,所以一個遙桿包含的是兩個通道,左右手兩個遙桿加起來就是前4個通道,這4個通道是主要的控制通道,分別控制飛機的橫滾、俯仰、油門和航向,對於固定翼來說,就是副翼、升降舵、油門和方向舵。而后4個通道是輔助通道,由單獨的電位器或者鈕子開關組成,用來控制飛機的模式、解鎖、控制雲台等等。
對於MCU(Microcontroller Unit,簡稱MCU,即微控制單元,又稱單片微型計算機(Single Chip Microcomputer )或者單片機,我們使用的STM32/STM8/C51都可以稱為MCU)來說,一個通道就是一個ADC引腳,電位器或者鈕子開關的作用就是讓用戶操作產生電壓的變化,而ADC的作用就是采集電壓的大小,從而得到用戶的輸入值,再進行下一步的處理。
-
關於hex文件
hex文件大於64k,為什么能燒錄進FLASH=64k的最小系統板?
實際上hex文件包含了許多信息,要經過編譯成二進制文件之后才會燒錄進MCU,燒錄進MCU的文件大小大約是hex文件大小的一半。要想看有多少燒錄進MCU,可查看keil軟件編譯出來的信息,其中Code+RO Data+RW Data會燒錄進FLASH中,18140+9468+2124=29732(再除以1024,約29k),程序運行的時候:RW Data + ZI Data。
5. 文件下載
固件: J20RC_ReceiverBase_V1.0.hex
J20RC_TransmitterBase_V1.0.hex
源代碼: [KEIL5工程源代碼] 文件夾
原理圖: J20航模遙控器_基礎版V1.0原理圖.pdf
開發相關:[常用軟件] 文件夾
STM32F103C8T6數據手冊_V10.pdf
STM32中文參考手冊_V10.pdf
這里提供四種下載方式,每種方式各有利弊,大家自行選擇哈~
- CSDN(下載速度快,但是需要積分)
https://download.csdn.net/download/weixin_42268054/12679008
-
百度網盤(下載速度慢,但是可白嫖)
鏈接:https://pan.baidu.com/s/1rt9wa9yzWnbCm6uXZxR6jw
提取碼:J20R
- QQ群(下載速度快,可白嫖)
QQ交流群:1091996634 【密碼:J20】
- Github(下載速度慢,可白嫖,可實時獲取更新)
https://github.com/J20RC/STM32_RC_Transmitter
6. 焊接技巧
(1)烙鐵頭保養
士兵要保養自己的鋼槍,學生要愛護自己的筆桿子,而對於電子愛好者,就是要保養好烙鐵了。
新買來的烙鐵,在第一次使用時,需要先接電待溫度達到能融化焊錫,給烙鐵頭均勻包裹焊錫,這樣能防止烙鐵頭氧化,確保烙鐵頭沾錫。
每次使用完烙鐵,需要清潔烙鐵頭(使用濕潤的高溫海綿或者清潔鋼絲球),然后均勻塗上焊錫。
不要拿烙鐵燙塑料!不要拿烙鐵燙塑料!不要拿烙鐵燙塑料!
(2)焊接
焊接洞洞板和插針時,筆者喜歡用尖頭;焊接貼片元件,使用刀頭,可以根據自己的習慣來。
焊接時,確保烙鐵頭沾錫,這樣能使焊錫浸潤焊點,讓焊點得到均勻快速地升溫。烙鐵頭接觸焊點3-5秒后,再將焊錫絲懟到焊點上,最后拿開烙鐵。
焊接教學視頻 https://www.bilibili.com/video/BV1eJ411K7rM
(3)走錫
方法一:先將兩個點焊在一起,中間間隔一個點,待焊錫冷卻后,再回來將剩下的一個點焊上。
如果直接將所有點連在一起,會導致焊錫都處於液態,全部粘連到了一起,不易控制焊錫走向。
方法二:借助銅線控制走向,先將銅線固定,再走錫就比較容易了。(可以使用電阻上多余的線)
(4)清洗
最后,用萬用表的蜂鳴檔測試各線路是否連接正確,尤其是GND和VCC!
寫在最后
首先感謝項目中所有的貢獻者!(截止2020.08.01)
* 蔡子CaiZi(B站up主) https://space.bilibili.com/349576976
* A-XIN;
* 小何;
* ZL_Studio(B站up主)https://space.bilibili.com/364251289
* 王天天@WangTiantian139 https://wangtiantian139.github.io/
* 劉桶桶;
* 簡繁;
* 王博;
* 與非門;
* Talons;
* 大米粥;
* P a S S ||;
* 佚名;
* 小吳;特別感謝正點原子提供的STM32例程和開源社區http://www.openedv.com/
由於筆者學業繁忙,時間有限,無法投入過多的精力,所以歡迎更多學有余力的模友,加入到項目的開發和維護工作中哈,現在基礎的程序框架已經搭建完成,剩下的要做的就是填充、優化和擴展了,有意願的模友加群后請私聊群主喔~
QQ交流群:1091996634 【密碼:J20】
本文歡迎轉載,請注明出處哈~