Game controller Iteration 1: Make-through
This is my make-through for the week's assignment. Grab a cup of coffee!
PROCESS MAP
BACKGROUND
The project is mainly about making a game controller that can work in two modes
first mode : Manual Mode
The mode works with 5 buttons (Up - down - RIght - Left)
Second Mode : Gesture Mode
The mode works with 2 tilt sensors, one on the left and one on the right.
Cardboard Sketch
The first step in any project is to imagine and sketch the product idea or concept.
So, I started to draw the shape I wanted the game controller to be and I put all the main features of the controller such as the place of the 6 pushbuttons and the tilt sensors.
Then, I started to imagine how to fit all the electronics into it and their places together.
Table of materials
push button round n.o (b165l)
I used 6 Pushbuttons to control Directions (Up - down - right - left) and actions (jump - fire a missiles)
Arduino Leonardo
It is the most suitable board in this case because of it has an advanced feature which is not available in previous boards of Arduino family, which is it directly connects to PC as if it is a HID such as mouse and keyboard. So that we can use Library "Keyboard.h" with it and do a functional output such as game controller.
Tilt sensor
It is responsible for sensing the position of the game controller w.r.t a reference point which is the horizontal orientation of the controller.
Jumper wires
Connection between arduino and the components.
Design on fusion 360: first iteration
Trial #1 (Unsuccessful): Title
Step 1: I started by imagining the whole shape and how it will be and I got inspired by Wii U 2008 by Nintendo and sketched the main features of my enclosure.
Step 2: I started to set up my design requirements such as compact design, ease of use, the way gamer will hold it, and cost.
Step 3: I opened fusion 360 and started to simulate the real shape of my enclosure. I used two modules in my design (Solid parts – Sheet metal) to make it happen. Also I made a cut in my enclosure just to unfold it and here a problem is raised, I didn’t know how to close it after fabrication. So I should have made a cut in a position where there is a mechanical fastener such as T-slot position.
Step 4: After finishing my main features, I started to design living hinge in the cylindrical parts of the enclosure, and here I encountered a problem; living hinge main dimensions were too small which make it so squishy and vulnerable to get broken.
Step 5: I extracted each sketch of these into dxf file.
Problem: The design was bad for assembly because of it is meant to be compact, but it failed to do its job
Solution: Learn some new skills that can help reduce controller size such as designing PCBs and Mixed design.
Trial #2 (Successful): Title
Step 1: I put the main problems in the first trial in front of me and started to think how to solve it. Also tried to optimize my way to solution and drew different routes to my solution and I have chosen the one with the least number of steps which is to increase the dimensions of the borders of my enclosure and discard the compact design requirement for now.
Step 2: I changed the sketch of the borders and I calculated the minimum height needed to fit all the wiring and electronics inside of it.
step 3: I fixed the living hinge and changed it from 1.2 mm spacing between each strip to 1.8 mm.
Step 4: Then I extracted the sketches as DXF files.
Problems on actual prototype
The first photo is showing the wiring problem in my enclosure, which leads to failure of assembly because of size and space issues.
The second photo is showing how squishy the living hinge which leads to its failure.
Potential solutions
Increase borders height so that it can accommodate the whole wiring system.
increase spacing between living hinge strips (1.5 - 1.8 is a recommended range)
Fabrication of the Game controller
Laser cutting technology was used to fabricate the final output of the game controller.
steps:
Extract sketches as DXF files.
Import DXF into Laserworks software.
Set the Cutting configurations such as speed and power (speed: 100 , power: 14).
Upload the files to laser cutter.
Set laser focal length to 0.6cm for better and accurate output.
Define the beginning point (origin) and run the process of fabrication.
OBJECTIVE #2: Electronics
electronics trial#1 (Circuit Logic)
First step was to initialize the direction of each used pin in Arduino board
6 pins as inputs to connect pushbuttons.
2 pins as inputs to connect sensors.
Second step was to apply Logic (Manual Logic)
Reading each pushbutton value and behave in a certain manner such as move up, down, left, right, or fire a missile.
Third step was to apply alternative logic (Gesture Logic)
Reading both values of the tilt sensors and behave according to the readings.
Fig.1
Initialization and setup
Fig.2
Manual Mode Logic
Fig.3
Gesture Mode Logic
Programming Logic
I relied on library called Keyboard.h to manipulate the input signal and make the desired output
steps:
Read the value of each pushbutton on the game controller
Do a function such as go right, left, up, or down depending on which pushbutton is clicked through conditional statement.
Make sure of handling the debouncing problem of the pushbuttons
Assembley
Mounting of arduino board on the chassis
Joining and fixing the enclosure border together
Mounting Top part and joining it with the borders
CONCLUSION
I learnt some new ideas, gain some experience in some new topics and steps of designing and fabricating whole project alone.
What I Learned:
Design for assembly and disassembly and their features
Learning some new software such as Fusion 360 and fabrication software.
Using laser cutter to fabricate some parts
Learning about Arduino Leonardo and what is the difference between it and Arduino UNO.
Defining Problems and analyzing them and developing some innovative solutions to those problems through design thinking steps.
This video shows the controller in operation in manual mode while playing super mario.
Gesture Mode didn't work due to some sensor issues such as sensor can not read the position correctly due to its mechanical design.
and some technical coding issues that is being handled at the moment.