×

建造Roomba类型的功能机器人

消耗积分:0 | 格式:zip | 大小:0.00 MB | 2023-06-27

王刚

分享资料个

描述

项目目标

这个项目的目标是能够设计和建造一个“Roomba”类型的功能机器人。将来,当然,随着时间的推移,我们将实现距离传感器,以仅在检测到物体在 6 英寸以内时触发此中断以更改状态。这个新的状态变化将被触发,以便由 Quade 执行转向运动以避免碰撞。

未来发展

Quade 正在开发一种“爬行步态”,但尚未完成。这种步态是通过抬起一条腿并向前旋转而另一条腿缓慢地向后旋转来操作的,每条腿都会重复这种步态。代码已开发但未完全实现。这是由于在确定所需角度方面存在不可预见的困难

创建了远程供电的 Quade 的设计,但也没有实施。这涉及使用 7.4V LIPO 电池和分压器,以便将电压降低到 MSP432 所需的必要 5V。然后,MSP 将能够为 PCA 板和伺服系统供电。由于缺少将分压器电路连接到 MSP USB 插座所需的适配器,因此从未实施此添加。

 

功能框图

poYBAGN0M3qAexllAADwmHf9p4A828.png
 

软件图

顶级软件图:

pYYBAGN0M32AdYW2AAD-miarmBs649.png
 

LED软件图:

poYBAGN0M3-AHSTUAADrS4hq4QY011.png
 

PCA 到 Servos 软件图:

pYYBAGN0M4GAWXYVAAD2Psg4lAE318.png
 

IMU软件图:

poYBAGN0M4WARgxCAAMp9Ohf5Fc859.png
 

引脚图

poYBAGN0M4eAWIw0AACoPR7-u3Y160.png
 

接线图

pYYBAGN0M4qAMh87AAF0vXF1t_I595.png
 

项目要求

操作要求:

  • Quade 应识别自身 6 英寸内的障碍物
  • Quade 将自动前进
  • 当检测到障碍物时,Quade 应将自身重新定位到右侧
  • Quade 应在向前移动或重新定位之前评估障碍物的新位置
  • Quade 将在前进时闪烁绿色 LED
  • Quade 应在转动时闪烁红色 LED

物理要求:

  • 每个伺服应提供高达 1200 g-cm 的扭矩
  • Quade 应稳定,即在空闲或移动时重心应位于足迹内

电源要求:

  • Quade 应使用板载电池供电
  • MSP432R 应提供 5V
  • 每个伺服应提供 5V
  • 每个伺服应提供最大电流 494.32 mA
  • 7.4 V 电源应转换为 5V
  • 超声波传感器应提供 5V
  • 超声波传感器应提供 15 mA
  • IMU 应提供 3.3V
  • IMU 应提供 0.55 mA
  • PCA 板应提供 3.3V

传感器要求:

  • 超声波传感器应接收到 ECHO 引脚的 10mu 波以触发传感器
  • 超声波传感器应返回一个范围成比例的波
  • MSP432R 应转换从超声波传感器接收到的时间和返回距离
  • MSP432 应通过 I2C 与 IMU 通信
  • MSP432 和 IMU 的 SCL 频率应在 0 到 100 kHz 之间

测试和调试

2个伺服电机控制的单元测试

磁力计输出验证测试:

poYBAGN0M46ACuDvAAMKP8Fqw2k290.png
 

为了确保伺服运动,需要对每个组件进行单独测试,以确保正确的结果。在上图中,通过调试器显示磁力计已成功连接并正在与 MSP401R 板通信。

与磁力计的 I2C 通信:

pYYBAGN0M5CAIscCAABZ2coDso4241.png
 

虽然确认磁力计通过 I2C 与 MSP 通信,但当 SDA 和 SCL 总线连接到 AD2 时,无法读取逻辑。Waveforms 软件不会清除起始位、数据位和确认位,而是读取错误。这是出乎意料的,调试尝试没有产生任何结果。这将需要进一步调查。

