Project Development

 1.    Our team Chemical Device

·      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). 

Link it to Wei Ling's Blog: https://cp5070-2022-2b03-group3-yak-wei-ling.blogspot.com/p/project-development.html 


·       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:

 

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

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.

Web Link: https://linuxhint.com/display-potentiometer-output-lcd-arduino/#:~:text=The%20potentiometer%20is%20also%20an,are%20displayed%20on%20the%20LCD

(no words)

(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)

 



(push button configured externally)

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.




Explanation of finalised Code







·       Hero shot for task 4.

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

·       Embed the finalized fusion 360 design files.





                        ·       Documentation for integration.



                              


 


·       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