Project Development

 1. Our team chemical device

It is an automated breathalyser with advanced features such as an alarm feature and a lock that can cover the keyhole of a car.

  1. In 2020, 11,654 people died in alcohol-impaired driving traffic deaths — a 14% increase from 2019. These deaths were all preventable (NHTSA, 2019).

  2. About one-third of car crash fatalities in the U.S. involve drunk drivers, according to the NHTSA (Lazarony, L, 2021).

  3. Alcohol-impaired drivers got behind the wheel of a car about 147 million times in 2018, according to the CDC (Lazarony, L, 2021).

From these statistics, we can see that drunk driving is a very serious and deadly issue that needs to be tackled immediately.


Hand sketch of the chemical design:

2. Team planning, allocation and execution

Team members (roles):

Lee Yeung Juen (CEO) You are here

Isabelle (COO) https://isabelleadora.wixsite.com/cp5070-2022-2b04-gro

Mavis Chin (CFO) https://cp5070-2022-2b04-group4-mavis-chin.blogspot.com/

Alvin Chuah (CSO) https://cp5070-2022-2b04-group4-alvin-chuah.blogspot.com/

FINALISED BOM:



Project Title:

Save a breath, save a life

Team members:

Lee Yeung Juen (2122643)

Alvin Chuah Si Kai (2122742)

Mavis Chin Min Hui (2122234)

Isabelle Adora Putri Gunawan (2102649)

Created by:

Lee Yeung Juen (2122643)

Alvin Chuah Si Kai (2122742)

Mavis Chin Min Hui (2122234)

Isabelle Adora Putri Gunawan (2102649)

Date created:

 22/11/22

BILL OF MATERIALS (BOM)

No

Description of item

Supplier
(include hyperlink to the item in website of seller)

quantity

quantity unit

unit price ($)

Total Cost ($)

Available at W319 Lab? (Y/N)

1

Arduino Maker Uno Kit

 SP

 2

pcs

25

50 

N

2

Mouthpiece + tubing

https://shp.ee/qs3g8a6 

 1

 pc

6

6

N

3

Lock for box

https://shp.ee/sbirien 

 1

pc

    3.16

 3.16

N

4

Suction cup

 https://shp.ee/jus9a76 

 1

 pc

 2.56

2.56

N

5

Alcohol sensor

 https://www.walmart.com/ip/MQ-3-Alcohol-Ethanol-Sensor-Module-Gas-Detector-Sensor-for-Arduino-Raspberry-NEW/497230006 

 pc

8.69 

 8.69

 Y

6

Servo

https://sg.cytron.io/c-motor-and-motor-driver/c-dc-motor/c-servo-motor/p-sg90-micro-servo 

 pc

 2.90

 2.90

 Y

7

Clear acrylic 2mm Rectangle/Square - Laser cut

813mmx457mm

 https://www.acrylic.com.sg/on-line-acrylic-cutting/clear-acrylic/ 

2

pc 

5.7 

11.4

 Y

7

3D Printer Filament, 1.75mm Dia, Grey, PLA, 500g

 https://sg.element14.com/multicomp/mc002549/3d-printer-filament-pla-1-75mm/dp/2845496 

0.5

kg

 29.33/1kg

14.67 

Y

Grand Total Cost:

 99.38

 


FINALISED GANTT CHART:





3. Design and Build Process

Part 1: Design and build of cardboard prototype (Done by everyone)

Forming the cardboard prototype


When we were measuring out the dimensions of the base


Trying to fit the servo through our pre-made hole




Measuring out the dimensions of the base


Trying to fit the servo through the hole


Our cut-out base


Mock wiring


Prototype testing





To gauge how large our prototype would be, we created a cardboard base that can hold the breadboard, maker uno and servo. We also made a sample code to test out the MQ3 alcohol sensor.

Part 2: Making the CADD design (Made by ME, Lee Yeung Juen)

Making of the tube:



Create a line using the point spline



Create the tube using a pipe


Making the box:


Sketch a base rectangle with the dimensions 95 mm by 160 mm based on the cardboard prototype.



Extrude the rectangle by 55 mm based on the cardboard prototype to produce a cuboid.


LED lights:


Create 2 cylinders on top of the product



Select the appropriate colours


Creating a lock:




Fillet the two cylinders to from the LED lights




Creating the arm:



Sketch a circle

Extrude the circle by 1cm to form a cylinder



Sketch an arm of 1 cm by 8 cm



Extrude by 0.5 cm 


Sketch a circle of 0.8 cm diameter


Extrude 1 cm


Creating the gate:



Sketch a rectangle of 1 cm by 15 cm 



Extrude 0.5 cm








Sketch a 10 cm by 10 cm square



Extrude -2 cm



Making the USB hole:


Bore a hole through the back of the rectangle


Colouring:



Place the material of your choice for each part of the breathalyser

Creating the animation:


Load up animation



Record the key frames by clicking record and moving the different components around


(Find alternatives to this, stop motion animation is like going to hell and back)


Product (after some serious changes):






