快捷导航
查看: 21409|回复: 180

[设计制作] 用15元实现APM超声波精确定高分享

  [复制链接]
最佳答案
0 

该用户从未签到

参加活动:0

组织活动:0

发表于 2015-3-17 17:23:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?注册成为模友吧会员

x
本帖最后由 pxzleo 于 2015-3-17 17:22 编辑

简单说一下方法~

效果:
让apm飞控使用几块钱的超声波模块代替气压计达到更加稳定的定高,向前飞行不掉高,爬楼梯翻汽车等。

原理:
   由于apm只支持模拟输入和特定的I2c超声波模块,这些模块虽然好但都比较贵,分享用便宜的超声波加一个小单片机模拟APM支持的I2c超声波模块。

准备材料:
  1. 超声波模块  SR04 我买的4.5元的模块,用起来就挺好挺精确的了。(其他超声波模块也可以X宝上有10米的)
  2. 单片机 arduino pro mini  大概11块
  3. ftdi下载小板
  4.下载ApmSonar.rar并解压备用
  5.编译及下载工具 arduino

步骤:
   硬件连接(见图):
   1    SR04和Pro mini连接,SR04的Trig接promini的第2脚上,SR04的Echo接Promini的第3脚上,Vcc电源都接到5v上
   2    Pro mini和APM连接,Pro mini的I2c脚A4,A5接到APM的I2c上就可,APM的I2c一般接了外置罗盘,只需要在原罗盘线上并两根上去就好了。
   
   软件配置:
   Pro mini需要编译下载一小段程序进去
   1.arduino选择sketch->导入库->添加库 选择解压的SR04目录
   2.用arduino打开ApmSonar.ino,板子按下图选择.
   3.接上ftdi和pro mini
   4.arduino选好ftdi串口
   5.点上传,完成
  
   APM配置
   APM必须3.2以上版本
   全部参数表中
      RNGFND_TYPE 设置为 2:APM2-MaxbotixI2C(PIXHAWK硬件这里设置为4:PX4-I2C)
      RNGFND_MAX_CM 设置为500(根据模块稳定测量距离调整)
      RNGFND_MIN_CM  设置为3  (根据模块稳定测量距离调整)
      RNGFND_GAIN   这个是当检测目标在飞行器下方时用来改变和调节速度和目标高度,可以用默认值0.8,如要反映更快可以适当调高

所有完成!

确认效果:
    在状态页中查看sonarrange有准确的距离数值就成功了~

使用方法:
    切到定高模式在5米以下apm会自动使用超声波定高,定高将非常精确,一点不带上下动,也不会受气压变化影响了,可以去爬楼梯翻小车,哈哈,大家要注意安全~

注意事项:
  超声波模块5V供电要很稳定,建议单独稳压,否则轻者影响测量距离,重者测量结果各种飘。
另外pix飞控如果刷的apm3.2以上固件经测也是可以用的RNGFND_TYPE需要设置为4:PX4-I2C

去百度云下载小程序


硬件连接

硬件连接

上传设置

