concept
Chartreuse is a motion-tracking face made as the final project for ATLS 3300: Object. She was inspired by "Albert" at the Exploratorium in San Francisco, California.
She was a joint project with Anna Lynton who edited and assembled the mask using Slicer for Autodesk Fusion 360. I worked on the electronics / design and code.
process
We wanted the project to be low cost and so we settled on MDF construction with a few supporting 3D Printed parts. I happened to have half of a PLA spool lying around that we decided to use as the "lazy Susan" for the rotating head. To get it to run smoothly, I bought a few loose ball bearings and 3D printed two halves of a ring to hold them captive. A soldering iron melts the two halves together. The bearings are held to tight to move at first. Placed between the smooth concrete floor and a plank of wood i stepped on the whole thing and moved around until it rolled smooth. The finished bearing reduces the work the stepper motor has to do.
Anna drafted and sliced the mask in Autodesk Fusion 360 while I tested out various methods for motion tracking. From what we gathered, the original Albert tracks by flashing his eyes and using photodetectors to align the face toward the brightest nearby object. We were planning on having the eyes be reactive, and weren't interested in blinding the people who interacted with her. Additionally, Albert works best in a darker area and we wanted Chartreuse to work in other environments. After a few different tests, we decided an ultrasonic sensor rotating on a servo worked best for our application.
The system could really only track objects coming in from the left, detecting an object within a range would cause the servo it was mounted on to rotate counter-clockwise. When the ultrasonic sensor no longer detected something it would clockwise until the the start position or until it found another object in range.
To make Chartreuse expressive, I designed and 3D-Printed an adapter to make a normal 180deg servo into a linear one. The eyes were lit from behind and the linear servo would raise or lower cardboard "eyelids" to change the shadow projected onto semi-opaque acrylic. From the front, these appeared as different emotions!
The next step was factoring those emotions into the user flow. When Chartruse is idle, her eyes return to a neutral gray. When she sees someone, her eyes turn yellow and the eyelids "smile" and come in from the bottom. When someone leaves / Chartreuse hasn't seen an object in a few seconds, her eyes turn blue and she looks sad before returning to the start position and neutral a few seconds after that.
With it all coded and put together, all that was left was to test it out!
results
Chartreuse was a lot of fun to interact with. She doesn't quite have Albert's speed / reflexes but some of the slowness and visible gears seem to add to add an overall frail but endearing presence. We put together a video showing some of the features and how the interactions work. I hadn't recorded the LED's before and that led to some artifacts in the video.
Instructables: 14K+ views, 2nd place in their "clocks" competition and Featured on Instructables
Digikey's Maker Update: Featured as "Project of the Week" for episode #128
Raspberry Pi's Hackspace Magazine: Full page feature in the August 2019 issue.