×

Arduino Nano自动洗手液

消耗积分:2 | 格式:zip | 大小:0.26 MB | 2022-10-19

张华

分享资料个

描述

在过去的几个月里,COVID-19 大流行一直在世界各地蔓延。感染人数不计其数,不幸的是,伤亡人数众多。世界卫生组织建议的最重要措施之一是经常用肥皂或洗手液洗手。但最重要的问题之一是我们这样做的方式,即通过物理接触分配器,这消除了行动的全部目的,甚至造成了很大的感染风险。所以一个 14 岁的男孩,决定使用 Arduino Nano 板来解决这个问题,但我也希望它便宜,并且能够轻松、快速、有效地连接到许多不同的分配器!这正是我所做的,一个配件可以连接到大多数洗手液/皂液器上,并完全免提和自动转动

首先观看此视频以了解该设备的运行情况,并了解它的工作原理和制作方法!

第 1 步:了解机制

 
poYBAGNORsCAM_YMAAXImz1hLlI270.jpg
 
1 / 3
 

因此,基本上步进电机通过耦合器连接到螺钉。然后,3D 打印压板的一侧使用螺母与螺钉连接,另一侧由 3D 打印杆支撑。杆不允许螺杆的旋转力旋转压脚,而是压脚线性移动通过这种方式,我们可以命令步进器在任何方向(来回)、以任何速度和尽可能多的步数移动。

第 2 步:了解设备的工作原理

 
pYYBAGNORsWAAti7AATyz2eczS8178.jpg
 
1 / 3
 

这个概念是,当连接到 3D 打印的 IR 支架上的 IR 障碍物传感器被激活时,只需将您的手放在其下方几厘米处,按压器就会下降一段设定的距离,(按压分配器)等待 2秒,然后通过简单地向上返回到初始位置,直到终端停止开关被激活。同样,当设备第一次通电时,压脚会上升,直到开关被激活,然后它会停在那里,作为一种自我校准,以便压脚准备好使用。

 
 
 
pYYBAGNORsuAZR6_AATNKYBWl4Q962.jpg
 
1 / 2
 

然后使用魔术贴包裹您选择的洗手液并尽可能收紧。

现在自动洗手液分配器可以正常工作了!!

第 3 步:收集必要的组件

 

pYYBAGNORtSAVP8rAAYwVr9WuZ8249.jpg
 

必要组件的所有链接都位于“事物”部分。

第 4 步:设计定制零件

 

 
 
 
pYYBAGNORtuAZX-9AAIGIHA6aRY479.png
 
1 / 8
 

所有 3D 打印部件都是我在 Onshape 上设计的,但您不必担心 3D 设计,因为我在“附件”部分提供了所有 .stl 文件。

第 5 步:3D 打印定制塑料部件

 

 
 
 
poYBAGNORuSAAhpDAAcqyps_CvY810.jpg
 
1 / 7
 

我在我的 Creality3D Ender 3 V2 上以 0.2 毫米的层高和 20% 的填充量用灰色和白色 PLA 3D 打印了这些零件。如果您无法使用 3D 打印机,您可以尝试使用纸板或木头。

第 6 步:修改步进器

 

pYYBAGNORuiAbHw1AANGgzHHMhs763.jpg
 

28BYJ-48 步进电机是一款小巧且非常便宜的步进电机。这是一个单极步进电机,扭矩约为300 g/cm ,适用于我们的项目,但我希望它更强大以获得更好的效果。我们可以通过简单易用的模块将其转换双极电机,将扭矩增加到 800+ g/cm !

poYBAGNORuqAAWRPAAA10Iyky2I826.jpg
 

双极步进电机的线圈更大,因此扭矩更大

poYBAGNORvCAftzGAAPhbK7vFdc664.jpg
 

首先,您想用螺丝刀卸下蓝色盖板。

 
 
 
poYBAGNORvuACGkgAAWsjbNBWUE617.jpg
 
1 / 2
 

移除后,您需要使用刀子完全切断通往红线的中间痕迹。

poYBAGNORwKASiQFAAhpIIUareY388.jpg
 

您要确保它不再连接。

 
 
 
pYYBAGNORw-AXMH9AAi4F7nRc3w068.jpg
 
1 / 2
 

现在你可以从两边剪掉红线。

pYYBAGNORxOAAe-WAAVPiK4Ozno954.jpg
 

您现在可以重新安装蓝色盖板。我需要切断它的 2 个支撑物才能把它放回去。

