DIY自动售货机——基于Arduino的机电一体化项目

在这个项目中,我们将学习如何制作基于Arduino的DIY自动售货机。我将向您展示构建它的整个过程,从切割和组装MDF板到将所有电子部件连接在一起并编写Arduino代码。

概述

自动售货机具有四个连续旋转伺服电机控制的四个出料单元、步进电机控制的载体系统、液晶显示器、四个选择物品的按钮和硬币检测器。

你现在可能会想,这个自动售货机没有那么有用,是的,你可能是对的。但我的想法是让这个项目更有趣或者更复杂,这样你就能学到更多新东西。我认为这个项目的想法可以很好的为电子或机电一体化的学生考虑建设一个作为他们的最后一年的项目,以及任何阿杜诺爱好者。

建造自动售货机

我从切割8毫米厚的中密度纤维板开始。

我以前做了一个三维模型的机器,从那里我得到了所有的测量。您可以从下面的链接下载三维模型。

我用圆锯切割中密度纤维板。实际上这是一个,由我的搭档Marija制作,在她的YouTube频道上有一段DIY视频.

在用圆锯切割了所有的面板之后,我继续用倒置的拼图在一些面板上开孔。

实际上,一个拼图甚至可以用于前一步,以防你没有圆锯。我也用拼图切割有好几个切口的小零件。但是,请注意,这些是危险的机器,所以在使用它们时需要非常小心。

当我准备好所有的MDF部件后,我开始用一些木胶和螺丝组装它们。为了紧固面板,我用了90度角夹钳。使用无绳钻,我首先做了试点孔,然后做了柜台下沉和螺丝3毫米的螺丝到位。我用同样的方法组装了所有的面板,其中一些面板我还使用了一些F夹具。

轨道系统

在装配的这一点上,我将继续制作轨道系统。为此,我使用铝管,我用金属手锯将它们切割成一定的尺寸。水平轨道的管道直径为16mm,而垂直轨道的管道直径为20mm。在一个18毫米的实木板上,我用福斯特纳钻头为管子做了槽,然后把管子连在上面。

水平轨道由两根27厘米长的管子组成,而垂直轨道由三根45厘米长的管子组成。

接下来是滑块,下面是我如何制作的。我用21×21厘米的木板在上面打了8毫米的洞。

然后我通过这些孔插入8毫米螺纹杆,并用垫圈和螺母固定22毫米轴承。至于水平滑块,我使用了相同的方法,但直径较小的轴承为16毫米。

当我把滑块插入管轨之间时,我发现它有点松。为了解决这个问题,我不得不缩短两条铁轨之间的距离。所以我先是扩大了管子的槽,然后在管子上做了垂直的槽,最后用一根螺纹杆把两个管子的轨道固定得更紧。在这之后,滑块不再松动,它们正常工作。

然而,在这一点上,我不得不拆开轨道,以便添加其他元素。首先,我添加了一个5毫米的螺栓在左侧的轨道,我将附加一个滑轮的水平同步带,以及两个轴承将滑动在左侧垂直轨道。

在另一个右侧的轨道,我不得不附加步进电机水平运动。首先,我把电机固定在一块8毫米的中密度纤维板上,然后在上面加了一块支撑木,还把开槽的部分固定在上面。最后,我用木胶和两个螺丝将整个组件连接到垂直滑块上。

接下来,我继续在水平滑块上添加容器。为此,我用了一些小木片,用木胶把它们连接起来。一旦我完成了这项工作,我就准备组装铁路系统。我用了一些环氧树脂在轨道槽,并添加了一个额外的木板,以使整个轨道系统更硬。

在下一步中,我将组件插入垂直轨道之间,并将其固定到位。滑块和导轨系统的最终结果是工作良好。

我继续安装水平同步带。我测量了我需要的长度,剪成一定的尺寸,然后用一个拉链把它固定在滑块上。至于垂直滑块,我用一块中密度纤维板和一些螺栓将步进电机安装在机器顶部。在底部,我连接了滑轮,并以类似的方式安装了正时皮带。

卸料装置

接下来,我转到卸料单元。我用3毫米厚的金属丝做了一个螺旋线圈,把它包裹在一个直径7厘米的喷漆罐上。

之后我用胶水枪把它固定在一个连续旋转的伺服电机上。

