本文来源电子发烧友社区,作者:川楠, 帖子地址:https://bbs.elecfans.com/jishu_2245819_1_1.html
5.自动喂食器使用视频(开发板体验视频,详见作者原文链接内容)
【南京中科微CSM32RV20开发板试用体验】+5.自动喂食器
前言
大家好。
首先,感谢南京中科微提供的CSM32RV20开发板,同时也感谢发烧友提供的试用平台。
几个月前,家里买了一个智能水族箱,能恒温,24小时增氧,氛围灯也有,然后再买了一些热带鱼。看起来,效果还是不错。

但是,这不到了春节了嘛,全家回老家,这个金鱼大概有10天可没人照料。
网上一查,10天不喂,大鱼应该不会死,但是小鱼由于自身储能比较少,估计会命悬一线。所以,动了自己设计一个自动喂食器的心思。
设计方案
由于还有3天就要放假了,这里面设计的难点是出料的机械结构。所以,我在TB上,查看了一下成品的喂食器,看看能不能找到灵感。出料结构不能太复杂,因为没有加工能力,如果有个3D打印机就好了。
别说,还真找到了一款,结构不太复杂,自己动手应该能做出来。

所以,说干就干:
找个步进电机,带减速的,这样扭矩大点,并且还能精确的控制位置。这个还是以前刚上大学的时候,买51开发板送了一个,好像有10年了吧,配套的还有一个ULN2003驱动芯片。

找个控制板,当然是南京中科微的CSM32RV20,这不现成的嘛。
最后找个透明的盒子,不能太大,太大了不协调,最好是透明的,能看到里面的鱼食。
电源,就用5V的手机电源充电头嘛。
软件方面,需要一个时钟RTC,但是考虑到上文测评的RTC,我觉得还是算了吧,就用延时来吧,只要设置好延时时间,比如间隔8小时喂一次(12小时也行、24小时)都可以。不用做到精确几点几分去喂食。
动手实操
由于这个步进电机是4相5线,型号是:35BY412B,减速比比较大,也超过10多年没用过,驱动起来比较费劲,花了小半天的时间,终于让它转了起来,但是,这个也太慢了,果断放弃。
电机要换!想了一下,用舵机也是可以的。我手上有两个数字舵机,比较高档的那种,DYNAMIXEL AX-12A,这个舵机绝对能像步进电机一样,达到旋转控制的目的。但是这个数字舵机是使用单线TTL串口来驱动,比较诡异。这个之前我还没有用过,只是之前看了一下资料。

最后,还是把目光放到常规舵机上。就是用那种PWM控制的舵机,我手上的这个是180度舵机,扭矩也比较大,也是现成的,之前做项目剩下的。

转动的问题弄好,接下来,就是供电的问题。
只前想的是,用电源适配器来供电,但是在实际调试的时候,发现用5/1A的,舵机启动的瞬间电流,会导致电源适配器输出中断,然后单片机复位。
最后,即使是换成华为40W快充的充电器,还有有这样的问题,明显感觉到舵机启动的时候有顿挫感,估计是华为充电头内部过流保护。
所以整体设计又改了一下,最终整体设计框图如下:

主要程序功能也很简单:
l系统上电后,舵机回到原点,0度。
l开始计时,间隔8小时,控制舵机转2下。
l支持按键触发,按键触发后,当前计时清零,重新计满8小时后,再次自动喂食。
l最后,就是使用板子上的LED做了一些程序功能状态指示。
l电源采用明伟的12V桌面电源供电。
程序源码如下:
- #include "headfile.h"
- uint32_t g_StimeS; //系统时间计数,单位S
- void Time2_PwmCH1(uint16_t CCR)
- {
- TIMER2->CCR1 = CCR;
- }
- int main(void)
- {
- uint8_t CMD;
- ///----System Init ---------------------------------------------------------------------------------------------
- CLIC_Init();//系统中断配置
- System_Clock_Init();//系统时钟初始化
- GPIO_MODE_Init(GPIOA,PIN10,GPIO_MODE_OUTPUT); //GPIO 模式 TIMER2控制LED
- GPIO_MODE_Init(GPIOA,PIN12,GPIO_MODE_OUTPUT); //GPIO 模式 舵机运动时,LED点亮
- GPIO_Write(GPIOA,PIN10,GPIO_SET); //GPIO 输出
- GPIO_Write(GPIOA,PIN12,GPIO_SET); //GPIO 输出
- GPIO_PULL_Init(GPIOA, PIN15, GPIO_PULLUP);
- GPIO_MODE_Init(GPIOA,PIN15,GPIO_MODE_INPUT); //GPIO 模式
- Timer2_PWM_Mode_Init();//PWM输出
- Interrupt_Enable(TIMER2_updata_int_ID);//CLIC使能中断
- //使能系统总中断
- SYS_Interrupt_Enable();//CLIC开总中断
- UART_Init_case1(UART1);//非中断模式
- ee_printf("nHello CSM32RV20:");
- g_StimeS=0;
- CMD=0;
- while(1)
- {
- /*
- 舵机控制信号PWM周期为20ms左右,
- 高电平部分一般为0.5ms-2.5ms范围内,控制旋转角度。以180度角度舵机为
- 0.5ms--------------0度;
- 1.0ms--------------45度;
- 1.5ms--------------90度;
- 2.0ms--------------135度;
- 2.5ms--------------180度;
- */
- if(CMD==1) //控制舵机执行喂鱼操作
- {
- uint8_t i;
- CMD=0;
- g_StimeS=0;
- GPIO_Write(GPIOA,PIN12,GPIO_RESET);
- for(i=0;i<2;i++)
- {
- Time2_PwmCH1(2500); //舵机旋转到位置A
- Delay32M_ms(500);
- Time2_PwmCH1(500); //舵机回到初始位置
- Delay32M_ms(500);
- }
- GPIO_Write(GPIOA,PIN12,GPIO_SET); //LED关闭
- }
- else
- {
- Time2_PwmCH1(500); //舵机回到初始位置
- GPIO_Write(GPIOA,PIN12,GPIO_SET); //LED关闭
- }
- /*按键检测*************************************************************/
- if(GPIO_Read(GPIOA,PIN15)==0)
- {
- Delay32M_ms(10);
- while(GPIO_Read(GPIOA,PIN15)==0);
- CMD=1;
- }
- /*自动定时放料*********************************************************/
- if(g_StimeS>28800) //设定计时时间大于阈值,启动舵机投食。
- {
- g_StimeS=0;
- CMD=1;
- }
- }
- return 0;
- }
成品展示
使用热熔胶,把塑料盒子(盖子被小孩弄不见了,只有用气球+橡皮筋临时封上)固定在舵机上,然后整体固定在陶瓷杯子上,这样底座比较稳,不容易翻车。并且使食料盒水平上有一定的斜度,保证鱼食一直在底部。

