Project Development

AQUAFEED





Aqua feed is an automated fish feeder with LCD display.It incorporates various techniques such as :

The project i have in mind is to create a smart aquarium but due to time limitation, i will be starting with basic models and upgrade according to time availability.I will divide the project into methods used and document each section.


Electronic Design

I decided to start with the electronic design first, since this would be the most difficult part other than 3D designing.
On the electronics front, the main functions i had in mind was:

The main board will have multiple functions. It will read values from Digital temperature sensor, PH sensor, control the servo motor and LED lights. For this, i could not use simple Attiny IC's since they didnt have sufficient pins. An arduino board would easily solve my problems but we couldnt use those. Then while researching, i came across fabkit, an arduino-compatible board designed by David Mells and based on an ATMEGA382P microcontroller. With this board, you can write code with an Arduino IDE (and all of its libraries). So you basically learn how to build and use your own Arduino.Then upon further research, i came upon satshakit,which was an improved version of the fabkit made by daniele ingrassia. This board was as useful as an arduino so i decided to use this as my main board. i got all the required files from here, ready to mill design.



Since the board was perfect for my purposes, i milled it without making any changes.




Next came the soldering of the board. This was my first time soldering atmel 328p so it was difficult.The pins were small compared to Attiny IC's.The first board became a mess during soldering so i had to mill another board.This time i was more carefull to solder the IC and was succesfull.



Next came the soldering of other components, which was easy.



There were 2 components that was not available at our lab- 16mhz crystal oscillator and 22pf caopacitors.smd's were not locally available so i bought a normal oscillator. For the 22 pf capacitors, i soldered 2 10pf capacitors in parellel.



Instead of the male pins, I used female ports in the board, like in an arduino. I figured it would be more easy to hold connections.



Now that the board was fully soldered, next step was to burn the bootloader.The bootloader can be burned using either an arduino or a fabISP.I used the fabISP.

pin connecting ISP and satshakit



If the bootloader burn is succesfull,it means that the board is ready for programming.Now i needed to make sketch the required network connections and serial communication between the boards before i can begin the programming phase.

Once the main board was completed, I decided to create the LCD board next.This board only needed to connect the lcd display and pins for serial data transmission.I created the board design in eagle since i was familiar with the software.

eagle schematic

eagle board

For this board, i used Attiny44 with which i had become very familiar over the fab course.I also designed another small board to regulate the voltage given to sathshakit.I could not connect it directly to the battery without shorting the board so i needed a reugaltor. I used a 5v 1A voltage regulator in a seperate circuit. I also added some connected pins to the board so that the board would also act as a voltage regualtor.



After soldering both boards, found a mistake in the LCD board. I had forgoten to make connection between vcc and 1uf capacitor.solved this by sodering 2 wire pieces and cutting a trace.




Laser Cutting

I made the fish tank using acrylic. We had 6-inch white acrylic available here so i used it.For the base, i used blue acrylic, since it would give the water a bluish hue and would go well with the blue LED's i was planning to add.
Designing was done using Adobe Illustrator.The design was pretty simple. Since the tank needed to be glued to prevent leakage, pressfit design was not an option.So i cut plain rectangles of size 35*20cm and 20*20cm for the base and 4 sides.
Also added some designs to the acrylic.Wanted to give a fishy theme.



After i laser cut the acrylic pieces, next step was deciding how to join them. Usually, aquariums are fitted using a special glue cement, which would take more than 24 hours to dry.It was also difficult to obtain.So i used the glue gun in fablab along with industrial super glue.





The tank was ready in a couple of hours.


3D printing

3D printing was to play an important role in making the feeding mechanism. I had designed all the parts to be 3D printed. I used both 3ds max and solidworks to make the designs.

FIrst i designed the feeding mechanism.

Feed storage and dispensing body

The fish feed will be stored in the upper cylindrical section.The wheel in the bottom section is connected to a servo motor which will rotate for a fixed angle during a fixed interval of time.The speed of rotation will be used to regulate the amount of food dispensed.This feed in the wheel be dispensed to the fish tank.





The part after 3D printing was in perfect measurements.The clearence between wheel and body was 2mm. This would allow the wheel to rotate freely within the body in a good fit...

3D printed body

As a precaution, i designed and printed another wheel, with the sides closed forming a wall.This would prevent the feed from spilling out through the sides.

Wheel redesigned

The hole in the middle of the wheel was small and thus couldnt fit a motor shaft. To solve this dilemma, i designed a connecting pin to connect motor to the wheel shaft.

