PROJECT DEVELOPMENT

infografia final

Step by step of this interesting journey.


CHECK LIST

Complete your final project, tracking your progress

  • what tasks have been completed, and what tasks remain?
  • what's working? what's not?
  • what questions need to be resolved?
  • what will happen when?
  • what have you learned?

The step by step of this adventure

I invite you to see the step by step of my final project, a compilation of knowledge and experiences applied to a final project.


2D and 3D design and Previous modeling and shape testing

The idea of ​​design changed little by little, becoming more and more realistic around the technology and materials available. I decided to start with some sketches by testing shapes and analyzing suitable measurements for what I had in mind. Later I made a basic 3D model using Rhino, however it was important for me to understand the object in a tangible model to analyze its shapes, cut, paste, scratch (my designer mind takes me that way).

I made a first mockup by hand (just like in the old days) using cardboard, scissors and glue. It was very helpful in planning the scope of my project. Obviously at the beginning I expected it to do a million things but with the spiral methodology, it became more realistic little by little.

I modified the model in 3D and made a second model with cardboard and the laser cutter. The cardboard at this point still allowed me to make modifications, scratch, cut, paste. This was the design I wanted to build for my final project.

Again modifications in the 3D adapting the assemblies of the side covers, design the cover according to the components that were going to be used. The third model already worked as my final external bin.Time to turn it real!


Laser cut

For laser cutting there ware two important determining factors to take into account, the thickness of the material and the format according to the capacity of the machine (60x40cm). Fortunately, the larger pieces that are the side covers fit in the given format. I used 4mm mdf.
It was necessary to carry out a test with the texture that I wanted to engrave to try the flexibility of the material in the curved parts. For this, I made a section of the case at a real scale and tested both the material properties and the cutting parameters.

Test # Min power (%) Max power (% Speed (mm/s) Picture Comments
1 75 X75 8
Looks nice, but is not flexible enough, as soon as I tryed to bend it, it broke
2 77 X77 8
Not enough yet, it didn’t cut all the lines, (ignore those really black ones, those were from a previous work, I was re using some material left overs). It didn’t even cut the contour.
3 77 X77 6 Works perfectly, these are the parameters I am going to use

With the pieces ready, it was time to assemble them. Despite having done preliminary tests, my curved parts were not as flexible as expected. For this reason I decided to immerse them in water for a few minutes (approximately 30) and use the side covers as support. One thing I didn't plan for was that wetting them would curl them but also increase their thickness. For this reason I had to sand the support holes of the side covers for them to fit. Added some masking tape to support the center of the piece while it dryes over night.

For the side cover I followed the same process, submerged it in water and placed it at 90 degrees against a wall with a weight on top so it can dry over night. The next day I already had the necessary curvature. I joined it with the side covers and this is the result:

Next step, the design and production of the top cap. I made the design in illustrator taking into account the measurements of the components that I want to show, I engraved the logo and cut the rest of the piece.
The parameters I used for this piece are:

