久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
匿名四軸之迷你遙控器附軟硬件源碼
[打印本頁]
作者:
51hei學習技術中
時間:
2017-3-17 01:37
標題:
匿名四軸之迷你遙控器附軟硬件源碼
每一個做四軸飛行器都會遇到這樣的情況,飛機做好了, 軟件沒調好!
還有什么比這更讓人抓狂嗎? 有!!那就是想飛的時候,發現沒有遙控器。。
這么讓人抓狂的事情,我都遇到了!!所以在做飛機的時候把遙控器一起做了吧。
分享一個開源的遙控器設計,嗯,就是匿名四軸的,的確很不錯,代碼的可讀性很強,作為入門學習絕對沒問題。
161801mf1o9x1f7fzmfm9i.jpeg.thumb.jpg
(56.68 KB, 下載次數: 156)
下載附件
2017-3-17 01:32 上傳
這個就是傳說中的遙控器源碼
匿名遙控器V1.2.zip
(488.18 KB, 下載次數: 72)
2017-3-17 01:33 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
這個是設計原理圖
ANO-Remoter V1.2.pdf
(125.08 KB, 下載次數: 60)
2017-3-17 01:33 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
如果你直接已經做出來或是買了匿名遙控器,恭喜,你會用上這個驅動的
FTDI USB Drivers.zip
(1.16 MB, 下載次數: 45)
2017-3-17 01:34 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
下面是部分源碼預覽:
/************************ (C) COPYRIGHT 2014 ANO Tech ******************************
* 作者 :匿名科創
* 文件名 :ANO_RC.cpp
* 描述 :遙控通道數據處理
* 技術Q群 :190169595
**********************************************************************************/
#include "ANO_RC.h"
ANO_RC rc;
ANO_RC::ANO_RC()
{
Init();
}
void ANO_RC::Init(void)
{
DataRaw[ROLL] = 1500;
DataRaw[PITCH] = 1500;
DataRaw[YAW] = 1500;
}
void ANO_RC::DataGet(void)
{
DataRaw[ROLL] = DataRaw[ROLL] * 0.99 + (float)ADC_ConvertedValue[3] * 0.01;
DataRaw[PITCH] = DataRaw[PITCH] * 0.99 + (float)ADC_ConvertedValue[2] * 0.01;
DataRaw[YAW] = DataRaw[YAW] * 0.99 + (float)ADC_ConvertedValue[1] * 0.01;
DataRaw[THROTTLE] = DataRaw[THROTTLE] * 0.99 + (float)ADC_ConvertedValue[0] * 0.01;
KeyDataRawL = (float)ADC_ConvertedValue[5];
KeyDataRawR = (float)ADC_ConvertedValue[6];
}
void ANO_RC::DataCalculate(void)
{
Data[ROLL] = (u16)(1000 - DataRaw[ROLL]/2 + 1000) - DataTrim[ROLL];
Data[ROLL] = (Data[ROLL] - 1500) * 0.8 +1500;
Data[PITCH] = (u16)(DataRaw[PITCH]/2 + 1000) - DataTrim[PITCH];
Data[PITCH] = (Data[PITCH] - 1500) * 0.8 +1500;
Data[YAW] = (u16)(1000 - DataRaw[YAW]/2 + 1000) - DataTrim[YAW];
Data[YAW] = (Data[YAW] - 1500) * 0.8 +1500;
Data[THROTTLE] = (u16)(DataRaw[THROTTLE]/2 + 1000) - DataTrim[THROTTLE];
Data[THROTTLE] = (Data[THROTTLE] - 1500) * 0.85 +1500;
KeyDataL = (u16)KeyDataRawL;
KeyDataR = (u16)KeyDataRawR;
}
void ANO_RC::KeyCheck(void)
{
static u8 keyFlagL = 1, keyFlagR = 1;
static u8 timeDelayFlag = 0;
if(timeDelayFlag)
timeDelayFlag --;
if(KeyDataL<100 && keyFlagL) //THR+
{
if(!timeDelayFlag)
timeDelayFlag = 10;
if((KeyDataL<100 && keyFlagL) && timeDelayFlag == 1)
{
DataTrim[THROTTLE] -= 2;
param.SAVE_RC_OFFSET();
keyFlagL = 0;
}
}
else if(KeyDataL>1950 && KeyDataL<2100 && keyFlagL) //YAW-
{
if(!timeDelayFlag)
timeDelayFlag = 10;
if(KeyDataL>1950 && KeyDataL<2100 && timeDelayFlag == 1)
{
DataTrim[YAW] += 2;
param.SAVE_RC_OFFSET();
keyFlagL = 0;
}
}
else if(KeyDataL>2650 && KeyDataL<2750 && keyFlagL) //THR-
{
if(!timeDelayFlag)
timeDelayFlag = 10;
if(KeyDataL>2650 && KeyDataL<2750 && timeDelayFlag == 1)
{
DataTrim[THROTTLE] += 2;
param.SAVE_RC_OFFSET();
keyFlagL = 0;
}
}
else if(KeyDataL>3000 && KeyDataL<3100 && keyFlagL) //YAW+
{
if(!timeDelayFlag)
timeDelayFlag = 10;
if(KeyDataL>3000 && KeyDataL<3100 && timeDelayFlag == 1)
{
DataTrim[YAW] -= 2;
param.SAVE_RC_OFFSET();
keyFlagL = 0;
}
}
else if(KeyDataL>4050)
{
keyFlagL = 1;
}
if(KeyDataR<100 && keyFlagR) //PITCH+
{
if(!timeDelayFlag)
timeDelayFlag = 10;
if(KeyDataR<100 && keyFlagR && timeDelayFlag == 1)
{
DataTrim[PITCH] -= 2;
param.SAVE_RC_OFFSET();
keyFlagR = 0;
}
}
else if(KeyDataR>1900 && KeyDataR<2100 && keyFlagR) //ROLL+
{
if(!timeDelayFlag)
timeDelayFlag = 10;
if(KeyDataR>1900 && KeyDataR<2100 && keyFlagR && timeDelayFlag == 1)
{
DataTrim[ROLL] -= 2;
param.SAVE_RC_OFFSET();
keyFlagR = 0;
}
}
else if(KeyDataR>2600 && KeyDataR<2800 && keyFlagR) //PITCH-
{
if(!timeDelayFlag)
timeDelayFlag = 10;
if(KeyDataR>2600 && KeyDataR<2800 && keyFlagR && timeDelayFlag == 1)
{
DataTrim[PITCH] += 2;
param.SAVE_RC_OFFSET();
keyFlagR = 0;
}
}
else if(KeyDataR>2950 && KeyDataR<3150 && keyFlagR) //ROLL-
{
if(!timeDelayFlag)
timeDelayFlag = 10;
if(KeyDataR>2950 && KeyDataR<3150 && keyFlagR && timeDelayFlag == 1)
{
DataTrim[ROLL] += 2;
param.SAVE_RC_OFFSET();
keyFlagR = 0;
}
}
else if(KeyDataR>3200 && KeyDataR<3300 && keyFlagR)
{
if(!timeDelayFlag)
timeDelayFlag = 10;
if(KeyDataR>3200 && KeyDataR<3300 && keyFlagR && timeDelayFlag == 1)
{
}
}
else if(KeyDataR>3350 && KeyDataR<3450 && keyFlagR)
{
if(!timeDelayFlag)
timeDelayFlag = 10;
if(KeyDataR>3350 && KeyDataR<3450 && keyFlagR && timeDelayFlag == 1)
{
}
}
else if(KeyDataR>4050)
{
keyFlagR = 1;
}
}
/******************* (C) COPYRIGHT 2014 ANO TECH *****END OF FILE************/
復制代碼
作者:
qiujianqin
時間:
2017-9-18 12:04
好東西 正需要呢
作者:
hacehi
時間:
2018-12-10 16:19
樓主好人,萬分感謝,辛苦辛苦
作者:
xunxing
時間:
2018-12-28 21:46
想嘗試做一下
作者:
pigpighhkk
時間:
2019-1-9 23:21
樓主好人,萬分感謝,辛苦辛苦
作者:
xt20091212
時間:
2019-2-1 13:15
感謝分享
作者:
bryan_guan
時間:
2019-11-28 11:52
謝謝樓主分享
歡迎光臨 (http://m.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
在线观看av不卡
|
色激情网
|
亚洲一区久久
|
黄色片免费网站
|
欧美一级片在线
|
成人免费在线视频观看
|
2014天堂网
|
一级黄片毛片
|
久久精彩
|
婷婷色在线
|
日本一级淫片色费放
|
国产精品亚洲精品
|
av中文网
|
日本在线中文
|
黄色大片av
|
亚洲精品视频在线播放
|
国模一区二区三区
|
九九精品视频在线观看
|
欧美一级全黄
|
日韩在线不卡视频
|
亚洲国产中文字幕
|
手机在线看片1024
|
日韩精品视频免费在线观看
|
久久精品久久久久久久
|
一级免费视频
|
成年人的免费视频
|
欧美激情一区
|
黄色日本视频
|
欧美精品区
|
xxxxx国产
|
成人国产精品免费观看
|
成人午夜av
|
国产一区高清
|
精品网站999www
|
黄色小视频免费看
|
黄色片在线免费观看
|
国产又粗又猛又黄又爽无遮挡
|
免费看黄色小视频
|
色激情网
|
可以看的毛片
|
欧美日韩一本
|