×

带有旋转编码器的DIY简单测量轮

消耗积分:2 | 格式:zip | 大小:0.20 MB | 2022-11-17

李骏鹏

分享资料个

描述

在阅读 Mirko Pavleski 对带有旋转编码器的 DIY 简单测量轮的一些评论时,其中一个特别突出。soorajts 的评论建议“将其挤压成一个服装和 oled 显示器”让我想知道我是否不仅可以这样做,而且可以将所有组件安装在轮毂本身的轮毂内。

一个想法是做一些类似于我的Twist-to-Set Kitchen Timer 的事情那么问题来了如何连接手柄。此外,传动装置会限制轮毂的尺寸。

我确定的最终设计仍然非常紧凑。它消除了所有裸露的接线,并具有易于阅读的 OLED 显示屏,显示英制和公制测量值。

示意图

该威廉希尔官方网站 是围绕 ATtiny1614 微处理器设计的。它在睡眠模式下消耗的电量非常少。旋转编码器包含两组触点,它们会变得非常嘈杂,导致读数不正确。我在每个触点和微处理器之间添加了一个 RC 网络和施密特触发器。这消除了触点产生的任何噪音,并为微处理器提供了干净的开关变化信号。结果是精确和准确的读数。该威廉希尔官方网站 由 3.7V 120mA LIPO 电池供电。

poYBAGN1HauAejTqAAIpgK3bWDY782.png
测量轮示意图
 

3D打印

包括 STL 文件。将这些带到 3D 打印店,或者如果您有自己的打印机,请通过切片软件运行它们。我使用了 0.2 毫米的层高。“Wheel - Top.stl”和“Wheel - Wheel.stl”需要支撑接触构建板。

印刷威廉希尔官方网站 板

为了最大限度地减少所需空间,该板已设计为尽可能使用表面贴装器件 (SMD)。

poYBAGN1Ha6ATeMSAAKt5Ci5S64375.jpg
大部分元件使用SMD元件
 

如果您希望将威廉希尔官方网站 板商业化,或者您可以像我一样自己制作,Eagle 文件已包含在内。我使用了碳粉方法。

组装 - 步骤 1

首先添加 SMD 组件。我发现在焊接 SMD 元件时使用焊膏比使用卷盘中的焊料更容易。

pYYBAGN1HbSAaXbcAAfaTgO2r6w369.jpg
添加贴片元件
 

将旋转编码器和 3 针 UPDI 直角排针添加到顶部。剪掉多余的针脚并将它们平整,以去除任何可能刺穿电池的锋利边缘。将 JST 2 针直角电池插座添加到威廉希尔官方网站 板的铜侧。

组装 - 第 2 步

为 0.96 OLED 显示屏添加一个 4 针公机加工排针。还要在 PCB 的铜侧添加一个 4 针母头机加工针头。

poYBAGN1HbaAAg1dAAFVxMQxaUQ944.jpg
添加公母机头
 

组装 - 第 3 步

将两根电线添加到触觉开关的顶部两个引脚(引脚从同一侧退出开关)。剪掉底部的两个针脚。使用热胶将整个组件粘合到外壳中。

剪断导线,留出足够的长度以插入和移除 PCB 组件并将它们焊接到 PCB。

pYYBAGN1HbmANvHBAAErGYfXZ6w664.jpg
将开关接线并将其粘在外壳中
 

组装 - 第 4 步

在 OLED PCB 和旋转编码器 PCB 之间添加 3.7V 120mA 电池。

poYBAGN1HbuAHY39AAFZrcfUqs8907.jpg
电池位于两块板之间。
 

组装 - 步骤 5

将威廉希尔官方网站 板组件添加到机箱中。

ATtiny1614 是新一代 ATtiny 微处理器的一部分。与 ATtiny85 等早期系列不同,新品种使用 RESET 引脚对 CPU 进行编程。要对其进行编程,您需要一个 UPDI 程序员。我用 Arduino Nano 做了一个。您可以在Create Your Own UPDI Programmer中找到完整的构建说明。它还包含将 megaTinyCore 板添加到 IDE 的说明。

由于电池已经连接,只连接地线和 UPDI 线(不连接 5V 线)。

pYYBAGN1Hb6AIKbUAAFdFf46ncI977.jpg
将板组件添加到机箱并连接 UPDI 编程器
 

在 IDE 中安装板后,从“工具”菜单中选择它。

选择芯片(ATtiny1614)、时钟速度(8MHz) 和Arduino Nano 连接的COM 端口。

Programmer 需要设置为jtag2updi (megaTinyCore)

打开草图并将其上传到 ATtiny1614。

组装 - 步骤 6

外壳底部拧到顶部。添加后,将垫圈和螺母添加到旋转编码器。

pYYBAGN1HcGAHU_GAAD_wmUVB3U621.jpg
拧上底部和编码器垫圈和螺母
 

组装 - 步骤 7

为了使车轮准确地测量距离,它不能在正在测量的表面上滑动或滑动。我使用从 eBay 获得的车轮上的橡胶轮胎。

 

从车轮上取下轮胎并将其添加到 3D 打印的车轮上。您也可以改用大 O 形圈。

poYBAGN1HciAMqKgAAYU89393uA657.jpg
从车轮上拆下轮胎并将其添加到 3D 打印车轮的第 1 和第 3 个凹槽中。
 

将车轮安装到旋转编码器上。

pYYBAGN1HcqALgyLAACOXBLe-fo779.jpg
将完成的轮子添加到编码器轴上

结论

这些测量轮设计用于在尺子和卷尺不再实用的距离上使用。尽管它使用每转只有 20 步的旋转编码器,但在测量房间大小等情况时,它仍然可以提供高质量的结果。

特别感谢 Mirko Pavleski 为这个项目提供的概念和灵感。从最终进入垃圾箱的印刷品数量来看,案例设计证明有点挑战。不过总的来说,我对最终的结果很满意。


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

评论(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:'带有旋转编码器的DIY简单测量轮',//标题 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);