关键词不能为空

当前您在: 主页 > 英语 >

器具MWC 多方案DIY 经验教程

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-01-28 07:16
tags:

器具-督战

2021年1月28日发(作者:carbonate)


QQ: 110671958



2


类板子:






1.


1 4


路数字输入输出口:


工作电压为


3. 3V


或者


5V



每一路能输出和接入最大电流为


40mA


< br>每一路配置了


20-50K


欧姆内部上拉电阻(默认不连 接


)


。除此之外,有些引脚有特定的功能



?



?



?



?



?



串口信号


RX



0


号)



TX



1


号 )


:


提供


TTL

电压水平的串口接收信号,可以与


6


Header


通孔相连。



外部中 断(


2


号和


3


号)


:触发中断引脚,可设成上升沿、下降沿或同时触发。


< /p>


脉冲宽度调制


PWM


< br>3



5



6



9



1 0



11



:提供


6



8



PWM


输出。


SPI



10(SS)



11(MOSI)



12(MISO)



13(SCK)




SPI


通信接口。


< br>LED



13


号)



Arduino


专门用于测试

LED


的保留接口,


输出为高时点亮


LED



反之输出为低时


LED


熄灭。



2.


6


路模拟输入


A0


A5



每一路具有


10

< p>
位的分辨率


(即输入有


1024

< br>个不同值)



默认输入信号范围为


0



5V



可以通过


AREF


调整输入上限。除此之外,有些引脚有特定功 能



?



TWI


接口(


SDA A4



SCL A5



:支持通信接口(兼容


I2C


总线)

< br>。



3.


Reset


:信号为低时复位单片机芯片。



< p>
如果采用以下


10DOF




/?spm=&id=&_u=u1581nt87ee



GY-86 10DOF MS5611 HMC5883L MPU6050


模块



MWC


飞控传感器模块








请打开



#define GY_86












// Chinese 10 DOF with



MPU6050 HMC5883L MS5611, LLC






1




如果使用


PPM


遥控器

,


则连接


PPM



8


个通道


:



首先看定义



def.h




//RX PIN assignment inside the port //for PORTD




#define THROTTLEPIN

















2




#define ROLLPIN





















4




#define PITCHPIN




















5




#define YAWPIN






















6




#define AUX1PIN





















7




#define AUX2PIN





















0 // optional PIN 8 or PIN 12




#define AUX3PIN





















1 // unused









#define AUX4PIN





















3 // unused


如果打算在


pro mini


上使用< /p>


AUX2


,那么打开




#define RCAUXPIN8



或者


//#define RCAUXPIN12



连接好


PP M


接受芯片的


PIN


到上述

< p>
PIN.


那么数据的获取在






// predefined PC pin block (thanks to lianj)



- Version without failsafe




#define RX_PIN_CHECK(pin_pos, rc_value_pos)






























if (mask & PCInt_RX_Pins[pin_pos]) {





































if (!(pin & PCInt_RX_Pins[pin_pos])) {



































dTime = cTime-edgeTime[pin_pos];







































if (900











































rcValue[rc_value_pos] = dTime;







































}




































































} else edgeTime[pin_pos] = cTime;
































}



ISR(RX_PC_INTERRUPT) {


….



RX_PIN_CHECK();


}



rcValue


的数值就是各个


PIN


的数值。




读取流程:



loop ()


?


computeRC()


?


readRawRC


()


?




data = rcValue[rcChannel[chan]]; / ISR(RX_PC_INTERRUPT) { RX_PIN_CHECK();}



如果使用


PPM


在一根


PIN


上(< /p>


PPM sum signal, on digital PIN 2



,则修改


config.h


#define SERIAL_SUM_PPM


具体


SUM SIGNAL


中通道顺序 需要看


PPM


接收器编码规则。





2




如果使用蓝牙串口数传及控制飞机


:


首先在


config.h


定义



#define RCSERIAL


并且不要定义


FAILSAFE



//#define FAILSAFE


读取流程:






Loop()


?


computeIMU()


?


annexCode()


?


serialCom()


?







c = SerialRead(); evaluateCommand();


?




void evaluateCommand() {




switch(cmdMSP[CURRENTPORT]) {





case MSP_SET_RAW_RC:







for(uint8_t i=0;i<8;i++) {









rcData[i] = read16();







}







headSerialReply(0);







break;




…….



}


从而得到


rcData;





PC


的上 位机上使用,



则发现


HOST


上位机并没有实现


MSP_SET_RAW_RC


网上有一个例子,


是用游戏手柄来


控制电脑的上位机软件,进而通过串口操作飞控。



MultiWiiConf_2_1JoyStick


/forum/?f=8&t=2302&start=20



其添加的关键代码如下:



if ((time-time5)>40 ){








time5=time;








payload = new ArrayList();








(char((int)rightX % 256));








(char((int)rightX / 256));








(char((int)rightY % 256));








(char((int)rightY / 256));








(char((int)leftX % 256));








(char((int)leftX / 256));








(char((int)leftY % 256));








(char((int)leftY / 256));








(char(1500 % 256));








(char(1500 / 256));








(char(1500 % 256));








(char(1500 / 256));








(char(1500 % 256));








(char(1500 / 256));








(char(1500 % 256));








(char(1500 / 256));








sendRequestMSP(requestMSP(M SP_SET_RAW_RC,y(new


Character[()])));






}



当然有一款安卓


APK


,也是实现了此


MSP_SET_RAW_RC




MultiWii EZ-GUI



/eziosoft/MultiWii_EZ_GUI




QQ: 110671958,


我简单修改了


EZ-GUI


的使用方式 及软件兼容性问题


,


有需要的联系我


.



3




如果使用有刷电机,比如空心杯电机:



引脚定义参见





uint8_t PWM_PIN[8] = {3,9,11,10,6,5,A2,12};




//for a quad+: rear,right,left,front



首先在


config.h

< p>
定义



#define EXT_MOTOR_RANGE


这样的话行程由


PPM



[1000;2000] => PWM



[0;250]


。这是针对


328P


单片机的,其它型号的单


片机请自行研究更改。



关于无刷改有刷的问题:无刷信号是


1ms-2ms


脉宽的


PPM


信号,而有刷信号是


0-100%


占空比


PWM


的信号


,


两者是不兼容的。




2


、一上电马达就旋转的问题:


328P



PWM


输出脚


D9/D10/D11/D3


接下拉电阻


10k


即可。





4




如果使用无刷电机,则


ESC


电子调速控制 器的连接及参数如下:



引脚定义参见





uint8_t PWM_PIN[8] = {3,9,11,10,6,5,A2,12};




//for a quad+: rear,right,left,front

器具-督战


器具-督战


器具-督战


器具-督战


器具-督战


器具-督战


器具-督战


器具-督战



本文更新与2021-01-28 07:16,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/577813.html

MWC 多方案DIY 经验教程的相关文章