前面板

下一个是前门面板,我用简单的铰链连接到自动售货机上,为了锁上它,我用了一个磁性的门闩。然后我用一个5毫米厚的丙烯酸树脂覆盖前面的大开口,而对于右侧较小的开口,我用了一块非常锡的铝板。我在这里为硬币和纽扣做了4个洞.我用钻头和钢锯做的。一旦我把电子部件连接到铝板上,我就用5毫米的螺栓将其固定到前门板上。

为了把载体定位到它的起始位置,我安装了两个微型开关,对于硬币,我粘了一个引导器,引导硬币滑到机器底部。

当硬币附近有一个简单的红外传感器时,它会给我们一个正面的反馈。

电路图

接下来是有趣的部分,将所有电子元件连接到Arduino板上。这是这个DIY自动售货机项目的完整电路图。

所以我们需要12伏电源,至少2安培。我们需要12伏的两个步进电机,以及LED灯条,我将稍后附加在前门。然而,对于所有其他组件,我们需要5V,因此我使用了一个降压转换器将12V降压到5V。DS04-NFC连续旋转伺服电机由5V供电,并通过来自Arduino板的PWM信号控制,而.四个按钮和两个微动开关连接到接地和Arduino数字引脚,因此使用Arduino板的内部上拉电阻器,我们可以很容易地检测到何时按下它们。

您可以从以下链接获取本Arduino教程所需的组件:

DC-DCLM2596降压转换器

16×2液晶显示器

360度连续旋转伺服电机

步进电机NEMA17

A4988步进电机驱动器

红外接近传感器

按钮

微型限位开关

Arduino板

我用一些电子元件连接跨接线。它变得有点凌乱,有那么多电线,但一切正常。最后,我把两个LED灯条贴在门板上,照亮自动售货机的内部。

Arduino代码

现在剩下的就是编程Arduino,这是我为这个项目制作的代码。下面是代码的说明。

/*DIYVendingMachine-ArduinobasedMechatronicsProject

byDejanNedelkovski,www.HowToMechatronics.com

*/

#include//includestheLiquidCrystalLibrary

#include

LiquidCrystallcd(27,26,25,24,23,22);//CreatesanLCobject.Parameters:(rs,enable,d4,d5,d6,d7)

Servoservo1,servo2,servo3,servo4;//DS04-NFCmotors

//Steppermotorspins

#definedirPinVertical0

#definestepPinVertical1

#definedirPinHorizontal2

#definestepPinHorizontal3

#definecoinDetector9

#definebutton113

#definebutton212

#definebutton311

#definebutton410

#definemicroSwitchV15

#definemicroSwitchH14

intbuttonPressed;

