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

xmile 发表于 2015-3-31 17:55

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











superdont 发表于 2015-3-31 22:01

这个不错!

scofision 发表于 2015-9-17 17:11

我也有同样的问题,貌似总有一个电机转的慢

小m 发表于 2015-10-17 10:31

楼主你好,你的机架式自己做的么?可否分享给我一份你的3d打印文件?我现在卡到机架上了,拜托能否帮帮我?

xmile 发表于 2015-10-17 10:46

小m 发表于 2015-10-17 10:31
楼主你好,你的机架式自己做的么?可否分享给我一份你的3d打印文件?我现在卡到机架上了,拜托能否帮帮我? ...

那个机架是配套的

小m 发表于 2015-10-17 21:10

xmile 发表于 2015-10-17 10:46
那个机架是配套的

那这个机架有多重啊?我自己diy了一个,还没弄好,材料加起来有55g了,能飞起来么?

xmile 发表于 2015-10-18 02:33

小m 发表于 2015-10-17 21:10
那这个机架有多重啊?我自己diy了一个,还没弄好,材料加起来有55g了,能飞起来么? ...

能不能飞主要看螺旋桨的转速

xlla 发表于 2015-11-19 16:45

浪费能量啊,

354268161 发表于 2017-2-9 22:36

也给我发一个,顺便求qq
页: [1]
查看完整版本: Flexbot落地缓冲