上传设置
最佳答案
0 
  • TA的每日心情
    开心
    2017-2-1 05:51
  • 签到天数: 4 天

    [LV.2]偶尔看看I

    参加活动:0

    组织活动:0

    发表于 2016-2-25 02:54:00 | 显示全部楼层
    本帖最后由 confessor 于 2016-2-27 03:31 编辑

    楼主 您好,我也按照论坛里面的帖子 做了个 超声波定高。硬件连接 没有采用帖子里介绍的 echo =3  trig=2
    而是在 固件里面修改了 echo=2  trig=3 这样方便焊接和连线。 经过使用sr04自带的库文件样本测试  能有效的回传测试距离。说明这样修改端口是可行的。且超声波模块是好的。
    但是按照介绍烧写 apmsoner 这个固件以后(已经更改过端口号),安装到pix(刷的apm3.3固件)的i2c口 ,mp不能识别出超声波模块。且没有显示距离。
    请问是我哪里出错了么?
    折腾了2天了。还没有出结果。。。。太郁闷了。
    超声波 测试1.jpg

    超声波 测试2.jpg

    超声波 测试3.jpg

    超声波 测试4.jpg



    又经过2天的研究,查阅了很多arduino 的相关文档,发现pro mini 的i2c 接口是单片机直接输出的  如果要并联到其他的i2c总线上,就需要分别在sda和scl接上上拉电阻(阻值1k到5k)。
    如果要解决罗盘不健康的问题,建议 使用5.5v转3.3v的 电平转换板。且超声波单独供电,arduino和pix共地。

    在超声波的diy过程中,经过很多波折。虽说都是很小的细节问题。但也都是各位大神们没有提及的。这就让我等小白很是苦恼,百思不得其解。
    分享我的心得,让后来的朋友走的相对容易一些!


    点评

    能不能加我 786311346 问一下这个问题  详情 回复 发表于 2017-10-12 19:22
    没搞懂电平转换板的意思  详情 回复 发表于 2017-10-12 19:21
    回复 支持 3 反对 0

    使用道具 举报

    最佳答案
    3 

    该用户从未签到

    参加活动:1

    组织活动:0

    发表于 2015-3-17 17:26:01 | 显示全部楼层
    学习啦!好文章
    最佳答案
    1 

    该用户从未签到

    参加活动:0

    组织活动:0

    发表于 2015-3-17 17:30:26 | 显示全部楼层
    顶!               
    来自苹果客户端来自苹果客户端
    最佳答案
    11 

    该用户从未签到

    参加活动:0

    组织活动:0

    发表于 2015-3-17 22:28:00 | 显示全部楼层
    好帖子,多谢分享
    最佳答案
    11 

    该用户从未签到

    参加活动:0

    组织活动:0

    发表于 2015-3-17 22:28:30 | 显示全部楼层
    如果是自己写飞控,可以使用定时器来触发,然后上升沿和下降沿中断来解算

    点评

    恩,有点类似接收pwm信号了  详情 回复 发表于 2015-3-19 08:51
    最佳答案
    0 

    该用户从未签到

    参加活动:0

    组织活动:0

    发表于 2015-3-17 22:32:11 | 显示全部楼层
    厉害  感谢分享
    最佳答案
    1 

    该用户从未签到

    参加活动:1

    组织活动:0

    发表于 2015-3-17 22:34:46 | 显示全部楼层
    最佳答案
    9 

    该用户从未签到

    参加活动:0

    组织活动:0

    发表于 2015-3-17 23:13:01 | 显示全部楼层
    能不能发一个可以直接下载的程序啊,硬件早就做好了,就是不会编译程序

    点评

    按步骤做很简单的,发hex也需要工具烧下去  详情 回复 发表于 2015-3-19 09:17
    最佳答案
    0 
  • TA的每日心情
    开心
    2016-11-21 19:48
  • 签到天数: 1 天

    [LV.1]初来乍到

    参加活动:0

    组织活动:0

    发表于 2015-3-18 00:46:58 | 显示全部楼层
    能不能给做个现成的!价格你定

    点评

    x宝上有现成的哈~  详情 回复 发表于 2015-3-19 08:53
    最佳答案
    0 
  • TA的每日心情
    开心
    6 小时前
  • 签到天数: 1 天

    [LV.1]初来乍到

    参加活动:0

    组织活动:0

    发表于 2015-3-18 05:35:39 | 显示全部楼层
    这个真心要顶!

    本版积分规则

    模友之吧 中国唯一免费送模型网站

    反馈建议:2376808768@qq.com

    合作伙伴

    扫码关注微信公众平台
    本站由 承德红璐科技 提供技术支持  ©2011-2015 模友之吧 | 冀ICP备13020518号© 

    冀公网安备 13080502000084号

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