首页 >> 行业动态 >>调酒动态 >> 下沙调酒师培训-用Arduino打造会调酒的机器人
详细内容

下沙调酒师培训-用Arduino打造会调酒的机器人

 欢迎来到服“造”的世界

原文作者:Ted Kinsman 

译:花神

*由Makezin官方授权 

任何派对都需要话题,有什么比调酒机器人这不但是个好的话头,也可以让派对发起人不用老是站在吧台后方,可以出去和其他人聊天。这篇文章介绍的调酒迈泰( Mai Tai)的酒精浓度并不高,即使是工作场合的派对也很适合。

 

这一台调酒机器人其实就是以一个Arduino微处理器(Arduino Uno)加上许多泵制作而成。我写了一个简单的程序,让泵打开一段特定的时间来制作饮料。以目前的设计来说,这个机器人只能做一种饮料,不过只要调整一下程序跟输入开关,要做几十种饮料都不成问题。这篇文章最主要的目的在于让你开始动手做,同时,在制作的过程中学习一些基本观念。

我们的调酒机器人可以调制出完美的迈泰。迈泰酒谱也有很多种,我想称这个酒谱为玛歌迈泰(Margot’s Mai Tai),因为这是我太太玛歌(Margot)画龙点睛调制出的酒谱,最主要的差别在于酒精浓度较低(从三小杯烈酒变成比一杯多一点)。若是只要按一个按钮就可以调出一杯迈泰,那就会有太多人醉倒了,很不方便。此外,在这份酒谱当中,我们用红石榴糖浆和菠萝汁取代了常用的柳橙汁。

PARTS

迈泰调酒原料

?        兰姆酒(Rum),30 ml

?        柑香酒(Curacao),12 ml

?        杏仁糖浆(Orgeat), 5 ml

?        红石榴糖浆(Grenadine Syrup),6 ml

?        菠萝汁+莱姆,120 ml。可以挤10个莱姆,加上1加仑的菠萝汁

机器人组件

?        Arduino Uno微处理器

?        小马达(运作时电流不应耗超过120 mA)

?        水族箱用的蠕动式泵(2)

?        12V潜水式泵

?        Elegoo 电阻块

?        门铃开关

制作机器人

首先,我们要将泵校准,看看在 12 V直流电之下,液体流动的速度为何。我用的马达购自网络,一个大约5美元。在驱动泵的时候,使用电流约120mA,因此,我还需要可以供应好几安培的电源供应器来调酒。另外,还有一个重点是饮料完成速度,在我的设计之中,约35秒钟可以调好一杯迈泰。

蠕动式泵正面

蠕动式泵背面。你可以观察到泵马达上方的蓝色LED上搭载可限制电流的电阻。从正面看,LED会在机器闲置待命时闪烁。开始制作饮料时,LED则会显示哪一个泵正在运作

透过滚球装置与弹性软管,蠕动式泵可以送出定量的液体。这种泵在食品业和医疗产业中都很常见。在这个专题当中,我们用的则是在水族产业中常见的小泵,目的通常是将化学物质投放到水族箱中。

我用的蠕动式泵32秒可以打入30ml的液体。请记得在制作专题之前,先测试泵发送液体的速度。我一开始先用清水来抓一个大概的时间,再以实际要用的饮料来测试。我用时间线图来显示这个过程:

在上图中,着色面积代表泵打入的液体量,因为兰姆酒需要的量最大,所以兰姆酒泵打开的时间最长,这算是小型蠕动式泵的其中一项限制。

潜水式12 V泵运输速率较快,还可以打入菠萝果肉!

小泵的另一项限制就是无法将菠萝汁果肉打出去,因为迈泰酒谱中有120 ml的菠萝汁,用蠕动式马达又太慢,因此我在这里改用潜水式马达,可同时解决果肉和速度的问题。潜水式马达也是使用12 V直流电,用继电器盒来控制即可。用这个马达来打入120 ml的菠萝汁只需要3.2秒!其实,我原先想要用较大的蠕动式马达来处理,但在附近都搜寻不到,便改用另一个专题剩下的潜水式马达。由于我只有一个马达可以打入果肉,只好将菠萝汁跟莱姆汁先混在一起,再用这个珍贵的潜水式马达处理。若是用蠕动式马达,就会被果肉卡住。而为了避免虹吸现象,潜入式泵要放在果汁液体表面之上。

建议: 蓝色LED也可以升级成彩色LED,加入不同的效果。在制作这个专题时,因时间有限,我使用了有电流限制的蓝色,上面还附有300奥姆的电阻,以防LED烧掉。

Elegoo出的电阻块有8个通道 ,用 Arduino Uno的5V电压控制。

注意:若要用板子开启继电器, 控制脚位要写为LOW。

电阻块的简化示意图。继电器控制了两个蠕动式泵。注意:Arduino脚位要写为LOW来开启继电器与泵。

「启动按钮」其实就是门铃开关,在五金行就能买到

