【每周挑战】造物_造一个牛年存钱机器人
本帖最后由 dinochen1983 于 2021-2-22 11:58 编辑 <br /><br />[每周挑战]造物_造一个牛年存钱机器人参加活动作品:#云上新春
</br>原网站 http://dinochen.com/article.asp?id=365</br>
</br>https://www.bilibili.com/video/BV1F54y1Y7RN</br>
</br></br>
2021年,新春快乐。2021年是牛年,这次的每周挑战就造一个牛年的存钱机器人,通过存钱机器人教会小朋友储蓄的好习惯,特别是过年的红包要交给爸爸妈妈好好保管。以前做过一个不需要Arduino板控制的吃钱兽机器人,这次造一个需要控制板的吃钱机器人,这个机器人存钱后还会说出“恭喜发财”。所以构件均为3D打印,文章的最后提供3D打印的STL文件与Arduino的源代码。
</br></br>
</br></br>
以下是【牛年存钱机器人】(Coin Robot 2.0)的造型与设计图纸。
第1步,3D模型设计
在3DSMAX设计出牛年存钱机器人【Coin Robot 2.0】的外形与活动情况如下图所示。
</br></br>
它的结构分为以下几个部分:
(1)头部,主要是用于实现打开嘴巴的动作
(2)身体盒子,里面有舵机及大部分的芯片与电路
(3)手部,可以活动,带动头部打开嘴巴,导电锡纸设置在手部,手部的转轴连接舵机。
以下就是3DSMAX出来的效果与实际的对比
第2步,准备电子材料
</br></br>
与以往的风格一样,这个装置现在会用到arduino mini,(尺寸比较小)
这次需要用到的特别材料有 MP3语音模块JQ8400FL10P,懂得基本的电学原理就可以安装了。材料如下:
(1)1个9V的电池给ARDUINO供电
(2)1个ARDUINO MINI 板,
(3)1片孔洞板,用于制作外接电路
(4)电焊铁,电线(杜邦线)
(5)小型开关2个,一个用来打开ARDUINO板,一个控制舵机供电
(6)1个JQ8400FL10P的MP3语音模块,用来播放指定MP3文件发出声音
(7)1 个低功率的喇叭元件,用于最终发声
(8)1个舵机,控制机器人把钱币吞起口中的动作
(9)锡纸用来导电,通过钱币接通电路导电
(10)电线若干。其它就是用3D打印机打印。
材料就是相对多一点,经过训练的朋友都能做这个小型装置。
第3步,分开模块与打印
</br></br>
在3DSMAX将不同颜色不同部分的组件分别排版,如下图所示。
采用了不同颜色的线材,主要包括黑色,黄色,红色与白色
3D打印机采用 XYZprinting Mini Maker,构件打印出来的效果如下图所示。
</br> </br>
第4步,电子电路的设计与制作
以下是电路图的设计,分为三部分,基本采用ARDUINO实例教程的基本组合
(1) 锡纸开关电路(硬币通过锡纸接通电路,向A0口输入信号)
(2) 舵机电路(ARDUINO直接控制)
(3) 发声电路(ARDUINO通过串口向MP3语音模块发出指令,MP3播放MP3文件,最后通过喇叭发出声响)
如图所示,通过焊接电线与孔洞板,实现了整个电路的连接,完成图如下。
</br></br>
第5步,模块的组装
把组装好的电路安装到盒子内,如下图所示。
</br></br>
最后在盒子的上部放入存钱盒,把下部的电路隐藏起来。如下图所示。
</br></br>
对部分构件进行粘合,采用强力胶对部份构件进行连接,最后成果如下图所示。
</br></br>
第6步,写入ARDUINO的编程代码
对ARDUINO板写入代码,这个代码就是就是ARDUINO板实现读取红外信号,
实现硬币接通锡纸电路后,舵机打开嘴巴,吃下硬币,播放“恭喜发财”的祝福语句。
代码,如下图所示。下载方法如下:
</br></br>
【点击下载】CoinMonster2_Arduino.zip
第7步,最后的测试
【B站动画】https://www.bilibili.com/video/BV1F54y1Y7RN
以上是牛年存钱机器人的最后完成效果,打开小开关可以把红包的钱存进去啦。
</br></br>
以下是牛年存钱机器人的3d打印文件STL文件的下载方法。
</br></br>
炒鸡赞的每周挑战又来了,万众瞩目,哈哈哈 有锡纸做开关电路,好想法! 云天 发表于 2021-2-19 12:11
有锡纸做开关电路,好想法!
本来想用铜片的,后来想锡纸更便宜。 hnyzcj 发表于 2021-2-19 08:11
炒鸡赞的每周挑战又来了,万众瞩目,哈哈哈
每周挑战第二季回归 dinochen1983 发表于 2021-2-19 14:29
每周挑战第二季回归
好呀好呀 太萌了~ szjuliet 发表于 2021-2-20 07:50
太萌了~
还很实用 大佬太6了!牛鼻! 电池供电部分能用一个电池组
吗? 代码可以改改,现在舵机一动硬币就起来连接断开,看着有点鬼畜
void loop()
{
int Open_flag = 0;
buttonstate = digitalRead(buttonPin);
if(buttonstate == HIGH)
{
Open_flag = 20;
}
else
{
Open_flag --;
}
if(Open_flag > 0)
{
//执行存钱的动作
}
else
{
//关盖子
}
delay(10)
} 很厉害 很厉害 想做一个 好东西 做一个
页:
[1]