×

如何用Arduino制作遥控机械手

消耗积分:0 | 格式:zip | 大小:0.53 MB | 2023-01-31

周棠亨

分享资料个

描述

pYYBAGPXNDuAFPVPAAC2aHaqz4E456.jpg

这是我高中五年级的学校项目(我是意大利人,我们有 5 年的高中)。

它包含一只由带有柔性传感器的手套控制的人造手。仿真手通过无线方式再现了带有控制手套的手的动作。手和手套都适用于 Arduino。

我只是想为所有感兴趣的人分享我的工作:)

本指南仍在开发中,抱歉,如果某些部分不清楚,我会在以后放一些 3D 图像。

第 1 步:所需材料

poYBAGPXND2Af_qjAAF59cA6Iu4310.jpg

1 / 4

控制手套的材料:

•弹性手套;

•LilyPad Arduino板(有不同的版本,通常只有 4 个模拟输入,所以请注意并购买图中的那个):它的工作原理与经典的 Arduino UNO 完全一样,因此您甚至可以使用 Arduino Nano,但要付费注意所需的电压;

•XBee 模块:用于无线电通信;

•用于连接Xbee模块的屏蔽层;

• 5 个柔性传感器;

• 5 个电阻:47 KΩ;

•带3x1.5 V电池的电池组(Lilypad 可以从2.7 到5.5 V 供电,所以4.5 V 没问题);

•LilyPad FTDI 适配器:将 LilyPad 板连接到 PC 并使用 Arduino IDE 加载程序(非常可选,因为您也可以使用 Arduino UNO 板移除 ATmega 芯片,但每次都进行这种连接很棘手) .

-机械手的材料:

•手掌为钢结构,手指为木结构。

•Arduino UNO 开发板;

•XBee 模块;

• 5 个伺服电机5V 供电(我用的是 TowerPro SG90);

• Arduino UNO 的伺服电机屏蔽:为了连接伺服电机,我使用了FuturaElettronica的 Robot_Shield,它还有一个开关稳压器来为整个威廉希尔官方网站 供电,但您可以使用任何用于控制伺服电机的屏蔽。链接:https://store.open-electronics.org/index.php?_rou... ;

•用于连接XBee模块的屏蔽(我做了一个糟糕的,但它很经济,而且由于Robot_Shield 的尺寸,我需要做一个小的);

•钓鱼线;

•(可选)钓鱼坠子,用于固定钓鱼线,也可以简单地打个结;

•9 伏电池。

- 需要的工具:

•角磨机(主要用于切割木材和钢材);

•轴向磨床;

•焊机(带电极);

•钻孔;

•焊台和焊料;

• 电工剪刀;

•钳子;

•热缩管。

第 2 步:制作手套

pYYBAGPXNECALKmoAADsxwM9-JM302.jpg

1 / 4

要制作控制手套,我建议首先选择不同组件的正确位置,然后用适当长度的电线连接所有部件。

要使用 Arduino LilyPad 进行模拟读取,您需要制作一个分压器,因为柔性传感器不像电位器那样工作(它们只有 2 个触点)。

所以按照方案,首先将 5 个电阻焊接到 LilyPad 板上,一侧连接到 5 个不同的模拟引脚,另一侧共同接地。然后焊接柔性传感器,一侧连接到 5 个不同的模拟引脚,另一侧连接到正极。

然后连接 XBee Shield:两根线用于电源,另外两根用于信号。将 Tx 引脚焊接到 Rx,反之亦然。

现在你需要电池组和手套了。

小心:不要为 Arduino LilyPad 供电超过 5.5 V,也不要反过来供电(即使有时我错误地做到了......它仍然有效!)

第 3 步:制作机械手

poYBAGPXNEOALFf6AAFBp0qoRZ8856.jpg

1 / 11

这是最复杂的部分,因为你必须选择合适的材料来制作手,但如果你有可能 3D 打印手也可以很容易(网上有许多不同的 3D 项目用于打印手部分).

我开始用软木做手指,为动作找到合适的结构,然后我用树枝做。

因此,每个手指制作三个木制圆柱体,其中两个比指骨的正常长度高出 1 厘米,需要将一个圆柱体放入另一个圆柱体中。

然后用角磨机制作凹槽,使零件装配在一起(看图片,你会更好地理解)。

您需要一些砂纸来使零件弯曲,以便它们可以旋转。

使用钻头为铰链打孔,然后你必须为钓鱼线打另外两个孔,垂直,一个朝向手的内侧,一个向外。所以当电线放在手指的顶部时,当你向内拉一根时,手指会闭合,当你向外拉时,手指会张开。

手掌有问题,因为我最初是用木头做的,而且较薄的部分总是坏掉。所以我决定用钢做它,我没有遇到任何问题。

切割它并做一些类似于为手指制作的突起以将它们固定到手掌上(参见图像作为参考)。然后用钻头为钓鱼线钻其他孔,拇指会很棘手,因为它不像其他手指那样垂直。

制作好手之后,需要制作五个伺服电机的支架和Arduino UNO板的支架。一定要选择正确的舵机位置,这样它们在旋转时不会相互接触。

最后一部分是将手指连接到伺服电机:将鱼线固定在手指的顶部并使其穿过孔;然后,当电线位于手的底部时,以最大旋转 (180°) 转动转子(手动,不通电),使其处于垂直位置,然后将闭合手指的电线设置为最低转子的孔,例如打结;再次转动转子 0°(再次垂直,之前打的结在顶部)然后将另一根线(打开手指)设置到转子的最低孔。按照此步骤中的最后一张图片可以更好地理解。

因此,当电机处于 0°(垂直)时,手指打开,当转子处于 180°(再次垂直)时,手指闭合。

第 4 步:机械手威廉希尔官方网站

pYYBAGPXNEeAePNKAAEYVhECk5k014.jpg

1 / 7

对于威廉希尔官方网站 ,您可以选择使用 Arduino UNO 的伺服电机屏蔽(在 eBay 或亚马逊上搜索)和 XBee 屏蔽,或者使用 XBee 模块和引脚制作自定义屏蔽(我会尽快制作)用于伺服电机,并通过其插孔端口为 Arduino UNO 供电。

我自己DIY的XBee Shield用了一个12KOhm的电阻和一个22KOhm的电阻,大家可以看图中的接线。

所以我使用了我之前买的东西,但是你可以使用任何可以控制伺服电机和 XBee 的东西。

伺服电机有 3 根线:

黄色:信号(连接到数字引脚);

红色:电源(+5 V);

棕色:接地(GND)。

所以现在你不会犯错了:)

我使用了最简单的伺服电机,工作电压为 5 V,旋转角度为 180 度(这是完美的角度,我们不需要更多)。

电脑的USB接口无法提供足够的电力来控制5个伺服电机,所以我建议使用12V电源测试一切,然后使用9V电池(最好是碱性电池)。

第 5 步:程序

手和手套的程序以及所有描述都在下面的链接中。

请记住:要加载程序,您必须移除连接到 Arduino 的 TX 和 RX 引脚的所有内容(在本例中为 XBee 模块),否则程序将无法加载。还要记住在 IDE 中设置正确类型的 Arduino(LilyPad 或 Arduino UNO)。

 

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

评论(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.obk20.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:'如何用Arduino制作遥控机械手',//标题 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.obk20.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);