Flexbot落地缓冲-Arduino中文社区 - Powered by Discuz!

Arduino中文社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 7379|回复: 8

[项目] Flexbot落地缓冲

[复制链接]
发表于 2015-3-31 17:55 | 显示全部楼层 |阅读模式
本帖最后由 xmile 于 2015-5-8 19:58 编辑

一、前言
       那个mini小四轴被我玩坏了,第一次试飞的时候由于那个蓝牙响应不知为何突然抽风了,搞得我以为马力不足,于是一下子推高了油门,结果它一下子飞到很高的地方,然后又失速掉了下来,把那个盖子摔坏了。
       所以我觉得,这个落地应该自动控制,万一蓝牙突然又抽风了,那也不至于把飞机搞坏

二、设计
       其实也没什么,就是加了个超声波模块而已
       2345截图20150331164643.png
       连线的话
       超声波模块
       VCC————————>电源正极
       GND————————>电源负极
       2345截图20150331162135.png
       ECHO————————>D12
       2345截图20150331174443.png
       TRIG————————>D4
       2345截图20150331162200.png
       VCC和GND都很好连接,
       2345截图20150331165409.png       
      数字输入引脚D4也比较好找,
       2345截图20150331172249.png
      数字输入引脚D12
         2345截图20150331172249.png


       最后至于那个超声波模块怎么固定上去呢就见仁见智,我是用橡皮筋的

本人才疏学浅,九月份才开始玩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);
}
视频补上:

关于视频我要说明一下,由于不知道为什么换了两次电机总是有一个转速比另外三个慢,所以导致飞的时候总往一边偏
本来理想的情况是它掉下去的一段距离后电机转动减缓下降速度,最理想的是在空中定一段时间,在下降,再定一段时间  
以下是完成实物图
2345截图20150402141309.png

2345截图20150402141350.png

2345截图20150402141334.png

2345截图20150402141400.png




2345截图20150402141432.png
2345截图20150402141334.png
发表于 2015-9-17 17:11 | 显示全部楼层
我也有同样的问题,貌似总有一个电机转的慢
发表于 2015-10-17 10:31 | 显示全部楼层
楼主你好,你的机架式自己做的么?可否分享给我一份你的3d打印文件?我现在卡到机架上了,拜托能否帮帮我?
 楼主| 发表于 2015-10-17 10:46 | 显示全部楼层
小m 发表于 2015-10-17 10:31
楼主你好,你的机架式自己做的么?可否分享给我一份你的3d打印文件?我现在卡到机架上了,拜托能否帮帮我? ...

那个机架是配套的
发表于 2015-10-17 21:10 | 显示全部楼层
xmile 发表于 2015-10-17 10:46
那个机架是配套的

那这个机架有多重啊?我自己diy了一个,还没弄好,材料加起来有55g了,能飞起来么?
 楼主| 发表于 2015-10-18 02:33 | 显示全部楼层
小m 发表于 2015-10-17 21:10
那这个机架有多重啊?我自己diy了一个,还没弄好,材料加起来有55g了,能飞起来么? ...

能不能飞主要看螺旋桨的转速
发表于 2015-11-19 16:45 | 显示全部楼层
浪费能量啊,
发表于 2017-2-9 22:36 来自手机 | 显示全部楼层
也给我发一个,顺便求qq
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|Archiver|手机版|Arduino中文社区

GMT+8, 2024-11-28 02:45 , Processed in 0.112258 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表