0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

开发板试用精选 来源:开发板试用 作者:电子发烧友论坛 2022-11-30 11:03 次阅读

本文来源电子发烧友社区,作者:川楠, 帖子地址:https://bbs.elecfans.com/jishu_2245819_1_1.html


5.自动喂食器使用视频(开发板体验视频,详见作者原文链接内容)

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


前言
大家好。
首先,感谢南京中科微提供的CSM32RV20开发板,同时也感谢发烧友提供的试用平台。
几个月前,家里买了一个智能水族箱,能恒温,24小时增氧,氛围灯也有,然后再买了一些热带鱼。看起来,效果还是不错。
poYBAGHuGZ2AaCejAAUB16nfv9c090.png


但是,这不到了春节了嘛,全家回老家,这个金鱼大概有10天可没人照料。
网上一查,10天不喂,大鱼应该不会死,但是小鱼由于自身储能比较少,估计会命悬一线。所以,动了自己设计一个自动喂食器的心思。


设计方案
由于还有3天就要放假了,这里面设计的难点是出料的机械结构。所以,我在TB上,查看了一下成品的喂食器,看看能不能找到灵感。出料结构不能太复杂,因为没有加工能力,如果有个3D打印机就好了。
别说,还真找到了一款,结构不太复杂,自己动手应该能做出来。
poYBAGHuGZ-AYB23AAI30HKb5Qw732.png


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


找个控制板,当然是南京中科微的CSM32RV20,这不现成的嘛。
最后找个透明的盒子,不能太大,太大了不协调,最好是透明的,能看到里面的鱼食。
电源,就用5V手机电源充电头嘛。

软件方面,需要一个时钟RTC,但是考虑到上文测评的RTC,我觉得还是算了吧,就用延时来吧,只要设置好延时时间,比如间隔8小时喂一次(12小时也行、24小时)都可以。不用做到精确几点几分去喂食。

动手实操
由于这个步进电机是45线,型号是:35BY412B,减速比比较大,也超过10多年没用过,驱动起来比较费劲,花了小半天的时间,终于让它转了起来,但是,这个也太慢了,果断放弃。
电机要换!想了一下,用舵机也是可以的。我手上有两个数字舵机,比较高档的那种,DYNAMIXEL AX-12A,这个舵机绝对能像步进电机一样,达到旋转控制的目的。但是这个数字舵机是使用单线TTL串口来驱动,比较诡异。这个之前我还没有用过,只是之前看了一下资料。
poYBAGHuGaGAH_t6AAKVM3tGyUI309.png


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

转动的问题弄好,接下来,就是供电的问题。

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

所以整体设计又改了一下,最终整体设计框图如下:
poYBAGHuGaSAfivuAAD8aa3ucuo848.png

主要程序功能也很简单:
l系统上电后,舵机回到原点,0度。
l开始计时,间隔8小时,控制舵机转2下。
l支持按键触发,按键触发后,当前计时清零,重新计满8小时后,再次自动喂食。
l最后,就是使用板子上的LED做了一些程序功能状态指示。
l电源采用明伟的12V桌面电源供电。

程序源码如下:


  1. #include "headfile.h"
  2. uint32_t g_StimeS; //系统时间计数,单位S
  3. void Time2_PwmCH1(uint16_t CCR)
  4. {
  5. TIMER2->CCR1 = CCR;
  6. }
  7. int main(void)
  8. {
  9. uint8_t CMD;
  10. ///----System Init ---------------------------------------------------------------------------------------------
  11. CLIC_Init();//系统中断配置
  12. System_Clock_Init();//系统时钟初始化
  13. GPIO_MODE_Init(GPIOA,PIN10,GPIO_MODE_OUTPUT); //GPIO 模式 TIMER2控制LED
  14. GPIO_MODE_Init(GPIOA,PIN12,GPIO_MODE_OUTPUT); //GPIO 模式 舵机运动时,LED点亮
  15. GPIO_Write(GPIOA,PIN10,GPIO_SET); //GPIO 输出
  16. GPIO_Write(GPIOA,PIN12,GPIO_SET); //GPIO 输出
  17. GPIO_PULL_Init(GPIOA, PIN15, GPIO_PULLUP);
  18. GPIO_MODE_Init(GPIOA,PIN15,GPIO_MODE_INPUT); //GPIO 模式
  19. Timer2_PWM_Mode_Init();//PWM输出
  20. Interrupt_Enable(TIMER2_updata_int_ID);//CLIC使能中断
  21. //使能系统总中断
  22. SYS_Interrupt_Enable();//CLIC开总中断
  23. UART_Init_case1(UART1);//非中断模式
  24. ee_printf("nHello CSM32RV20:");
  25. g_StimeS=0;
  26. CMD=0;
  27. while(1)
  28. {
  29. /*
  30. 舵机控制信号PWM周期为20ms左右,
  31. 高电平部分一般为0.5ms-2.5ms范围内,控制旋转角度。以180度角度舵机为
  32. 0.5ms--------------0度;
  33. 1.0ms--------------45度;
  34. 1.5ms--------------90度;
  35. 2.0ms--------------135度;
  36. 2.5ms--------------180度;
  37. */
  38. if(CMD==1) //控制舵机执行喂鱼操作
  39. {
  40. uint8_t i;
  41. CMD=0;
  42. g_StimeS=0;
  43. GPIO_Write(GPIOA,PIN12,GPIO_RESET);
  44. for(i=0;i<2;i++)
  45. {
  46. Time2_PwmCH1(2500); //舵机旋转到位置A
  47. Delay32M_ms(500);
  48. Time2_PwmCH1(500); //舵机回到初始位置
  49. Delay32M_ms(500);
  50. }
  51. GPIO_Write(GPIOA,PIN12,GPIO_SET); //LED关闭
  52. }
  53. else
  54. {
  55. Time2_PwmCH1(500); //舵机回到初始位置
  56. GPIO_Write(GPIOA,PIN12,GPIO_SET); //LED关闭
  57. }
  58. /*按键检测*************************************************************/
  59. if(GPIO_Read(GPIOA,PIN15)==0)
  60. {
  61. Delay32M_ms(10);
  62. while(GPIO_Read(GPIOA,PIN15)==0);
  63. CMD=1;
  64. }
  65. /*自动定时放料*********************************************************/
  66. if(g_StimeS>28800) //设定计时时间大于阈值,启动舵机投食。
  67. {
  68. g_StimeS=0;
  69. CMD=1;
  70. }
  71. }
  72. return 0;
  73. }
