Introduction: Gamer Glasses

I have always been fascinated by gimmicky technology like the google glasses. Smart glasses sometimes seems really useful and when you think about they seem a lot less usefull. Now I really like trying gimmicky technology, however smart glasses are incredibly expensive. So I wanted to try and make my own, but instead of using it for things like work, I wanted to play games on it.

I also wanted to make a controller for this. The glasses alone work perfectly fine with most game controllers, so If you just want to make the glasses and not the controller that will work.


Having used Arduino's before i wanted to try 2 things I have never used before. First I used a Raspberry Pi because it fits the project better. Second I have 3D printed a lot, but never made my own model. I used fusion 360 for making the model.

Attachments

Supplies

Glasses:

  1. 1 Raspberry Pi zero 2 w
  2. 1 Waveshare 1.54 inch IPS-TFT-LCD Display - 240*240 Pixels - SPI
  3. 8 male to female cables
  4. 1 mirror (I used 53mmx49mm with a thickness of 3 mm, I would recommend a thinner mirror)
  5. 1 PET film (I used a piece of around 46x46mm with a thickness of 0.5mm. The lower the thickness the better)
  6. 2 2.5mm screws and 3 3mm screws
  7. 1 Pocket magnifier
  8. 1 Powerbank
  9. 1 micro usb to usb-a cable
  10. A head strap (I used one from a samsung gear vr 2)
  11. Glasses (This project was made to fit my glasses with temples that have a thickness of 1.8mm. This project is not made to be used without glasses, but with a good headstrap it can work)
  12. Micro SD card


Controller:

  1. 1 Arduino uno
  2. 1 usb-a to usb-b cable with a length of 1 m
  3. 10 13*12*7.3mm tactile pusbuttons (with 8 colored caps)
  4. 2 16 mm buttons
  5. 1 PS2 Joystick
  6. 1 Protoshield for arduino uno
  7. 8 3mm screws
  8. cables


A 3d printer was used.

Step 1: Design Choices

I tried to use a smaller screen, but found it to be too small. Eventually I ended up with this one.

I first tried using different types of plexiglass, but realised that it had to be as thin as possible. I ended up using PET film with a thickness of 5 mm.

I chose the Raspberry Pi zero 2 w because of the perfect balance between power and size. Retropie also made things a lot easier.

Step 2: RetroPie and Enabling SSH

First I installed RetroPie on the Raspberry Pi zero 2 w. I used a PS4 controller to navigate the menu and a micro hmdi cable inorder to use a regular screen. You can find the documentation on how to do it here: https://retropie.org.uk/docs/First-Installation/

It is also important to enable SSH. This allows you to upload ROMs over the internet and install the screen.

Documentation on how to do that: https://retropie.org.uk/docs/SSH/

Step 3: Installing the Screen

I used a Waveshare 1.54 inch IPS-TFT-LCD Display - 240*240 Pixels - SPI. This screen came with some easy to attach cables, however inorder to save space I soldered male to female cables onto the screen via the holes as seen in the picture.

This tutorial shows how to install the screen: https://www.waveshare.com/wiki/1.54inch_LCD_Module#Working_with_RPI


Step 4: The Case

I went trough several iterations of the case trying out different things.


I included the stl files of the final product I ended up using.

The pi zero 2 w can be screwed in the bottom using 2.5mm screws.

The screen can be screwed in with the screws that came with it.

On the latest version (the black one) you can see where the other parts can be mounted.

The slid going diagonally inside the box is where you can put the mirror.

The part that sticks out is where you can slide in the PET film.

On the outside you can slide in the magnifying glass for a bigger screen(optional)

The lid can be screwed on with 3 3mm screws.

The headband can be pushed trough the handle on the other side of the glasses.

Step 5: Adding Roms and Pluging It In

If you have not done so already I would recommend using a power bank to power the Raspberry Pi for portability.

The other microusb can be used for input with the controller.

You can upload ROMs to the PI via ssh. I used WinSCP.

Step 6: The Controller Design

For the controller I wanted to make something inspired by the n64 controller. Why the n64? Because it is the most ergonomic controller for if you have 3 hands I guess and I find it funny.

I ended up cutting the Home button due to my button not working and I did not use the click function of the joystick because it is not that usefull.

Step 7: Turning an Arduino Uno Into a Controller

In order to use the arduino uno as a controller we need the arduino to show on devices as a controller.

You will need UnoJoy for this: https://github.com/AlanChatham/UnoJoy

You first upload the code as seen by this example. I took the given example and changed it to fit my project (and changing 1 pin because I broke it).

Then you need to put the Arduino uno into DFU mode. This is done by briefly connecting 2 specific pins as seen in the attached image.

Then you can run one of the included files with the UnoJoy code depending on your operating system.

Windows: TurnIntoAJoystick.bat

OSX:   TurnIntoAJoystick.command

Linux:  ./TurnIntoAJoystic.sh


In order to change the code or turn it back put the arduino back into DFU mode and run:

Windows: TurnIntoAnArduino.bat

OSX:   TurnIntoAnArduino.command

Linux:  ./TurnIntoAnArduino.sh

Step 8: Making the Physical Controller

I made some tests to see how big the controller would become and if all the buttons would fit. After some iterations I arrived at the final version. Which had an issue, the pins for the screws in the bottom part were not high enough. For the top two pins I added in the 3mm screws and let the lid rest on them. For the 2 pins on the bottom I took them out and replaced them with an extra piece. From the panel I could use the 3mm screws and attach them to the extra pieces.

Step 9: Soldering the Controller

I put all the buttons into the top panel and soldered them from the bottom of the panel to the arduino shield.


Then I screwed the Arduino into the bottom using 3 mm screws.


I screwed the joystick onto the 4 pillars with the same type of screws.


The buttons can be put into the 2 holes.


I soldered the joystick and buttons with cables to the shield.