我想在专题中使用一个只接两条电线的门铃开关,因此我将开关上的灯泡拆下来,换成绿色LED。问题是,如此一来按下开关时逻辑不会停在 HIGH值。要解决这个问题,我将逻辑脚位连接Arduino的模拟输入脚位,当模拟的值低于某点,便会触发饮品序列。当然,这不是唯一的解法。我写的简易程序代码是让门铃开关在LED闪烁完毕后才驱动饮料马达。我故意让程序代码简单一些,让它比较好读且好懂。我希望让大家感觉到,这些泵其实很容易控制,如果能精准控制打入的液体量,除了调酒之外,也可以做许多别的事情,例如用来做一些液体实验。

只要调整下面的程序代码,就可以调出各种不同浓度、烈度的饮料。另外,这个装置也能调制超过一种饮料,例如按不同的按钮就可以调出不一样的饮料。

看完这篇文章后,希望你也可以打造自己的机器人,其实装置本身跟电子组件的部分不难,是很适合新手学习 Arduino、程序编写和电子组件的专题。

程序代码

/*这个程序叫做迈泰调制机器人

  

* 主要功能就是调制玛歌迈泰

  

* 作者是Ted Kinsman Rochester Institute of Technology

  

*March 2017 [url=mailto:emkpph@rit.edu]emkpph@rit.edu[/url]

  

*12v直流马达[color=#333333][size=13px]泵[/size][/color]打出1盎司的液体需要32秒

  

*/

  

#define Rum 1 // (1号[color=#333333][size=13px]泵[/size][/color])12VDC马达连接1号脚位,打入兰姆酒

  

#define LED8 8 // (1号[color=#333333][size=13px]泵[/size][/color])LED显示兰姆酒打入状况

  

  

#define Curacao 2 // (2号[color=#333333][size=13px]泵[/size][/color]) 柑香酒连接 2号脚位

  

#define LED9 9 // (2号[color=#333333][size=13px]泵[/size][/color])LED显示柑香酒打入状况

  

  

#define Orgeat 3 // (3号[color=#333333][size=13px]泵[/size][/color])连接 3号脚位

  

#define LED10 10 // 3号[color=#333333][size=13px]泵[/size][/color]上的LED连接到10号脚位

  

  

#define Grenedine 4 // (4号[color=#333333][size=13px]泵[/size][/color])连接 4号脚位

  

#define LED11 11 // 4号[color=#333333][size=13px]泵[/size][/color]上的LED连接到11号脚位

  

#define PineLime 5 // 5号[color=#333333][size=13px]泵[/size][/color]连接菠萝与莱姆汁

  

#define LED12 12 // 5号[color=#333333][size=13px]泵[/size][/color]上的LED连接到12号脚位

  

#define doorbell 13 // 用门铃启动开关

  

#define pump6 6 // 6号脚位连接大型潜入式[color=#333333][size=13px]泵[/size][/color]

  

  

int strobe=100; // 控制LED闪烁速度

  

int sensorPin = A0; // 模拟读取:用来侦测是否有按压门铃开关

  

int sensorValue = 0;  // 如果读取到门铃值,会写入这里

  

  

void setup()

  

{

  

pinMode(Rum, OUTPUT);

  

pinMode(LED8, OUTPUT);

  

pinMode(Curacao, OUTPUT);

  

pinMode(LED9, OUTPUT);

  

pinMode(Orgeat, OUTPUT);

  

pinMode(LED10, OUTPUT);

  

pinMode(Grenedine, OUTPUT);

  

pinMode(LED11, OUTPUT);

  

pinMode(LED12, OUTPUT);

  

pinMode(doorbell, INPUT);

  

pinMode(pump6, OUTPUT);

  

digitalWrite (LED8, LOW); // 1号LED亮

  

digitalWrite (Rum, HIGH); // 关闭1号[color=#333333][size=13px]泵[/size][/color]

  

digitalWrite (LED9, LOW);

  

digitalWrite (Curacao, HIGH); // 关闭3号[color=#333333][size=13px]泵[/size][/color]

  

digitalWrite (LED10, LOW);

  

digitalWrite (Orgeat, HIGH); // 关闭3号[color=#333333][size=13px]泵[/size][/color]

  

digitalWrite (LED11, LOW); // 关闭4号[color=#333333][size=13px]泵[/size][/color]

  

digitalWrite (PineLime, HIGH); // 关闭4号[color=#333333][size=13px]泵[/size][/color]

  

digitalWrite (LED11, LOW);

  

digitalWrite (Grenedine, HIGH);// 关闭5号[color=#333333][size=13px]泵[/size][/color]

  

digitalWrite (pump6, HIGH);// 关闭6号[color=#333333][size=13px]泵[/size][/color]

  

delay(1000); // 让继电器在开始运行前准备就绪

  

}

  

void loop()   // 这部分的程序代码会持续循环

  