复制代码



成品展示
使用热熔胶,把塑料盒子(盖子被小孩弄不见了,只有用气球+橡皮筋临时封上)固定在舵机上,然后整体固定在陶瓷杯子上,这样底座比较稳,不容易翻车。并且使食料盒水平上有一定的斜度,保证鱼食一直在底部。
pYYBAGHuGaWAOP9KAAHnObcF_Cw075.png

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

最开始,我用的用的是电转打孔,但是,后来发现,里面有很多的毛刺,干脆就用钉子烫了几个小孔。

使用效果如下:详见视屏




我用的是按键触发,效果不错,还是非常满意。

总结
其实,这个只是一个非常小、也是非常着急的项目,用的技术也非常简单。但是,也确实是能解决我生活上的一些小问题。给我带来便利。
当然,也有不完善的地方,比如喂食时间不能手动设置,是程序写死了了滴,但是我想说的是,时间真的很紧,与其去开发这个一个功能,还不如直接改源码,串口重新烧录一遍,也就OK了,这个不是产品
好了,自动喂鱼的事情是解决了,但是自动换水是不是也该考虑一下,平时,我是5-6天换一次水,但是水泵我也没有现成的,年后在想办法吧,不然以后国庆节,全家出去耍了,这些鱼也是个麻烦。
这次春节放假10天,只也希望它们能够挺住吧。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 南京中科微
    +关注

    关注

    0

    文章

    60

    浏览量

    747
  • CSM32RV20
    +关注

    关注

    0

    文章

    40

    浏览量

    220
