Project Development
·
In this section, I will briefly describe my team chemical
device.
Our team chemical device is a Breathanalyzer.
It is used to prevent people who are drunk from driving. The device is
connected to the steering wheel of the vehicle for ease of measuring. This will
be able to reduce the number of accidents on the road caused by drunk driving.
·
What it is. What problems will the chemical device solve?
The Breathanalyser can also be called as a
alcohol sensor. To show how the breathanalyzer works, below are the scenarios that
the device can solve the problem:
|
Scenario |
Sensor Detect |
LED |
Buzzer |
Steering
Wheel |
|
1 |
Not Drunk |
Green |
Off |
Can Move |
|
2 |
Had a beer |
Green |
Off |
Can Move |
|
3 |
Drunk |
Red |
On |
Can’t Move |
As seen from the table, when driver is ‘Drunk’,
the Red LED and Buzzer will be activated, while the steering wheel will be ‘locked’.
When driver is ‘Not Drunk’ or ‘Had a Beer’, Green LED will light up, buzzer is
deactivated, and steering wheel can move.
·
Below is the hand sketch of the chemical device.
1. 2. Team Planning, allocation,
and execution
·
In this section, I will list down my team member's name and
their respective roles (CEO, CFO, COO, CSO)
· I will show the finalized BOM (BILL OF MATERIALS) table.
·
I will show the finalized Gantt chart (planned and actual)
and the tasks allocation for each team member.
1.
3. Design and Build Process
In this section, I will provide documentation of the design and
build process.
Part 1. Design and Build of Breath analyser container (done by Ethan & Kallysa).
Link it to Ethan's Blog: https://ethanwee21.wixsite.com/cp5065-2022-2a03-eth/post/project-development-blog-entry
Part 2. Design and Build of Gear and Steering wheel (done by Ethan & Kallysa)
Link it to Kallysa's Blog: https://cp5070-2022-2b03-group3-kallysa.blogspot.com/p/design-of-experiment.html
Part 3. Programming of motor and LCD (done by Jing Yang & Wei Ling).
·
Documentation for task 4.
Planning
Before we start to programme, we should know what we exactly want to build and what we want our Breathalyzer to do. This initial planning phase will make it clearer of the action to be taken, hence here is how we want our chemical device to work:
|
Sensor Detect |
LED |
Buzzer |
Steering Wheel |
|
|
1 |
Not Drunk |
Green |
Off |
Can
Move |
|
2 |
Had a beer |
Green |
Off |
Can
Move |
|
3 |
Drunk |
Red |
On |
Can’t
Move |
Materials:
MQ3 Alcohol sensor
Arduino board
Mini momentary push button
LCD screen
2.2k ohm resistor
Breadboard
Female-Male jumper wires
Male-Male jumper wires
360 Continuous servo
Red/Green LED
Wire circuit:
1st build process and
troubleshooting.
We try to assemble the MQ3 Arduino
alcohol sensor and upload the code we found to the Arduino board. The result
was not what we expected as the LCD lights up, but the words were not showing
on it.
1st troubleshoot- we did some research and found a YouTube video that help us set up
a communication to the LCD. However, after #include <LiquidCrystal_I2C.h>,
no words still show up.
Video link: https://www.youtube.com/watch?v=q9YC_GVHy5A
2nd troubleshoot- we then do some researching and found a link that help us. It
turns out that the potentiometer at the back controls the contrast of words on
the LCD.
(have words)
2nd build process-
Testing LED and built-in Buzzer.
After making sure the LCD is able to
display words, and the MQ3 sensor is working, we move on to work on the LED and
Buzzer. For this part, we have add green and
red LED. We programmed it such that Green LED lights up when driver is ‘sober’ or ‘had
a beer’, but Red LED lights up when driver is
drunk. The buzzer was also integrated when Red LED lights up.
The circuit was designed with the LED,
and 2.2k ohm resistor so as to limit the
current flowing..
3rd build process- configuring
an external push button.
Since we have a built-in button as an input
pullup written in the code initially, it will be hard for users to press the
button on the Arduino board as its small and unreachable when it’s placed in
the casing of the device. So, we thought of configuring an external push button
wired from the breadboard.
(using the push button configured on
Arduino board)
4th build process-
servo motor.
In this build process phase, we want to
assemble our servo motor. Our initial plan was to control the start/stop of
steering wheel and not the engine, hence we use a rack and pinion, and that the
servo is attach to the rack. So, when driver is ‘Drunk’ the rack will stay at
position 2, steering wheel can’t move. But when the driver is ‘Not Drunk’ the
rack will stay at position 1, steering wheel can move.
We tried to code it and found that we
can’t make the servo move from 0 to 90 degree (pos1 to pos2), as it just keeps on going. Furthermore,
the 0-degree position keeps on changing or is not fixed. After researching, we
found that our senior’s also experience the same kind of problem as well. We
also found out that a continuous servo only controls the speed and rotational
direction of the shaft only and that it spins continuously.
3rd troubleshoot- with this knowledge, we change our way we want our device to work, so we represent the car engine as a gear that is attach onto the servo. Hence, below is our New Scenarios:
|
Scenario |
Sensor Detect |
LED |
Buzzer |
Car
Engine |
|
1 |
Not Drunk |
Green |
Off |
Running |
|
2 |
Had a beer |
Green |
Off |
Running |
|
3 |
Drunk |
Red |
On |
Not running |
Remaining troubleshoots
4th troubleshoot- our measurement
value for the alcohol sensor was quite inaccurate, hence we resort to this as
our last troubleshooting after the rest of the codes were tidied up and
finished. Our alcohol sensor gives us values in terms of ppm. Initially, the sensor
will either give us a value that always says we are ‘drunk’ or ‘sober’. We test
it out with a different code, to check if the sensor/hardware is the problem of
the inaccurate measurements. This code enables us to see the ppm concentrations.
Link to code for MQ3 sensor: https://lastminuteengineers.com/mq3-alcohol-sensor-arduino-tutorial/
Turns out, it was not the hardware, but
our codes which is the root problem. After going through our codes, we try to
experiment a little and tried to initialise the measurements=0. After testing
the new code, our measurements were now more accurate.
Calibration:
Base value is determined when the
sensor reading in from surrounding air.
Threshold value for drunk was determine
by bring the sensor very close to 70% base alcohol solution.
Any intermediate value between the base and
the threshold will means that the driver has some beer, but the amount is
within the acceptable range.
·
Part
5. Integration of all parts and electronics (done by_All_)
·
Embed the finalized fusion 360
design files.
·
Hero shot for integration.
1.
Problems and solutions
In this section I will describe the problems encountered in the
design and build process and how the team solved them.
·
Problem 1 and how we solved it
Problem 1: No place for wires to go
Initially, the platform would have been a normal rectangle piece to be placed on the hinges to support the LCD screen and alcohol sensor however, we realized that the wires of said LCD screen and alcohol sensor were too long and messy making the placement of the LCD screen and alcohol sensor difficult as the wires would take too much space.
To combat this setback, we came up with an idea to have a hole in the platform where it wasn't supporting anything to allow the wires to flow out and it would also keep them tidy
·
Problem 2 and how we solved it
Problem 2: The container frame is too big
The container I had designed had proven to be too big for the 3D printer, to combat this issue I decreased the length of the container while allowing the breadth to stay the same. Initially, my dimensions were 17cm by 17cm by 4cm however I changed the breadth from 17cm to 15.5cm to fit in the dimensions. However, in the end, I decided not to use 3D printing for the main container as it would take very long, and instead use laser cutting.
·
Problem 3 and how we solved it
Problem 3: The container has no cover
This was a very grave mistake as It had slipped my mind that we had no way of covering the container as it only had a top and sides. However, after brainstorming the group decided to use the current sides (17cm by 15.5cm) for the container while the face will be paired with a new group of sides whose dimensions are 18cm by 16.5cm, we also laser cut a bottom piece to be paired with the old sides. The bottom piece and old sides will make up the bottom container while the face and the new sides will make up the upper cover. Combining the bigger upper cover with the bottom container will keep all the pieces in place and the result will be a breathalyzer with no loose parts.
·
Problem 4 and how we solved it
Problem 4: Tactile switch cannot be connected
I acquired a tactile switch for us to use as a button, however, we didn't realize that it came with a downside. It couldn't be connected, it had to be soldered on as It was not an Arduino piece. After this information had come to my knowledge, Ethan quickly brushed up on my soldering skills and headed to Makerspace to solder the pieces.
2.
Project Design Files as
downloadable files
In this section,
I will provide all the design files (Fusion360 files, .dxf files, .stl files,
arduino programs files) as downloadable files.
(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.)
https://drive.google.com/drive/folders/18B0dFPW7tG4uGtQFwbtgfEqaOj3QhsdS
3. Below is my Learning
Reflection on the overall Project Development.
In this project, we undertook several tasks including
using CAD Fusion360 to design a prototype, printing it out using a 3D printer,
and laser cutting the steering wheel. We also applied the Arduino programming
skills we learned from ICPD and CPDD tutorials to the project. This project
served as a test of all the technical skills we had acquired. Building a
breathalyzer in a short semester was not an easy task as it was our first time
building a smart device, and we faced several challenges along the way. To overcome these challenges, we referred to
our lecture notes, practices, and blogs where we had documented everything we
had learned. For instance, we did extensive research when we found that
the Arduino programming tutorials were insufficient. We also tried different
codes until we achieved our project objectives. We learned that having a growth
mindset and perseverance were crucial in achieving our goals. To maximize our productivity, we preferred
face-to-face meetings over online ones, and we set goals to finish each class
or practical session on time. We also discovered each other's strengths and
weaknesses and collaborated accordingly. We respected each other's opinions and
communicated effectively. Overall, we
learned many technical and soft skills, such as communication, which will help
us in our future projects. Despite the challenges we faced, the project was a
fun and fruitful experience, and we are confident that our skills will help us
in our final year capstone project.
















Comments
Post a Comment