按下按钮 S1 时触发调试器中断:

poYBAGN0M5OAf9v0AALV6hd4HIE543.png
 

必要测试的下一部分是验证按钮触发的中断是否正常工作。在上图中,您可以看到按钮被按下,并且在调试器中,触发了中断并执行了伺服代码。

伺服单元测试的完整电路:

poYBAGN0M5eAdMG5AAboPI6yIAk949.png
 

上图为 2 伺服单元测试的完整电路。总共有5个组件。IMU 通过引脚 1.6 和 1.7 连接到 MSP。PCA 也连接到这些相同的引脚,并具有与 MSP 板的电源和接地连接。最后,有两个舵机(从 8 个简化为测试用)连接到 PCA 板。额外的电源连接来自连接到 PCA 板的 10A 5V 电源,以提供移动伺服系统所需的额外电压。

贸易研究

运动控制贸易研究传感器

这是为确定创建 Quade 运动的最佳/最可行方法而进行的第一次贸易研究。我们研究了三个选项:红外线、超声波和激光距离传感器。我们用来对这三种方法进行排名的标准是实施的时间/难度、成本和功能。这是按照从 1 到 5 的等级进行的,其中 1 是最差的,5 是最好的。

红外距离传感器:10

实施时间/难度:3

我们以前从未使用过红外传感器,因此我们需要了解它的工作原理,但它与 MSP432 兼容。

费用:3

adafruit 的红外距离传感器的成本为 14.95 美元。

功能:4

它是一种短程距离传感器,使用红外光来确定物体的距离。它可以在一天中的任何时间使用,并且可以检测具有更复杂表面的物体。

超声波距离传感器:13

实施时间/难度:4

我们已经使用超声波距离传感器进行了一个项目,因此我们熟悉它的工作原理,这意味着它应该更容易实现。

费用:5

这确实来自我们的课程套件,因此团体成员无需额外费用,尽管 Sparkfun 的费用为 3.95 美元。

功能:4

它是一种短程距离传感器,使用声波来确定其附近物体的距离。因为它使用声波,Quade 可以在几乎任何环境中的任何时间使用。它确实无法检测具有极端表面的物体,但我们不希望遇到这样的物体。此外,我们项目的应用不需要远程目标检测。

激光距离传感器:9

实施时间/难度:2

我们以前从未使用过 LiDAR 传感器,因此我们需要学习如何使用它,但它与 MSP432 兼容。

费用:2

我们能找到的最低 LiDAR 传感器成本是 Seeed Studio 的 39.95 美元。

功能:5

它是一种远程距离传感器,使用激光来确定物体的距离。它非常准确,可以高频检查物体,因此可以检测快速移动的物体。激光雷达可以昼夜使用,由于波长较短,可以探测到更小的物体。

在这些条件下,我们确定最适合我们的 Quade 运动实施的是使用超声波距离传感器。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !

'+ '

'+ '

