Flexbot落地缓冲
本帖最后由 xmile 于 2015-5-8 19:58 编辑一、前言
那个mini小四轴被我玩坏了,第一次试飞的时候由于那个蓝牙响应不知为何突然抽风了,搞得我以为马力不足,于是一下子推高了油门,结果它一下子飞到很高的地方,然后又失速掉了下来,把那个盖子摔坏了。
所以我觉得,这个落地应该自动控制,万一蓝牙突然又抽风了,那也不至于把飞机搞坏
二、设计
其实也没什么,就是加了个超声波模块而已
连线的话
超声波模块
VCC————————>电源正极
GND————————>电源负极
ECHO————————>D12
TRIG————————>D4
VCC和GND都很好连接,
数字输入引脚D4也比较好找,
数字输入引脚D12
最后至于那个超声波模块怎么固定上去呢就见仁见智,我是用橡皮筋的
本人才疏学浅,九月份才开始玩arduino,所以编程有什么不对望指出
// 设定SR04连接的Arduino引脚
const int TrigPin = 4;
const int EchoPin = 12;
float last_distance,now_distance;
void setup()
{
pinMode(TrigPin, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(9, OUTPUT);
pinMode(10, OUTPUT);
// 要检测引脚上输入的脉冲宽度,需要先设置为输入状态
pinMode(EchoPin, INPUT);
// 产生一个10us的高脉冲去触发TrigPin
digitalWrite(TrigPin, LOW);
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);
// 检测脉冲宽度,并计算出距离
last_distance = pulseIn(EchoPin, HIGH) / 58.00;
delay(500);
}
void loop()
{
// 产生一个10us的高脉冲去触发TrigPin
digitalWrite(TrigPin, LOW);
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);
// 检测脉冲宽度,并计算出距离
now_distance = pulseIn(EchoPin, HIGH) / 58.00;
if((last_distance-now_distance)>20 and (last_distance-now_distance)<50)//计算下落距离
{
analogWrite(5,127);
analogWrite(6,127);
analogWrite(9,127);
analogWrite(10,127);
}
if((last_distance-now_distance)>50)//计算下落距离
{
analogWrite(5,255);
analogWrite(6,255);
analogWrite(9,255);
analogWrite(10,255);
}
now_distance=last_distance;
delay(500);
}
视频补上:
http://www.tudou.com/programs/view/8YhTZ5L0SrM/
关于视频我要说明一下,由于不知道为什么换了两次电机总是有一个转速比另外三个慢,所以导致飞的时候总往一边偏
本来理想的情况是它掉下去的一段距离后电机转动减缓下降速度,最理想的是在空中定一段时间,在下降,再定一段时间
以下是完成实物图
这个不错! 我也有同样的问题,貌似总有一个电机转的慢 楼主你好,你的机架式自己做的么?可否分享给我一份你的3d打印文件?我现在卡到机架上了,拜托能否帮帮我? 小m 发表于 2015-10-17 10:31
楼主你好,你的机架式自己做的么?可否分享给我一份你的3d打印文件?我现在卡到机架上了,拜托能否帮帮我? ...
那个机架是配套的 xmile 发表于 2015-10-17 10:46
那个机架是配套的
那这个机架有多重啊?我自己diy了一个,还没弄好,材料加起来有55g了,能飞起来么? 小m 发表于 2015-10-17 21:10
那这个机架有多重啊?我自己diy了一个,还没弄好,材料加起来有55g了,能飞起来么? ...
能不能飞主要看螺旋桨的转速 浪费能量啊, 也给我发一个,顺便求qq
页:
[1]