[ݳXȲέp


RC 遙控器

分享你的DIY成品,過程,成果,經驗.
好的文章版主會整理,發表於站上.

RC 遙控器

文章alpha 發表於 週二 3月 03, 2020 12:19 am

RC遙控器

DSC03989-RRR.jpg


想自己做一套遙控器的想法已經很久了 ,年輕時遙控飛機是很貴的 ''玩具'' , 一把基本四動的遙控器要價萬把塊 , 幾乎是當時新鮮人半個月薪水 , 現在MCU的普遍 , 加上RF模組可以輕易取得 , 自己做一套遙控器變成是可以輕易達成的 , 市面上開放頻段的RF模組有 2.4GHz 和 433MHz , 有些還有PA的功能 , 可以在空曠地區達到1000公尺的距離 , 發射機用的MCU需要有ADC的功能來偵測遙桿可變電阻的值 , 需要有一個小而不貴的圖型顯示器 , 還要有一些按鍵用的接點, 或許可以將顯示器加個觸控 , 可能就不需要這些按鈕

發射機的MCU有幾顆可以選擇, MSP430G2553,開發版Launch Pad很便宜(以前, 台幣百來元 ), 16位元 RISC 的內核 , 16K 的FLASH , 內含 16MHz CLOCK , CCS開發環境支援ON-LINE DEBUG , 且16K以內免費 , 具有 8 Channel 10-Bit 200-ksps ADC, 扣除一個偵測主電池電壓外 , 可以接7個可變電阻 , 只可惜其UART 和 ADC 共用腳位 , 對於使用UART的RF模組會少二個ADC可以用 , AVR 系列的 ATmega8也適合來做發射機的MCU , 只是其 8位元的內核 , 不知道可否在 20ms 以內完成取ADC和混控計算及RF資料傳送的工作 , 且AVR 取ADC的速度比MSP430G2553 慢 , 不過小弟實做的結果 , MSP430G2553 取8通道ADC值(5次的平均值)加上正反向運算 , 可以在 16mS 以內完成 , 且這兩顆MCU 的原始碼幾乎有 90% 相似度 , 運算能力上來說應該可以勝任 , STM32F103系列 , 市面上開源的遙控器就是用這顆, 32位元 RISC 的內核 , 最大512K的FLASH , 72MHz 的時脈 , 用這顆可以支援彩色的觸控小銀幕(FSMC界面 , 最大4.3" ) , 16通道的 ADC , 這幾乎可以可以做高階的遙控器了 , 想要更大的螢幕 , 可能要用上 STM32F429

接收機的部份 , 由於發射機的資料格式是我們自己定的 , 無法和市售接收機相容 , 當然有些原廠接收機也有使用市售RF模組當接收 , 開源的遙控器中也有支援一些大廠的接收機 , 但是網路上不容易找到相關資料 , 自己做一個接收機有幾個方式可以做 ,可以用一顆 CD4017 , 用MCU控制 RST和CLK 依序產生10組PWM訊號驅動伺服機 ,只是以最大2ms來說,最多只可以到10組,但是以2.5ms來說,只可以到8組,否則會超過20ms, 另外 PCA9685也可以做到 , 高速IIC 的介面 , 可以有 16組PWM輸出 , 只是要符合伺服機的 Duty ratio , 其解析度只能到 256階 ,不過對一般伺服機已經很夠用了, 另外直接用MCU的GPIO來當PWM輸出也是一個方式 ,只是需要用到主頻較高的MCU和加上一顆 Buffer

已下是電路圖 , 劃的不好請指教
TX40-1.jpg

說明一下, MCU使用MSP430G2553-IPW28 , 有24個GPIO可以用 , ADC部份用掉八個 , 電池使用7.4V的鋰電池 , 需要加兩根電阻分給ADC , 再用程式反算回實際電壓顯示在螢幕上 , 並且也可以依照設定值當作低電壓警告 , 螢幕選用 NOKIA 5110模組 , 具有 84 * 48 的單色圖型顯示功能,可以使用繁體中文 , 中文字型方面為 16*16 點矩陣 , 可以自己 ''造字 '' (小弟是用自己寫的小程式轉換) , LCD含背光控制需要用掉六個IO , 需要一顆IIC EPROM , 用來儲存相關設定和中文字型,IIC介面需要兩個IO,RF模組使用NRF24L01+PA ,需要用到六個GPIO , 發出聲音的蜂鳴器用掉一個, 按鈕的GPIO部份 , 搖桿微調部份需要八個 , 功能操作需要四個 , 因為MSP430G2553-IPW28 , 只有24個GPIO可以用 , 所以需要用到 PCA9555 , IIC介面可以和EEPROM共用 , 為了加快速度需要一個INT接點 , 這樣就剛好用滿 24 個GPIO

電路圖較複雜,MCU接腳可以看下面
ADC
ADC0(電池) -->P1.0
ADC1(油門) -->P1.1
ADC2(方向舵) -->P1.1
ADC3(升降舵) -->P1.1
ADC4(副翼) -->P1.1
ADC5(襟翼) -->P1.1
ADC6(AUX1) -->P1.1
ADC7(AUX2) -->P1.1
LCD
LCD.CE -->P3.1
LCD.RESET -->P3.0
LCD.CLK -->P2.2
LCD.DIN -->P3.2
LCD.DTA -->P2.1
LCD.DC -->P3.3
LCD.BL -->P2.3
PCA9555
PCA9555.INT-->P3.4
BUZZER
BUZZER-->P2.4
NRF24L01
NRF24L01.IRQ-->P2.5
NRF24L01.MISO-->P3.5
NRF24L01.MOSI-->P3.6
NRF24L01.CLK-->P3.7
NRF24L01.CSN-->P2.7
NRF24L01.CE-->P2.6
IIC
IIC.DTA-->P2.1
IIC.CLK-->P2.0

待續...
alpha
 
文章: 86
註冊時間: 週四 11月 16, 2006 4:25 pm

Re: RC 遙控器

文章aki 發表於 週一 4月 06, 2020 5:24 am

分享一個小經驗:

搖桿(VR) --> CC2500 KIT(MSP430F2242+CC2500 as transmitter) --> CC2500KIT(MSP430F2242+CC2500 as recever) --> servo motor

參考看看 ! 少掉很多工
aki
 
文章: 368
註冊時間: 週二 10月 10, 2006 3:52 pm

Re: RC 遙控器

文章alpha 發表於 週一 4月 06, 2020 9:08 pm

謝謝你的建議
alpha
 
文章: 86
註冊時間: 週四 11月 16, 2006 4:25 pm

Re: RC 遙控器

文章aki 發表於 週二 4月 07, 2020 9:12 am

alpha 寫:謝謝你的建議
 

我自己是做了兩個試做(1)是用手機控制 Http 透過 Wifi 送角度命令到 ESP8266直接產生相對應的 PWM 控制一個 SG90 servo motor.(2)是用VR式的搖桿,透過MSP430F2274+CC2500的module可以將 VR 的角度轉為 V 被F2274 的ADC讀取後讓 CC2500傳出去(約30m)另一組 MSP430F2274+CC2500的module接收,將角度轉成PWM控制 SG90 servo motor, 先不要做太難,可以控制遙控船應該是沒有問題,至於要多 Channel
則要考慮 ADC 及 PWM的 Channel 數. 以上
aki
 
文章: 368
註冊時間: 週二 10月 10, 2006 3:52 pm

Re: RC 遙控器

文章aki 發表於 週二 4月 07, 2020 9:14 am

alpha 寫:謝謝你的建議
 

別客氣!
我自己是做了兩個試做(1)是用手機控制 Http 透過 Wifi 送角度命令到 ESP8266直接產生相對應的 PWM 控制一個 SG90 servo motor.(2)是用VR式的搖桿,透過MSP430F2274+CC2500的module可以將 VR 的角度轉為 V 被F2274 的ADC讀取後讓 CC2500傳出去(約30m)另一組 MSP430F2274+CC2500的module接收,將角度轉成PWM控制 SG90 servo motor, 先不要做太難,可以控制遙控船應該是沒有問題,至於要多 Channel
則要考慮 ADC 及 PWM的 Channel 數. 以上  期待您的成果分享 !

PS: 對了我提的 MSP430F2274+CC2500 KIT 的正式名稱叫 eZ430-RF2500詳細資料及照片請參閱
http://perso.citi.insa-lyon.fr/afraboul ... AU227A.pdf
aki
 
文章: 368
註冊時間: 週二 10月 10, 2006 3:52 pm

Re: RC 遙控器

文章aki 發表於 週一 4月 13, 2020 9:21 am

alpha 寫:RC遙控器

DSC03989-RRR.jpg


想自己做一套遙控器的想法已經很久了 ,年輕時遙控飛機是很貴的 ''玩具'' , 一把基本四動的遙控器要價萬把塊 , 幾乎是當時新鮮人半個月薪水 , 現在MCU的普遍 , 加上RF模組可以輕易取得 , 自己做一套遙控器變成是可以輕易達成的 , 市面上開放頻段的RF模組有 2.4GHz 和 433MHz , 有些還有PA的功能 , 可以在空曠地區達到1000公尺的距離 , 發射機用的MCU需要有ADC的功能來偵測遙桿可變電阻的值 , 需要有一個小而不貴的圖型顯示器 , 還要有一些按鍵用的接點, 或許可以將顯示器加個觸控 , 可能就不需要這些按鈕

發射機的MCU有幾顆可以選擇, MSP430G2553,開發版Launch Pad很便宜(以前, 台幣百來元 ), 16位元 RISC 的內核 , 16K 的FLASH , 內含 16MHz CLOCK , CCS開發環境支援ON-LINE DEBUG , 且16K以內免費 , 具有 8 Channel 10-Bit 200-ksps ADC, 扣除一個偵測主電池電壓外 , 可以接7個可變電阻 , 只可惜其UART 和 ADC 共用腳位 , 對於使用UART的RF模組會少二個ADC可以用 , AVR 系列的 ATmega8也適合來做發射機的MCU , 只是其 8位元的內核 , 不知道可否在 20ms 以內完成取ADC和混控計算及RF資料傳送的工作 , 且AVR 取ADC的速度比MSP430G2553 慢 , 不過小弟實做的結果 , MSP430G2553 取8通道ADC值(5次的平均值)加上正反向運算 , 可以在 16mS 以內完成 , 且這兩顆MCU 的原始碼幾乎有 90% 相似度 , 運算能力上來說應該可以勝任 , STM32F103系列 , 市面上開源的遙控器就是用這顆, 32位元 RISC 的內核 , 最大512K的FLASH , 72MHz 的時脈 , 用這顆可以支援彩色的觸控小銀幕(FSMC界面 , 最大4.3" ) , 16通道的 ADC , 這幾乎可以可以做高階的遙控器了 , 想要更大的螢幕 , 可能要用上 STM32F429

接收機的部份 , 由於發射機的資料格式是我們自己定的 , 無法和市售接收機相容 , 當然有些原廠接收機也有使用市售RF模組當接收 , 開源的遙控器中也有支援一些大廠的接收機 , 但是網路上不容易找到相關資料 , 自己做一個接收機有幾個方式可以做 ,可以用一顆 CD4017 , 用MCU控制 RST和CLK 依序產生10組PWM訊號驅動伺服機 ,只是以最大2ms來說,最多只可以到10組,但是以2.5ms來說,只可以到8組,否則會超過20ms, 另外 PCA9685也可以做到 , 高速IIC 的介面 , 可以有 16組PWM輸出 , 只是要符合伺服機的 Duty ratio , 其解析度只能到 256階 ,不過對一般伺服機已經很夠用了, 另外直接用MCU的GPIO來當PWM輸出也是一個方式 ,只是需要用到主頻較高的MCU和加上一顆 Buffer

已下是電路圖 , 劃的不好請指教
TX40-1.jpg

說明一下, MCU使用MSP430G2553-IPW28 , 有24個GPIO可以用 , ADC部份用掉八個 , 電池使用7.4V的鋰電池 , 需要加兩根電阻分給ADC , 再用程式反算回實際電壓顯示在螢幕上 , 並且也可以依照設定值當作低電壓警告 , 螢幕選用 NOKIA 5110模組 , 具有 84 * 48 的單色圖型顯示功能,可以使用繁體中文 , 中文字型方面為 16*16 點矩陣 , 可以自己 ''造字 '' (小弟是用自己寫的小程式轉換) , LCD含背光控制需要用掉六個IO , 需要一顆IIC EPROM , 用來儲存相關設定和中文字型,IIC介面需要兩個IO,RF模組使用NRF24L01+PA ,需要用到六個GPIO , 發出聲音的蜂鳴器用掉一個, 按鈕的GPIO部份 , 搖桿微調部份需要八個 , 功能操作需要四個 , 因為MSP430G2553-IPW28 , 只有24個GPIO可以用 , 所以需要用到 PCA9555 , IIC介面可以和EEPROM共用 , 為了加快速度需要一個INT接點 , 這樣就剛好用滿 24 個GPIO

電路圖較複雜,MCU接腳可以看下面
ADC
ADC0(電池) -->P1.0
ADC1(油門) -->P1.1
ADC2(方向舵) -->P1.1
ADC3(升降舵) -->P1.1
ADC4(副翼) -->P1.1
ADC5(襟翼) -->P1.1
ADC6(AUX1) -->P1.1
ADC7(AUX2) -->P1.1
LCD
LCD.CE -->P3.1
LCD.RESET -->P3.0
LCD.CLK -->P2.2
LCD.DIN -->P3.2
LCD.DTA -->P2.1
LCD.DC -->P3.3
LCD.BL -->P2.3
PCA9555
PCA9555.INT-->P3.4
BUZZER
BUZZER-->P2.4
NRF24L01
NRF24L01.IRQ-->P2.5
NRF24L01.MISO-->P3.5
NRF24L01.MOSI-->P3.6
NRF24L01.CLK-->P3.7
NRF24L01.CSN-->P2.7
NRF24L01.CE-->P2.6
IIC
IIC.DTA-->P2.1
IIC.CLK-->P2.0

待續...


這訊息對版大也許有幫助,請參考!
https://www.youtube.com/watch?v=bD7rQbnSbek&t=18s
aki
 
文章: 368
註冊時間: 週二 10月 10, 2006 3:52 pm


回到 DIY成品分享

誰在線上

正在瀏覽這個版面的使用者:沒有註冊會員 和 4 位訪客