Fish Feeding Themselves

9.4K12010

Intro: Fish Feeding Themselves

The object of this invention is to train fish to feed themselves. I tend to be forgetful, and days tend to bleed into each other. So I forget to feed the fish or think I have already done it. I needed a machine that could feed them on a regular schedule. So as I thought about timers and buttons and whatnot. I realized that it would be boring to just have a machine dole out food on a regular basis. What if it was interactive. What if I created a machine to train fish to feed themselves. I wanted to let the fish prove their intelligence. I wanted the fish to have a goal, get excited and then succeed and feel a sense of accomplishment. LOL okay maybe i went a little to far on that one.

STEP 1: How It Operates

When the the light is on the fish know that the feeder bar is active. The fish then hit the familair lure like feeder bar. the copper wire the bare is made of closes the circuit with the metal bell housing. The Arduino sees that the switch is closed and tells the RGB led to turn off, then directs the servo to go to a pre-programmed position that will push the feeder cap to deliver 1 unit of fish food. The Serial LCD screen beeps and audible sound and displays how many times the switch has been closed in the form of hits. The Minutes and seconds are displayed on the screen to show how long the program has been running. The open logger stores the hit count and the minutes and seconds of the hit for data analysis later on. Once this is all done then the light is turned back on to let the fish know they can hit the feeder bar again.

STEP 2: Components

To interact with the fish and make the feed themselves I will

need:

1. Feeder bar (home made)

2. Microcontroller Arduino Uno

3. ws2812 RGB Led

4. Servo (strong enough to push the button on the feeder)

5. Container of food (wallmart)

6. Some random erector set pieces

7. Wall wort to power everything 9-12v with 1A or more capability

8. Data logger for easy data collection (SparkFun OpenLogger)

9. Fish (gold)

10. Micro SD card, i used a 4GB card just fine

11. Serial LCD Screen (from radioshack)

12. Time, lots of Time. LOL

13. Adafruit_NeoPixel you can download it here at Github ( https://github.com/adafruit/Adafruit_NeoPixel )

STEP 3: Schematic

I just did not have the time to draw this out on fritz, so i went old school. I also added the prices i paid for each item. just to give you an idea of the cost of the project.

Key/Legend

Signal Lines: The green lines are all signal wires that hook up to the digital pins. I did not use any analog pins in this build.

Positive Lines: The red lines are the 5v and 3.3v lines. The Openlog calls for 3.3v so i used the Arduino 3.3 pin to supply the power. The WS2812 calls for 5v, but can run on 3.3v however by doing that I am pushing more ampage through the WS2812. Since I am only using one rgb light at half power, it is fine. If I were to use more than 1 light i would recommend using the 5v line. I will change this on the next Rev. you always want to stick to the power requirements of the hardware as suggested by the manufacturer.

The Switch: okay so the switch that i used in the diagram, is all over the internet. It is the basic pricipal of an open and closed circuit. At the time of this writing, exactly 2 months after the build was completed. I cant for the life of figure out why i attached it to the reset pin. LOL. but it all works so that's good enough for prototyping right now. I would encourage you to just look into this and make your own switch because i don't think i drew it clearly. I took lots of pics though. have fun! :)

Servo: the servo is working off the power from the Arduino. so it is not that powerful. I used some 3 in 1 oil to make the button slide easier. the next gen it will have its own power supply of 6 volts and all the amps it can handle.

Arduino Uno: the Uno I am using has the MC chip that i can program, and then remove to install in a project permanently. When i finally get done with the science side of this project. The feeder will be programmed to come on every few hours for 5 minutes to let the fish hit the feeder bar as many times as they can.

SparkFun Open Log: Is absolutely amazing. What a great logger! so easy to use. no fuss no muss. right out of the box it starts logging to a txt file that it creates on the sd card. It is programmable in all sorts of ways to better help with data collection. As I become more familiar with the logger i am sure i will be able to streamline my code to get the data i want in the format i need. without any intervention from me in the post processing stages.

Bell housing: the reason i used a fishing lure type of device was from a story I once heard. I had heard a story about fish hatchery fish. The small fish in the big open pools have a little lure type of device that when they hit it in the water it drops down pellets. This teaches the fish to hit lures when they are released into lakes and streams. LOL. kind of funny to hear that the fishing game is rigged, or maybe its just a story. Either way, i decided to take this approach. It was extremely successful!

Okay i think that covers all the issues and thoughts i had while going through the hardware portion of the build.

STEP 4: Code

STEP 5: Contact

Find me on:

Robopandapdx.com

facebook:Robopandapdx

twitter: @RoboPandaPDX

youtube: Robopandapdx

https://www.youtube.com/channel/UCkA0zZJAopUZBNX56...

email: RoboPandaPDX@Gmail.com

Upgrades coming soon:

Error detection in case the food does not drop.

Real time clock

better data collection

seperate power source for servo

10 Comments

how long did it take for them to figure it out and what kind of fish do you have?

thats a great idea

This is awesome! Nice idea, thanks for sharing :)
Awesome..I was looking for this. what you did is really great. Are u selling it?? I would like to get one..
I like the idea of using different foods to see which they prefer! Thanks Orange :)

Fish can and will eat themselves to death. At least I know that goldfish will (poor Sir Rupert Billingsworth IV, Esq. never had a chance when I was a little kid [Yes, that was his actual name]). A lot of other game fish will eat lures or bait even if their stomachs are impossibly full already. Just a word of caution.

You mentioned having a timer to prevent it from auto feeding all day (a delay from 5 minutes to a day). I would recommend going with the higher time frame to protect your fishy friends from themselves.

This is a neat idea and I like that the fish can automate their feeding when they choose (within reason and programming). Good idea!

Thanks, Yeah i have noticed that they will just keep eating so i only turn on the feeder for an hour or so once a day. when i get some time i will program it to give them the proper amount of food. this will be after phase 2 when i put the feeder bar at one end of the tank and the food at the other end and a plastic wall in between with one hole to swim through. I really want to know if they truly understand that when they hit the bar that they are asking for food.

All creatures great and small have their own form of intelligence - or they would not survive long. All that aside still great project!

Maybe do one (experiment) with types of food - fresh worms or flake - first time will be released then see if they have a preferance and remember which releases what (degree in psychology which I did not progress in due to animal lab experiments often horrific).

Great technical aspect but mho re fish (or any animal) feeding itself. Once in the morning and maybe later in day is more then enough and exactly how much is allowed out. (this reminds me of the lab rat experiments whereby rats were given a choice of either sugar, or real food and kept hitting the button for sugar until they got fat and died!)...

I've raised aquarium fish for decades since a child 50 plus years (and have Dr Innes aquarium books, still relevant!)

The posters who mention fish can "feed" themselves to death are correct as well in the wild they have to work for their food (jump to catch insect, grovel so on). And excess food quickly pollutes the water.

But my point is that fish just as humans evolved to do so, have feast and famine periods, they can go often days even weeks without food. And if your tank is ecologically sound - using live plants there are microscopic (and often not, lol) critters all around that they consume.

Goldfish yes will die from overeating, bettas stomachs are only as big as their eye - need only tiny amount of food (often over fed as well esp with pellet food - goes for all foods, dried and then they swell up once inside the stomach).

I always fed my fish (and rotated it as well) live foods, or frozen such as Hikari (make sure one buys appropriate type for fish).

Complex. Does it perform as expected?