×

基于3D打印和步进电机的糖果分配器开源分享

消耗积分:0 | 格式:zip | 大小:1.36 MB | 2023-07-07

分享资料个

描述

我有机会创造一些东西来向年轻人介绍电子产品,我决定创造一个糖果分配器。这是一件非常简单且可以实现的事情,但对于那些什么都不知道的人来说,这看起来会令人印象深刻!

poYBAGOSyIGARTe8AAcL1Yk7SHs442.jpg
项目全貌
 

基本上,我将步进电机连接到 Arduino,并在按下红色按钮时使其旋转 60 度。每当一颗糖果越过洞口时,它就会掉进一个小托盘里展示,供人们拿走。我利用重力来发挥我的优势,这样我就可以减少整个系统所需的零件和能量。

这个项目最难的部分是 3D 打印步进电机的支架,这需要一些建模。当你设计一些东西在你的电脑上运行时,当你把它打印到现实世界时看到它实际工作时,这总是很酷。我尝试用廉价的中国 3D 打印机打印它时失败了很多次,但我终于成功了!

pYYBAGOSyKeAYwaWAAd5FORF4_Y399.jpg
至少它有效
 

我使用 FreeCAD 设计了支架,并使用 Ultimaker Cura 4.4 将其打印到我的 3D 打印机上!最后,我有一个漂亮的安装座,非常适合我的步进电机 :0。生活中的某些事情永远不会那么完美。我还在边缘周围使用了一些胶带,这样东西就不会因为向心力而掉落。这节省了几个小时的打印时间,这样我就可以做真正重要的事情了。

在此之后,我需要设计构建的主机架!最后,利用我的工程技能进行测试,我使用回收纸板和旧活页夹来创建它。我真正做的就是切出一个与 3D 打印部件大小大致相同的圆,然后将它贴在步进电机顶部。然后,为了让它更稳定,只需要剪一段纸板来包裹电机。

poYBAGOSyKyAZC2LAAJB3F_rGxY353.jpg
 

我现在有了放置糖果的底座,非​​常适合我的需要。之后我所做的就是把它粘在活页夹上,然后我就可以开始接线了!

接线非常简单,只需将 ULN2003 板的 4 个输入直接接入 Arduino,以及一个带有 10k 上拉电阻的简单按钮。我用白线将活页夹下面的电线连接到红色按钮,这样看起来更美观。我使用 9V 电池为 Arduino 供电以实现便携性,我发现在使用约 100 次后,没有足够的电量为 Arduino 和步进电机供电。非常不可靠:(。

pYYBAGOSyMyAcjrAAAXm6K4ABzo519.jpg
接线设置
 

对于代码,Arduino 有一个用于控制 ULN2003 步进电机驱动器的内置库,因此我只是修改了该库中的一些内容以创建步进电机所需的特定角度。我身上没有任何真正的糖果,但我确实分发了一张 SD 卡。所以这里是:

好吧,在这一切之后,我把它带到了我们举办的博览会上,给那里的一些孩子留下了深刻的印象!看到那些惊讶的面孔真是一种享受,想知道我从哪里学来的魔法。他们也喜欢我给他们的廉价糖果。除此之外,这是一个相当简单的项目,制作起来真的很有趣!

我丢失了使用的 3D 模型,但我链接了我仍然拥有的 .gcode!


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

评论(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:'基于3D打印和步进电机的糖果分配器开源分享',//标题 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);