Part 3: Design of the mechanism part for 3D printing (done by ME, Lee Yeung Juen and Mavis)



Gate:



Part 4: 3D printing of mechanism part (done by Mavis and I, Lee Yeung Juen)



First, select the file and export it as an STL




Open the STL file on Cura ultimaker and click slice.


Once you are happy with the outcome, start printing on any conveniently set up printer.

 


After you are done, collect your happy product from the heated bed.



Be careful not to make any blunders, however.


Hero shot of 3D print:




Part 5: Design of the box faces for laser cutting (Done by Mavis)




The CADD design was split into individual faces and saved as DXF files for laser cutting.


Part 6: Laser cutting the box faces (Done by Alvin and Isabelle)






The faces were now cut out on a sheet of acrylic and ready for glueing.


Part 7: Programming of the electronics (Done by Isabelle)



const int AOUTpin = A0;

int sensor_value = 0;

int LED_green = 10;

int LED_red = 11;

int Buzzer = 8;


#define NOTE_DS8 4978


// notes in the melody:

int melody[] = {

  NOTE_DS8, NOTE_DS8, NOTE_DS8, NOTE_DS8, NOTE_DS8, NOTE_DS8, NOTE_DS8, NOTE_DS8, NOTE_DS8, NOTE_DS8

};


// note durations: 4 = quarter note, 8 = eighth note, etc.:

int noteDurations[] = {

  4, 4, 4, 4, 4, 4, 4, 4, 4, 4

};



#include <Servo.h>

Servo myservo;  // create servo object to control a servo

int pos = 90;    // variable to store the servo position




Explanation: First, we define and declare the constants and variables that we will use. A0 is defined as ‘AOUTPin’, and we initialise the green, red and buzzer to a pin number.

The sensor value is also initialised to read 0 as an integer number.

We also defined ‘NOTE_DS8’ as the frequency 4978 hz to play in the melody.




