top of page
Search

Blog 5: Prototyping

  • jingyue22
  • Feb 24, 2024
  • 13 min read

Updated: Feb 25, 2024

Introduction

Hi! Wow so fast, final blog already! To end off my CPDD journey with a bang, this will be my prototyping blog. Before you start reading this blog, I highly recommend going back to the some of the previous blogs as this 5th blog will be cumulation of all the skills in those previous blogs.

Much of this blog will be quite advanced in terms of the content and skills so if you still struggle with some of the basics, please visit my previous blog page which is in this link:

Content

In this page, I will:

1.    Briefly describe my team chemical device.

2.    Show how the team planned, allocated the tasks, and executed the project.

3.    Document the entire design and build process of the chemical device and include videos, pictures, and screen captures of the processes.

4.    Include “Hero shot” of every milestone of the processes, example the part A that was 3D printed, part B that was laser-cut, electronics components moved/worked according to the program. Hero-shot is taken with the person-in-charge holding/working/making the parts.

5.    Include the name of the person who was in-charge of every part of the project.

6.    Document my individual contribution to this project.

7.    Provide the link to the page of the blog of my teammates.

8.    Describe problems encountered and how the team solved them.

9.    Include all the project design files as downloadable files.

10. Embed the final prototype design file, i.e., the final fusion 360 design file showing the entire prototype.

11. Type my Learning reflection on the overall project development.

 


1.   Our team chemical device

·       Team chemical device: Automatic Tea Maker

·       Background:

ree

Figure 1: Statistics on relation between tendonitis and age of patient.

·       As shown from the image above, the number of patients with musculoskeletal disorders such as tendonitis increase with age with the most prevalent being in the age group of 51 to 60.

·       Brewing tea normally requires the drinker to regularly steep the tea bag so that the tea is properly brewed.

·       However, this may pose a problem to the elderly with tendonitis as such a repetitive activity of steeping the tea may cause stress to their joints resulting in pain.

·       Our product aim to provide a easier alternative of people with tendonitis to brew tea.

Initial hand sketches of our tea maker

-       



 



Initial CAD sketch of our tea maker




ree

Final hand sketch of product:

ree

Task fulfilment of our tea maker

1.    Gears

-       For the gear’s component, we used a speed ratio to ensure the impeller spins fast to ensure the solute in the tea leaves is leached out.

2.    3D printing

-       For this component, we 3D printed the impeller and the gears.

3.    Laser cutting

-       For this component, we laser cut the box out of acrylic so to store the Arduino board wires and gear in one section and the other section for the ease of refilling of the water and the replacement of the used tea bag

4.    Arduino coding

-       We developed a temperature interlocking system between the impeller and the 360-degree continuous motor. We coded the Arduino so that if the temperature is within a certain temperature range, the impeller will turn on but if the temperature is outside of said temperature range, the impeller will not turn on. This is taken from inspiration from the W319 MRTs units.

5.    Hand tooling

-       Hot glued the box that was holding the gears and Arduino together

-       Used soldering to create solder the temperature sensor to some wires and solder together wires to create a modified wire.

 

6.   Team Planning, allocation, and execution

1.   Meet the team

-       CEO (Me, Ang Jing Yue)

