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.

WhatsApp Image 2022-02-14 at 4.11.23 PM.jpeg

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.

B165L-RED-1-300x300.jpg
Leonard.jfif
Tilt sensor.jpg

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.

Capture2.PNG
Living Hinge.PNG

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)


wiring problems.jpeg
WhatsApp Image 2022-02-01 at 10.51.38 PM.jpeg

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.

Laser cutting pics.PNG
WhatsApp Video 2022-02-12 at 3.10.29 AM.mp4

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.

joystick_schematic_bb.png
Initalization and set up.PNG

Fig.1

Initialization and setup

Manual mode logic.PNG

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

WhatsApp Image 2022-02-14 at 9.02.56 PM.jpeg


WhatsApp Image 2022-02-14 at 9.02.55 PM (1).jpeg

Joining and fixing the enclosure border together

WhatsApp Image 2022-02-14 at 9.02.55 PM.jpeg

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.

WhatsApp Video 2022-01-19 at 4.40.02 PM.mp4

Manual mode in Mario