RISC-V技术论坛
登录
直播中
川楠
12年用户
1331经验值
擅长:电源/新能源 模拟技术 嵌入式技术
私信
关注
[经验]
【南京中科微CSM32RV20开发板试用体验】+5.自动喂食器
DIY
开发板试用
南京中科微
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_S
ti
meS; //系统时间计数,单位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
天,只也希望它们能够挺住吧。
回帖
(3)
jiciwi
2022-1-24 14:52:09
看看
看看
举报
玩硬件的女孩纸
2022-2-9 15:51:02
创意满满,赞赞赞!
创意满满,赞赞赞!
举报
Terra_guo
2022-5-6 16:48:12
哈哈 我之前也搜了下 某宝上确实有这个自动喂食机,就想着自己做个自动喂食机
哈哈 我之前也搜了下 某宝上确实有这个自动喂食机,就想着自己做个自动喂食机
举报
更多回帖
rotate(-90deg);
回复
相关帖子
DIY
开发板试用
南京中科微
【
南京
中科
微
CSM32RV20
开发板
试用
体验】+
5.
自动
喂食器
934
【
南京
中科
微
CSM32RV20
开发板
试用
体验】
CSM32RV20
调试记录
986
【
南京
中科
微
CSM32RV20
开发板
试用
体验】
CSM32RV20
测评报告
1086
【
南京
中科
微
CSM32RV20
开发板
试用
体验】+1.
CSM
32上手初体验
1330
【产品
试用
】
南京
中科
微
CSM32RV20
开发板
免费
试用
504
【
南京
中科
微
CSM32RV20
开发板
试用
体验】
开发
环境构建及项目创建
1455
【
南京
中科
微
CSM32RV20
开发板
试用
体验】串口的使用心得+使用串口点灯
1264
【
南京
中科
微
CSM32RV20
开发板
试用
体验】PWM呼吸灯
632
【
南京
中科
微
CSM32RV20
开发板
试用
体验】linux 调试
682
【
南京
中科
微
CSM32RV20
开发板
试用
体验】开箱视频2
604
发帖
登录/注册
20万+
工程师都在用,
免费
PCB检查工具
无需安装、支持浏览器和手机在线查看、实时共享
查看
点击登录
登录更多精彩功能!
首页
论坛版块
小组
免费开发板试用
ebook
直播
搜索
登录
×
20
完善资料,
赚取积分