本文來源電子發燒友社區,作者:川楠, 帖子地址: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瀏覽量
744 -
CSM32RV20
+關注
關注
0文章
40瀏覽量
216
發布評論請先 登錄
相關推薦
瑞芯微主板/開發板Linux系統播放音頻方法,觸覺智能RK3562開發板演示
本文介紹瑞芯微方案主板/開發板Linux系統播放音頻的方法,觸覺智能RK3562開發板演示,通用RK3566、RK3568、RK3588等
追加名額丨米爾瑞芯微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
寵物在現代人的生活中占有極大的比重,甚至愿意將寵物當做孩子精細地養活。也正因為如此,由寵物而衍生出來的產業鏈涉及方方面面,不但解決了寵物主人的煩惱,也給寵物們帶來更為幸福的生活。其中,寵物自動喂食器
NVF04M錄音芯片在寵物喂食器的應用:錄音播放功能,內置SPI閃存
在現代社會中,寵物已經成為人們生活中的一部分,而寵物喂食器作為寵物養護的重要工具,也越來越受到人們的關注。為了滿足人們對寵物喂食器的多樣化需求,九芯電子供應商研發了一款NVF04M錄音芯片。它在寵物
名單公布!樹莓派5(Raspberry Pi 5)開發板免費試用!!!
(圖片:評測報告的配圖需確保清晰,避免出現影響觀感的“反光”、“曝光過度”和“暗部細節不清晰”等情況的發生)。報告要求100 % 原創,抄襲一律封殺。主題名:【Raspberry Pi 5開發板試用
發表于 06-27 15:40
點擊參與米爾NXP i.MX 93開發板有獎試用
米爾與NXP合作發布的新品基于NXPi.MX93應用處理器的MYD-LMX9X開發板免費試用活動來啦~~米爾提供了3塊價值678元的MYD-LMX9X開發板發起試用活動您不僅可以免費體
香橙派發布首款RISC-V開發板OrangePi RV
2024年3月,香橙派在全球開發者會議上發布了其首款基于RISC-V開發的OrangePi RV主板。這款開發板擁有四核RISC-V U74與S7協處理器,配備 2MB L2緩存。同時
基于WTR096-28SS芯片方案的寵物喂食器實現智能化喂食功能
功能,可以根據主人設定的時間和食物量,自動為寵物提供食物,確保寵物按時獲得充足的飲食。同時,該喂食器還支持多餐分配,可以設定多個餐次,根據寵物的飲食需求進行合理分配,保證寵物的飲食均衡。 二、方案分析 市面上常用的寵物喂食器方
求一種基于WTR096-28SS芯片方案的寵物喂食器設計方案
本方案寵物喂食器采用了WTR096-28SS芯片方案來實現智能化的喂食功能。該方案結合了先進的技術和設計理念,提供了便捷、智能和個性化的寵物喂食解決方案。
評論