{

  

sensorValue = analogRead(sensorPin);

  

// 这个部分是在让LED闪闪发亮,这样机器人看起来会比较酷

  

// 闪灯在按下开始钮的时候会停止

  

// 按下按钮时,LED会显示在运转的马达

  

digitalWrite (LED8, HIGH); // 开启8号脚位的LED

  

delay(strobe);         // 控制LED闪烁速度

  

digitalWrite (LED8, LOW); // 关闭8号脚位的LED

  

delay(strobe);

  

digitalWrite (LED9, HIGH); // 开启9号脚位的LED

  

delay(strobe);

  

digitalWrite (LED9, LOW); // 关闭9号脚位的LED

  

delay(strobe);

  

digitalWrite (LED10, HIGH); // 开启10号脚位的LED

  

delay(strobe);

  

digitalWrite (LED10, LOW); // 关闭10号脚位的LED

  

delay(strobe);

  

digitalWrite (LED11, HIGH); // 开启11号脚位的LED

  

delay(strobe);

  

digitalWrite (LED11, LOW); // 关闭11号脚位的LED

  

delay(strobe);

  

digitalWrite (LED12, HIGH); // 开启12号脚位的LED

  

delay(strobe);

  

digitalWrite (LED12, LOW); // 关闭12号脚位的LED

  

delay(strobe);

  

sensorValue = analogRead(sensorPin);

  

if(sensorValue < 300){

  

digitalWrite (LED8, HIGH); // 1号LED开启

  

digitalWrite (Rum, LOW); // 1号[color=#333333][size=13px]泵[/size][/color]开启

  

digitalWrite (LED9, HIGH);

  

digitalWrite (Curacao, LOW); // 2号[color=#333333][size=13px]泵[/size][/color]开启

  

digitalWrite (LED10, HIGH);

  

digitalWrite (Orgeat, LOW); // 3号[color=#333333][size=13px]泵[/size][/color]开启

  

digitalWrite (LED11, HIGH);

  

digitalWrite (Grenedine, LOW);// 4号[color=#333333][size=13px]泵[/size][/color]开启

  

delay(8000);       // 等待8秒钟打出1/4盎司液体

  

digitalWrite (LED10, LOW); // 关闭杏仁糖浆LED P3

  

digitalWrite (Orgeat, HIGH);   // 关闭杏仁糖浆[color=#333333][size=13px]泵[/size][/color] P3

  

digitalWrite (LED11, LOW);   // 5号[color=#333333][size=13px]泵[/size][/color]LED关闭

  

digitalWrite (Grenedine, HIGH); // 4号[color=#333333][size=13px]泵[/size][/color]关闭

  

delay(8000);     // 等待8秒钟打出1/4盎司液体

  

digitalWrite (Curacao, HIGH);   // 关闭柑香酒[color=#333333][size=13px]泵[/size][/color] 2号

  

digitalWrite (LED9, LOW); // 关闭柑香酒LED 2号

  

// 这个时候,柑香酒开关开启共16秒,送出1/2盎司。

  

delay(16000);   // 等待8秒钟打出1/4盎司液体

  

digitalWrite (LED8, LOW); // 关闭1号[color=#333333][size=13px]泵[/size][/color] LED

  

digitalWrite (Rum, HIGH);   // 关闭1号[color=#333333][size=13px]泵[/size][/color](兰姆酒)

  

digitalWrite (pump6, LOW);   // 开启菠萝汁[color=#333333][size=13px]泵[/size][/color](6号[color=#333333][size=13px]泵[/size][/color])

  

//digitalWrite (PineLime, LOW); // low 打开继电器,打开[color=#333333][size=13px]泵[/size][/color]

  

delay(2500); // 延迟4秒,送出菠萝汁。

  

digitalWrite (pump6, HIGH);     // 关闭菠萝汁[color=#333333][size=13px]泵[/size][/color](6号[color=#333333][size=13px]泵[/size][/color])

  

//digitalWrite (PineLime, HIGH); // 关闭菠萝汁继电器

  

}

  

}


*请勿商用,版权归原作者所有。

*欢迎转发朋友圈。如需转载,请联系授权。 

更多项目干货戳这里

萌妹纸的体感猫耳朵

智能穿戴—将日记可视化的连衣裙

金刚狼爪制作集合   |  台湾创客的桌面神器

雾霾自救  | VR黑科技  |  OTTO  |  宠物机器人

3D打印笔  |  智能手环  |  树莓派拍立得

互动纸艺装置  | HIFI终极音箱

点击“阅读原文”,下载代码……

赞赏

长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

免责声明:杭州酷德教育官网转载上述内容,对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性、完整性、合法性、可操作性或可用性承担任何责任,仅供读者参阅!

面向全国招生
更多

北京 上海 天津 重庆 哈尔滨 长春 沈阳 大连 鞍山 石家庄 太原 呼和浩特 济南 青岛 南京 无锡 常州 苏州 南通 合肥 杭州 宁波 绍兴 义乌 温州 南昌 福州 厦门 泉州 郑州 武汉 长沙 南宁 广州 深圳 东莞 海口 昆明 贵阳 成都 西安 兰州 更多>>

客服中心
联系方式
0571-86923891
13484040243
13588702584
- 客服
新浪微博
扫一扫,关注我们
技术支持: 酷德网络 | 管理登录
seo seo