Overview
Enhance a simple rubber hand puppet with MONSTER M4SK eyes and voice changer!
By snapping the MONSTER M4SK in half (safely!) and joining the halves back together with the 9-pin JST SH cable, you can place extra awesome eyes on a rubber hand puppet, such as the dinosaur shown here. And, the PDM microphone and audio output allow us to run voice changer code for extra puppeteering fun!
Materials & Tools
In addition to the parts above you'll also need:
- Rubber hand puppet, such as this dinosaur
- Diagonal cutters
- Safety glasses/goggles
- Hobby knife
- Awl
- Small scredriver
- Depending on the puppet you use, you may need different hardware fasteners. I used M2.5 x 16mm socket head screws and nuts for the raptor
Page last edited March 08, 2024
Text editor powered by tinymce.
Separate the MONSTER M4SK
Quickstart
You should be familiar with the basic setup of the M4 Eyes project based on the most excellent Adafruit MONSTER M4SK guide Quickstart. Before you proceed with making your own eye pattern texture maps, be sure you've got the M4Eyes.UF2 working properly using the default Hazel eyes graphics.
As terrifying as this may seem, the first thing we're going to do is BREAK the MONSTER M4SK! It's going to be OK, though -- It was designed to be broken! That's what those little perforations on either side of the bridge are there for. We promise!
Cut the Bridge
Using diagonal cutters, snip the perforation starting at one end, then flip the board around and finish the cut.
Then, trim the bridge from the other side as well, using the same procedure.
Plug it In
Next, use the 9-pin JST-SH cable to reconnect the boards.
Note, while each end of the cable is identical, the plugs have polarity and can only be plugged in one way to the board connectors. Don't force them in if they aren't plugging in easily, just flip them around and try again.
Try powering the M4SK and turning it on now and you should see it running just as normal! Here, I've got diagnostic code running, but you should see the eyes that ship on the M4SK.
Battery Power
Using double-stick foam tape, secure the LiPoly battery to the back of the MONSTER M4SK's right eye board and plug it in.
Depending on your plans for the M4SK, you can now add lenses and lens holders, put on some eyeball .UF2 code, maybe customize the eye graphics as shown here.
For the hand puppet, we'll go about it a bit differently, so no need for the lens holders.
Page last edited March 08, 2024
Text editor powered by tinymce.
Voice Changer
This used to be a separate program…it now works together with the eyes! This requires the following:
- MONSTER M4SK board
- PDM microphone and JST SH cable
- You can test with headphones…but for portable or costume use, you’ll want a battery-operated amplified speaker and a male/male 3.5mm audio cable. Some Bluetooth boom box speakers include an aux input jack, or I’ve used this belt-worn speaker from Monoprice with some success (see notes below).
Usage
The PDM microphone connects using a tiny 4-pin cable to the “PDM MIC” port on MONSTER M4SK — it’s near the reset button. You can optionally fashion a pop filter over the mic using a little fabric or foam, it’ll probably sound better.
Connect an audio cable from MONSTER M4SK headphone jack to the aux input on the powered speaker.
The voice changer is off by default! It saps a fair bit of compute cycles (anywhere from about 25 to 50 percent…with a corresponding drop in eye animation frame rates) so you’ll have to turn this on only if you really want it. To do so, you'll add a line to the config.eye JSON file on the root level of your MONSTER M4SK. Use:
"voice" : true
to enable the voice changer. See the link below for an example config file that's been set up with voice changer parameters. Add a trailing comma if it’s not the last line.
There are three buttons along the top edge of the monster’s left eye. Tapping the inner button (the one closest to the nose) raises the pitch by 5%. Tapping the outer button (near the corner) lowers the pitch by 5%. Tapping the middle button resets the pitch to its default.
The default pitch is set with the pitch keyword. This is a floating-point value, where 1.0 is normal (voice is passed straight through, no change), 2.0 will double the frequency (raising the voice by one octave), 0.5 will halve the frequency (lowering by one octave).
pitch can be from 0.4 to 4.0…but the actual usable range where you can still understand things is a bit narrower, perhaps 0.6 to 2.0…you’ll want to experiment a bit to find a setting that achieves the desired effect with your own voice.
Microphone gain (sensitivity) is set with the gain keyword. If installed in a mask and you need to adjust the microphone to compensate for its placement relative to your mouth, use this with a floating-point value where 1.0 is “normal” sensitivity, 0.5 is quieter by half, 2.0 is double the loudness and so forth. There are limits to what can be done here, you may want to experiment a bit with this setting and the volume of an external amplified speaker.
Don’t shout! Speak in a normal to soft voice, let the speaker take care of amplification. This helps the “weird” voice be heard over your own.
Similarly…speak at your normal voice pitch and let the voice changer do its thing. You don’t need to make a funny voice.
Need a Dalek voice effect? With the voice changer enabled as described above, also add "waveform" : "sine" to enable this effect, which applies a 30 Hz sine wave modulation to the pitch-adjusted voice — same as used for the original Dr Who Daleks. You can try other waveforms ("square", "sine", "tri" and "saw" are all supported) and other modulation frequencies ("modulate" : 100 for a 100 Hz modulation wave)…but, to be perfectly honest…this all turned out a bit disappointing, the feature is only left in there because the 30 Hz Dalek modulation was spot-on. With some experimentation with different pitch and modulation settings you might also get a passable “Chicken, fight like a robot!” voice from Berzerk, if anyone even remembers that one.
{
// Doom-spiral eyes with voice changer
"voice" : true, //Turns on voice changer
"waveform" : "sine" , //Modulates voice with sine wave
"modulate" : 55 , //Modulation wave freq. in Hz
"eyeRadius" : 125,
"eyelidIndex" : "0x00", // From table: learn.adafruit.com/assets/61921
"irisRadius" : 125, // Iris = whole eye!
"pupilMin" : 0, // Pupil is always 0 size
"pupilMax" : 0,
"pupilColor" : [ 255, 255, 169 ], // Shouldn't show, but just in case
"scleraColor" : [ 255, 0, 0 ],
"backColor" : [ 255, 0, 0 ],
"irisTexture" : "doom-spiral/spiral.bmp",
// The doom-red and doom-spiral eyelid bitmaps don't fully close.
// This is to give the IMPRESSION of a blink without actually blinking,
// so human eye behind is hidden better when doing Pepper's ghost trick.
"upperEyelid" : "doom-spiral/upper.bmp",
"lowerEyelid" : "doom-spiral/lower.bmp",
"left" : {
"irisSpin" : 80 // Rotate iris @ 80 RPM
},
"right" : {
"irisMirror" : true, // Flip spiral image
"irisSpin" : 70 // Slightly different speed for weirdness
}
}
Tips for using the Monoprice 5-Watt Guitar Amplifier
I have a love/hate thing with this speaker. On the plus side: it’s pretty inexpensive, is rechargeable, and is slim(ish) and clips to one’s belt or a lanyard, making it handy for costume use.
It’s really designed for guitar use and MP3 playback (from microSD card) and there’s some hoops necessary to get it to pass through audio undistorted…
- Connect MONSTER M4SK to the AUX phono jack (center of three), not the MIC input.
- After powering on, wait a moment and then press the “M” button to pass through audio.
You can see in the photo that I’ve labeled mine and highlighted the correct jack and button…I use it infrequently and forget this ritual (also helps when others are borrowing it).
This is not an Adafruit product and we do not provide support. Please check with Monoprice if you encounter trouble.
Page last edited March 08, 2024
Text editor powered by tinymce.
Puppet Surgery
How you approach this will vary, depending on the particular puppet you use. The basic idea is to remove the existing eyes, add in the MONSTER M4SK eyes, and incorporate the microphone, all while maintaining access to the on/off switch, the three buttons used for voice pitch shifting, and the USB port for charging or changing your code/graphics.
Neck Incision
To begin, I needed to open up the puppet neck in order to access the inside of the puppet -- it was clearly designed for very tiny hands!
I decided to use my raptor as a display bust instead of a hand puppet, so I don't necessarily need to re-join the split later. If you choose to use yours as a puppet, you can fasten the opening later with adhesive backed Velcro.
Eye Openings
Next, I marked and cut holes for the M4SK lenses/eyes.
Use a hobby knife to remove the existing eyes. Horrifying, I know.
Mounting M4SK Holes
You could decided to glue the lenses internally, but I chose to mount them with screws from the outside, going through the mask and then into the M4SK mounting holes to sandwich it all in place.
I used the acrylic holders as a hole template, but decided not to use the holders themselves in the final build -- Note: In the end, and upside-down orientation worked best for fitting the M4SK to this particular puppet, so I should have marked the holes with the lens holder in that orientation. It worked out in the end because the rubber is very forgiving of poking new holes where you need 'em!
Create the holes using an awl or thin screwdriver.
M4SK Placement
Here you can see how the upside down placement of the M4SK works.
Push the three screws through from the outside, then place the lens into the socket.
Fit the M4SK half in place, sliding the three screws through the mounting holes, and then fasten them with the nuts.
This upside down orientation give us plenty of clearance for plugging in the audio output cable as well as USB for charging and coding!
Microphone Placement
With the PDM mic breakout board plugged into the M4SK, mount the mic board using a screw and nut as shown here.
Your raptor is ready! Turn on the MONSTER M4SK, and plug the 3.5mm jack into an amplifier using a stereo cable. Lean in a bit and speak into the microphone -- your pitch shifted, modulated voice will provide hours of fun!
You can also experiment with different pitch shifts using the up and down buttons on the M4SK, as well as different modulation waveforms and frequencies in the config.eye file.
Enjoy your new dinosaur pal!
Page last edited March 08, 2024
Text editor powered by tinymce.