Final Project Journal
Project Ideation
1- Tell us about the idea of your project. Why do you care about this? What were you inspired by? Include images and videos of similar projects
As an aunt to four kids, I've noticed how phones grab their attention more than anything else during family gatherings. To combat this, I came up with the idea of creating an interactive board game that will engage and bond my three nephews and niece. The game is designed to be played on a central board with each family member occupying one corner. The objective is to repeat a sequence of colors created by one of the family members by quickly pressing buttons on the board. The game is rotated between family members, with each person taking turns to create a specific sequence for others to repeat.
Mirroring is a powerful technique used in psychology to create a deep connection between people. By engaging in the game and repeating each other's sequences, family members will naturally mirror each other's movements, creating a deeper connection and strengthening their bonds. The game is enhanced with buzzer sounds and LED lights, making it more interactive and entertaining. This game offers a unique opportunity for families to bond over a shared experience, working together to overcome challenges and create lasting memories.
Link to similar projects:
Project Construction
2- Explain the CAD process of your project. How did you use the software to design your project? (List the softwares/tools/materials...etc that you used)
How this project was made?
Software programs:
ThinkerCad to build and simulate the circuit.
Arduino IDE for coding.
Fusion 360 to design the shape and export DXF for laser cut.
LaserWorks to make the DXF file readable for the laser cut machine and set cutting parameters.
Electric Components: to build the actual circuit designed on ThinkerCad.
Jumpers.
Breadboard.
Arduino Uno Board.
9-Volt Adapter.
LEDs in three different colours.
7-Segment Display (nice-to-have-feature).
SD Card Module (nice-to-have-feature).
12 Push Buttons.
LCD Screen.
Materials, Tools and Machines used:
Three MM Plywood to build the shape.
BRM Laser Machine to implement the design.
Acrylic rings around the push buttons.
Screws, nuts and tools to assemble the parts together.
How did I used the software to design the project?
I started by creating a separate component for each part of the design. This allowed me to easily make adjustments on each component and to keep track of when a design feature was added, making the overall design more organized.
To create a fully defined sketch on Fusion 360, I had to add dimensions and constraints to all elements in the sketch.
To ensure precision and avoid errors in dimension, I began by constructing the base and four sides of the box, and then projected the top shell onto the top of the four sides for a seamless fit.
It was time to turn my 2D sketches into 3D models, so I extruded each part into a solid shape with a thickness of three millimeters.
Using the "joint" command in the assembly menu proved to be highly beneficial as it allowed me to visualize how the design would be assembled prior to cutting the sheet material. First selection will be the part that moves to the second selected part.
To incorporate the electronic components into my design, I began by importing the specific components into the file and positioning them exactly where they would be placed in the final product.
From there, I projected the curves of the holes needed for the components and extruded them to accommodate screws or allow space for wires, ensuring a seamless integration of electronics into the final product.
After confirming that the parts fit together and that I had a clear plan for mounting each component, my next step was to prepare files for the laser cutting machine. I saved each sketch as a separate DXF file and then imported them into Laserworks to begin the cutting process and assembly of the final product.
creating a fully defined sketch for each part on a separate component (2D)
extruding parts and joining them together (3D)
mounting components and finalizing design
3- Explain the fabrication process of your project. How did you use the machine to fabricate your project? (List the softwares/tools/materials...etc that you used)
laser-cut files on Laserworks software
laser power and speed used to cut wood and acrylic
The first step was cutting the base part.
Then I added the right side to check the clearance.
To ensure a nice fit, I assembled the sides together without attaching the screws
Once all parts were assembled together, I proceeded to mount the electronics onto the wooden model.
The holes on the panel did not perfectly match the AC socket and the USB cable, so I had to make some adjustments.
I had to measure the holes again with a caliper before increasing their size.
To ensure accuracy, I used a cardboard as a reference point to position the piece in the exact same place it was in when I made the first cut, before cutting it again.
I wired the USB cable to ensure that the measurements were correct, and it came out like a perfect fit.
After confirming the fit with the USB cable, I proceeded to attach the screws and assemble the remaining parts.
I conducted a few tests using cardboard to design a frame that could be used to mount the breadboard onto the base.
Once completed, the wood frame provided excellent stability to the breadboard.
The fully assembled parts were put together, including the top piece. At this point, I was ready to attach each component to the top panel.
Since I could only find red push buttons at the store, I had to add colorful rings to differentiate each button and give them a specific label according to their color, as the game required multiple colors.
After adding colorful rings to differentiate each button and give them a specific label, I proceeded to attach LEDs that matched their respective colors.
Before closing the shape with the top shell, I attached the screen and completed the wiring.
After completing the assembly and wiring of all the components, I ended up with a fully functional game ready for a challenge!
Project Electronics & Power Management
4- Describe your electronic circuit. What are the input and action components? What is the function of each? How do the components integrate together to form your smart system? (List the softwares/tools/components...etc that you used)
The electronic circuit is designed with an Arduino Uno board as the main controller, powered by a 9-volt adapter. The circuit consists of input components, including 6 push buttons (connected to pins 2, 3, 4, 5, 6, and 7), and output components, including 6 LEDs in three different colors (green, blue, and red) (connected to pins 8, 9, 10, 11, 12, and 13), and a buzzer (connected to pin 1) for providing feedback. The circuit is constructed on a breadboard using jumpers to connect the different components. An LCD screen is also integrated with the circuit and controlled by the LiquidCrystal_I2C library to display the color of the LED that is currently lit.
The input components of the circuit are the 6 push buttons, which are used to create specific sequences of colors for other users to repeat. The output components of the circuit are the 6 LEDs and buzzer, which provide feedback and signals to the players. The game is programmed using the Arduino Integrated Development Environment (IDE), which provides a platform for writing, compiling, and uploading code to the Arduino board.
5- What is your power source? How did you select the suitable power source for your project? (List the softwares/tools/components...etc that you used)
List of the components used to build the game:
Jumpers.
Breadboard.
Arduino Uno Board.
9-Volt Adapter.
LEDs in three different colours.
7-Segment Display (nice-to-have-feature).
SD Card Module (nice-to-have-feature).
12 Push Buttons.
LCD Screen.
Based on the components used in the project, the suitable power source is a 9-volt adapter, which is used to power the Arduino Uno board. This power source provides a stable and reliable voltage for the electronic components to function properly.
To select the suitable power source, the voltage requirements of each component were considered. The Arduino Uno board requires a power supply of 6-20 volts, and a 9-volt adapter was chosen to provide the necessary voltage for the board. The LEDs and push buttons also require a voltage of around 5 volts, which is provided by the Arduino board.
In addition, various software and tools were used in the project, including the Arduino Integrated Development Environment (IDE) for programming the game code, the LiquidCrystal_I2C library for controlling the LCD screen, and jumper wires for connecting the different components on the breadboard. The breadboard was also used to construct the circuit and provide a platform for prototyping and testing the project.
Project Programming
6- Describe the code of your project. How did you program each function of the project?
This code is for controlling six push buttons and six LEDs using an Arduino board. The code also controls a buzzer and an LCD display.
The first few lines of the code include two libraries: the Wire.h library for I2C communication protocol and the LiquidCrystal_I2C library for controlling an LCD display via I2C.
The next section of the code defines variables for the pins that the LEDs and push buttons are connected to. These variables are used later in the code to set the pins as inputs or outputs and to read or write to them.
The next section of the code defines the pin for the buzzer and creates an instance of the LiquidCrystal_I2C library. In the setup function, the pins are initialized as inputs or outputs using the pinMode function, and the LCD display is started and cleared.
This line creates an instance of the LiquidCrystal_I2C library with the I2C address of the LCD display, and the number of columns and rows.
In the loop function, the code checks for button presses using the digitalRead function. If a button is pressed, the corresponding LED is turned on, the LCD display is updated with the name of the LED, and a tone is played on the buzzer. The tone function generates a square wave at a given frequency, and the noTone function turns off the tone. The delay function is used to pause the program for a specified amount of time.
After checking for button presses, the code turns off all LEDs using the digitalWrite function.
The code will loop indefinitely, checking for button presses and turning on the corresponding LED until the power is turned off or the program is reset.
Project Integration & Testing
7- Demonstrate with text and visuals how did you integrate the project’s modules together? What are the testing results? (Include a Demo video separately, showing a proof of functionality)
Steps of the integration:
To integrate the project's modules, I had to connect the hardware components, uploaded the code to the microcontroller, and ensured that the code is functioning as expected.
In this project, the modules are the LED lights, push buttons, buzzer, and LCD display. To connect the components, I had to follow the pin configuration mentioned in the code. I had to connect the LED lights to their corresponding pins, the push buttons to their corresponding pins with pull-up resistors, the buzzer to the analog pin, and the LCD display using the I2C protocol.
Once the hardware connections are made, I uploaded the code to the microcontroller using the Arduino IDE. After the code is uploaded, the microcontroller should start functioning, and I was able to see the LED lights, buzzer, and LCD display working.
This video demonstrates the project's functionality, showcasing how the push buttons control the LED lights, buzzer, and LCD display. It also shows how all the LED lights turn off when all push buttons are released.
Sharing & Collaboration
8- Did you ask for feedback? What are the ideas that others have contributed or suggested? What was someone else’s idea that you built upon? How did you help your peers? How did your peers help you?
@Mokhtar you have a unique set of qualities that are rarely found in one person. You are a tech geek, have an exceptional sarcastic sense of humor, and are a tea addict. Without your help, I wouldn't have been able to submit my final project and overcome the challenges I faced in wiring and programming the components. Thank you for opening my eyes to endless resources to find missing information, and what's even more inspiring is that you motivated me to dream again and keep fighting. I wish you nothing but the best in your career, and I am confident that we will collaborate on more projects in the future.
@Menna thank you for always bringing a good mood to the session and for your constructive feedback, encouragements, and deep knowledge. I think you are a super talented instructor, and this career is exactly where you are meant to be.
@Abdalrahman thanks for always being helpful and available to answer any questions on Slack. I appreciate your support in my final project, and without your advice, I would not have been able to acquire the missing components for my project.
Overcoming Challenges
9- When you got stuck, what/who did you turn to? At what point did you have to pause to research or learn more before moving on? What are some mistakes, pitfalls, or challenges that others can avoid if they were doing this project?
Getting the correct clearance for the electronic components was a significant challenge, and I had to re-cut several parts using the cardboard reference to avoid replacing them.
Despite this, I was able to increase the holes in the existing parts and successfully overcome the challenge.
Future Work
10- If you had more time, what is one thing you would change/ Do next in your project?
To enhance the functionality of my project, I will add some nice-to-have features, including a 7-segment display and an SD card module.
Additionally, I will work on improving the overall design of the project to make it more user-friendly.