The best tools to make your project dreams come true

Login or Signup

Hacksmith Ironman Helmet for the Maker World

By Kevin Walseth

This project will walk you through the steps of taking an Ironman helmet and making it useful. We will work through using servos with Arduino to open and close the helmet and adding some very nice side mounted LEDs. These LEDs will still let you look out the eyes while giving effects like no other.

The second part of the project will be to add a thermal image camera to the inside of one eye so it can’t be seen. This thermal image will create a small heads-up display with an Adafruit feather. It will detect heat signatures and allow you to view them in your peripheral vision. Very cool at night!

Parts:

Part List

Part List

First, Let’s wire up the mask. For this we will use one of the ESP 32 Feather boards, the TFT Screen, and the Thermal sensor. Mount them as seen here:

Wire Up The Mask

Adafruit HUZZAH32 Arduino IDE Setup

We'll upload the thermal camera demo sketch to the HUZZAH32 using the Arduino IDE. We'll need to install the board profile and libraries installed before uploading the code. Let's start with setting up the Feather board. Click the link below and follow the setup instruction from the HUZZAH32 guide. Once complete, come back here to continue.

Setup HUZZAH32 with Arduino

Installing Libraries in Arduino

With the board profile, we can then install the dependencies. We'll use Arduino's built-in Library Manage to install the libraries. Goto Sketch > Include Library and select Manage Libraries. Here, we'll search for the following libraries and install the latest version.

Uploading Code

With the HUZZAH32 Feather board profile and Arduino libraries installed, in Arduino IDE select the thermal_cam_interpolate sketch under the File > Examples > Adafruit_AMG88xx menu. Connect the Feather board to your computer via microUSB cable and select the SiLABS under the Tools > Port menu (Option might be named different using Windows OS).

Upload the code to the Feather using the Upload command, Cmd+U or clicking the arrow icon.

Arduino Sketch

Select the Thermal Cam Interpolate demo from the AMG88xx library

Uploading Code

Next let’s wire it up. I chose not to add a switch for this project, but if you would like to here is how to hook it up.

Circuit Diagram

Circuit Diagram

This provides a visual reference for wiring of the components. They aren't true to scale, just meant to be used as reference. The Feather ESP32 is designed to snap onto the back of the TFT FeatherWing.

3V from AMG8833 to 3V on TFT Feather

GND from AMG8833 to GND on TFT Feather

SDA from AMG8833 to SDA on TFT Feather

SCL from AMG8833 to SCL on TFT Feather

Switch to GND on Feather ESP32

Switch to EN on Feather ESP32

Battery Power

The 500mAh lithium polymer battery connects directly to the JST connector on the Adafruit Feather ESP32.

Here is what it looks like off the helmet:

Circuit Diagram

Now you should be able to turn it on and see the thermal image ahead of you. It is time to move on to the servo and lights to get the helmet to open and close.

For this part of the project, we will use the other Feather Huzzah32 (this can be connected to one Feather Huzzah32, but I didn’t want too many wires between the helmet and the mask) and two 180 degree metal gear high torque servos.

Hacksmith Ironman Helmet

This took some time to get working properly so be patient and have the hot glue gun ready. I mounted the servos inside the helmet at the top. Using the large servo horn that comes in the kit, mount this to a small block (I 3D printed one) but anything will do.

Code for servo/lights:

Copy Code
#include <Servo.h>
#include <Adafruit_NeoPixel.h>
#define PIN 6
#define NUMPIXELS 18

Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

Servo servoLeft; // Define left servo
Servo servoRight; // Define right servo

void setup() {
servoLeft.attach(10); // Set left servo to digital pin 10
servoRight.attach(9); // Set right servo to digital pin 9

pixels.begin()
}

void loop() { // Loop through motion tests
pixels.clear(); // Set all pixel colors to 'off'
pixels.Color(255,0,0);
pixels.show();
close(); // Example: move forward
delay(8000); // Wait 2000 milliseconds (2 seconds)
open();
delay(2000);
}

// Motion routines for forward, reverse
void close() {
servoLeft.write(0);
servoRight.write(25);
}

void open() {
servoLeft.write(25);
servoRight.write(0);
}

Now that you have this all working together, try taking it outside in the evening to see what the world looks like with thermal vision. It works really well in northern MN during November!

Key Parts and Components

Add all Digi-Key Parts to Cart
  • 1528-2409-ND
  • 1528-2181-ND
  • 1528-1802-ND
  • 1528-1841-ND
  • 1528-2499-ND
  • 1528-1083-ND