收藏 人收藏

    评论

    相关推荐

    瑞芯开发板/主板Android系统APK签名文件使用方法,实用干货

    瑞芯主板/开发板Android系统,APK系统签名文件使用方法
    的头像 发表于 12-26 09:43 167次阅读
    瑞芯<b class='flag-5'>微</b><b class='flag-5'>开发板</b>/主板Android系统APK签名文件使用方法,实用干货

    有奖丨米尔 全志T536开发板免费试用

    米尔与全志合作发布的新品基于全志T536应用处理器的MYD-LT536-GK开发板免费试用活动来啦~~米尔提供了3块价值750元的MYD-LT536-GK开发板发起试用活动您不仅可以免
    的头像 发表于 12-26 08:05 64次阅读
    有奖丨米尔 全志T536<b class='flag-5'>开发板</b>免费<b class='flag-5'>试用</b>

    瑞芯主板/开发板Linux系统播放音频方法,触觉智能RK3562开发板演示

    本文介绍瑞芯方案主板/开发板Linux系统播放音频的方法,触觉智能RK3562开发板演示,通用RK3566、RK3568、RK3588等
    的头像 发表于 12-13 11:40 214次阅读
    瑞芯<b class='flag-5'>微</b>主板/<b class='flag-5'>开发板</b>Linux系统播放音频方法,触觉智能RK3562<b class='flag-5'>开发板</b>演示

    追加名额丨米尔瑞芯RK3576开发板有奖试用

    米尔与瑞芯合作发布的新品基于瑞芯RK3576应用处理器的MYD-LR3576开发板免费试用活动加码啦~~米尔追加了2块价值849元的MYD-LR3576
    的头像 发表于 11-22 01:00 183次阅读
    追加名额丨米尔瑞芯<b class='flag-5'>微</b>RK3576<b class='flag-5'>开发板</b>有奖<b class='flag-5'>试用</b>

    【RA8D1试用活动】RA8D1B-CPKCOR开发板移植linux

    【RA8D1试用活动】RA8D1B-CPKCOR开发板移植linux
    的头像 发表于 11-16 01:02 227次阅读
    【RA8D1<b class='flag-5'>试用</b>活动】RA8D1B-CPKCOR<b class='flag-5'>开发板</b>移植linux

    常用在工业控制系统上的MCU芯片资料:CSM32RV20

    CSM32RV20是一款基于RISC-V核的低功耗MCU芯片。 内置RISC-V RV32IMAC内核(2.6CoreMark/MHz); 蕞高32MHz工作频率; 内置4kB的SRAM; 内置8B
    的头像 发表于 11-15 17:19 215次阅读
    常用在工业控制系统上的MCU芯片资料:<b class='flag-5'>CSM32RV20</b>

    有奖丨米尔 瑞芯RK3576开发板免费试用

    米尔与瑞芯合作发布的新品基于瑞芯RK3576应用处理器的MYD-LR3576开发板免费试用活动来啦~~米尔提供了7块价值849元的MYD-LR3576
    的头像 发表于 11-12 01:00 317次阅读
    有奖丨米尔 瑞芯<b class='flag-5'>微</b>RK3576<b class='flag-5'>开发板</b>免费<b class='flag-5'>试用</b>

    有奖试用!!RA-Eco-RA4E2-64PIN-V1.0开发板试用活动开始报名

    有奖试用!!RA-Eco-RA4E2-64PIN-V1.0开发板试用活动开始报名
    的头像 发表于 11-09 01:02 255次阅读
    有奖<b class='flag-5'>试用</b>!!RA-Eco-RA4E2-64PIN-V1.0<b class='flag-5'>开发板</b><b class='flag-5'>试用</b>活动开始报名

    宠物自动喂食器主控芯片DSH3186

    宠物在现代人的生活中占有极大的比重,甚至愿意将宠物当做孩子精细地养活。也正因为如此,由宠物而衍生出来的产业链涉及方方面面,不但解决了宠物主人的烦恼,也给宠物们带来更为幸福的生活。其中,宠物自动喂食器
    的头像 发表于 11-01 16:26 322次阅读

    NVF04M录音芯片在宠物喂食器的应用:录音播放功能,内置SPI闪存

    在现代社会中,宠物已经成为人们生活中的一部分,而宠物喂食器作为宠物养护的重要工具,也越来越受到人们的关注。为了满足人们对宠物喂食器的多样化需求,九芯电子供应商研发了一款NVF04M录音芯片。它在宠物
    的头像 发表于 08-30 12:05 354次阅读
    NVF04M录音芯片在宠物<b class='flag-5'>喂食器</b>的应用:录音播放功能,内置SPI闪存

    点击参与米尔NXP i.MX 93开发板有奖试用

    米尔与NXP合作发布的新品基于NXPi.MX93应用处理器的MYD-LMX9X开发板免费试用活动来啦~~米尔提供了3块价值678元的MYD-LMX9X开发板发起试用活动您不仅可以免费体
    的头像 发表于 06-13 08:02 537次阅读
    点击参与米尔NXP i.MX 93<b class='flag-5'>开发板</b>有奖<b class='flag-5'>试用</b>

    免费!NXP i.MX 93开发板有奖试用

    米尔与NXP合作发布的新品基于NXPi.MX93应用处理器的MYD-LMX9X开发板免费试用活动来啦~~米尔提供了2块价值678
    的头像 发表于 05-23 08:01 728次阅读
    免费!NXP i.MX 93<b class='flag-5'>开发板</b>有奖<b class='flag-5'>试用</b>

    香橙派发布首款RISC-V开发板OrangePi RV

    2024年3月,香橙派在全球开发者会议上发布了其首款基于RISC-V开发的OrangePi RV主板。这款开发板拥有四核RISC-V U74与S7协处理器,配备 2MB L2缓存。同时
    的头像 发表于 04-01 14:47 1056次阅读

    基于WTR096-28SS芯片方案的宠物喂食器实现智能化喂食功能

    功能,可以根据主人设定的时间和食物量,自动为宠物提供食物,确保宠物按时获得充足的饮食。同时,该喂食器还支持多餐分配,可以设定多个餐次,根据宠物的饮食需求进行合理分配,保证宠物的饮食均衡。 二、方案分析 市面上常用的宠物喂食器
    的头像 发表于 03-19 13:57 570次阅读
    基于WTR096-28SS芯片方案的宠物<b class='flag-5'>喂食器</b>实现智能化<b class='flag-5'>喂食</b>功能

    求一种基于WTR096-28SS芯片方案的宠物喂食器设计方案

    本方案宠物喂食器采用了WTR096-28SS芯片方案来实现智能化的喂食功能。该方案结合了先进的技术和设计理念,提供了便捷、智能和个性化的宠物喂食解决方案。
    的头像 发表于 03-12 10:38 493次阅读
    求一种基于WTR096-28SS芯片方案的宠物<b class='flag-5'>喂食器</b>设计方案