在杯子上方用电转打好小孔孔,如果孔打大了,可以控制舵机旋转到180度后,减少停留的时间。孔打小了,那就控制舵机多转动几次,也是可以一定程度上弥补的。孔的大小与鱼食的颗粒大小有直接的关系。

最开始,我用的用的是电转打孔,但是,后来发现,里面有很多的毛刺,干脆就用钉子烫了几个小孔。
使用效果如下:详见视屏
我用的是按键触发,效果不错,还是非常满意。
总结
其实,这个只是一个非常小、也是非常着急的项目,用的技术也非常简单。但是,也确实是能解决我生活上的一些小问题。给我带来便利。
当然,也有不完善的地方,比如喂食时间不能手动设置,是程序写死了了滴,但是我想说的是,时间真的很紧,与其去开发这个一个功能,还不如直接改源码,串口重新烧录一遍,也就OK了,这个不是产品。
好了,自动喂鱼的事情是解决了,但是自动换水是不是也该考虑一下,平时,我是5-6天换一次水,但是水泵我也没有现成的,年后在想办法吧,不然以后国庆节,全家出去耍了,这些鱼也是个麻烦。
这次春节放假10天,只也希望它们能够挺住吧。
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
南京中科微
+关注
关注
0文章
60浏览量
1369 -
CSM32RV20
+关注
关注
0文章
40浏览量
460
发布评论请先 登录
相关推荐
热点推荐
智能喂食器电路板(PCBA)的加工难点与特殊工艺
随着宠物经济的兴起,智能宠物喂食器逐渐成为养宠家庭的刚需产品。其核心在于精准的定时与定量控制,而这背后的关键技术就是PCBA加工。 宠物喂食器对PCBA的需求 智能宠物喂食器不仅要实现定时投喂
【作品合集】中科昊芯Core_DSC280025C开发板测评
的应用
【中科昊芯Core_DSC280025C开发板试用体验】---外部中断问题
第一期合集: 微五科技CF5010RBT60开发板测评作
发表于 09-18 10:52
【作品合集】玄铁Banana Pi BPI-RV2开发板测评
测试
作者:chen000000009【Banana Pi BPI-RV2开发板试用体验】开箱+硬件介绍
【Banana Pi BPI-RV2开发板
发表于 09-17 10:58
【作品精选】2025电子发烧友开发板测评大赛作品合集!
Milk-V Duo S 开发板免费试用
玄铁Banana Pi BPI-RV2开发板试用
玄铁Banana Pi BPI-CanMV-K2
发表于 09-03 15:24
安信可雷达模组在宠物喂食器中的应用
近年来,宠物经济快速增长,智能宠物喂食器作为智能家居的重要细分领域,市场需求持续扩大。传统定时喂食器在实现基础的自动投喂功能后,用户对产品的智能化水平提出了更高要求,包括精准喂食、宠物
有奖丨米尔 瑞芯微RK3506开发板免费试用
米尔与瑞芯微合作发布的新品基于瑞芯微RK3506应用处理器的MYD-YR3506开发板免费试用名额来啦~~米尔提供了3块价值299元的MYD-YR3506
中微爱芯32位MCU开发板AiP32RV15X介绍
AiP32RV15X开发板是一款基于RISCV内核的32位MCU开发板,提供了板载调试器、RESET、WAKEUP按键、三色LED、CAN收发器、USB接口、UART、ADC、SPI、IIC、RTC、TIMER、WDT、GPIO
WTR096语音芯片在宠物喂食器上技术应用方案
宠物市场近些年迎来了市场的爆发,随之而来的是宠物市场产品创新的爆发潮,这其中宠物喂食器是很多用户的刚需。宠物喂食器的使用场景非常广泛,比如经常忘记喂食宠物的人就非常适合这款产品,还有就是经常不在家
基于RK处理器,创龙TL3562-MiniEVM开发板试用体验
数量: 10块 更多热点文章阅读 基于平头哥TH1520芯片,润开鸿HH-SCDAYU800A开发板免费试用 RISC-V开发板深度评测!顶级开发板免费
性能强悍!合众HZ-RK3568开发板试用体验
月19日 评测数量: 10块 更多热点文章阅读 基于平头哥TH1520芯片,润开鸿HH-SCDAYU800A开发板免费试用 RISC-V开发板深度评测!顶级开发板免费
有奖丨米尔 瑞芯微YR3562开发板免费试用
米尔与瑞芯微合作发布的新品基于瑞芯微RK3562应用处理器的MYD-YR3562开发板免费试用活动来啦~~米尔提供了3块价值599元的MYD-YR3562

【南京中科微CSM32RV20开发板试用体验】+5.自动喂食器
评论