-       CFO (Yu Jie: https://linyujie2005.wixsite.com/my-site)

-       COO (Mabelle: https://mabelle22.wixsite.com/mabelleblogs )

-       CSO (Dhasna: https://dhasna22.wixsite.com/blog )

ree

2.     Task allocation

ree

-       We opted for a divide and conquer method as we felt that if all our focus was centred on one portion, it will be less productive.

-       In addition, we could also split the work to account for everyone’s strong points.

-       An example of this would be that Mabelle and Dhasna are better at Fusion 360 so therefore, the CAD drawings for the impeller and gears are done by them.

-       Some of the adjustments done near the end of this prototyping assignment was that since the task of Arduino was very difficult, me, Yu Jie and Mabelle decided to work on the Arduino task together.

-       In the meantime, since we pushed the Arduino task to the end, me and Yu Jie we worked on the laser cut box together.

 

3.             Finalised BOM

ree

4.    Gantt chart, details, and simplified timeline


ree

Figure 2: Gantt chart


ree

Figure 3: Details of Gantt chart


ree

Figure 4: Simplified Timeline (All task achieved is above the date, all task started is below the date)


3.  Design and Build Process

Note: these tutorials do not cover the basics of using Fusion 360. If you need to go through the basics of Fusion 360, please visit here: https://jingyuecp5065.weebly.com/ 

Where it covers the basics of Fusion 360, 3D printing, laser cutting and more!!!


Part 1. Design and Build of Part A (done by Mabelle). Link:https://mabelle22.wixsite.com/mabelleblogs/post/project-development

1.       Press Create Sketch on the Top plane or the x-y plane.

ree

2.       Select the centre diameter circle and alter the diameter to you the size of your impeller to be. (In this case, I selected it to be 35mm)

ree

3.       Press finish sketch.

ree

4.       Extrude the circle by 2mm. It should look like the second image.

ree
ree

 

5.       Press create sketch on the bottom of the cylindrical solid.

ree

6.       Create a 6mm diameter circle at the centre of the circle.

ree

7.       Click finish sketch and extrude the 6mm diameter circle by -12mm. Remember to select the operation as join. (It should look like the second pic)

ree
ree

8.       Select the hole option and place the midpt of hole in the centre of the circle. Extents set to all.

ree

9.       It should look like this.

ree

10.   Press create sketch on the top plane and select the 3-pt arc.

ree

11.   Place a 3-pt arc on the sketch linking the outer circle to the inner one.


 

ree

12.   Select offset on the arc you have created and offset by 1.5mm.

ree
ree

13.   Select Trim and extend option to Trim off the arc that is outside the circle and extend the arc to the inner circle.

ree

14.   Use the circular pattern function and select the 2 arc and select the centre point to be at the origin point of the sketch. Select the number of impeller blades via the quantity portion. (In this case, I used 4 impeller blades)

ree

15.   It should look like this.

ree

16.   Extrude and select the 4 sketches of the impeller blades. Select extend type to To Object, object as the face of the inner circle and select extend to Extend Faces. Then, click ok.

ree

17.   It should look like this.

ree

18.   Press extrude and select the 4 faces of the base plate and select cut for the operation option. Extrude it to -6mm.

ree
ree

19.   Click create sketch on the 6mm diameter circle and create a 3mm diameter circle from midpoint of 6mm diameter circle.

ree

20.   Extrude the area between inner and outer circle and extrude it to whatever length your impeller needs. Remember to set the operation to join. (In this case, I chose my impeller length of 50mm from the base of impeller)

ree

 

21.   Your final impeller design should look something like this.

ree

 


22.   Since I am 3d printing this design, save this design as an STL file.

ree

23.   Opening the STL file will link you to the ultimaker cura app.

ree

24.   The left window is where you choose your settings such as infill density, print speed.

ree

25.   Now, you just must save to disk your Cura design and have fun printing your impeller.

Note: For more info about 3D printing please visit this site: https://jingyuecp5065.weebly.com/week-5



 

Part 2. Design and Build of base plate and gears (done by Dhasna)
For more info about the individual portions of the gears and base plate, please do head over to this link:https://dhasna22.wixsite.com/blog/post/blog-5-project-development

1.       Open up Fusion 360 and go to utilities and go to add-ins.

ree

2.       Once clicking add-ins, a menu should pop up like the one below and go under add-ins tab.

ree

3.       Scroll down until you see the spur gear option.

ree

4.       You will see two spur gear options. One that is running on C++ (the hexagon symbol) and the other running on python (the yellow and gray icon). You can use either but in this case I will be using the python one.

ree

5.       After selecting, click run and the below window will pop up which means the installation of the add-in is successful.

ree

6.       Select the spur gear option under the create tab. The below window should pop up.

ree

7.       You can adjust the settings according to what you prefer. In this case, I will be adjusting the settings as shown below (The hole diameter is 0mm, so it is easier to form the gear plate)

ree

8.       Click ok and it will generate the gear as shown below.


ree

9.       Reactivate the spur gear function.

ree

10.   In this case, I will be generating my second gear to allow a speed ratio of 2. I simply decreased my number of teeth by half from 32 to 16 and the root fillet ratio from 0.9mm to 0.45mm. Below are the specifications of the second gear.

ree

11.   After clicking ok, below is what you are supposed to see.

ree

12.   Select the smaller gear and click move/copy.

ree

13.   A menu like this will pop up.

ree

14.   Set move object as components. Now for your X-distance set it to be equal to the total distance of the larger gear pitch radius and the smaller gear pitch radius (In this case is 32+16= 48mm)

ree

15.   If it is done correctly, the pitch reference circles should line up nicely with one another.

ree

16.   After that, Select the rotate option under move type and the inner cylinder of the gear as the axis and, set the angle to be 11.3˚

ree

Note: The angle of 11.3 is gotten through guess and checking, so you may have to tweak and adjust the angle of rotation, so the two components do not overlap.


17.   Click ok and your gears should look the ones below.

ree

 

 

Creating the base plate:

1.       Create a new component by right click the gear v1 text. Name it base.

ree

2.       Click create sketch on the bottom plane. (If a window pops that says, revert position, click capture position)

ree

3.       Place two circles from the centre of the gears, ensure that the circles are slightly bigger than the gears.

ree

4.       Create two lines tangent to each circle. The lines should snap and give the symbol below.

ree

5.       Hide the gear components.

ree

6.       Highlight the whole design. Before extruding, set the start option to offset and extrude distance to 3mm.

ree

7.       Press P on your keyboard and select the top face of the plate to project.

ree

8.       Select both the gear holes and click ok.

ree
ree

9.       Hide the two gear components and hit the O key of your keyboard to start up your offset command.

ree

10.   Select both the gear holes set to offset by -0.2mm

ree

11.   Extrude up the pins up 10mm.

ree
ree

12.   Create a sketch on the top of the plate and offset the base by 10mm for the larger gear and 5mm for the smaller gear.

ree

13.   Click finish sketch and extrude up the riser by 3mm so the gears can rest on them.

ree

14.   Your finished gear base plate should look like this.

ree

15.   Your finished gears layout should look like this.

ree

16.   To check if your gear works, select the ground option when right clicking on the base component. When selected, a pin icon will appear.

ree

17.   Go to assemble drop down and select the as-built joint.

ree

18.   Set type as revolute and select the large gear, base component for components and pin cylinder for snap. If all goes well, the preview animation will play and the gear will spin.

ree

19.   Repeat the above for the smaller gear.

ree

20.   Go to assembly and select motion link.

ree

21.   Select the two joints which are the faces with the flag icon. The gear will start to turn.

ree

22.   Now, we have to alter the equation of the angle of the large gear and small gear respectively. Let x=no. of teeth of smaller gear, y=no. of teeth of larger gear, z=angle

For the larger gear, the equation: z=360(x/y)

In this case, my large gear equation is 360(16/32)˚

This equation is quite universal for all gear types. Remember to tick the reverse option

ree
ree

23.   This would be finished design.

ree


24.   To proceed on to 3D printing of the gear setup, please refer to the step 22 to 25 of the making of the impeller due to them being the same steps.

 




 

Part 3. Design and Build of box (done by Me, Jing Yue and Yu Jie). Link: https://linyujie2005.wixsite.com/my-site/post/blog-6

1.      Create sketch on the top plane. Replicate the below picture.

Have the dimensions of the rectangle as 297mm by 210mm to replicate the size of a A4 size paper.

Ensure the lines going across the rectangle are at the mid points of the length and breadth, respectively.

ree

2.      Extrude the both the rectangles by 3mm. The large piece is going to be the bottom of the box while the smaller piece is going to be a divider placed between the two holes.

ree

3.      Create another sketch on the top plane. Replicate the dimensions of the below picture.

These are going to form the sides of the box

ree

4.      Extrude both rectangles by 3mm.

ree

5.       Create a sketch on the surface of the shorter rectangle. Sketch out a rectangle of 10mm by 5mm on the length of the rectangle and have a distance of 10mm from the breadth of it.

ree

6.      Continue placing the rectangle on the length of the rectangle and ensure that each rectangle have an equal spacing of 10mm from one another until the end of the rectangle.

ree

7.      Extrude out the rectangles by -4mm and ensure the operation is set to cut.

ree

8.      Repeat the above step for all the rectangles and it should look like this.

ree

9.      Repeat step 7 and 8 for the other rectangle. It should look like this.

ree

10.  Repeat step 1 but this time only doing up the A4 size rectangle without any lines or holes. This will be the top of the box.

ree

11.  Move the two walls to be in line with the top of box.

ree

12.  Copy the two sides and place them together to form a box.

ree

13.  Create a sketch on the back of the top piece. Sketch out a rectangle where the piece overlaps each other.

ree

14.  Repeat the above step for all 4 corners of the box.

ree

15.  Cut out the area where the rectangles are by using extrude and using the cut operation.

ree

16.  Mark out the places where the teeth of the sides of the box overlap the top of the box and sketch the size of them. Repeat for all 4 sides of the box.

ree
ree

17.  Move all 4 of the sides of the box out of the top piece.

ree

18.  Cut out all those rectangles by using the cut operation in the extrude function.

ree

19.  Reorganise your pieces for laser cutting.

ree

20.  Cut out the 2 holes from the bottom of the box.

ree

21.  Preparation of fusion 360 file for laser cutting.

Export your file as a Dxf file.

 

ree

22.  And now, you are ready to begin laser cutting your box.

To recall how to use CorelDRAW and a laser cutter, you can refer to this blog site: https://jingyuecp5065.weebly.com/blog-4 

Note: This is actually a very hard way to create a box. A simpler way to create a box is through this link: https://makeabox.io/ 

All you need to do is to specify the dimensions of the box you want, and they will create it for you.





Part 4. Programming of motor, temperature sensor and temperature interlocking system (Done by Yu Jie, Jing Yue, Mabelle). Link: https://linyujie2005.wixsite.com/my-site/post/blog-6 & https://mabelle22.wixsite.com/mabelleblogs/post/project-development

1.      Research

-       We had to do some research on how to program the temperature sensor in terms of C++ coding

-       The video below greatly helped us setup the code of the temperature sensor to display the temperature on the serial monitor.

-      



-       For the code, we tried to apply our knowledge of if-else loops to the code. To add on, we also tried asking ai for help. Ai software such as Blackbox.ai and ChatGPT

2.      1st iteration of setup and code

Code

const int temperaturePin = 0;

const int motorPin = 9;

 

void setup() {

Serial.begin(9600);

pinMode(motorPin, OUTPUT);

}

 

float getVoltage(int pin)

{

  return (analogRead(pin) * 0.004882814);

}

 

void loop() {

//void motorOnThenOff();

int speed;

{float voltage, degreesC, degreesF;

voltage = getVoltage(temperaturePin);

degreesC = (voltage - 0.5) * 100.0;

degreesF = degreesC * (9.0/5.0) + 32.0;

 

 if (degreesF > 75)

 {

  digitalWrite(motorPin, HIGH);

  delay(1000);

  digitalWrite(motorPin, LOW);

  }

 Serial.print("voltage: ");

  Serial.print(voltage);

  Serial.print("  deg C: ");

  Serial.print(degreesC);

  Serial.print("  deg F: ");

  Serial.println(degreesF);

 

delay(500);

}

 

 }

Setup


ree

Some of the problems that happened to this iteration:

-       Code not configured to the specific type of temperature sensor

-       Library of DallasTemperature and OneWire.h was not installed

-       Used motor instead of servo which resulted in the revolutions being too fast

 

3.      2nd iteration of setup and code

Code

#include <OneWire.h>

#include <DallasTemperature.h>

#include <Servo.h>

 

#define ONE_WIRE_BUS A5

 

OneWire oneWire(ONE_WIRE_BUS);

 

DallasTemperature sensors(&oneWire);

 

float Celsius = 0;

float Fahrenheit = 0;

Servo myservo;

int Ledpin=13;

int CTemp=0;

int temperature = 0;

int pos = 0;

 

// Define minTemp as a global variable

float minTemp = 20;

 

void setup() {

  sensors.begin();

  myservo.attach(9);

  const int maxTemp=30;

  Serial.begin(9600);

}

 

void loop() {

  sensors.requestTemperatures();

 

  Celsius = sensors.getTempCByIndex(0);

  Fahrenheit = sensors.toFahrenheit(Celsius);

 

  Serial.print(Celsius);

  Serial.print(" C  ");

  Serial.print(Fahrenheit);

  Serial.println(" F");

 

  // Map temperature value to servo angle

 

 

  // Control LED based on temperature

  if (minTemp <= Celsius) {

    digitalWrite(Ledpin, HIGH);

    for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees

    // in steps of 1 degree

    myservo.write(pos);              // tell servo to go to position in variable 'pos'

    delay(15);                       // waits 15ms for the servo to reach the position

    for (pos = 180; pos >= 360; pos += 1) { // goes from 180 degrees to 0 degrees

    myservo.write(pos);              // tell servo to go to position in variable 'pos'

    delay(15);        

}}}else {

    digitalWrite(Ledpin, LOW);

  }

 

  delay(1000);

}

Setup

ree

Some of the problems that happened to this iteration:

-       Setup of breadboard was wrong

-       Code included the mapping of temperature to servo angle which is wrong

 

4.      Finalised iteration of setup and code

Code

#include <OneWire.h>

#include <DallasTemperature.h>

#include <Servo.h>

 

#define ONE_WIRE_BUS 9

 

OneWire oneWire(ONE_WIRE_BUS);

 

DallasTemperature sensors(&oneWire);

 

float Celsius = 0;

Servo myservo;

const int Ledpin = 9; // Changed Ledpin to const int

int temperature = 0;

int pos = 0;

 

// Define minTemp as a global variable

float minTemp = 20; // Corrected minTemp threshold

 

void setup() {

  sensors.begin();

  myservo.attach(9); // Attached servo to pin 9

  pinMode(Ledpin, OUTPUT); // Initialize LED pin

  Serial.begin(9600);

}

 

void loop() {

  sensors.requestTemperatures();

 

  Celsius = sensors.getTempCByIndex(0);

 

  Serial.print(Celsius);

  Serial.println("C");

 

  // Control servo motor based on temperature

  if (Celsius <= 20 && Celsius != -127) { // Changed to use minTemp variable

    for (pos = 0; pos <= 180; pos += 1) { // goes from 0 degrees to 180 degrees

      myservo.write(pos); // tell servo to go to position in variable 'pos'

      delay(15);

    }

    for (pos = 180; pos >= 0; pos -= 1) { // goes from 180 degrees to 0 degrees

      myservo.write(pos); // tell servo to go to position in variable 'pos'

      delay(15);

    }

  }

  else {

    // Do something else when temperature is below threshold

    // Turn off LED when temperature is below threshold

    digitalWrite(Ledpin, LOW);

  }

}

Setup


ree
ree

Problems encountered:

-       Arduino board only have one ground port that is working so we have to create a modified wire by soldering

 

 

Part 5. Integration of all parts and electronics (done by everyone)

Hand tooling

1.      Soldering

-       Soldering of wires to temperature sensor

-       Soldering of wires to create a modified wire as Arduino Board only have one available ground port

 

2.      Hot Gluing

-       We had to hot glue the sides of the box together and had to hot glue the box to the cover.

 

 

3.      Assembly

-       Servo and driver gear are positioned perpendicular to the gear board so that there is enough space for the gear train.

-       The impeller is immersed to a depth two-thirds of the container height.

-       Temperature probe is partially submerged in the tea.

-       Gears are configured to function as a small speed multiplier.

 

Demonstration of tea maker




Downloadable files

4.    Problems and solutions

Problems

Solutions

Delivery of materials

One of the components which was the plastic tap we needed was not available at school. We had to turn to the internet in search for a cheap and fast delivery time plastic tap. We used websites such as Shopee to get what we needed.

Arduino Programming

The key problem when we were doing the Arduino Programming was that we didn’t know whether it is our code that is wrong or the setup on the breadboard that is wrong or both. This is due to our inexperience with the breadboard as we had to self-learn how to use the breadboard. Furthermore, two of our ground wire ports in our Arduino Board were not working.

 

To solve these issues, we had to enlist the help of a fellow classmate which was Yu Chen to help us with the setup and the code, mainly the setup. To solve the two ground wire ports not working, we had to use the solder iron to create a modified wire which connected two wire ports into one.

Assembly

Box assembly

-       Our dimensions of the box did not allow the cover of the box to sit into the indents of the box.

-       To solve this, we had to modify how we assembled the walls of the box together. We had to stick 2 of the walls on the inner side of the box and the other 2 on the outside.

Gear placement

-       The main gears had a base plate so we had to made certain adjustments to lift the gear at the impeller higher so the teeth of the impeller would fit in.

-       In addition, the gear connected to the servo did not have any place for it to stand horizontally so to solve this, we simply made a stand for the motor and made it stand vertically.

Leakage

-       When we were first testing the prototype, there was water leaking from the tap due to the tap not being tightly inserted into the hole.

-       To solve it, we simply hot glued the tap to the container to cover up any holes that would cause any leaks.

Presentation



Photodump




6.    Below is my Learning Reflection on the overall Project Development.

Project Development has been both a fun and very tiring experience. Although my team met various challenges such as tight deadlines and coding difficulties along the way, we eventually managed to create a successful prototype. Before this when Mr Chua told us that we will have to create a real prototype I was quite intimidated as it was, I personally have never done something like that before.

Looking back, although I agree that it was as hard it seems, it gave a sense of fulfilment when we were finished with it. Furthermore, by working on this prototype, it has given me many hard skills at my disposal such as CAD drawings, C++ coding with an Arduino board. In addition, this prototyping assignment I felt really honed our skills in those areas. An example of this would be for the Arduino Programming side, we could use AI to help us, but we needed the skills taught to us to tweak the code to do what we need it to do.

To add on, this prototyping assignment really gave me a chance to utilise my teamwork, communication and time management skills and develop my leadership and project management skills. Such skills really helped in this assignment as without such skills, we would not have finished the prototype by the deadline. Such soft skills would come in use when doing internship and my Final Year Project (FYP).

In my opinion, one takeaway from this is that it never hurts to start earlier. As Walt Disney says, “The way to get started is to quit talking and begin doing.” When approached with an extremely large task at hand, you should break up the task into smaller manageable parts and set clear goals.


7.    Conclusion

In essence, the project was a remarkable experience, blending both the intense pressure of deadlines with the enjoyment of problem-solving. I firmly believe that my team and I demonstrated this by consistently delivering 100% effort. As I always say, always put in 100%. When you cry, you cry. When you laugh, you laugh. When you eat, eat like it is your last meal. Even though, the outcome is not what you expect, you know you have done your best and you will have no regrets.

 

This is the end of my time in Chemical Product Design and Development, but it is only the beginning for you. I wish the best of luck and goodbye!!!

 
 
 

Comments


Drop Me a Line, Let Me Know What You Think

Thanks for submitting!

© 2035 by Train of Thoughts. Powered and secured by Wix

bottom of page