双动力船模模块
一.遙控電路部分
1.? 遙控電路規(guī)劃圖:
| ? MCU |
| RF收發(fā)模塊 |
| A/D轉(zhuǎn)向控制模塊 |
| 液晶顯示模塊 |
| 鍵盤(pán)控制模塊 |
2.? 各模塊說(shuō)明
Rf收發(fā)模塊:
Rf收發(fā)芯片采用全雙工的nrf905,用于遙控電路和控制電路的通訊,將遙控器設(shè)定的set_speed和set_angle發(fā)送給控制電路執(zhí)行,同時(shí)接受控制電路測(cè)得的real_speed。因而有一個(gè)接收驅(qū)動(dòng)函數(shù)rfr()和一個(gè)發(fā)送驅(qū)動(dòng)函數(shù)rft()。
?
????????????? A/d轉(zhuǎn)向控制模塊:
A/d轉(zhuǎn)向控制模塊由接有滑動(dòng)變阻器的a/d轉(zhuǎn)換器組成。改變滑動(dòng)變阻器的阻值,電壓在0-5v變化,輸出的數(shù)字量在0-255變化,再減去128后就是我們要的hand_angle(在-128-127變化)了
?
鍵盤(pán)控制模塊:
a. 遙控器鍵盤(pán)的組織:
| ? Send |
| ? On/off |
| up |
| ? left |
| ? right |
| down |
b.鍵的功能:
On/off:使驅(qū)使電路初始化。初始化后船的速度變?yōu)榱恪?/span>
Send:信號(hào)的發(fā)送。當(dāng)send鍵按下時(shí)將調(diào)動(dòng)rf收發(fā)模塊的rft(),將設(shè)定好的set_speed和set_angle發(fā)送給驅(qū)使電路。
| 鍵值 | 鍵的功能 | 備注 |
| Up | Set_speed0++;set_speed1++ | ? |
| Down | Set_speed0--;set_speed1-- | ? |
| Left | Auto_angle++ | 當(dāng)按下send鍵后將自動(dòng)清零。用于對(duì)轉(zhuǎn)向的智能控制。其優(yōu)先級(jí)高于手動(dòng)方式。 |
| Right | Auto_angle-- | |
| Up+left | Set_speed0++ | 由于螺旋槳的原因,在兩個(gè)電機(jī)在轉(zhuǎn)速相等時(shí)船體不一定就能直線航行,因而可以通過(guò)微調(diào)兩邊的轉(zhuǎn)速而達(dá)到直線航行的目的。 |
| Down+left | Set_speed0-- | |
| Up+right | set_speed1++ | |
| Down+right | set_speed1-- |
注:實(shí)現(xiàn)自動(dòng)方式優(yōu)先級(jí)高于手動(dòng)方式
| 定時(shí)中斷入口 |
| 讀取自動(dòng)角度auto_angle和a/d的手動(dòng)角度hand_angle |
| Auto_speed==0 |
| Set_speed=hang_speed |
| Set_speed=auto_speed |
| 定時(shí)中斷出口 |
????????????? 液晶顯示模塊:
???????????????????? 用于顯示set-angle,real-speed和set-speed,寫(xiě)在主函數(shù)中。
3.? 邏輯紐帶關(guān)系
a. 數(shù)據(jù)buffer的設(shè)定:
Structure? data_buffer
{
?????? Uchar set_speed0;//設(shè)定的左驅(qū)動(dòng)電機(jī)的速度
?????? Uchar set_speed1;//設(shè)定的右驅(qū)動(dòng)電機(jī)的速度
???????????????????? Char set_angle;//設(shè)定的轉(zhuǎn)過(guò)的角度
Uchar real_speed0;//實(shí)際測(cè)的左驅(qū)動(dòng)電機(jī)的速度
???????????????????? Uchar real_speed1;//實(shí)際測(cè)的右驅(qū)動(dòng)電機(jī)的速度
????????????? };
????????????? 注:real_speed0和real_speed1是通過(guò)rfr()接收的,set_speed0,set_speed1和set_angle
???????????????????? 是通過(guò)遙控自己設(shè)定的
????????????? b.數(shù)據(jù)關(guān)系結(jié)構(gòu)圖:
?
| Set-speed?? set-angle (兩個(gè)) |
| 定時(shí)掃描鍵盤(pán)讀取set_speed值對(duì)其值進(jìn)行修改 |
| 定時(shí)讀取hand_angle和auto_angle,對(duì)set-angle修改 |
| 當(dāng)send鍵按下時(shí)發(fā)送 并將atuo_angle清零 |
| real-speed (兩個(gè)) |
| 主函數(shù)中讀set_speed和set_angle顯示 ? |
?
?
二.控制電路部分
1.? 控制電路規(guī)劃圖
| ? MCU |
| RF收發(fā)模塊 ? |
| 轉(zhuǎn)速檢測(cè)模塊(兩個(gè)) |
| 驅(qū)動(dòng)電機(jī)模塊(兩個(gè)) ? |
2.? 各模塊說(shuō)明:
Rf收發(fā)模塊:同上
?
驅(qū)動(dòng)電機(jī)模塊:
a.閉環(huán)系統(tǒng)速度的調(diào)節(jié):
由于水的阻力很大,在船航行中有加速慢降速快的特點(diǎn),因而我們采用bang_bang算法來(lái)控制船的轉(zhuǎn)速。對(duì)real-speed和set-speed進(jìn)行比較來(lái)實(shí)現(xiàn)pwm占空比的調(diào)節(jié)。
bang_bang算法調(diào)速方案:
| 定時(shí)中斷入口 |
| 獲得當(dāng)前數(shù)度real_speed和設(shè)定的數(shù)度set_speed |
| Set_speeed>real_speed |
| 定時(shí)中斷出口 |
| 驅(qū)動(dòng)電機(jī)占空比為0% |
| 驅(qū)動(dòng)電機(jī)占空比為100% ? |
????????????? b.開(kāi)環(huán)系統(tǒng)轉(zhuǎn)彎角度的控制:
由于轉(zhuǎn)彎的角度和兩個(gè)驅(qū)動(dòng)電機(jī)的轉(zhuǎn)速,轉(zhuǎn)彎的時(shí)間有關(guān)。因而我們?cè)谠O(shè)定兩
個(gè)驅(qū)動(dòng)電機(jī)的轉(zhuǎn)速后,通過(guò)時(shí)間的長(zhǎng)短來(lái)控制轉(zhuǎn)彎的角度。
?
轉(zhuǎn)速檢測(cè)模塊:
???? 由單片機(jī)的外部中斷,定時(shí)計(jì)數(shù)功能和光電探口組成。定時(shí)得到驅(qū)動(dòng)電機(jī)的實(shí)際轉(zhuǎn)速real-speed。real-speed將作為驅(qū)動(dòng)電機(jī)控制的一參數(shù)試用,同時(shí)定時(shí)發(fā)送回遙控電路作為實(shí)時(shí)監(jiān)測(cè)。
速度檢測(cè)方案:
| 外部中斷intx打開(kāi) |
| 有下跳沿 |
| Countx++ |
| T0定時(shí)時(shí)間到 |
| Real_speedx=countx Countx=0; |
3.? 邏輯紐帶關(guān)系
?a. 數(shù)據(jù)buffer的設(shè)定:
Structure? data_buffer
{
?Uchar real_speed0;//實(shí)際測(cè)的左驅(qū)動(dòng)電機(jī)的速度
???????????????????? Uchar real_speed1;//實(shí)際測(cè)的右驅(qū)動(dòng)電機(jī)的速度
Uchar set_speed0;//設(shè)定的左驅(qū)動(dòng)電機(jī)的速度
Uchar set_speed1;//設(shè)定的右驅(qū)動(dòng)電機(jī)的速度
???????????????????? Char set_angle;//設(shè)定的轉(zhuǎn)過(guò)的角度
????????????? };
注:set_speed0,set_speed1和set_angle是通過(guò)rfr()接收的,real_speed0和real_speed1
???????????????????? 是通過(guò)遙控自己設(shè)定的
?
| Set-speed?? set-angle |
| 中斷接收 |
| Real-speed |
| 定時(shí)測(cè)轉(zhuǎn)速修改real-speed |
| 定時(shí)比較Real-speed和Set-speed得到輸出的占空比 ? |
| 由set_angle來(lái)確定轉(zhuǎn)向時(shí)間從而達(dá)到轉(zhuǎn)向 |
| 定時(shí)發(fā)送 |
| 驅(qū)動(dòng)電機(jī) |
| 驅(qū)動(dòng)電機(jī) |
?
?
總結(jié)
- 上一篇: C#WindowsMediaPlayer
- 下一篇: 前进吧,兄弟们—兄弟连IT教育