Yangyi的KL25开源项目进行中....[宠物(兔子/狗)自动定时喂...
项目描述:准备制作一个宠物(兔子/狗)自动定时喂食机。由于出差、旅游或回家过年等原因,有时会有一周的时间不在家,但是所喂养的小动物又没人照顾,所以想借此机会在学习Freescale的Cortex-m0的KL25 MCU的同时,解决这个问题。
项目目标:可提供7天,每天3次的自动投食。3次的投食时间可设置。
后续可扩展:喂水,音乐或主人声音播放,增加雨棚的自动控制(要加雨滴传感器)。
使用KL25的:RTC\GPIO\PWM\低功耗休眠及唤醒,实现按键、LCD驱动、步进电机驱动、时钟功能、闹钟功能(通过闹钟实现定时喂食)
系统框图:
总费用:313元
7个小步进电机及驱动板 9X7=63 之所以采用7个步进电机,是担心7天的食物重量太重,一个步进电机带不动。另外就是考虑到宠物安全问题,希望采用锂电池供电,小电机锂电池可以带的动,当然也可以小蓄电池供电。一天分3次步进,对应3次喂食。
1个128X64点阵液晶屏 25
1个锂电池充电升压模块 10 时间紧张,就使用现成模块,实际上可以自己搭电路。
其他零件、结构费用: 50 不需要打板,自己用洞洞板搭。
如果KL25的RTC不适用,会采用时钟模块。
时钟模块、锂电池自备、电源适配器自备
计划完成时间:
预计完成的时间。
预计两个月完成。争取春节前可用。
版权:
作品的版权归作者本人所有。授权发布在阿莫网站上,阿莫网站和飞思卡尔拥有资料的发布权和使用权。 保证金已经让朋友代支付。阿莫请查收后寄出快递。谢谢! 这个项目挺有意思的 ! 看到这个项目突然想到,应该顺便做一个粪便处理系统。嘿嘿嘿 恶趣味了一下,楼主见谅。 luckner 发表于 2015-1-13 19:56
看到这个项目突然想到,应该顺便做一个粪便处理系统。嘿嘿嘿
这个可以有,要是养兔子半个月不打扫,那真就堆积成山,臭味绕梁了。 同学刚做过一个宠物管理系统,以上功能都有,还加了摄像头,以太网 nightseas 发表于 2015-1-13 20:23
这个可以有,要是养兔子半个月不打扫,那真就堆积成山,臭味绕梁了。
你好懒兔子。关键是兔子可以到指定的地点排泄。不知您是否有更好的解决办法? 《小威》 发表于 2015-1-13 20:34
同学刚做过一个宠物管理系统,以上功能都有,还加了摄像头,以太网
宠物管理系统中以太网干嘛用的! 这项目有意思,期待 qs6361036 发表于 2015-1-13 21:37
宠物管理系统中以太网干嘛用的!
可以通过手机端远程观看现场情况,或手动控制转盘 《小威》 发表于 2015-1-13 22:00
可以通过手机端远程观看现场情况,或手动控制转盘
使用的无线wifi 嘛 ? 好主意啊,经常出差的人方便了。 qs6361036 发表于 2015-1-13 22:02
使用的无线wifi 嘛 ?
宠物端用的是有线 养宠物的挺多的,尤其是兔子喂养比较麻烦,兔子不懂得饱,吃多了会撑死 xiaoyigechaos 发表于 2015-1-13 22:49
这图都是怎么画的?
像是Office画的 智能宠物养殖?哈哈 qs6361036 发表于 2015-1-13 21:37
宠物管理系统中以太网干嘛用的!
远程控制咯 《小威》 发表于 2015-1-13 20:34
同学刚做过一个宠物管理系统,以上功能都有,还加了摄像头,以太网
解决了粪便问题了吗 luckner 发表于 2015-1-13 23:34
解决了粪便问题了吗
只管喂食物,水,粪便不在考虑范围 支持下,之前有个自动喂鱼的,啊猫啊狗这种这种比较麻烦 莫大推出这个开源项目真是太好了,有得学习了。童鞋们加油啊!水平有限只能帮顶了。 这个还得要个懂结构设计的哈 《小威》 发表于 2015-1-13 23:46
只管喂食物,水,粪便不在考虑范围
要是能把粪便问题解决了,一定很赞! 这个项目有意思 这个项目有点意思,嘿嘿,自动养殖 我想参加这个项目,宠物自动喂食机。具体有什么计划吗 luckner 发表于 2015-1-14 09:46
要是能把粪便问题解决了,一定很赞!
目前还没有提上议程 luckner 发表于 2015-1-13 19:56
看到这个项目突然想到,应该顺便做一个粪便处理系统。嘿嘿嘿
兔以食为天,生存是第一位的。先解决饿不死的问题。{:titter:} nightseas 发表于 2015-1-13 20:23
这个可以有,要是养兔子半个月不打扫,那真就堆积成山,臭味绕梁了。
是啊,每天打扫一次都还有味道。 luckner 发表于 2015-1-13 20:56
你好懒兔子。关键是兔子可以到指定的地点排泄。不知您是否有更好的解决办法? ...
兔子还是比较爱干净的。一般会自己到固定的地方排泄。 xiaoyigechaos 发表于 2015-1-13 22:49
这图都是怎么画的?
用PPT画的。 luckner 发表于 2015-1-13 20:56
你好懒兔子。关键是兔子可以到指定的地点排泄。不知您是否有更好的解决办法? ...
要是能培养到固定的地方就好办了,可以考虑定时冲水或者自动封装一次性的塑料袋 yangyi 发表于 2015-1-14 20:04
兔子还是比较爱干净的。一般会自己到固定的地方排泄。
为啥我家以前养的兔子不呢,没教育好…… nightseas 发表于 2015-1-14 20:11
要是能培养到固定的地方就好办了,可以考虑定时冲水或者自动封装一次性的塑料袋 ...
对,关键是如何培养这个问题,其余的处理都不是什么难题。 yangyi 发表于 2015-1-14 20:00
兔以食为天,生存是第一位的。先解决饿不死的问题。
哈哈哈哈哈哈哈 系统框架图很萌,赞 今天还在网上看到一个台湾人搞的宠物猫自动喂食机。
http://www.huxiu.com/article/106226/1.html
在indiegogo上的众筹
https://www.indiegogo.com/projects/bistro-a-smart-feeder-recognizes-your-cat-s-face 其实真的应该搞个粪便处理机 本帖最后由 yangyi 于 2015-1-15 07:06 编辑
Ilidan 发表于 2015-1-14 07:49
支持下,之前有个自动喂鱼的,啊猫啊狗这种这种比较麻烦
鱼饲料比较小,也没有排泄问题。相对好弄些。 nightseas 发表于 2015-1-14 20:13
为啥我家以前养的兔子不呢,没教育好……
也没专门培养。只是放了一个上面放有铁丝栅栏的盘子。说过兔子也爱干净,就像人上大号一样,下次不会弄在身上。 wanderhope 发表于 2015-1-14 21:49
其实真的应该搞个粪便处理机
是该搞一个,夏天一天两次,没人愿意打扫。不过工程量太大,时间不够啊。 kevin_me 发表于 2015-1-14 12:42
我想参加这个项目,宠物自动喂食机。具体有什么计划吗
我会把制作过程放到这个帖子来,喜欢就一起弄吧。由于每天要上班,只能每天晚上和周末弄。有什么好建议,可以提出来大家一起讨论。 ningsnail 发表于 2015-1-14 08:33
这个还得要个懂结构设计的哈
是啊。喂食机械结构很头痛。七天,每天三次,兔子每次的食量也大一些。我担心一个电机带不动,才分成七个。
此外,采用罐式堵口的方式投料又担心卡住。初步想用推式的结构。
有什么好建议吗?先谢谢了! 《小威》 发表于 2015-1-13 23:46
只管喂食物,水,粪便不在考虑范围
水的问题我这次也没列入,兔子不能喝太多水,会拉稀致死的。主要是通过蔬菜或胡萝卜给水。
如果需要,加个水泵好了。 wanderhope 发表于 2015-1-14 21:48
今天还在网上看到一个台湾人搞的宠物猫自动喂食机。
http://www.huxiu.com/article/106226/1.html
在indieg ...
这个很是高大上啊! armok 发表于 2015-1-14 16:25
你的开发套件已经寄出,申通:968804636393
运费我们已经支付,广东省内1-2天到,省外3-5天到。
先谢谢了。估计周六就可以拿到手开始了。
目前在熟悉开发软件和器件资料,准备物料。 yangyi 发表于 2015-1-15 06:53
是啊。喂食机械结构很头痛。七天,每天三次,兔子每次的食量也大一些。我担心一个电机带不动,才分成七个 ...
可以做成盒状的,盖子露个缺口,电机带动盖子转不就得了 你的小步进电机及驱动板才九块钱,小步进电机及驱动板是怎么样的? 楼主,你的系统框图是用什么画的呢,看上去很高端 honeybear 发表于 2015-1-15 13:54
楼主,你的系统框图是用什么画的呢,看上去很高端
hehe,前面说过了,是PPT画的。 《小威》 发表于 2015-1-15 08:09
可以做成盒状的,盖子露个缺口,电机带动盖子转不就得了
兔粮一下会掉下来很多,并且担心盖子卡住。 机械结构比电路复杂多了 《小威》 发表于 2015-1-15 08:50
你的小步进电机及驱动板才九块钱,小步进电机及驱动板是怎么样的?
驱动就是简单的2003,集成了7个开漏的达林顿三极管。电机也是很小的。 pazulin 发表于 2015-1-15 14:24
机械结构比电路复杂多了
有什么好点子吗?谢谢! armok 发表于 2015-1-14 16:25
你的开发套件已经寄出,申通:968804636393
运费我们已经支付,广东省内1-2天到,省外3-5天到。
快递已经收到了。谢谢!
yangyi 发表于 2015-1-15 14:29
有什么好点子吗?谢谢!
用硬纸片搭硬件,拆个纸箱就有了 如果装水可以剪个矿泉水瓶子搞定 superrf 发表于 2015-1-15 18:39
用硬纸片搭硬件,拆个纸箱就有了
怎么让兔粮能定量得出来,电机又不卡?7X3 共21次喂食。 yangyi 发表于 2015-1-16 06:54
怎么让兔粮能定量得出来,电机又不卡?7X3 共21次喂食。
可以设计成21个格子,每次喂食时打开一个,可以考虑做成转盘 方案一:
大家可以想象下面的3个洞为什么各相差90度? 方案一需要7个电机,尺寸估计也大。想了好长时间,于是有了方案二:
这个方案只要6个电机,尺寸也很紧凑。 yangyi 发表于 2015-1-18 19:09
大家可以想象下面的3个洞为什么各相差90度?
食量分配?顺便再次点个赞! yangyi 发表于 2015-1-18 19:11
方案一需要7个电机,尺寸估计也大。想了好长时间,于是有了方案二:
运动到两个罐子之间怎么办? laotui 发表于 2015-1-18 19:20
运动到两个罐子之间怎么办?
有兔粮的罐子口被封,兔粮不会出来。 bbsview 发表于 2015-1-18 19:14
食量分配?顺便再次点个赞!
提示一下,每次喂食电机转30度。3个兔粮罐呈120度分布。 这个创意不错期待好的效果 哈,创意很不错。 再来关注下,好像安排挺周到的 全能机器人! yangyi 发表于 2015-1-18 19:11
方案一需要7个电机,尺寸估计也大。想了好长时间,于是有了方案二:
用这么多电机,体积应该小不了 这个主题很不错,网络怎么弄 superrf 发表于 2015-1-23 15:08
用这么多电机,体积应该小不了
喂狗应该OK,体积大点无所谓 Juggernaut 发表于 2015-1-23 15:21
喂狗应该OK,体积大点无所谓
现在狗也在家里养,体积小些好 superrf 发表于 2015-1-23 15:08
用这么多电机,体积应该小不了
兔子好一些。正在做结构。我的目标是七天的兔粮。 Juggernaut 发表于 2015-1-23 15:21
这个主题很不错,网络怎么弄
目前没有考虑网络。 superrf 发表于 2015-1-23 15:27
现在狗也在家里养,体积小些好
狗狗食量大,体积的确会大一些。 这个不错,我看看用stc的弄一个,飞思卡尔的不熟悉。lz机械结构怎么样了。 yangyi 发表于 2015-1-15 14:23
兔粮一下会掉下来很多,并且担心盖子卡住。
实物就放在盒子里,开盖即食{:lol:} yangyi 发表于 2015-1-18 19:08
方案一:
其实可以做的跟过年的糖果盒是的,下面好多格,放满了粮食,盖子只有一个缺口,每次只有一格露出来 ,要吃只要旋转盖子就好了,这样一个电机就好了 http://www.huxiu.com/article/106226/1.html具有自动猫脸识别功能,还可以学习猫的习性,使猫既能吃得饱,还不会发胖。 yangyi 发表于 2015-1-18 19:11
方案一需要7个电机,尺寸估计也大。想了好长时间,于是有了方案二:
{:shocked:}饵食的送料觉得可以用螺杆,可以方便控制送多少的料,包装机上用的比较多,可以参考一下。 Hassen_JYA 发表于 2015-1-24 14:05
饵食的送料觉得可以用螺杆,可以方便控制送多少的料,包装机上用的比较多,可以参考一下。 ...
如果能用螺杆实现,体积应该小而且省电机 Hassen_JYA 发表于 2015-1-24 14:05
饵食的送料觉得可以用螺杆,可以方便控制送多少的料,包装机上用的比较多,可以参考一下。 ...
不知道螺杆的成本怎么样? 今天在写LCD的代码,KS0108的,忙检测过不了。哪位网友遇到过? sensitiveplant 发表于 2015-1-24 13:39
http://www.huxiu.com/article/106226/1.html具有自动猫脸识别功能,还可以学习猫的习性,使猫既能吃得饱, ...
这个我也看了。的确是髙大上! 《小威》 发表于 2015-1-24 13:38
其实可以做的跟过年的糖果盒是的,下面好多格,放满了粮食,盖子只有一个缺口,每次只有一格露出来 ,要 ...
这也是个好方案。目前我初步准备采用方䅁二。简化一下,不用罐子,直接用木板钉成盒子,下面开口。正在锯五合板。 期待这个项目成型以后的样子。 本帖最后由 yangyi 于 2015-2-6 22:17 编辑
先发个时钟部分代码吧。调试已经通过。
#include "includes.h" //包涵总头文件
void MCGIRCLK_OutEnable(uint_8 clock); //启用内部快速时钟
volatileuint_16 DSEC;
unsigned char const MONTH_Table = { 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
unsigned int Time_MARK = {2015,2,3,23,59,50};
unsigned int Time_LAST = {2000,8,18,18,18,18};
#define YEAR Time_MARK
#define MONTHTime_MARK
#define DATE Time_MARK
#define HOUR Time_MARK
#define MINUTE Time_MARK
#define SECOND Time_MARK
int main(void)
{
//1.声明主函数使用的局部变量
uint_8 i,j;
uint_8* g_time[] ={"00","01","02","03","04","05","06","07","08","09",
"10","11","12","13","14","15","16","17","18","19",
"20","21","22","23","24","25","26","27","28","29",
"30","31","32","33","34","35","36","37","38","39",
"40","41","42","43","44","45","46","47","48","49",
"50","51","52","53","54","55","56","57","58","59",
}; //0~59字符LCD显示转换
uint_8 g_DispalyInit1 ="Now time is 88:88:88";
uint_8 g_DispalyInit2 =" 2015-01-28";
uint_8 g_DispalyInit3 ="Last feed time 88:88";
uint_8 g_DispalyInit4 ="Next feed time 88:88";
//2.关总中断
DISABLE_INTERRUPTS;
//3.初始化底层模块
LEDInit(); //LED初始化
LCDInit(); //LCD初始化
KBInit(); //键盘初始化
tpm_init(TPM0,TPM_CLKSRC_PLL,1000); //初始化TPM模块,1ms中断一次
//4. 给有关变量赋初值
i = 0;
//LCD输出格式化
LCD_write_String(1,0,g_DispalyInit1,20);
LCD_write_String(2,0,g_DispalyInit2,20);
LCD_write_String(3,0,g_DispalyInit3,20);
LCD_write_String(4,0,g_DispalyInit4,20);
//5. 使能模块中断
tpm_enable_int(0);
//6. 开总中断
ENABLE_INTERRUPTS;
for(;;)
{
Clock_OnTimer();
if(DSEC == 0) //判断秒钟是否发生变化
{
if(Time_LAST != HOUR)
{
i = HOUR;
LCD_write_String(1,12,g_time,2);
Time_LAST = HOUR;
}
if(Time_LAST != MINUTE)
{
i = MINUTE;
LCD_write_String(1,15,g_time,2);
Time_LAST = MINUTE;
}
if(Time_LAST != SECOND)
{
i = SECOND;
LCD_write_String(1,18,g_time,2);
Time_LAST = SECOND;
}
if(Time_LAST != YEAR)
{
i = 20;
LCD_write_String(2,10,g_time,2);
j = YEAR%100;
LCD_write_String(2,12,g_time,2);
Time_LAST = YEAR;
}
if(Time_LAST != MONTH)
{
i = MONTH;
LCD_write_String(2,15,g_time,2);
Time_LAST = MONTH;
}
if(Time_LAST != DATE)
{
i = DATE;
LCD_write_String(2,18,g_time,2);
Time_LAST = DATE;
}
}
}
//===========================================================================
return 0;
}
//启用MCGIRCLK时钟,输出时钟频率在31.25Khz ~ 4Mhz
void MCGIRCLK_OutEnable(uint_8 clock)
{
PORTC_PCR3 = PORT_PCR_MUX(0x5);
SIM_SOPT2 = SIM_SOPT2_CLKOUTSEL(clock); //复用PTC3为CLKOUT,观测输出时钟波形
MCG_C1 |= MCG_C1_IRCLKEN_MASK|MCG_C1_IREFSTEN_MASK;
MCG_C2 &= ~MCG_C2_IRCS_MASK;
}
void Clock_OnTimer()
{
unsigned char Days = 31;
if (DSEC >= 1000)
{
DSEC = 0;
SECOND++;
} //1秒一次
if (SECOND >= 60)
{
SECOND = 0;
MINUTE++;
} //60秒一次
if (MINUTE >= 60)
{
MINUTE = 0;
HOUR++;
} //60分一次
if (HOUR >= 24)
{
HOUR = 0;
DATE++;
if (MONTH == 2) //处理润年2月份问题
{
if (YEAR % 4 == 0)
{
Days = 29; //逢4润
}
else
{
Days = 28;
}
if (YEAR % 400 == 0)
{
Days = 28; //逢400不润
}
}
else
{
Days = MONTH_Table; //正常月份,查表得到当月天数
}
} //24小时一次
if (DATE > Days) {
DATE = 1;
MONTH++;
} //一个月一次
if (MONTH > 12)
{
MONTH = 1;
YEAR++;
} //一年一次
}
yangyi 发表于 2015-2-6 22:13
先发个时钟部分代码吧。调试已经通过。
好,加油 写程序的时候遇到一个下问题
(AlarmTime/10)*10等于AlarmTime吗?
仔细想一下是不等于的。结果当时粗心,直接用了AlarmTime,害的我查半天问题。
{:sweat:}{:sweat:}{:sweat:}{:sweat:} yangyi 发表于 2015-2-8 17:00
写程序的时候遇到一个下问题
(AlarmTime/10)*10等于AlarmTime吗?
是整数还是浮点数 8位无符号整型数。 yangyi 发表于 2015-2-8 22:27
8位无符号整型数。
哪确实是有不同 楼主做的怎么样了一直在关注 现在只差步进电机驱动了。
结构方面比较麻烦点。有一些工作做完了,还有一些很麻烦。
最近事比较多,有些停滞了。 加油!期待成品呢!{:smile:}
页:
[1]
2