mwc程序源代码

mwc程序源代码,第1张

MWC源程序是由arduino编写的,当然用arduino看了,你看不明白用别的编译器也看不明白啊,

代码中几个关键设置你自己先看看吧:

/**************** The type of multicopter ****************/

#define QUADX //启用四轴X模式

/**************** Motor minthrottle ****************/

#define MINTHROTTLE 1150 //解锁后油门怠速 默认1020

/**************** I2C speed ****************/

#define I2C_SPEED 100000L /念肢含/启用这个就够用了

/****************Combined IMU Boards****************/

#define FREEIMUv035_BMP //我是3200芯片

/**************** Cam Stabilisation ****************/

#define SERVO_MIX_TILT //启用云台

#define SERVO_TILT //启用云台

#define TILT_PITCH_MIN1020 //仰俯舵机最小值,不能低于1020

#define TILT_PITCH_MAX2000 //仰俯舵机最大值,不能高于2000

#define TILT_PITCH_MIDDLE 1500 //仰俯舵仔笑机中立点

#define TILT_PITCH_PROP 10//仰俯补偿角度,如果反向数字前加“-”号

#define TILT_ROLL_MIN 1020//副翼舵机同上

#define TILT_ROLL_MAX 2000

#define TILT_ROLL_MIDDLE 1500

#define TILT_ROLL_PROP10

#define CAM_SERVO_HIGH 2000 //快门舵机行程最高

#define CAM_SERVO_LOW 1020 //快门舵机行程最低

#define CAM_TIME_HIGH 1000 // 按下快门时间

#define CAM_TIME_LOW 1000// 按下快门时间

/****************Hexa Motor 5 &6 Pins****************/

//#define A0_A1_PIN_HEX //四轴不启用,六轴用

/****************Aux 2 Pin ****************/

#define RCAUXPIN8 //打开AUX2用于功能控制

//#define RCAUXPIN12 //作用同上,但不能与上面这行同时启用

/**************** Gyro filters ****************/

#define ITG3200_LPF_42HZ //我是3200芯片饥晌

/**************** SECTION 6 - OPTIONAL FEATURES ****************/

#define LEVEL_PDF //稳定模式增强,可以启用,默认不启用

/**************** TX-related ****************/

#define DEADBAND 6 //遥控信号误差,默认值就好

#define ALT_HOLD_THROTTLE_NEUTRAL_ZONE 20 //气压定高时有用,忽略油门摇杆轻微动作

/***************** GPS ******************/

#define GPS_SERIAL 2//启用端口

#define GPS_BAUD 9600 //我的GPS波特率

#define GPS_LED_INDICATOR //指示灯

/* Get your magnetic decliniation from here : http://magnetic-declination.com/

#define MAG_DECLINIATION 6.34f //当地磁偏角,上面一行有网址

/**************** Buzzer****************/

#define BUZZER 启用蜂鸣器

/**************** battery voltage monitoring ****************/

#define VBAT // 启用电压报警,要接好电源检测线

#define VBATSCALE 131

#define VBATLEVEL1_3S 114 // 11.4V时响一声 4S电池设置请模友补充

#define VBATLEVEL2_3S 111 // 11.1V时响两声

#define VBATLEVEL3_3S 99 // 9.9V时响三声

#define NO_VBAT 16 // Avoid beeping without any battery

/****************motor, servo and other presets **************/

#define MOTOR_STOP //解锁后电机不转

/**************** IMU complimentary filter tuning ****************/

#define ACC_LPF_FACTOR 100 //软件滤波器,优化传感器数据,减低震动等影响 以下全部启用

#define MG_LPF_FACTOR 4

#define GYR_CMPF_FACTOR 400.0f

#define GYR_CMPFM_FACTOR 200.0f

根据官方资料,MPU6050只是输出陀螺和加速度计的6轴数据,然后使用arduino通过自己的算法得到倾角。dmp通过使用MPU6050芯片中内置的 数据解算功能直接输出四元数、欧拉角带伍等数据给 arduino处理(这个蠢指或功逗贺能官方没有正式公布),从而把arduino从复杂的...

int readPin = 0 //用来连接电位器

int servopin = 7 //定义舵机接口数字接口7

void servopulse(int angle)//定义一个脉冲函数

{

int pulsewidth=(angle*11)+500 //将角度转化为500-2480的脉宽值

digitalWrite(servopin,HIGH) //将舵机接口电平至高

delayMicroseconds(pulsewidth) //延时脉宽值的微秒数

digitalWrite(servopin,LOW)//将舵机接口电平至低

delayMicroseconds(20000-pulsewidth)

}

voidsetup()

{

pinMode(servopin,OUTPUT)//设定舵机接口为输出接口

}

voidloop()

{

//读取电位器(传感器)的读数,接到3.3V,值范围从0到660左右

int readValue = analogRead(readPin)

//把值的范围映射到0到165左右

int angle = readValue / 4

//发送50个脉冲

for(int i=0i<50i++)

{

//引用脉冲函数

servopulse(angle)

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8189689.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存