'+ ''+ '
'+ ''+ ''+ '
'+ ''+ '' ); $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code ==5){ $(pop_this).attr('href',"/login/index.html"); return false } if(data.code == 2){ //跳转到VIP升级页面 window.location.href="//m.lene-v.com/vip/index?aid=" + webid return false } //是会员 if (data.code > 0) { $('body').append(htmlSetNormalDownload); var getWidth=$("#poplayer").width(); $("#poplayer").css("margin-left","-"+getWidth/2+"px"); $('#tips').html(data.msg) $('.download_confirm').click(function(){ $('#dialog').remove(); }) } else { var down_url = $('#vipdownload').attr('data-url'); isBindAnalysisForm(pop_this, down_url, 1) } }); }); //是否开通VIP $.get('/article/vipdownload/aid/'+webid,function(data){ if(data.code == 2 || data.code ==5){ //跳转到VIP升级页面 $('#vipdownload>span').text("开通VIP 免费下载") return false }else{ // 待续费 if(data.code == 3) { vipExpiredInfo.ifVipExpired = true vipExpiredInfo.vipExpiredDate = data.data.endoftime } $('#vipdownload .icon-vip-tips').remove() $('#vipdownload>span').text("VIP免积分下载") } }); }).on("click",".download_cancel",function(){ $('#dialog').remove(); }) var setWeixinShare={};//定义默认的微信分享信息,页面如果要自定义分享,直接更改此变量即可 if(window.navigator.userAgent.toLowerCase().match(/MicroMessenger/i) == 'micromessenger'){ var d={ title:'建造Roomba类型的功能机器人',//标题 desc:$('[name=description]').attr("content"), //描述 imgUrl:'https://'+location.host+'/static/images/ele-logo.png',// 分享图标,默认是logo link:'',//链接 type:'',// 分享类型,music、video或link,不填默认为link dataUrl:'',//如果type是music或video,则要提供数据链接,默认为空 success:'', // 用户确认分享后执行的回调函数 cancel:''// 用户取消分享后执行的回调函数 } setWeixinShare=$.extend(d,setWeixinShare); $.ajax({ url:"//www.lene-v.com/app/wechat/index.php?s=Home/ShareConfig/index", data:"share_url="+encodeURIComponent(location.href)+"&format=jsonp&domain=m", type:'get', dataType:'jsonp', success:function(res){ if(res.status!="successed"){ return false; } $.getScript('https://res.wx.qq.com/open/js/jweixin-1.0.0.js',function(result,status){ if(status!="success"){ return false; } var getWxCfg=res.data; wx.config({ //debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。 appId:getWxCfg.appId, // 必填,公众号的唯一标识 timestamp:getWxCfg.timestamp, // 必填,生成签名的时间戳 nonceStr:getWxCfg.nonceStr, // 必填,生成签名的随机串 signature:getWxCfg.signature,// 必填,签名,见附录1 jsApiList:['onMenuShareTimeline','onMenuShareAppMessage','onMenuShareQQ','onMenuShareWeibo','onMenuShareQZone'] // 必填,需要使用的JS接口列表,所有JS接口列表见附录2 }); wx.ready(function(){ //获取“分享到朋友圈”按钮点击状态及自定义分享内容接口 wx.onMenuShareTimeline({ title: setWeixinShare.title, // 分享标题 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享给朋友”按钮点击状态及自定义分享内容接口 wx.onMenuShareAppMessage({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 type: setWeixinShare.type, // 分享类型,music、video或link,不填默认为link dataUrl: setWeixinShare.dataUrl, // 如果type是music或video,则要提供数据链接,默认为空 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ”按钮点击状态及自定义分享内容接口 wx.onMenuShareQQ({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到腾讯微博”按钮点击状态及自定义分享内容接口 wx.onMenuShareWeibo({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); //获取“分享到QQ空间”按钮点击状态及自定义分享内容接口 wx.onMenuShareQZone({ title: setWeixinShare.title, // 分享标题 desc: setWeixinShare.desc, // 分享描述 link: setWeixinShare.link, // 分享链接 imgUrl: setWeixinShare.imgUrl, // 分享图标 success: function () { setWeixinShare.success; // 用户确认分享后执行的回调函数 }, cancel: function () { setWeixinShare.cancel; // 用户取消分享后执行的回调函数 } }); }); }); } }); } function openX_ad(posterid, htmlid, width, height) { if ($(htmlid).length > 0) { var randomnumber = Math.random(); var now_url = encodeURIComponent(window.location.href); var ga = document.createElement('iframe'); ga.src = 'https://www1.elecfans.com/www/delivery/myafr.php?target=_blank&cb=' + randomnumber + '&zoneid=' + posterid+'&prefer='+now_url; ga.width = width; ga.height = height; ga.frameBorder = 0; ga.scrolling = 'no'; var s = $(htmlid).append(ga); } } openX_ad(828, '#berry-300', 300, 250);