Project Development
1. Our team Chemical Device
In this section, you will briefly describe your team chemical device.
The team chemical device is a breathanalyzer that is used to detect alcohol from the driver’s breath and prevent him from driving if the alcohol level exceeded the limit. The breathanalyzer will be installed on the steering wheel so that the alcohol sensor can measure the alcohol level from the driver’s breath as he gets into the car.
The breathanalyzer will be able to help to reduce the number of drunk driving accidents happening around the world. It will serve as a reminder to let the driver knows that he is not suitable for driving.
What it is. What problems will the chemical device solve? And provide a hand sketch of the chemical device.
To show how the device works, different scenarios will be used to explain how the chemical device solve the problem.
Scenario 1 | The driver is not drunk so he is safe to drive. He can start the car engine by pressing the button. The alarms will not be triggered. |
Scenario 2 | The driver is drunk, so he is not safe to drive. When he presses the button, the car engine will not start. Alarms will be triggered. |
Scenario 3 | The driver is not drunk so he is safe to drive. He can start the car engine by pressing the button. Alarms will not be triggered. However, he decides to drink alcohol while driving. Alarms will be triggered but the car engine will not stop due to safety concerns. |
As seen from the scenarios, whenever the driver is drunk and he wants to start the engine, the car engine will not be able to start because it is not safe for him to drive. However, supposed that the driver only starts drinking when the car engine is running, the car engine will not stop but there will be alarms activated to alert other road drivers that this driver is drunk driving.
2. Team Planning, allocation, and execution
In this section, list down your team member's name.
Show the finalized BOM (BILL OF MATERIALS) table.
Show the finalized Gantt chart (planned and actual) and the task allocation for each team member.
3. Design and Build Process
In this section, provide documentation of the design and build process.
Part 1. Design and Build of Breathanalyzer Frame (done by Steward & Kit).
Link it to Steward’s blog
Click HERE to access the design and building process of Breathanalyzer Frame
Part 2. Design and Build of the steering wheel (done by Kit & Nander).
Link to Kit’s Blog
Click HERE to access the design and building process of steering wheel
Part 3. Arduino Programming (done by Steward & Nander).
· Documentation for task 3.
Objective:
Arduino Programming is used to build our circuit so that the breathanalyzer can operate the way we wanted. Before starting Arduino Programming, we need to be clear of the objective of Arduino Programming. Refer to the table below to check out what we hope to achieve with Arduino Programming.
Scenario | Breath Alcohol Content (BAC) | Car Engine | Alarms (light & buzzer) |
1 | Normal | Can start | Not Activated |
2 | Exceeds limit | Cannot start | Activated |
3 | Before Driving: Normal While Driving: Exceeds limit (consumes alcohol while driving) | Already running | Activated |
Note: BAC will be measured using MQ-3 sensor; LCD will be used to show the Continuous Servo will be used to represent car engine; LEDs lights and the built-in buzzer will be used to represent alarms
Research:
A good start to guide us on the programming is to find similar sketches online that could potentially help us meet our objective. After researching, we did find one sketch circuit on Tinkercad. Below show the simulation of the circuit on Tinkercad.
As seen from the sketch, when there is no gas nearby, the gas sensor will not be able to sense any gas, so LCD shows that it is safe for the driver to drive. The driving of car is represented by the DC motor spinning.
When there is gas nearby and its level has exceeded the threshold of gas sensor, the buzzer is activated, and LCD shows “Alcohol Detected” so it is not safe for driver to drive. The stopping of the car is represented when DC motor stopped spinning.
1st Assembling:
· Testing Codes from Tinkercad:
For the first assembling, we decided to try out the codes found on Tinkercad. Though the codes managed to be uploaded successfully to the Arduino Software, it did not reflect on the actual circuit.
We accessed where could have gone wrong and came up with the conclusion that the wire connection of LCD is different from the Tinkercad.
After realizing this sketch wouldn’t work, we decided to figure out other ways to make it work.
· Testing out MQ-3 Alcohol Sensor, LEDs & Buzzer (WORKING)
We decided to search for more resources online that could help us. We found a YouTube video that is relevant to our objective, so we decided to try out.
Video link: https://youtu.be/f6uldsZ7SAI
By following this setup, we were able to make our MQ-3 Alcohol Sensor, LEDs & Buzzer working. However, we did not copy the code provided completely because the objective might be similar yet different. For example, we added 2 LEDs; one red and one green. Red LED will light up when alcohol level has exceeded the limit set and Green LED will light up when alcohol level is normal. Also, for the buzzer, the video used an actual buzzer but we used built-in buzzer from MAKER UNO so we changed the code accordingly to help us meet the objective.
· Testing out 1602 LCD (NOT WORKING)
It was a hard time making LCD work as we referred to many resources to test out the LCD. The problem met is that LCD managed to light up, but no words were shown on the LCD. We decided to try it the next time as the time was up.
2nd Assembling:
· Testing out 1602 LCD again (WORKING)
For the 2nd Assembling, we planned to make LCD work so that words can be seen on the LCD. This time, we searched more videos that could help us solve the problem. We did find one video that helped us make it work.
Video link: https://youtu.be/q9YC_GVHy5A
#include<LiquidCrystal_I2C.h>
We had a hard time trying to understand where went wrong but we could not find it. Luckily, there is another in the class that is using the same LCD and they managed to make it work. Thus, we asked their help to guide us how to add the library.
After that, we managed to make our LCD work with the words printed on LCD. Then, we combined what worked in 1st Assembling with the LCD.
By the end, what we achieved was:
1. When the alcohol level is normal, green LED will light up, the LCD will show “Safe to Drive” and buzzer will not be triggered.
2. When the alcohol level exceeded the limit, red LED will light up, the LCD will show “Alcohol Detected”.
3rd Assembling:
· Testing out Continuous Servo Motor (NOT WORKING)
For the 3rd Assembling, our goal is to make the continuous servo to work. Continuous servo motor is used to represent the starting of car engine. Though we managed to make the servo spin, the action is not what we desired. The purpose of using servo is to show that:
Scenario | Breath Alcohol Content (BAC) | Car Engine (Servo) | Alarms (light & buzzer) |
1 | Normal | Spinning | Not Activated |
2 | Exceeds limit | Not spinning | Activated |
3 | Before Driving: Normal While Driving: Exceeds limit (consumes alcohol while driving) | Already spinning | Activated |
However, after trying out various codes for servo, the servo just kept spinning continuously as the button is not working. The whole time we were trying to figure out but it did not manage to work. Luckily, one of the groups is also using continuously servo and they were also trying to programme their servo with button so we asked for the codes and decided to try it the next time.
4th Assembling:
· Testing out LCD & Continuous Servo Motor (WORKING)
Though our LCD is working, we wanted to add extra information inside the LCD. That is to show the value of alcohol level as MQ-3 alcohol sensed it. We found a sketch to convert the unit of alcohol level to ppm or mg/L online.
Link: https://www.teachmemicro.com/mq-3-alcohol-sensor/
By following this resource, we improvised our own so that the unit is in mg/L. After that, we print the value to LCD. After uploading the codes successfully, the value shows on the LCD screen.
Next is to make the continuous servo works, we tried out the codes from another group and the servo works with the button. However, there is a problem as the servo does not work accordingly for the 3rd scenario we planned to do. We solved it by adding the else function and detaching the servo.
After everything is working, we tested out the three scenarios we hoped to achieve and everything is working.
Explanation on Final Code:
First Assembling |
Second Assembling |
Third Assembling |
Fourth Assembling |
Part 4. Integration of all parts and electronics (done by everyone)
Embed the finalized fusion 360 design files.
End-Product |
4. Problems and solutions
In this section describe the problems encountered in the design and build process and how the team solved them.
Problems | Solutions |
Planning of chemical device | Getting components that are not available in school was part of the issue, we searched online for extra parts. We needed to contact the supplier from overseas in order to obtain parts like the filter.
|
Steering wheel model | During the discussion, we wanted to 3D print the steering wheel, but the time taken to bring the model of the life-size steering wheel would take way too long. We had come up with a solution, we decided to use laser cutting as an alternative to 3D printing. Since laser cutting is only a 2D shaped object and it does not look 3D, we agreed on making multiple layers of the steering wheel of different sizes so that the steering wheel looks 3D. Moreover, we had also used a pin to hold the layers together instead of using superglue/hot glue.
|
Arduino programming | The key problem with the Arduino programming is that one the programmable button is pressed, the sensor does not measure alcohol content anymore, due to our lack of knowledge in Arduino, we were not able to figure out what was wrong. After doing our research, the solution is to use the “while” function. While the servo is rotating we programme the sensor to continue reading alcohol levels.
|
Fusion360 design | We used the hinge that we learned from our 3D printing sessions to allow us open our chemical device. Moreover, we also design the snap-fit to allow each of our chemical device parts to fit onto one another like lego parts, hence we do not need to use super glue/hot glue. Of course, if our snap fit does not work, we are still open to using glue as an alternative solution.
Due to the long duration of printing, we decided to increase the print speed and adjusted other print settings to shorten the duration. However, the trade-off is that the print quality was really bad, so the snap-fit that was designed earlier did not fit at all. So, we had to improvise, and we decided to use hot glue to join the parts together.
|
3D printing time/Cura | After designing, we realized that the time taken for the printing of our chemical product is around 25 hours and the maximum time that we can book the 3D printer for is 4h.
We changed the entire device design and made some tweaks to it. We change the length and height slightly, making it slightly different from our original design. Moreover, we also changed the infill percentage to 10%, to ensure that the 3D printer takes lesser time to print.
Apart from changing the designs, we split our chemical device into 3 main parts. Hence instead of spending 25h to print our chemical device, we can use 2 or more 3D printers to print each part of our chemical device and each respective part would take significantly lesser time to print, about 3-5h per part. |
5. Project Design Files as downloadable files
In this section, provide all the design files (Fusion360 files, .dxf files, .stl files, arduino programs files) as downloadable files. You upload these files in onedrive or google drive of your personal account. Each person must have these files. Always check that the links to download the files are working.
Click HERE to access the downloadable files such as f3d, Dxf, stl and Arduino programs files
6. Reflection
For this project, we did a lot of things such as designing prototype using CAD Fusion360 and printing it out using 3D printer and laser cutting the steering wheel. Not only that, but we also used what we have learnt from Arduino Programming tutorials and applied it in this project. Basically, this project tests us on all the technical skills we have learnt from ICPD and CPDD. We would say it is not easy to build a breathanalyzer in a short semester because it is our first time building a smart device and we feel puzzled from time to time as things did not work out the way we wanted.
Nonetheless, what we could do to tackle the challenges is to go back to the lecture notes, practices, and blogs where we have documented everything we have gone through. For example, during laser cutting, we forgot what the setting is for cutting and engraving so we referred to our blog and managed to do it smoothly. As for the Arduino programming, what we learnt in tutorial is not sufficient to meet our objective so what we did was to do a lot of research and find resources and videos that could potentially help us to make our breathanalyzer works. We tried the codes on our circuit and see if it works, if not we improvise the codes so that it meets the objective. We only managed to make our Arduino Programming work after the fourth time of trying it. What we learned from this experience is that it is important to have growth mindset and perseverance because we would not have come this far without that mindset. When met with challenges, instead of giving up, we always try again and encourage one another that it can work.
When doing this project, we always try to do it face to face with minimal online meeting as we find doing face to face more efficient. As we know that the school curriculum is very tight, we treasure the time where we met in school for CPDD and practical session as this is the only time where we can really make big progress with all the facilities available. For every class or practical session, we always set a goal to finish by the end of the day so that things are going according to our plan.
In conclusion, even though we learned a lot of technical skills, we also learned a lot of soft skills such as communication. Communication is key and, in our team, we respect and listen to one another opinion so that no one is left out. During the process, we also find out about the working style of each member, so we know the strength and weakness of one another. Thus, we always try to help with one another weaknesses. For example, steward is better at programming, so he takes in charge of programming. Kit is better at designing and sketching so he did the drawings and I help out with researching and editing videos. We are confident that our skills will help us go through the final year capstone project.
Comments
Post a Comment