Automatické krmítko pro psa
Stará verze
Tohle je jednoduché zařízení, které velice potěšilo našeho psa. Je to automatické krmítko, které mu 1x denně vysype do
misky hrst granulí. V současné době to tedy zatím sype granule na zem, ale
časem to ještě mechanicky vylepším. Celé krmítko je řízeno pomocí RTC modulu s obvodem
PCF8563 a ATtiny13. Jak je vidět na úvodní fotografii, mechanika je totální BASTL na kousku dřevěné laťky... Při konstruování jsem kladl velký důraz hlavně na
minimální odběr proudu z baterie. Tady je schéma: Princip činnosti: RTC obvod počítá aktuální čas. Je napájen vlastní
knoflíkovou baterií, která má životnost několik let. Tento logický signál na INT vývodu způsobí sepnutí P-FET tranzistoru a tím připnutí napájení k obvodu ATtiny13.
Prvotní nastavení aktuálního času a času alarmu jsem prováděl přes Pythoní skript v Raspberry Pi: rtc8563_set.py
Video s automatickým vysypáním misky:
Několik problémů, které jsem musel řešit. 1) Původně jsem měl napájení RTC modulu přímo na 4,5V baterii. Problém ale byl v tom, že se toto napájecí napětí přes Pull-Up odpory dostávalo na komunikační piny PB3 a PB4. Z těchto pinů se to napětí přenášelo dál do ATtiny a způsobovalo, že program v ATtiny nešel ukončit vypnutím napájení pomocí P-FETu. V tomto stavu ATtiny odebíralo trvale proud z 4,5V baterie - to bylo nepřijatelné. Zkusil jsem vyhodit Pull-Upy v RTC modulu na pinech SDA a SCL. To ale nepomohlo. Bylo proto nutné provést úpravu napájení RTC obvodu tak, aby bateriové napájení bylo k modulu přivedeno až po sepnutí P-FETu. 2) Podobný problém byl i s pinem PB0 (PWM řízení serva) V tomto případě pomohlo mezi pin PB0 a servo zařadit diodu, která zabránila přenosu napětí ze serva do ATtiny. 3) Problém, se kterým jsem si dlouho nevěděl rady, se projevoval tím, že při najetí serva do pozice vysypání misky se program na několik sekund zastavil. Pak se zase rozběhnul a servo vrátilo misku do původní polohy. Důležité je zmínit, že se program neresetoval. Opravdu se jen asi na 5 sekund pozastavil a pak pokračoval. Že nedošlo k resetu jsem poznal podle toho, že pískák po opětovném spuštění nezapípal. Při různých pokusech jsem zjistil, že když připojím servo trvale na napájení (zkratuji natvrdo vývody D a S u jeho spínacího N-FETu), tak k problému nedochází a miska se vysype a znova vrátí okamžitě. Po dlouhém bádání jsem usoudil, že to bude mít nějakou souvislost se zvýšeným odběrem serva při jeho pohybu. Připojil jsem tedy přímo na napájecí vývody ATtiny velký kondenzátor, který vykrývá krátkodobé poklesy napájení a tím se problém vyřešil.
A ještě jedno video jak jsem cvičil psa: Zdroják celého programu je tady: attiny_krmitko.ino
Doplnění: Takhle se pes naučil reagovat na pískání krmítka.
|