Details Min power (%) Max power (% Speed (mm/s)
Engrave 20 20 40
Cut 77 77 6
This is the result:


3D print

It was important to protect my board and its components from possible splashes of water, as well as to contain the cables in one place. The design is planned to accommodate the protection case at the back of the bin, in the curvature. For this I designed a box with lateral perforations through which the power cables and the sensors and actuator's cables will come out. I added some perforated side tabs to screw this box to the external bin.


To print this piece I used the Ultimaker 2 with the following parameters, the process lasted around 8 hours.

This is the result, the bridges were easy to remove.


"Composites"

As part of wild card week, I had planned to do a layer-by-layer process with sheets of balsa wood. Initially it was a process discussed with my tutor, but after doing it, it seems that I did not meet the requirements of that week.
Anyway, I decided to continue with what was planned to test an alternative to wood bending that could be interesting in future projects. For this, I made a base structure that supports the wood sheets, it had to have some relationship with the exterior case, for which I made interlocking slats that allowed to maintain this curvature of the front door. I used the laser cutter for these slats and assembled them using a rubber mallet.
The next step was to cut the sheets of wood to the required size and glue them one by one using carpentry glue, which was dissolved with water in a 2:1 relation so that the humidity allows the sheets to bend easily. I held the pieces with clamps and let it dry overnight. When removing the clamps, this was the result:


You can see further details of this section in my wild card week site

To install it in the external bin, I used small metal hinges that can be found in any hardware store and that can be adjusted with small screws. I also added a magnetic stop that will keep the door closed.


Electronics design and production

The following diagram shows how the systems should work.

There are two sensors that must be integrated into the system. The first one, the soil moisture sensor, takes these values ​​and has two options that will be displayed on the rgb led: red and green, if the parameters are within 80% which is adequate to maintain a healthy life of the worms, then the green light will be displayed. The moment this light turns red means that the soil is dry and needs watering.
The second Dht11 sensor measures the temperature and humidity status of the environment and is constantly sending this data to the LCD screen. Temperature is measured in Celsius degrees and humidity in%. It is important to differentiate between the humidity of the soil and the environment, it is not the same, since the soil retains more humidity due to the work that worms do when processing organic waste and that it generates its own humidity.
If the ambient temperature is too high, it can affect the life of the worms in the compost bin. In case of exceeding 35 degrees the fan will automatically turn on, when it returns to regular temperature (less than 35C) the fan will turn off. It also turns on if the humidity exceeds the limits which is 90%.
Also, remains a possibility in the future for the compost bin to send data to the feeding diary via bluetooth, to complement the monitoring of the life of the worms in the application, so far you can just write information about its status by yourself.
Base my design on the boards created in the weeks of inputs and outputs where you can find more details.Also, files can be found at the end of this document.
This is the schematic and board design I used for my board, made on EAGLE.


The next step is the production of the board. These files will be available at the end of this document. I used 3 different codes and these are the parameters I used:

  • First for the tracks (ULP). Remember this generates a .tap file.
  • Second for the texts (mods)

  • Third for contour cutting (mods).

  • This is the result, for further information of the worflow of the cnc milling machine for electronic boards you can check my electronics design week

    Next, I soldered the components. Here you can find the detail:

    • 1un - button
    • 1un - Atmega 328P-AU
    • 49un- Pinheads
    • 1un - 100nF capacitor
    • 1un - 1uF capacitor
    • 2un - 10uF capacitor
    • 2un - 22pF capacitor
    • 1un - 0.1uF capacitor
    • 1un - 0.33uF capacitor / * not avaliable at the local lab inventory
    • 1un - 499 R
    • 1un - 10k R
    • 1un - green led
    • 1un - 16Mhz crystal / * not avaliable at the local lab inventory
    • 1un - Fan / * not avaliable at the local lab inventory
    • 1un - RGB led / * not avaliable at the local lab inventory
    • 1un - terminal block / * not avaliable at the local lab inventory
    • 1un - bluetooth module / * not avaliable at the local lab inventory
    • 1un - soil moisture sensor / * not avaliable at the local lab inventory
    • 1un - DHT11 sensor / * not avaliable at the local lab inventory
    • 1un - LCD screen I2C / * not avaliable at the local lab inventory
    • 2un - 7805TV / * not avaliable at the local lab inventory
    This is the result, most of the components were planned to go in the back of the board to have a clean front and the cables somehow organized on just one side.
    This is the third similar board that I have designed and produced so the result was easier to carry out.


    programming

    First make all the connections, soil humidity sensor, humidity and ambient temperature sensor (inputs), RGB led, screen and fan (outputs). To power the system use an external 12V source.

    This part was the most challenging for me. Diego helped my a lot troughout the process, to understand and generate my own code.
    To program the board I used the programmer developed in the electronics produccion week, the FabATinyISP, which can be programmed via their SPI ports in conjunction with the RESET pin, using a SPI protocol. The 6 pins needed are: MISO, SCK, RST, VCC, MOSI, GND. Data is sent in series, this means there is a serial communication protocol.
    I used Arduino IDE to create the code which you can download at the bottom of this site.

    
    	//-- Libreries
    	#include  //DHT and LCD libraries
    	#include 
    	
    	//-- Pins LCD and sensor
    	#define I2C_ADDR 0x27
    	#define BACKLIGHT_PIN 3
    	#define En_pin 2
    	#define Rw_pin 1
    	#define Rs_pin 0
    	#define D4_pin 4
    	#define D5_pin 5
    	#define D6_pin 6
    	#define D7_pin 7
    	#define DHT11_PIN 2 //Declaring where the DHT signal pin is wired
    	
    	//-- LCD functions
    	LiquidCrystal_I2C lcd(I2C_ADDR, En_pin, Rw_pin, Rs_pin, D4_pin, D5_pin, D6_pin, D7_pin);
    	
    	//-- Environment sensor functions
    	dht DHT; //Declaring the DHT as a dht type to use it later
    	
    	//-- LED pins declaration
    	int redpin = 11; //select the pin for the red LED
    	int bluepin = 10; // select the pin for the  blue LED
    	int greenpin = 9; // select the pin for the green LED
    	
    	//--FC32 pin declaration   - soil moisture
    	int msensor = A0;
    	
    	//--FAN pin declaration
    	int fan = 3;
    	
    	//--auxiliar Variables 
    	int humedad = 0; //FC32
    	int humedadmap = 0;
    	int minhumedad = 80;
    	float tempe = DHT.temperature; //DHT 11 - read temperature
    	float maxtempe = 35;
    	float humrel = DHT.humidity; //DHT 11 - read humidity
    	float maxhumrel = 90;
    	int aux1 = 0;
    	int aux2 = 0;
    	
    	
    	// initial configuracion
    	void setup() {
    	  Serial.begin(9600);
    	  // for led
    	  pinMode(redpin, OUTPUT);
    	  pinMode(bluepin, OUTPUT);
    	  pinMode(greenpin, OUTPUT);
    	
    	  // for screen
    	  lcd.begin (16, 2);
    	  lcd.setBacklightPin(BACKLIGHT_PIN, POSITIVE);
    	  lcd.setBacklight(HIGH); //Lighting backlight
    	  lcd.home ();
    	
    	  // for fan
    	  pinMode(fan, OUTPUT);
    	  digitalWrite (fan, LOW);
    	
    	}
    	
    	// what is gooing to be done
    	void loop() {
    	  //LEER VALORES
    	  //FC32
    	  humedad = analogRead(msensor);
    	  humedadmap = map(humedad, 550, 10, 0 , 100); //hace regla de 3
    	  /*
    		 Serial.print("Humedad: ");
    		 Serial.print (humedad);
    		 Serial.println("% ");
    		 delay (1000);
    	  */
    	
    	  //DTH11
    	  int chk = DHT.read11(DHT11_PIN);
    	  tempe = DHT.temperature;
    	  humrel = DHT.humidity;
    	
    	  /*
    		Serial.print("Tem= ");
    		Serial.println(DHT.temperature);
    		Serial.print("Humidity= ");
    		Serial.println(DHT.humidity);
    		delay(1000);
    	  */
    	
    	  //FC32 compare
    	  if (humedadmap <= minhumedad)
    	  {
    		digitalWrite(redpin, HIGH);
    		digitalWrite(greenpin, LOW);
    		digitalWrite(bluepin, LOW);
    		delay(500);
    	  }
    	  else {
    		// if ((humedadmap >= 0) && (humedadmap < minhumedad))
    	
    		digitalWrite(redpin, LOW);
    		digitalWrite(greenpin, HIGH);
    		digitalWrite(bluepin, LOW);
    		delay(500);
    	  }
    	
    	
    	  //SEND DHT11 VALUES TO LCD
    	  lcd.setCursor(0, 0); //Setting the position where you want to start writing the message (0,0) is top left
    	  lcd.print("TEMP:"); //Message to display
    	  lcd.setCursor(7, 0); //Start writing on the position (7,1)
    	  lcd.print(tempe);
    	  lcd.println(" C ");
    	  lcd.setCursor(0, 1); //Setting the position where you want to start writing the message (0,0) is top left
    	  lcd.print("HUMIDITY:"); //Message to display
    	  lcd.setCursor(9, 1); //Start writing on the position (9,1)
    	  lcd.print(humrel);
    	  lcd.println("% ");
    	  delay(4000); //Display time
    	
    	  // DHT11 compare - ACTIVATE FAN
    	  if ((tempe >= maxtempe) || (humrel >= maxhumrel))
    	  {
    		digitalWrite(fan, HIGH);
    		delay(3000);
    	  }
    	
    	  if ((tempe < maxtempe) || (humrel < maxhumrel))
    	  {
    		digitalWrite(fan, LOW);
    		delay(3000);
    	  }
    	
    	}
    							

    This video shows the final result, all systems working together!. Sensors react to external stimuli of humidity and temperature, screen is showing values, the led is reacting to soil humidity and the fan is turning on and off depending on the humidity and temperature values permitted.

    troubleshooting

    Once I uploaded the code, and start trying the system, a couple of things came up.


    • Temperature and humidity are shown without the "." for the decimals, this is because in the variables setting I was using int which only stores integral values, that is, whole numbers, I changed it to float which stores floating-point values, that is, values that have potential decimal places, and it worked.
    • Temperature values was showing this weird characters, I realized that the °C symbol was nos being recognized, so I errased it from the code and just left a blank space.
    • Now it is working propperly.

    • It is important to remember that to upload the code MOSI needs to be connected directly to the pin without the bridge, it may cause confution because it is the same pin used for red in the RGB. Once the code is loaded, put the bridge back on and connect the RGB.


    Interface

    I want an application where you can keep a constant record of the state of the compost bin. For this I based my design in this tutorial How to make a diary and app inventor to create it, added my project logo and you can write information about the compost bin, how much you fed the worms, when and all the observations you have about your system.

    This is the final result, you can download it to you phone and have it avaliable all the time.

    File

    Here you can download the .apk file of this app to try it yourself.


    Internal Bin

    This step is designed to be able to adapt to any low cost material, even any container which is already avaliable at home (there are many tutorials that shows hoe to do DIY composters). In this case I have used 3 Polystyrene containers (avaliable at a local harware store - really cheap), remove the base and glue a perforated mesh of at least 0.5x0.5 cm so that the worms can move from one tray to another. To glue the mesh I have used hot silicone. They can be applied one on top of the other and it is recommended to leave an additional one at the base to collect the liquid waste known as liquid humus that has a high nutritional value.

    In order for the compost bin to be a pleasant home for worms, it must be prepared. Place a layer of cardboard on the base (it can be recycled, I used the lid of a pizza box), add the soil (it does not need to be of good quality since the worms will be in charge of transforming it into soil with a high nutritional level).

    Add the worms and some extra soil again. Worms should be allowed to rest for at least 1 week before adding organic waste as they must first adjust to their new home.Finally add some water to mois their environment.


    Integration

    At this time the separate parts are ready. I placed the bin inside, connected the sensors to the board, it's time to see how the system works.

    On the lid there are all the modules for the user to interact. They are placed and contained in the board protection case.

    Once installed on the external bin it looks like this:

    Everything is ready!! time to try if it works, I connect the power and this is what happened.

    Great! it is working! I'll keep track of my vermicomposter and also add this information to my journal app.


    Files

    These are the files from my final project:


Some thoughts about these questions:

  • what tasks have been completed, and what tasks remain?
  • The spiral methodology used was very useful to gradually develop the advances. So far most of the objectives have been met, the systems work and fulfills the aesthetic part I was looking for, it is affordable and easy to manufacture. I am happy with the final outcome. The previous pictures show the processes that have been achieved.

  • what's working? what's not?
  • Both sensors (soil humidity and environmental humidity and temperature) are working, sending data and reacting either on the screen or on the led indicator. Both cases internal and external are working, you can accessed from the top lid to add organic waste or from the front door in case the internal container needs to be removed. The app is working as a journal, you can keep track of the bin status by downloading the app to your phone.
    The fan is not working for the moment since I have not managed to integrate the code.

  • what will happen when?
  • according to my design this are the actions that systems will take in differente environmental circumstances:
    For future use, It will be interesting after a few weeks to see the state of the bin, see the life of the worms and analyze if they are triving and developing in harmony with the organic waste.
    I have also left open the possibility for a next spiral in which a clock and a bluetooth module can be connected so that the power and status data of the compost can be sent directly to the application.

  • what have you learned?
  • This learning process has been very extensive, I have learned things that I never imagined I would learn. Soft skills such as time management, planning, teamwork, communication, coordination. Use and application of technology, materials, construction possibilities, design, a number of software, and what I least imagined I was going to learn: design, build and program electronic boards, which was a real challenge week after week.
    I still feel that there is a whole world of things to learn but it has been interesting all the possibilities that have been opened.

FINAL THOUGHTS

In planning my project I have designated at least 3 weeks for its execution. It has been a very intense and stressful three weeks, combined with work and lockdown restrictions.
It's been interesting to see how so many decisions are made in the manufacturing process. The initial idea was very ambitious and as I progressed through the process I understood the spiral methodology, starting small and moving forward as the project develops.
I started very conservatively, making small-scale models using thick paper and cardboard, which allowed me to land my design ideas. During the process I had to make corrections in the design, constant trial and error, cuts, scraps, arrangements, paste, re-cut, redraw, review previous notes, sleep dreaming of possible solutions. I really enjoyed the manual process, it was fun and entertaining to build things.
The most frustrating part for me has been the electronics, I am very excited to see that the sensors and actuators work but in the production of the board, many errors that are difficult and very tedious to correct tend to be generated. In addition to being my weakest field, programming has cost me a lot, it is a language that is difficult for me to unify in order for all systems work, one moment they work perfectly, the next I am looking for a solution on YouTube and forums, which becomes frustrating when the final delivery time is approaching minute by minute.
During the weekly assignments I wanted to test the techniques to develop products that were not related to my final project and I focused on testing and experimentation projects. This meant that in the end I had to develop everything, which involved additional time and effort. To my past self, I would recommend focusing on the final project from the beginning and follow a programming course.
I would love to develop new things and spend some extra time applying all these skills, but I found out that working and studying at the same time is not an easy task.