Terminator Glasses

Tech Noir.

I’ve been thinking of making a pair of Terminator Glasses for a while now; basically I was thinking of having the red eye behind the glasses that would move around as the wearer looks about.

I was looking around for a good LED platform to use when I came across Pimoroni’s very handy looking 5×5 RGB LED matrix, so I got it purchased and got to work.

Key goals:

  1. Have a pair of glasses with the iconic terminator red eye.
  2. Have the eye move when the glasses are moved in a direction.

Parts.

IMG_1294

Building.

I wired up the MPU-6050 according to this diagram from this thread:

GY-521 breakout board_MPU6050gyroAccel

And then wired up the 5×5 RGB in the same way on a breadboard to test code and functionality.

IMG_1297

Running some example code to test the matrix:

IMG_1298

I uploaded some test code to it and got the motion sensor working, the main issue I found is that while the RGB breakout is compatible with the Arduino there isn’t an easy to use library for it, as far as I could find – as above, there are example bits of code but these run through every x and y coordinate in various loops, so it’s difficult to directly see what pixels are being lit and when. I also think the examples aren’t fully compatible with the matrix as the patterns were odd.

So I loaded up the library for the microcontroller that is on the board – the IS31FL3731. You can directly write pixels using functions in the library but this one is really odd; I found there was no distinct pattern to the x, y coords being passed into the function and the result on the matrix.

So after painstaking trial and error I finally found out how the coords required to get each pixel red and mapped it out:

IMG_1304

So if I want to light up the centre pixel I’d use:

// x, y and brightness passed into function

matrix.drawPixel(1, 8, 128);

I made it so there would be a central cross with lighter lit pixels around it – to try and form what would look more like an eye.

I then got to work on testing the gyro axis and seeing how they respond to left and right / up and down movements that the glasses would be making while someone is wearing them – the final code is on my GitHub.

The code detects whether the user is looking up, down, left or right and draws the ‘eye’ accordingly – so when the glasses are moving left the eye looks left – etc.

I then soldered in the wiring required on the Arduino itself:

Then wired up the matrix and the motion sensor, using a small piece of veroboard to share the VCC, GND, SDL and SCA lines:

IMG_1309

After a bit more testing on the glasses themselves I glued the apparatus onto the glasses and tidied up the wiring as much as I could with electrical tape:

Working.

This was too much fun. The eye looks great – although as you can see sometimes it flickers about quite a bit, sometimes the values coming from the motion sensor go a bit crazy, making the eye wobble a bit.

But overall it’s pretty much what I wanted.

Conclusion.

I’m very happy with this project, it looks very close to the Terminators red eye (only seen in the marketing, the actual film as far as I know doesn’t show it behind the glasses). It’s reactions, while sometimes being a bit weird and flickering about, looked really good and it was a lot of fun pretending to be the Terminator.

I may need to investigate a way to ignore strange spikes in the sensor readings to prevent the flickering mentioned above.

The main issue is the bulk added on with the electronics and battery – I tried to minimise the footprint by using an Arduino Pro Mini and the 2 coin cells batteries in the holder; but even then it still took up quite a bit of space.

I also need some more practice with getting wiring more hidden within the projects I make, this was another thing that took up a lot of space as there were a lot of wires required.

Let me know what you thought!

See you next time.

tn

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s