connector

Next i designed a kind of mount to hold the feed body.The mount was designed so that it could be fitted on the aquarium side.The mount design also had a platform which will support the box, which would house the motor and electronic components.This box was yet to be designed.

mount

3d view of mount in sketchfab:

The part took about 5 hrs to print and took 9 hrs for the support material to dissolve.



The mount was correct fix to the aquarium. The feed tank was kind of loose fit because of a slight miscalculation.~Since i dont have time to redesign and reprint the part, i will have to find osme other way to fix it tightly. thankfully, there is a brilliant invention called glue...



Next design was a box to house the motor, electronic boards, lcd display etc.the design was basic-



With this,3D printing part was complete.i had all the required 3d models and other parts. Now all that remained was to put it all together and program.


Assembling, Programming & Testing

First i need to program the individual components.The main board is responsible for motor control. The LCD board will be responsible for displaying time. The time interval for feeding will be set during programming for now. But i plan to add an compuer interface that will allow the user to set the time interval without having to edit the code everytime. The display board will check the time continuosly and when it is the preset time, the board will send a command/message to the main board. Upon recieving this message, the main board will rotate the motor to a fixed degree.The user interface must occur between the display board and the computer.



First, i decided to check the LCD display working.For this, i used a simple 'Hello world' program from the arduino example sketches.


Now that i knew the board was working, it was time fro programming it.Since i wasn't using a real time clock(tried and failed to make one, dont have time to retry), i used time library to make the time functions.The time libraries of arduino have become obsolete, however they have provided a link to some working libraries in their site. I utilised the libraries of teensy which was arduino compatible after installing teensyduino.After obtaining the time libraries, i wrote a code to set the time and check for the time interval. I used a Timeralarm to set the feed time. This would enable it to send a message to the main the board whenever the alarm is triggered. The main board controlling the server can then activate the feed mechanism.
while programming this, i encountered a block. For the program, i had used multiple libraries, and the IC i had used was attiny44.
While programming, an error showed saying that the sketch used more memory than was available. I couldnt load any libraries with Attiny44 due to this memory problem. I realize now that i should have used better IC like atmega-328p, but no time now. I had to do with what i had. so i removed all the timer libraries and wrote old fashioned code to include time.this was working, however i plan to make a new board when i have time, even if after the fabacademy!!
Next step was programming the main board. The main fuction is to listen to commands/message from the display board, so that it can activate the motor. when i expand the project to integrate the temperatue and PH sensors, the main board board will be used to control and intergrate all 3 input and output devices.First i tested the motor:

network connection


Then i programmed the main board(satshakit board) using a FTDI cable. The connections between FTDI and main board(program using arduino as ISP)-

FTDI-Sathshakit pin connection


Network

Now that the programming phase was done, it was time to make and test the network connection between main board and display board. Since the sathshakit board only had one pair of serial transmission pins(i would require 3 pairs to also include the interface), i used the extra pins available in the regulating board to act as a kind of breadboard ports. This board had another important funtion also.It would also contain a power regulating circuit. This is required to provide regulated 5v to both the main board and display board from the 9v battery or the power adapter, whichever i chose to use.

network connection


After making the network connections and making sure that all was working accodring to plan, all that remained was to mount the electronics assembly in the containing box and connecting to the motor.Here i encounetered some problems.the box i 3d printed wasnt big to contain the full assembly comfortably. I had miscalculated the space needed for the full assebmly. However i didnt have enough time to design and make another box. So i used double tape and cramped all the components inside the box. It was wild luck that none of the connections broke.Since i didnt have enough space left, i decided to mount the battery pack on the topside.

Electronics assembled


Now it was time for tesing.I filled the tank with water and filled food container with some fish feed.There was some problem with the power supply connection so instead i used my laptop to power the boards.




Working video-



Tasks to be completed/Upgradation-

Time has run out for me. Only a day remain till the end of fabacademy.However i plan to keep working on the product and correct the mistakes and add the planned upgradation.

Bill of Materials

Body

Electronics

The total cost is under 600 Rs/- i.e., $10 USD.

What i learned-

I learned a wide variety of information during my fab course. Previously i knew nothing about moldin&casting, Embedded electronics, mqchine design etc. During this course, i got a basic knowledge of all these. In Essence, i can confidently say i learned how to design,implement and build a project entirely on my own.

Download Files- Project Slide
Project Video
Main Page