本文來源電子發燒友社區,作者:川楠, 帖子地址: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瀏覽量
1043 -
CSM32RV20
+關注
關注
0文章
40瀏覽量
328
發布評論請先 登錄
相關推薦
熱點推薦
有獎丨米爾 瑞芯微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語音芯片在寵物喂食器上技術應用方案
寵物市場近些年迎來了市場的爆發,隨之而來的是寵物市場產品創新的爆發潮,這其中寵物喂食器是很多用戶的剛需。寵物喂食器的使用場景非常廣泛,比如經常忘記喂食寵物的人就非常適合這款產品,還有就是經常不在家
基于RK3576處理器,米爾RK3576開發板免費試用
年7月19日 ? 評測數量: 3塊 ? 更多熱點文章閱讀 基于平頭哥TH1520芯片,潤開鴻HH-SCDAYU800A開發板免費試用 RISC-V開發板深度評測!頂級開發板免費

搭載OpenHarmony操作系統,視美泰SC-3568HA開發板免費試用
: 10塊 ? 更多熱點文章閱讀 基于平頭哥TH1520芯片,潤開鴻HH-SCDAYU800A開發板免費試用 RISC-V開發板深度評測!頂級開發板免費

基于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

追加名額丨米爾瑞芯微RK3576開發板有獎試用
米爾與瑞芯微合作發布的新品基于瑞芯微RK3576應用處理器的MYD-LR3576開發板免費試用活動加碼啦~~米爾追加了2塊價值849元的MYD-LR3576

常用在工業控制系統上的MCU芯片資料:CSM32RV20
CSM32RV20是一款基于RISC-V核的低功耗MCU芯片。 內置RISC-V RV32IMAC內核(2.6CoreMark/MHz); 蕞高32MHz工作頻率; 內置4kB的SRAM; 內置8B

有獎丨米爾 瑞芯微RK3576開發板免費試用
米爾與瑞芯微合作發布的新品基于瑞芯微RK3576應用處理器的MYD-LR3576開發板免費試用活動來啦~~米爾提供了7塊價值849元的MYD-LR3576

寵物自動喂食器主控芯片DSH3186
寵物在現代人的生活中占有極大的比重,甚至愿意將寵物當做孩子精細地養活。也正因為如此,由寵物而衍生出來的產業鏈涉及方方面面,不但解決了寵物主人的煩惱,也給寵物們帶來更為幸福的生活。其中,寵物自動喂食器
評論