pYYBAGNORxiARzozAAMUOtbyJ-w585.jpg
 

现在您有了自己的双极 28BYJ-48 步进电机。它具有大约 2.5 倍的初始扭矩。但是现在您需要获得一个双极步进驱动器,例如我正在使用的 DRV8825。驱动器的最小电源电压额定为 8.4V,我们的电机额定电压为 5V。但不要担心双极版本的电机可以轻松处理该电压!

第 7 步:DIY 魔术贴领带 x2

 

pYYBAGNORyGAbjATAAYS6zDZpfg660.jpg
 

 

是时候制作将配件连接到分配器的 Velcro 系带了。如果您已经有一些 Velcro 扎带,请随意使用它们。

poYBAGNORyWAT7eCAANzQfc-GkM057.jpg
 

您可以根据需要将它们剪得长或短,但我建议将一个部分切割为 30 厘米 - 40 厘米,另一部分切割为 4 厘米 - 7 厘米。

pYYBAGNORymAa86oAAS7RsPnCmo411.jpg
 

现在你想把这两个部分装订在一起。确保将要装订在一起的侧面要么粗糙要么都柔软。

pYYBAGNORy6ASZm3AAPnopZsqps044.jpg
 

现在您的 Velcro 领带可以使用了!

 
 
 
poYBAGNORzKABUd1AAU9I8BVaEQ058.jpg
 
1 / 2
 

您将需要其中两个。

第8步:电路

pYYBAGNORzWAcruqAAEbUmffRhk414.png
 

是时候创建电子电路了!对于初学者来说,将 9V 电池的地线连接到 Arduino 地线,中间有一个 100μF 的电解电容器(记住电容器的白线一侧是地线/阴极)。将 9V 连接到通用开关,然后连接到电容器阳极上的 Vin。我使用了两个迷你面包板,因为它们很适合放在箱子里,使用任何你喜欢的面包板,但要考虑到有限的空间。

pYYBAGNORzmAMunHAAIvuj4IcGY633.png
 

将红外障碍物传感器 VCC 连接到 5V,接地到接地,最后将 OUT 连接到数字引脚 9。

poYBAGNORz6AAOWmAAJbmcMUj04637.png
 

现在我们要连接终端开关。将公共支路连接到 5V,将常开连接到数字引脚 8,并通过 1kΩ 电阻接地。

pYYBAGNOR0GAco-HAAKCVC2tXsk913.png
 

将 DRV8825 双极电机驱动器添加到面包板。将 Vmot 连接到 Arduino 的 Vin。将两个接地连接到地。将 Dir 引脚连接到数字引脚 2,将步骤引脚连接到数字引脚 3,将启用引脚连接到数字引脚 4。将复位和睡眠引脚相互连接。

poYBAGNOR0WAUA0IAAMhNoVnhZs262.png
 

最后将 28BYJ-48 的蓝色线连接到 A2,黄色线连接到 A1,橙色线连接到 B1,粉色线连接到 B2。

 
 
 
poYBAGNOR1eAKCK-AAh6XR5xHPI311.jpg
 
1 / 2
 

电子设备终于连接上了!

第 9 步:编程

const int dirPin = 2;

我们将驱动器的 Dir 引脚定义为 Digital pin 2。

const int stepPin = 3;

我们将驱动器的 Step 引脚定义为 Digital pin 3。

const int enablePin = 4;

我们将驱动器的 Enable 引脚定义为 Digital pin 4。

const int stepsPerRevolution = 6000;

我们将每转的步数定义为 6000,旋转一次 360 度为 2048 步。

int endStop = 8;

我们将 endStop 开关的输入引脚定义为数字引脚 8。

int irSensor = 9;

我们将 IR 障碍物传感器的输入引脚定义为数字引脚 9。

