As far as I know, the software is all working on my demand fish feeder.
Its a bit of a mess, with a few goto statements and a few unused variables. Ill fix it in time, but for now Im going to move onto getting a finished product up and running. As far as I can tell with the software simulator everything works, but the real world might be a completely different story. (the breadboard version also works)
A switch lever extends down into the water. If a light near the lever is lit, the fish can press the lever and feed is delivered. Feed can also be offered with an override button that sets the light on and the feed on if the fish hit the lever (so you can show people how it works)
Dawn detection seems to work. In the end I went with two startup options.
1. A human who holds down the FeedNow override button during startup, then taps out the approximate number of hours since dawn. This skips the code that searches for a new dawn.
2. An abnormal restart with no human. This stops all feeding (there might have been a blackout, and subsequent ammonia buildup) (note to self - add code that flashes some lights to indicate the device is in abnormal start mode so a human can reboot it if they desire). Feeding resumes after night time is detected, and a dawn is detected.
The user can select (via a screwdriver to resist little finger making their own adjustments) ...
- the feed amount per day in tenths of a second of motor on - from 0 to 65 (Im guessing Ill use 1/2 a second per feed event) The motor turns an auger under a hopper full of feed. So there is another adjustment available
- The number of feeds in a day that are offered (0 - 255 per day)
- The level of light at which dawn is detected. This allows for a system built in the glow of a streetlight or whatever. At dawn each day, all the numbers reset. This is a bit of a problem as far as reading how many feeds were delivered in a day, but for now Ill leave it as it is. My fish feed like crazy at dawn, so I want to give them the greatest opportunity to feed. Eventually Ill add a data logger, so it wont matter when it resets.
The system reports...
- the number of hours since dawn
- the number of feeds since dawn
- The number of false hits to the feed lever when the FeedIsAvailableLED is NOT lit (these will go down to near zero once the fish learn they can only get food when the light is on)
I ran out of feed a while back, and have been feeding my two big silvers on duckweed, lettuce, and worms, so I will need some pellet food before I can test it in the real world. (I still have the PVC device from the first version).
Ill also need a motor as my original one is no longer with us.
The feeding regimen isnt very intelligent at the moment, but Ill do a bit of research, and add some code that tries to deliver the maximum amount of feed in a day that the system can handle. This will probably involve allowing 3/4 of the feed to be dumped at will, with the rest being spaced out over the day ... or something. I havent given it enough thought because I dont really know what the fish need. My experience in fishing for wild fish indicates that the feeding pattern is far from a constant grazing all day long. Ill work it out.
But...
Its going to work. In fact, it already does.
120 Things in 20 years Thats all. Just 120 Things in 20 years.
0 comments:
Post a Comment