Kids on the autism spectrum have difficulties with recognizing facial expressions.
Popeye is a game that helps kids on the autism spectrum to differentiate several feelings.
It really matters to me that autistic children find equitable toys that entertain them and for parents to make the learning
journey easier.
I was inspired by:
PANDA expression puzzle,
The cards that help children learn facial expressions,
different youtube games.
The game is simply a box with different shapes of facial expressions. you insert an input that's engraved in a piece of wood. Once I put the wooden input It shows the word engraved on it on the led screen. Then it looks like a simple puzzle. after gathering the proper face pieces together it peeps with a winning sound.
I used fusion 360 CAD software to design the project
INKESCAPE, PHOTPSHOP, ILLSTURATOR, and GRABCAD.
Design process:
Design process always starts with sketching
Let's move to cad, I draw the game parts using sketching tools( rectangles, circles, lines) and then I did some mirroring and trimming
I used Fusion 360 to design the whole project, It's made of 7 2.5D parts. I also used photoshop to design the facial expressions.
The design wasn't complicated so I finished it easily.
then I "extruded" the sketches.
Adding joints feature in Fusion helped me a lot with visualizing the final outcome.
After everything fit together properly and the proportions were okay.
I exported each sketch as a DXF file to import it in Rdwork .rd format.
And now it's ready to be cut.
first sketch using sketching tools (mirror)
Extruding the first schetch
Second sketch using sketching tools (mirror)
Third part.
Trying to check if everything is going well. if I need modification but it went well.
placing the electrical parts in thier place to make sure they will fit after fabrication, After that, I made a rectangle pattern of a circle for the light to come out and the sound played when finished.
I inserted a sketch of the face I drew on PHOTOSHOP on Fusion360 to make sure it will fit the whole body
Expressions design
TBH, I'm not a digital artist so I tried to download those facial expressions from the internet but I didn't find what I wanted. I was a little disappointed, but then I remembered that I have an amazing friend who's a talented artist. I asked Mostafa for help and we found Ismth online that we can help us. Finally, I managed to create cute designs that suit my purpose.
Malky ML1930 (laser cutter)
RDWorks software
Plywood
with the parameters:
For speed cut: speed 150, power 20
For scan: speed 350, power 20
For cut: speed 20, power 60
I moved files from my computer to USB.
then turned the machine on
I downloaded the .rd files I have extracted from RD works and get ready to start the fabrication process on the laser cutting machine.
put the wood on the work plate.
Pressed "Origin".
Pressed "File".
chose my files
checked track frame and worktime preview
pressed run.
I made sure that the wood used for fabrication is enough.
I run the files.
I then added the magnets
I assembled them using screws.
I went with my peer Ahmed Ashmawy for vinyl printing and waited for hours to get it done, but it was worth it
Working on final project was draining and tiring. Me and my peers decided to take a break and went for ice cream at the end of the day and it was really nice.
The software used for the project:
TinkerCad circuits building and simulation online tool
Arduino IDE
The circuit is simply an Arduino Uno and breadboard connected to a 5V adaptor. 3 resistors with a fixed value (330 ohms) on the lower part of the design and one on the side, you put a piece with an (n) value on the side of the design. the LCD shows how the (expression name) is connected to this value and you have to get this value three times to win. when you win the LCD shows a "winner" and the LEDs are on.
Inputs:
- On/off switch to turn on the device
- resistors to read the inputs depending on the pieces (blocks) used by the user to form the face :
Resistor 10KOHM
Action:
- LCD to show the results and actions of the user
- LEDs to show the winning state for the user
Hardware:
Breadboard
Arduino UNO
Software:
- Arduino IDE for coding
- TinkerCAD for simulation
I've chosen 5V adapter as it comes with four types of protection. These include protection from overcurrent, protection from overvoltage, protection from high temperature and protection from short circuits
My little brother was trying to show me that he understands how the project works :D
First, I Started to define the LCD by including the library and defening the serial of the LCD to include 16 columns and 2 rows.
Secondly, I started to setup the pins of the arduino by defining 4 pins for the inputs and 6 for the outputs which will be reflected on the LCD
Third, I defined the variables that will be used for inputs and outputs using the followin naming convention:
- Inputs:
- block(n), where (n) is the number of the block used to construct the face
- blockname for the block that contains the name of the face chosen by the user
- Outputs: led(n), where (n) relates to the output on the LCD
Fourth, I started a series of interactions with the user by showing the piece needed and asking him/her to put the piece and then read the value of the piece using the analogRead function as mentioned in the third point.
Fifth, I started to define the main function by using a series of nested if conditions that compares the input of the analogRead to a predefined values.
The application will check if the input of the blockname is within a certain range, it will check the for the other three pieces to be within the range specified for the chosen face.
If the user placed all pieces correctly, he/she will see a "Winner Winner" on the screen.
Sixth, The code will go on to check other blockname iputs as chosen by the user and use the same logic to show the result to the user
I wired the resistors with the breadboards and started testing the resistors' values with the LCD to check they work, then I added the LEDs to check the whole process and it worked fine as the pictures shows.
Later I had a problem creating a functional conact points. But fortunately and after alot of trial and errors I managed to make it work
Finally, it worked all together but the LCD keeps showing me the first letter from each line, I'm working on it and I hope I can read the whole line soon .
I kept asking Ro2a and Moez "our fab lab specialists" about every step I take and I was also sharing my concerns with them.
Ro2a kept supporting me and suggesting cool stuff. Like the cute circles' pattern to show some light. She also kept testing the resistors and their values with me.
Telling me every day that it's all gonna work helped me a lot.
Moez helped me a lot with the mistakes I made with machines. He helped me demonstrate unit testing to test each component or part of the code individually
Saeed suggested magnets instead of copper for the pieces to be associated in the best way which assures a good reading of the resistance value.
Whenever I got stuck, the first thing I turn to is Google, I start looking for similar topics on forums online and Youtube tutorials. Then, I will ask for my colleagues' help since we all have common experiences and used brainstorming to find solutions.
For example, I had to stop using copper tapes as they didn't work at all, and I had to make research and found out that using copper metal sheets would be better and it worked fine.
As for the problems and pitfalls, I've faced problems with CAD, Coding, and welding and turned to my colleagues as followings:
- I asked Salma for CAD as she's a furniture designer and she taught me how to edit and delete lines on CAD and how to add engraving slots for the copper,
- Also, I've asked Fikry for the code as I had problems with writing the If conditions.
- Finally, Soror Helped me with the welding as I had no prior experience with it and it was helpful.
Mistakes, pitfalls, and challenges to be avoided by others:
- To make sure that all components are available before the start of the project
- To use unit testing to test each component or part of the code individually
- To start writing documentation on the code to help generates the logic
- To create a Flow Chart for the logic
If I had more time, I would add those milestones to my product roadmap:
- Adding MP3 Module to enhance the gamification of the project to be more exciting for kids,
- Building Dynamic Module, that will allow non-programmers to create faces, letters, numbers, and words be more variant for the kids not to lose interest
- To be integrated with Android Module to share the progress of the kids on a mobile application to track their progress