voidsetup(){

lcd.begin(16,2);//InitializestheinterfacetotheLCDscreen,andspecifiesthedimensions(widthandheight)ofthedisplay

servo1.attach(4);

servo2.attach(5);

servo3.attach(6);

servo4.attach(7);

pinMode(dirPinVertical,OUTPUT);

pinMode(stepPinVertical,OUTPUT);

pinMode(dirPinHorizontal,OUTPUT);

pinMode(stepPinHorizontal,OUTPUT);

pinMode(coinDetector,INPUT);

//Activatingthedigitalpinspullupresistors

pinMode(button1,INPUT_PULLUP);

pinMode(button2,INPUT_PULLUP);

pinMode(button3,INPUT_PULLUP);

pinMode(button4,INPUT_PULLUP);

pinMode(microSwitchV,INPUT_PULLUP);

pinMode(microSwitchH,INPUT_PULLUP);

//Verticalstartingposition

digitalWrite(dirPinVertical,HIGH);//Setthesteppertomoveinaparticulardirection

while(true){

if(digitalRead(microSwitchV)==LOW){//Ifthemicroswitchispressed,movetheplatforalittlebitupandexitthewhileloop

moveUp(70);

break;

}

//Movethecarrierupuntilthemicroswitchispressed

digitalWrite(stepPinVertical,HIGH);

delayMicroseconds(300);

digitalWrite(stepPinVertical,LOW);

//Horizontalstartingposition

digitalWrite(dirPinHorizontal,LOW);

if(digitalRead(microSwitchH)==LOW){

moveLeft(350);

digitalWrite(stepPinHorizontal,HIGH);

digitalWrite(stepPinHorizontal,LOW);

voidloop(){

//Print"Insertacoin!"ontheLCD

lcd.clear();

lcd.setCursor(0,0);

lcd.print("Insertacoin!");

//Waituntilacoinisdetected

if(digitalRead(coinDetector)==LOW){//Ifacoinisdetected,exitthefromthewhileloop

delay(10);

lcd.print("Selectyouritem");

lcd.setCursor(0,1);

lcd.print("1,2,3or4");

//Waituntilabuttonispressed

if(digitalRead(button1)==LOW){

buttonPressed=1;

if(digitalRead(button2)==LOW){

buttonPressed=2;

if(digitalRead(button3)==LOW){

buttonPressed=3;

if(digitalRead(button4)==LOW){

buttonPressed=4;

//Print"Delivering..."

lcd.print("Delivering...");

//Dependingonthepressedbutton,movethecarriertothatpositionanddischargetheselecteditem

switch(buttonPressed){

case1:

//Movethecontainertolocation1

moveUp(4900);//Moveup4900steps(Note:thesteppermotorissetinQuartersetresolution)

delay(200);

moveLeft(1700);//Moveleft1700steps

delay(300);

//Rotatethehelicalcoil,dischargetheselecteditem

servo1.writeMicroseconds(2000);//rotate

delay(950);

servo1.writeMicroseconds(1500);//stop

delay(500);

//Movethecontainerbacktostartingposition

moveRight(1700);

moveDown(4900);

case2:

//Movethecontainertolocation2

moveUp(4900);

//Rotatethehelix,pushtheselecteditem

servo2.writeMicroseconds(2000);//rotate

servo2.writeMicroseconds(1500);//stop

case3:

//Movethecontainertolocation3

moveUp(2200);

moveLeft(1700);

servo3.writeMicroseconds(2000);//rotate

servo3.writeMicroseconds(1500);//stop

moveDown(2200);

case4:

//Movethecontainertolocation4

moveUp(2200);//Moveverticaly4800steps

servo4.writeMicroseconds(2000);//rotate

servo4.writeMicroseconds(1500);//stop

lcd.clear();//Clearsthedisplay

lcd.print("Itemdelivered!");//PrintsontheLCD

delay(2000);

//==Customfunctions==

voidmoveUp(intsteps){

digitalWrite(dirPinVertical,LOW);

for(intx=0;x

voidmoveDown(intsteps){

digitalWrite(dirPinVertical,HIGH);

voidmoveLeft(intsteps){

digitalWrite(dirPinHorizontal,HIGH);

voidmoveRight(intsteps){

源代码说明

首先,我们需要包括伺服和液晶库,定义LCD引脚、四个伺服电机、步进电机引脚、硬币探测器以及四个按钮和两个微型开关。

在设置部分,我们为上面提到的每个引脚设置引脚模式。我们可以注意到,对于按钮和微型开关引脚,我们激活了内部上拉电阻器。这意味着这些引脚的逻辑电平将一直处于高位,一旦我们按下它们,逻辑电平将下降到低位。

在我们进入主回路之前,我们还将载波设置到由两个微动开关定义的起始位置。因此,在while循环中,我们继续将载体移动到其起始位置,一旦按下两个微动开关,电机将停止并移动到所需的启动位置。

在主程序中,首先在LCD上打印"插入硬币"消息。然后我们被困在while循环中。一旦插入一个硬币,它通过接近传感器,硬币探测器引脚的逻辑状态将下降到低,在这种情况下,我们将使用break语句退出while循环。

我们在循环中选择另一条信息然后打印。

这个while循环等待我们按下四个按钮中的任何一个,一旦我们按下了,我们就会退出并打印消息"Delivering"。

现在,根据按下的按钮,我们在switch语句中执行一次case。如果我们按下了第一个按钮,运营商将开始使用定制的"moveUp()"函数上移。

如果我们看一下这个函数,我们可以看到它只是将步进电机设置为向特定的方向移动,并使我们输入的步数作为参数。

我们可以注意到,我设置了A4988步进驱动器的工作在四分之一步的分辨率,和一些品味,我得出结论,我需要4900步,以使载体达到较高的位置。以类似的方式,我们将载体向左移动,直到到达位置1。

紧接着,我们旋转连续旋转电机950毫秒,使螺旋线圈完成一个完整的循环。

请注意,这些值有时会变化,并取决于电机本身。使用moveRight()和moveDown()自定义函数,我们将载体带回起始位置。以同样的方式,我们可以卸下这四个项目中的任何一个。

最后我们只打印消息"项目已送达"。

*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

THE END
1.国美零零购24h无人便利店,北京首店,盛大开业客服门店数量24小时...智能购物,逛吃逛喝超方便 踏入国美零零购24h无人便利店 即可扫去一身班味儿 体验自由购物的松弛感 无需排队,无需收银员 只需一部手机,扫码进店 自由挑选心仪商品 一键付款 精准结算 即拿即走 让购物变得前所未有的便捷与高效~ ▲国美零零购24h无人便利店自助购物流程 ...https://www.163.com/dy/article/JIG7B8P50556795U.html
2.归龙潮自动售货机在哪自动售货机位置归龙潮游戏里面玩家可以获得的道具装备有很多,不同属性等级的装备获取方法是不同的。日常一些道具可以在自动售货机这里使用游戏货币购买,位置在车站附近的角落里。 自动售货机位置如下: 在车站附近的角落里 1、往车站方向走。 2、沿着下图所示路线来到天桥位置。 https://www.wywyx.com/gonglue/202409/480494.html
3.[杭州以勒自动售货机制造有限公司广州办事处]详细地址,位置示意图...杭州以勒自动售货机制造有限公司广州办事处,电话:02086183225,地址位于中国广东广州市广州白云大道南路656号(金钟大厦对面),靠近齐富路、白云大道南、云城北一路和云城中三路。在公共交通方面,附近设有多个公交站,包括学岗路、云山隧道、白云国际会议中心、苹果大厦等,可以换乘36路、841路、夜114路、白云山2线等多条...https://m.city8.com/gz/zhuanyejigou/23092307_IUXR
4.望江驿1—7号望江驿1号 杨浦大桥下歇浦路轮渡附近 望江驿——卫生间母婴室休息室无线网络直饮水自动售货机储藏柜雨伞充电心脏除颤器急救箱 望江驿2号 民生路轮渡旁 望江驿3号 新华绿地其昌栈轮渡与浦滨儿童医院中间 望江驿4号上海船厂绿地船厂1862附近 左边为船厂1862 https://www.meipian.cn/26xbltur
5.归龙潮自动售货机在哪儿具体位置介绍归龙潮自动售货机在哪儿 具体位置介绍,自动售货机位置在哪里?日常一些道具可以在自动售货机这里使用游戏货币购买,下面是详细位置介绍。 答:在车站附近的角落里 1、往车站方向走。 2、沿着下图所示路线来到天桥位置。 3、从这个楼梯上去。 4、即可在下图所示的位置找到自动售货机。 https://m.gamedog.cn/games/a/3395312.html
6.久铂塔自动售货机(上海)有限公司(上海市松江区北松公路6218号1幢...经营范围:自动售货机,食用农产品,机电设备及配件,机械设备及配件,净化设备及配件,包装专用设备,制冷设备,日用百货,办公文化用品,体育用品,卫生洁具,水族宠物专用品,电子产品,计算机、软件及辅助设备,医疗器械(仅限不需医疗器械许可证的品种)销售,食品销售,通讯设备修理,企业管理咨询,商务咨询,广告设计、制作、代理、...https://gongshang.mingluji.com/shanghai/name/%E4%B9%85%E9%93%82%E5%A1%94%E8%87%AA%E5%8A%A8%E5%94%AE%E8%B4%A7%E6%9C%BA%EF%BC%88%E4%B8%8A%E6%B5%B7%EF%BC%89%E6%9C%89%E9%99%90%E5%85%AC%E5%8F%B8
7.自动售货机正在北京长沙广州等城市渗透这是长沙临近火车站的一个大型百货商场——阿波罗商业广场,在二楼的一个转角处,一个小女孩拖着妈妈要去买饮料喝,一台自动售货机,塞入一张钞票,看到六个青青的橙子滚滚落下,几秒钟之后,一杯纯果汁出来了,正如机子上所宣传的,百分百的纯天然、无添加、酸酸甜甜,还有满满的“橙心橙意”。这种名为“康果乐”的...https://www.icswb.com/h/168/20150908/344900_m.html
8.自动售货机设备采购投标方案(技术方案).docx1自动售货机设备采购投标方案第一章自动售货机设备采购整体服务设想 第一节自动售货机设备供货计划 一、供货服务说明 三、供货流程要点 四、供货实施方案 五、供货服务目标及理念 第二节项目实施计划与进度控制 一、项目进度计划 第三节管理和协调方案 一、售前配合 三、售后配合 第四节设备生产物资采购保障措施 ...https://www.renrendoc.com/paper/303201218.html
1.友宝自动售货机地址电话邮编地图图吧行业友宝自动售货机公交站: 东四马路、龙兴商贸园(新天地购物公园)、新天地购物公园、四马路、新天地购物公园、四马路、五马路(中东龙兴)、东四马路、南关区医院、南关区医院、陕西路、长通路、新天地购物公园(原龙兴商贸园)、新天地购物公园(中东龙兴商贸园)、光复路、龙兴商贸园 附近的公交车: 80路、287路、264路...https://mpoi.mapbar.com/changchun/MAPAFPJAQMXBYMXBYWZRTOZ
2.上海建凌自动售货机有限公司在哪里/怎么去梅陇附近的公司 南方商城附近的公司 漕宝路附近的公司 该公司附近的公司 上海建凌自动售货机有限公司怎么去?点击搜索位置,查看地图 附近的公司 上海阑途信息技术有限公司 25.9万人次浏览 / 24人正在关注 / 生活服务 / 10000人以上 让所有人养得起车 ...https://www.jobui.com/company/909305/address/
3.盛马自动售货机厂家供应河北自动售货机盛马无人售货机无人...河北盛马电子科技有限公司是一家集研发,生产,销售为一体的自动售货机供应商,供应各种自动售货机,成人用品自动售货机,饮料自动售货机,售烟机,售酒机等等我公司专业从事成人用品自动售货机的设计、生产、销售和安装,我们秉承“办***企业、创***”的经营理念,为您开启***美好未来! https://smshouhuo.cn.china.cn/supply/3927937596.html
4.重庆自动售卖机怡来智能科技小型销售其它供应供应想要经营好我们的自动售货机,的有三点:选址,选品,利润高。 首先是选址,饮料自动售卖机报价,我们要选择那些量大的位置,饮料自动售卖机厂家,将机器投放在那里,才能保障我们的利润。选好了位置之后就是选择我们所售卖的商品,是根据点位附近的情况做一个市场调研,选择合适的商品进行售卖。在售卖一段时间之后我们可以通过...https://www.chuju555.com/sell/show.php?itemid=52835
5.孤独的自动售货机,是疲惫社会人的最终守护者澎湃号·湃客便利店或自动售货机这类以便捷为卖点的售货处,积攒的常客并没有多高的品牌忠诚度,他们更多的是因为地域优势才常去。 但这台乌冬面老爷机对居民们的意义却超越了地理位置的便捷,成为了一处充满情怀的场所。 它能数十年如一日地炮制出一碗碗充满人情味的乌冬面,还是有赖于一直在背后细心打理它的店主,佐原爷爷...https://www.thepaper.cn/newsDetail_forward_5247684
6.美国年度创意公司100特别报道所以,凯莉成立了FitFuel公司,初衷是为自动售货机配备更多健康食品。但是,随后转变为推出健身中心自动售货机。不过,到2007年,凯莉最终将公司定位为:在健身房、学校及办公大楼内为人们提供更多健康食品,又回到了公司最初的目标,并成立了H.U.M.A.N.健康售货机公司,公司名称取义于“帮助人们获得更多营养”。凯莉多方...https://magazine.cyzone.cn/article/198476.html
7.这个视频火了!自动售货机买东西下个APP,手机资料就会全部被盗...扫一扫就付款,现在日益普遍。但二维码覆盖我们生活方方面面的同时,带来的风险也日益增多。近日,网上爆出一个扫码支付测试视频:用户通过手机扫自动售货机上的二维码,居然弹出一个安装App的链接,安装了该App后手机上的资料都被窃取。真的有什么“邪门”吗? https://static.nfapp.southcn.com/content/201812/06/c1733211.html