A fun project to work on with Rashea Minor from chi.animalart.
Rashea painted the giraffe and frog with both conductive (electric) and non-conductive black paint. Each animal has a mode controller touch spot and multiple other touch spots that play sounds. The mode controller swaps out the sounds that play with other sounds. This project uses compressed .mp3 audio files instead of uncompressed .wav in order to pile more files into the limited space of the embedded system.
To save power and prolong battery life, I was able to get the sleep current for this circuit down to 1.6 mA by configuring the nRF to sleep until the interrupt line from the touch breakout board is raised during a touch interaction. This circuit should be able to run around 18 weeks on a 6000 mAh battery with low usage.
When touching the painting after the nRF has gone to sleep, the user is greeted with a wake up tone. The nRF does not wake up fast enough to poll the MPR121 and see which spot is currently activated. The wake up tone serves two purposes: 1) to inform the user that the painting was asleep and has just woken up, and 2) to replace the deficiency of not being able to wake up and poll the MPR121 quick enough.
There are 8 spots on the giraffe's neck that can play sounds when touched and one mode touch spot. There are three different sound modes on the giraffe, making 24 different sounds that can play. The mane of the giraffe is used as a mode controller to switch out the sounds that play from the spots on the neck.
Turn on your volume to hear the sounds of the jungle.
Much like the giraffe painting, the frog has different sound modes. There are 11 different "sound" touch spots and one "mode" touch spot with two different possible sound modes, creating a total of 22 possible sounds. The modes can be changed by touching the frog's eye.
Turn on your volume to hear animals and musical instruments.
Box to house the battery pack and electronics.
The box has holes in the bottom for easy mounting to a wall, near the painting.
All PCBs are held onto their respective posts with M2 bolts. The speaker is bolted to the underside of the cover with ventilation holes so the sound can escape.
After testing a working version of code, I decided to leave the circuit powered up off the battery pack to check if it would run for a duration of time. The frog ran great while sitting, untouched, and silent for about 10 minutes. Some phantom touch interactions started happening, making all sorts of sounds play. I found that there was an issue with the way I had initialized the MPR121, it was set to be too sensitive. After turning down the sensitivity, the frog ran great and showed signs that it would stay powered for the predicted duration of time. Currently, upon wake up, the sensitivity gets turned up in order to help those with dry hands interact with the painting and allow their touch to be more easily interpreted as an interaction. Before sleep, the sensitivity is turned to ensure no ghost interactions throughout the day.