void setup()
{
pinMode(endStop, INPUT);
pinMode(irSensor,INPUT);

在设置中,我们将 endStop 和 irSensor 引脚声明为输入。

pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
pinMode(enablePin, OUTPUT);

我们将 stepPin、dirPin 和 enablePin 声明为输出。

digitalWrite(enablePin, LOW);

我们将 enablePin 设置为 LOW 以启用 DRV8825 驱动程序

while(digitalRead(endStop) == LOW)
{

只要 endStop 开关的数字值为 LOW(未按下开关。)

digitalWrite(dirPin, HIGH);

电机旋转方向设置为逆时针

for(int x = 0; x < 1; x++)
{
digitalWrite(stepPin, HIGH);
delayMicroseconds(2000);
digitalWrite(stepPin, LOW);
delayMicroseconds(2000);
}

并且步进器将一次逆时针旋转一步,直到 While 语句的条件为假。

digitalWrite(enablePin, HIGH);
}

这会禁用我们的驱动程序,以便在不使用驱动程序时不会消耗太多电流。

void loop()
{
  
     if(digitalRead(irSensor)== 0)
     {

在循环中,如果 irSensor 的数字值为 0(IR 障碍物传感器前面有障碍物(手))

digitalWrite(enablePin, LOW);

驱动程序被启用。

digitalWrite(dirPin, LOW);

电机的旋转方向设置为顺时针。

for(int x = 0; x < stepsPerRevolution; x++)
{
digitalWrite(stepPin, HIGH);
delayMicroseconds(2000);
digitalWrite(stepPin, LOW);
delayMicroseconds(2000);
}

步进器将顺时针旋转 6000 步。

delay(2000);

它将等待 2 秒。

while(digitalRead(endStop) == LOW) 
{

只要 endStop 开关的数字值为 LOW(未按下开关。

digitalWrite(dirPin, HIGH);

电机旋转方向设置为逆时针方向。

for(int x = 0; x < 1; x++)
{
digitalWrite(stepPin, HIGH);
delayMicroseconds(2000);
digitalWrite(stepPin, LOW);
delayMicroseconds(2000);
}
}

并且步进器将一次逆时针旋转一步,直到 While 语句的条件为假。

digitalWrite(enablePin, HIGH);
}
}

然后驱动程序将被禁用,直到 If 语句的条件为真并且代码再次播放。

第 10 步:组装

盖组件

 
 
 
poYBAGNOR1yAQ2ZfAAXOye_CcJ0106.jpg
 
1 / 4
 

只需将魔术贴扎带放在间隙中,在其顶部添加支架并将它们拧在一起。

x2

 
 
 
pYYBAGNOR2CASF2cAAUtTUNNb9c924.jpg
 
1 / 2
 

将 Velcro 手柄拧到盖子上。盖板组装完成!

x2

压脚组件

 
 
 
pYYBAGNOR2SAaoG8AAUMGe1gkd4704.jpg
 
1 / 3
 

将直线轴承推入右孔中,直到它在中间。用 4 个螺钉将 T8 螺母拧到压脚的左孔上。

电子外壳组装

pYYBAGNOR2mAC5VuAAgVlmXN4rc537.jpg
 

把你的电路放在电子箱里。将步进器、开关和红外障碍物传感器的电缆穿过孔。

红外障碍物传感器支架组件

 

 
 
 
poYBAGNOR26AWpWcAANXYZfMOlo490.jpg
 
1 / 2
 

将红外障碍物传感器拧入孔中,并使用螺母拧紧配合并调整位置。

总装!

 
 
 
pYYBAGNOR3GAbS6VAANMSbkWl_o220.jpg
 
1 / 3
 

插入轴承。

 
 
 
poYBAGNOR3aAbU1bAAWucppNvH0128.jpg
 
1 / 3
 

添加T8螺丝和压脚组件。(T8螺丝需要70mm到82mm长。如果你有更长的螺丝,你应该用钢锯之类的工具把它切成想要的尺寸。否则你可以试试3D打印一个。 )

 
 
 
pYYBAGNOR3uAONTGAAPS_AQAMog525.jpg
 
1 / 4
 

将联轴器拧紧到电机轴上。然后将其拧紧到 T8 螺钉上。最后用两个螺丝将电机拧到底座上。

 
 
 
pYYBAGNOR3-AIVgdAAVeY3TYdLc433.jpg
 
1 / 2
 

添加终止开关。

 
 
 
poYBAGNOR4OAMVfJAASouTn8Euc597.jpg
 
1 / 2
 

用 5 颗螺钉将盖子拧到底座上。

 
 
 
pYYBAGNOR4iAEqetAATfr2vKBjo230.jpg
 
1 / 3
 

用 2 颗螺钉将红外障碍物传感器支架拧到底座前部。

 
 
 
pYYBAGNOR42ASXEdAAf0EgN4mNc666.jpg
 
1 / 2
 

最终用 3 个螺丝将电子外壳拧到盖子上!干得好,项目完成!

 

结论

pYYBAGNOR5GATpGqAAWs-srIByg430.jpg
 

这个可以将大多数洗手液/皂液器完全自动化和免提的配件项目终于完成了!!

感谢您的时间!!


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

评论(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:'Arduino Nano自动洗手液',//标题 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);