Introduction: Resolve-Ables: Visualize AI Nose Classifications With a Light Painting Wearable

About: I use wearables, human augmentation, and multimodal interfaces to design technologies that enable novel and immersive sensory experiences.

*The Resolve-Ables project is a collection of wearable devices that enable visualization of phenomena we can’t see with our biological senses.

This project is a remix of: Benjamin Cabé's Artificial Nose Project & Shawn Hymel's Sensor Fusion AI Nose Project

Inspired by these two projects, I wanted to create a system where two phenomena (smell and ML classification) could be visible. My approach is through light painting, where the TFT screen on the Seeed Studio's Wio Terminal is photographed using long exposure to visualize the smells the AI nose detects and its confidence in the classification. The way it's currently programmed the color changes based on the scent recognized, and the circle on the TFT gets bigger or smaller based on the model’s confidence in its classification (more confident = larger circle), but this can be reprogrammed to any mapping you like. For the video above, blue is cologne, and white is ambient room smell.

In this Instructable, you'll learn how to fabricate and program your own AI nose light painting wearable! With the device, you can train it to detect different scents and customize the output to create various artistic representations of smell and ML.

If you have any questions, want to keep up with my work, or toss around ideas, please do so on my Twitter: @4Eyes6Senses. Thanks!

Supplies

For this project you'll need:

1x Seeed Studio Wio Terminal

1x Grove Multichannel Gas Sensor

1x Grove Cable (Comes with sensor)

1x Wrist & Thumb Compression Glove

1x SP Connect Arm Band & Universal Interface (Both optional)

1x USB C to USB C Cable

1x Small Power Bank

2x M2x5 Screws

1x sewing needle

1x sewing thread (I used stainless steel thread)

1x Wio Terminal Holder Top Printed in TPU filament (File below)

1x Wio Terminal Bottom Plate Printed in TPU filament (File below)

1x Sensor Nose Holder Printed in PLA or PETG filament (File below) - This file is a remix of user Deniz KINIK's "Human Nose" STL on GrabCAD

Step 1: Securing the Wio Terminal in the Top Holder

Securing the Wio Terminal in the top housing is a bit of a dance. I recommend first pressing the side of the terminal with the blue button into the holder first (Figure 2), then gently massage the rest of the device until it's secured (Figure 3). The back of the top holder has a little bit of a lip so that the device won't fall or pop out when being moved.

Step 2: Securing the Bottom Plate to the Wio Terminal

Once you have the Wio Terminal fully secured in the top holder, place the bottom plate on the back of the Wio terminal with the curved surface facing upward (Figure 2). Use the M2 screws to secure the plate to the Wio terminal - don't tighten the screws too much as they can eat through the TPU and ruin the print. Also locate the four other holes in the bottom plate, they are important for the next step.

Step 3: Sewing the Wio Terminal to the Compression Glove

Before sewing the Wio Terminal to the glove, I recommend putting on the glove and placing the terminal on your wrist. Then use a chalk marker to identify all four locations where you need to sew, this will allow for the glove to stretch naturally when wearing the sewn device. Sew the bottom plate to the glove (Figures 2 & 3) and check that it sits similarly to Figures 1 & 4.

Step 4: Training the AI Nose

To train the AI nose, I recommend following this excellent tutorial by Shawn Hymel, he has the Python and Arduino scripts to collect, clean, and use the data to train the ML model. However, in Shawn's tutorial he uses several different sensors to train his model. If you're following this Instructable, you'll need to download the zip file included in this step as the python and .ino files are edited by me to handle the data obtained by one multi-channel sensor.

The "wio_terminal_artificial_nose_live_inference.ino" file is where you'll change how the Wio Terminal visualizes the classification. As you can see in lines 176, 182, 188 in Figure 1, I trained my model on creed, ambient, and eucalyptus smells. you'll need to change/add/remove those to whatever smells you used when training your classifier. You can also change what colors are visualized by changing the "TFT_COLOR" reference to whatever you want.

You can download the zip file with all the code from this link.

Step 5: Securing the Sensor to the 3D Printed Nose

The 3D-printed nose is purely decorative and won't greatly change the performance of the AI nose. If you want to attach the sensor to the nose, I used a little bit of hot glue on the Grove JST plug on the multichannel sensor and had no issues with the sensor coming loose.

Step 6: Preparing the Wearable Power Bank

If you want to use the AI nose away from your computer, I recommend using a wearable power bank. For my power banks, I really like to use the SP Connect brand of universal phone holders. All you need to do is remove the backing off of the universal interface and stick it to the battery pack (Figure 2), then attach the interface to the armband (Figure 3).

Step 7: Done!

You now have your AI nose ready to light paint! I recommend using a light painting app on your phone or looking up "DSLR light painting settings" on Google to create visualizations of your AI nose classifications. Have fun!