熱門: 51單片機(jī) | 24小時必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
發(fā)布時間: 2017-11-26 11:19
正文摘要:四軸飛控-STC8A8K64S4A12-LQFP44-PPM-V10,來源于STC發(fā)布,按需取用 控制信號排針要靠在一起布線成3排針3*9*2.54 P1~P4對應(yīng)接收機(jī)的俯仰、橫滾、油門、航向PPM信號。M1~M4輸出到4個電調(diào)的信號。P5備用。 四個電機(jī) ... |
分享一下調(diào)試經(jīng)驗(yàn) 1.起飛后會飛斜:在水平的地板上將四軸放平,開啟遙控,油門打到最低,串口以文本輸入a,開始串口打印X,Y的角度,大概是+-2左右,將這個數(shù)記下來,然后在程序這里加補(bǔ)償(紅字的部分),然后重新編譯后下載程序,然后在開啟串口打印,這時輸出一般都在0-0.1這兒穩(wěn)定了,起飛后,無風(fēng)的情況下不會亂飛。 AngleX = asin(2*(q0*q2 - q1*q3 )) * 57.2957795f+1.9; // 俯仰 換算成度 AngleY = asin(2*(q0*q1 + q2*q3 )) * 57.2957795f+0.8; // 橫滾 2.遙控器通道正反要按資料上的圖片來撥,資料要求美國手,我買的日本手,實(shí)則都能用。用日本手要改接收機(jī)和單片機(jī)線的位置,用萬用表對照程序注釋一看便知。 3.這個程序配合MC6遙控器十分好用方便,可是把程序改成串口無線控制會發(fā)生一些問題,感覺是串口接受數(shù)據(jù)多,中斷頻率較高,而PWM中斷等級較低,老是打斷PWM中斷,然后現(xiàn)象是某個固定的腳PWM輸出會比其他高很多,串口改一下波特率或者發(fā)射加個延時,這個現(xiàn)象又轉(zhuǎn)移到其他PWM引腳,目前還在優(yōu)化中,,,,,, 4.前人栽樹后人乘涼,由心的感謝程序作者無私的分享。 ![]() |
參與人數(shù) 1 | 黑幣 +20 | 收起 理由 |
---|---|---|
![]() | + 20 | 回帖助人的獎勵! |
謝謝分享,有時間做一個玩 |
哈哈,剛在官網(wǎng)上看到,然后在家里又看到,更想做一臺來玩了 |
putiz 發(fā)表于 2021-12-26 18:05 你好,已加未見回復(fù),因?yàn)椴磺宄隳沁吷肚闆r,就這邊回復(fù)一下我大概的調(diào)試過程吧 1.程序里面有個電池電壓檢測(ADC部分),要保證這邊沒問題,檢測電壓低是啟動不了的,我這邊是直接把該端口和VCC接一起的。(因?yàn)槲矣玫母綦x電源,不能和鋰電池共地) 2.然后你的電路是否用的資料提供的電路?還是略有修改?PCA輸入假如用光耦隔離的話,受光側(cè)上拉電阻取值會影響波形的好壞,我這用的521光耦,原本用的103電阻,發(fā)現(xiàn)也是無法啟動,換成102就可以了,實(shí)際上要更小才合適。 3.先看看程序有沒有進(jìn)入循環(huán),還是卡在油門最小等待這一步,我在這兒加上串口打印配合調(diào)試 PrintString1("注意準(zhǔn)備等待油門最小了\r\n"); while(cnt_start < 25) //等待油門最小 20ms * 25 = 500ms { if(B_PPM3_OK) //油門 { B_PPM3_OK = 0; if(PPM3_Cap <= 1200) cnt_start++; } delay_ms(1); } PrintString1("油門最小測試通過\r\n"); 當(dāng)油門通過后就是主要的工作啦,用串口不停地查看接收的數(shù)據(jù)是否與遙控一起在變化, void Return_Message(void) { TX1_write2buff('V'); TX1_write2buff('='); TX1_write2buff(Battery/1000 + '0'); TX1_write2buff((Battery%1000)/100 + '0'); TX1_write2buff('.'); TX1_write2buff((Battery%100)/10 + '0'); TX1_write2buff(Battery%10 + '0'); TX1_write2buff(' '); TX1_write2buff(' '); //從這兒開始 PrintString1("PPM1="); TX1_int_value((int)(PPM1 * 10)); PrintString1("PPM2="); TX1_int_value((int)(PPM2 * 10)); PrintString1("PPM3="); TX1_int_value((int)(PPM3 * 10)); PrintString1("PPM4="); TX1_int_value((int)(PPM4 * 10)); /* PrintString1("AngleX="); TX1_int_value((int)(AngleX * 10)); PrintString1("AngleY="); TX1_int_value((int)(AngleY * 10)); PrintString1("AngleZ="); TX1_int_value((int)(Angle_gz * 10)); */ PrintString1("a_x="); TX1_int_value(a_x * 10); PrintString1("a_y="); TX1_int_value(a_y * 10); PrintString1("g_z="); TX1_int_value(g_z * 10); TX1_cnt = 0; TX1_write2buff(0x0d); TX1_write2buff(0x0a); } 這樣就可以很直觀的看出來遙控的接收情況了,即使線接反了,也可以看出實(shí)時的數(shù)據(jù)變化,找出對應(yīng)的搖桿,因?yàn)檫@樣很方便,我把買的日本手該成了中國手。。。。。 4.然后晶振頻率和EEPROM大小不能錯,遙控器通道正反要按資料圖片來撥,其他沒什么了,串口這兒就可以看出很多情況了,最后LQFP44我用的G版本 |
CHNO 發(fā)表于 2021-6-5 17:11 大佬,可以加下好友交流一下嗎 2410025784 |
CHNO 發(fā)表于 2021-6-11 11:29 大佬,可以加下聯(lián)系方式嗎? 自己遇到了一些問題,想向您請教一下 |
大家好,我看了幾天的代碼了,也嘗試打印了一些數(shù)據(jù)來分析。 現(xiàn)狀是剛開始啟動后,電機(jī)不會啟動,不會低速旋轉(zhuǎn)。即使偶爾有幾個會旋轉(zhuǎn),也不會受遙控器的控制。 經(jīng)過打印一些信息發(fā)現(xiàn):
這樣的代碼,這些值不會發(fā)生變化和更新
在這樣的初始化后打印出來的數(shù)據(jù)卻是0 4000 8000 12337(PWM0T1 PWM1T1 PWM2T1 PWM3T1) 和初始化結(jié)果也是不一樣的。 為什么我找這樣的信息呢,因?yàn)槲腋杏X首先遙控器不能控制波形的輸出,剛開始輸出的波形也不能讓電動機(jī)啟動。 因此我想試著找找這個原因,但是這個值不知道為什么不會發(fā)生變化 請問大佬可以回復(fù)下嗎?真的不知道怎么辦 |
lzl12399 發(fā)表于 2021-6-10 11:45 我是自己畫的 |
CHNO 發(fā)表于 2021-6-5 17:11 板子打樣,自己畫得還是有現(xiàn)成得,小弟也想玩玩 |
從宏晶官網(wǎng)下載,然后打過板子,四軸可以平穩(wěn)飛行,就是油門開大后不能穩(wěn)定的停在原地,會偏,正在查找原因中, |
學(xué)習(xí)無人機(jī),謝謝你的分享 |
感謝樓主分享,小白一名前來膜拜學(xué)習(xí) |
這個厲害啊,想學(xué)但是沒怎么看懂哈哈 |
關(guān)鍵還是軟件算法 |
謝謝分享 |
請問您有飛行的視頻么 |
感謝分享,想問下,如果機(jī)身水平不變四個螺旋槳前后左右偏轉(zhuǎn)改變飛行方向是否可行?機(jī)身姿態(tài)與控制方向非耦合狀態(tài),同時機(jī)身可在空中改變角度懸停。 |
正在學(xué)習(xí)無人機(jī),謝謝你的分享 |
下載下來好好學(xué)習(xí)一下代碼 |
下載下來學(xué)習(xí)學(xué)習(xí) |
謝謝分享,學(xué)著做一個四軸飛控 |
感謝樓主分享 |
謝謝樓主分享! |
感謝~~~ |
樓主,可否加個QQ,跟你學(xué)習(xí)下,我的QQ 75750462 |
謝謝你的分享 |
感謝分享,對于學(xué)習(xí)很有幫助 |
關(guān)于玩四軸,我認(rèn)為深入的玩法就是研究軟硬件,特別是軟件,如果只是組裝比人的成品,沒啥成就感;本著此想法所以下載學(xué)習(xí)此算法! |
為什么怎么也下不完呢,是有問題? |
感謝分享,支持原創(chuàng), |
感謝分享,有空學(xué)習(xí)下 |
謝謝分享,有時間做一個玩下 |
下來試試... |
Powered by 單片機(jī)教程網(wǎng)