J20航模遙控器開源項目系列教程(一)製做教程 | 基礎版V1.0發佈,從0到1

咱們的開源宗旨:自由 協調 開放 合做 共享git

擁抱開源,豐富國內開源生態,開展多人運動,歡迎加入咱們哈~github

和一羣志同道合的人,作本身所熱愛的事!app

項目開源地址:https://github.com/Cai-Zi/STM32_RC_Transmitter 框架

QQ交流羣:1091996634 【密碼:J20】ide

通過近一個月的開發,基礎版V1.0終於能夠發佈了,基礎的8通道遙控功能已經實現,能知足平常飛行需求。更多人性化的功能還有待完善,接下來會持續維護。基礎版教程分爲了三篇文章——製做教程、使用說明、開發說明,面向不一樣人羣的需求,你們各取所需哈~模塊化

之因此稱爲基礎版,是由於這個版本的製做成本和門檻都比較低,面向初學者。採用最小系統板,不用焊接太多芯片,9元的烙鐵基本能搞定。PCB文件待咱們的項目成員畫好後再發布,可加QQ羣實時關注動態哈~測試

1. 購物清單

你的烙鐵是否已經飢渴難耐,不要着急,「兵馬未動,糧草先行 」,咱們先來購物一波~優化

如下購物列表的商品基本能夠一站式購齊,若是要推薦一家電子店鋪的話,那就是優信電子了,每種商品基本都是比較便宜的,6塊6包郵解君愁!ui

1. STM32F103C8T6最小系統板*2

2. USB轉TTL模塊*1(串口監視用)

或下面這種冷啓動的,咱們不用它下載程序,也能知足需求編碼

3. ST-LINK V2仿真器下載器*1

調試STM32性價比極高,可燒寫程序,可斷點調試

​ 4. 遙控器外殼*1或者單獨的遙杆*2(本身作外殼)

若是你手上有舊遙控器的話,直接改造也可。

這是筆者找遍全網性價比最高的遙控器外殼了,15元不包郵,上面的遙杆基本能知足需求。

這款遙杆和上面遙控器上的同款,都是自動回中的,不適合做爲油門的遙杆,因此經濟條件容許的話,仍是直接買上面的遙控器外殼吧~ 

極不推薦那種蘑菇頭的遙杆,手感太差,容易炸雞! 

5. 無線模塊(NRF24L01)≥2

集芯微這家一個ID可購買兩個樣品,價格較低,再配個天線便可。

 

 銅管天線配上面的模塊(IPEX接頭)

膠棒天線用於下面的模塊(內針) 

​ 也可直接在優信買模塊(遙控器端用透傳2000m的)

 接收機端可選用這種100m的,兩種引腳定義同樣。

  • 遙控器端用2000m的,接收機端用2000m的——通訊距離在1000m以上
  • 遙控器端用2000m的,接收機端用100m的——通訊距離在500m左右
  • 遙控器端用100m的,接收機端用100m的——通訊距離在50m左右

6. 電解電容100uF*2(用來穩壓)

7. 獨石電容0.1uF*2(用來濾波),又稱104電容 

 8. 金屬膜電阻1k*二、10k*三、20k*1

9. 電位器50k*二、電位器帽子*二、鈕子開關*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. 電路焊接

 1. 遙控器端

遙控器端的電路比較複雜,先來看原理圖。幾乎把全部的引腳全用光了,能夠說榨乾了這個最小系統板。它提供了10個ADC的引腳,這裏一個做爲遙控器電池的電壓檢測,一個被編碼器佔用,剩下8個所有用做通道採集,因此基礎版是8通道的遙控器。沒有更多ADC可用,通道也就沒法擴充了。因此進階版和豪華版會採用其餘芯片,以實現更多通道!

有網友說,看不懂這種模塊化的原理圖,更習慣看全部線連在一塊兒的。

好的,沒有問題,這裏也提供實物鏈接圖~ (筆者畫了一上午)

 好的,如今映入您眼簾的是一團亂麻,盡情飛線吧~(大概六七十根線)

要注意的是,無線模塊和STM32最小系統板之間的連線必定要鏈接好,最好用排線,尤爲是NRF_SCK、NRF_MISO、NRF_MOSI三根線是SPI通訊主要的數據線,應避免纏繞,防止有寄生電容什麼的干擾通訊。

這裏複用了ch1left【home鍵】、ch2up【返回】、ch2down【肯定】、ch4left【數值-】、ch4right【數值+】五個微調按鍵,OLED屏幕顯示主界面的時候,是微調功能;非主界面的時候,做爲【】裏面的功能。爲了操做方便,可複製這幾個按鍵,尤爲是返回鍵和肯定鍵,和旋轉編碼器放到一塊兒,怎麼舒服怎麼來。

2. 接收機端

接收機端相比來講就簡單多了,先看原理圖。這裏暫時仍是用的最小系統板,體積比較大,如今只是做爲驗證電路。咱們計劃開發STM8/STM32/C51三種類型的接收機,針對體積小和多通道等不一樣需求,等發佈後再製做接收機也能夠。

無線模塊豎着放 

橫着放 

也能夠倒着放 

​ 

焊接完成後,用刷子(舊牙刷便可)蘸着酒精(家裏的白酒也可)或者洗板水,刷一下焊點和走錫,去除焊接遺留的雜質,防止對電路產生沒必要要的干擾。

最後,用萬用表的蜂鳴檔測試各線路是否鏈接正確,尤爲是GND和VCC

3. 燒寫固件

若是你的電腦安裝了keil軟件,那麼編譯工程再進行燒錄便可,這裏再也不贅述,可參考筆者的這篇博客:

https://blog.csdn.net/weixin_42268054/article/details/106878860

若是你的電腦沒有keil軟件,又不打算開發調試源代碼,那麼這裏推薦使用STM32 ST-LINK Utility軟件。軟件介紹、下載、安裝、使用請參考strongerHuang的這篇博客:

http://www.javashuo.com/article/p-mjxjipel-ky.html

先將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文件大於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/Cai-Zi/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】

本文歡迎轉載,請註明出處哈~ 

 

相關文章
相關標籤/搜索