void setup (){ 

  Serial.begin(9600); 

  pinMode(LED_green, OUTPUT); 

  pinMode(LED_red, OUTPUT); 

  myservo.attach(9); 

  myservo.write(0); 

 

  // Play a melody at startup 

  for (int thisNote = 0; thisNote < 10; thisNote++) { 

    int noteDuration = 1000 / noteDurations[thisNote]; 

    tone(8, melody[thisNote], noteDuration); 

    int pauseBetweenNotes = noteDuration * 1.30; 

    delay(pauseBetweenNotes); 

    noTone(8); 

  } 

 




Explanation: We first establish the outputs, which are Green LED, Red LED and Servo.

At startup, we play the melody and set the servo position to 0. When we first power on the Arduino, we set the amount of notes to 0 and if it is less than 10, we play a note.

The duration of each note is 1000ms and we also add in a pause between each note.





void loop (){ 

  // Read the analog input from the sensor 

  sensor_value = analogRead(AOUTpin); 

  Serial.print("Recorded value:"); 

  Serial.println(sensor_value); 

 

  if(sensor_value < 700){ 

    // If the sensor value is less than 700, turn on the green LED and move the servo to 180 degrees 

    delay(200); 

    digitalWrite(LED_green, HIGH); 

    digitalWrite(LED_red, LOW); 

    digitalWrite(Buzzer, LOW); 

    myservo.write(180); 

    delay(15); 

  } 




Explanation: After the set up is done, the loop function will run repeatedly until off. In this function,

it reads the analog input from our alcohol sensor and is stored as ‘sensor_value’, whereby the value is printed on the serial monitor.

If the sensor value is below 700, the green LED is turned on, the red LED is off and the servo position will be set to 180 degrees.




else if(sensor_value > 800){ 

    // If the sensor value is greater than 800, turn on the red LED, sound the buzzer, and play a melody 

    digitalWrite(LED_green, LOW); 

    digitalWrite(LED_red, HIGH); 

    digitalWrite(Buzzer, HIGH); 

 

    int melody[] = {NOTE_DS8, NOTE_DS8, NOTE_DS8, NOTE_DS8, NOTE_DS8, NOTE_DS8, NOTE_DS8, NOTE_DS8, NOTE_DS8, NOTE_DS8}; 

    int noteDurations[] = {4, 4, 4, 4, 4, 4, 4, 4, 4, 4}; 

 

    for (int thisNote = 0; thisNote < 10; thisNote++) { 

      int noteDuration = 1000 / noteDurations[thisNote]; 

      tone(8, melody[thisNote], noteDuration); 

      int pauseBetweenNotes = noteDuration * 1.30; 

      delay(pauseBetweenNotes); 

      noTone(8); 

      myservo.write(90); 

      delay(0); 

    } 

  } 

}



Explanation: If the sensor value exceeds 800, Red LED will be turned on, Green LED will be turned off, buzzer will start playing the melody, and servo position will be set to 90.




Above is our wiring and we used zip ties to split up our wiring to their own respective parts. For example, the wires (green & yellow and orange & red) going to the cover of our box are to the Red and Green lights respectively. The red, yellow and grey wires are to the servo on the top box. The orange, yellow and white wires are to our alcohol sensor.Part 8: Integration of parts and electronics (Done by everybody)


To integrate the parts and electronics together, we must perform some hand tooling.




We realised that we made the hole for our servo too small, so we had to manually file it down, taking a very long time.

Afterwards, we had to attach our acrylic sheets together to form our box.





To do this, we need to make use of acrylic glue.

Nitrile gloves were needed as acrylic glue is a very hazardous substance that can send you to the hospital for 3 months.

This was an excruciating experience for me as my hands were shaking and the acrylic sheets kept on sliding off of one another, giving me absolute hell and almost getting me institutionalised.




Afterwards, we realised that our hole was misplaced. After filing our brains out, we were able to barely fit the usb inside.

Epilogue:

After the completion of the integration of parts and electronics, our product was finished.

We made some tweaks and adjustments to the code in order to make the sensor and lock more responsive and secured the tube to the product.

Our hero shot:

Proven functionality:



4. Problems and solutions

The tubing was too long and the user’s breath was not concentrated enough when it came out from the other end of the tube.

The user also has to breath out very long for the sensor to detect the presence of alcohol in their breath.




To solve this, we decided to cut the tube to decrease delivery distance of air from the user’s mouth to the sensor.

We also faced challenges in attaching the lock and hinges onto our product. The screws that came with the lock and hinges were too long for the acrylic.


After agonising attempts at trying to glue the locks, we realised that the glue does not bind to the acrylic and all of our plans have to be scrapped.

And so, we resorted to using velcro as advised by our helpful and caring technical executives.




5. Project Design Files as downloadable files

https://drive.google.com/drive/folders/1n0YuJPGEfWOcfRCZGTegWV-Y-H6t1ZvF?usp=sharing 

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

The activities in this CA have deepened my knowledge in both 3D printing and Fusion 360. In the previous design module ICPD, my only form of contact with Fusion 360 was a very basic design for my egg drop challenge and a small part of my cardboard prototype while my 3D printing knowledge was non-existent.

In this module however, I made myself in charge of completing the CADD design and 3D printing. To complete the CADD design, I had to go online or ask my friends in order to learn how to use the software (I don’t even know how to rotate the models). I also learned how to perform animation with the models using frame by frame stop motion.

This time, I also learned how to operate the 3D printer. On my second 3D printing attempt, I arrived in W3 at 8 am, so I had to set up the printer I wanted to use by myself. From my lecturer, I learned how to choose the proper filament for the printer that wouldn’t stick too hard to the bed. I also learned how to navigate the settings for each of the printers and how to insert the filament. I had to utilise support for my design, so I had to learn from my classmates about selecting the proper one. Tree support is the best one as it takes a shorter time to print and is easier to remove.

Learning these skills would give me a very good foundation in using CADD and Fusion 360. They would definitely allow me to perform better in the Capstone project and become a good asset to my future team as I can transform whatever ideas they come out with into reality.

I also had to look out for infill and adhesion to make my print faster. Since my print was very small, I decided to go for 0% infill for the minimum printing time. Adhesion is not needed as it was a hassle to remove on my first printing attempt.

This project has also taught me project management skills and budgeting. As the CEO, I am the overseer of everything under the heavens and have to make sure everyone commits to their part or else it will be my job to dish out the appropriate punishment. Due to certain restrictions I will mention later, The CFO and I were forced to have a complete overhaul on our plans and become completely frugal. This has taught me that you must be prepared in life in case random events jump out at you and make everything ten times more difficult.

However, I was unable to learn everything about every step we took. Since I was not in charge of the arduino programming and laser cutting, my knowledge for both activities still remained superficial even after the completion of our product. Even so, I believe that I can give myself an opportunity to learn more about them next year during capstone.

Although this CA has taught me a lot and was very satisfying, I cannot say that the experience was entirely pleasant. A large chunk of this project was absolutely harrowing, especially when we were trying to get a laser cutting slot. I was utterly appalled when I saw that every slot in the week for every available FabLab was fully booked for 2 consecutive weeks, I got apprehensive. I was wondering if the class had to resort to paying someone outside to laser cut for us, I had nightmares every day and my last proper sleep was in the distant past.

Alas, a solution came to stay up from 11:59 pm till midnight for the slots to refresh and snag a slot from there. This is unacceptable and very unhealthy for all of us. More must be done to improve the booking system, such as group-based booking to prevent individual members belonging to different groups of different courses from snatching all of the slots.

Another issue we faced was about the BOM. The inclusion of both provided Arduino sets, provided 3D printing filament, a provided sheet of acrylic and any provided sensors into the BOM is utter insanity and leached our budget from a hundred dollars to a mere nine dollars. This defeats the purpose of a budget if more than 90% of it is axed off beyond our control.

The problems we faced in our little escapades have widened our worldview and taught us that life is extremely unpredictable and the future will consume you whole. God can always deal you a bad hand in life anytime and all you can do is accept it. Truly, woe is me, woe is all of us. Probably would not like to try again 2/10.

Comments