Introduction: Minion Fart and Smoke Alarm
In this instructable I am going to show you how to build a fart and smoke alarm hidden in a Minion. This build is the result of me brainstorming with my boyfriend. We wanted to build something with a Minion for quite some time, because the second Minion movie was the first movie we watched together.
Since our favourite scene in the whole movie is the fire alarm scene we decided to build our own alarm minion. You can watch the scene here, should you not be familiar with it:
This project is mainly for fun. Eventhough it certainly works I wouldn't rely solely on it in critical setups. For actual use it has to be calibrated correctly.
Step 1: Stuff You Need
For the electrical circuit:
- 1 x Arduino Pro Mini (e.g. here)
- 1 x WTV-020 MP3 player module (e.g. here)
- 1 x LM386 amplifier (e.g. here)
- 1 x MQ-2 sensor for Arduino (e.g. here) *
- 1 x AMS1117 3.3 V step down converter (e.g. here)
- 1 x Speaker (I disassembled this cheap Bluetooth speaker)
- 1 x Push button
- 1 x USB B socket
- 2 x 47uF capacitors
- 1 x 100pf capacitor
- 3 x bright white LEDs (at least 60° light angle)
- 3 x 220 Ohm resistors
- 1 SPI programmer or an Arduino Uno (e.g. here)
For the rest
- Transparent red filament (e.g. this one). You can use other colours for the rest of the minion, but it is not really necessary, since it will be painted.
- Four M2x10, two M2X6 and two M2X8 screws (I used DIN84)
- Eight M2 nuts
- XTC 3D (e.g. here)
- Sanding paper
- Blue and yellow primer
- dark red, white, silver, brown and black paint
You will have to print every part once, except for "Foot.stl" and "LampLeftAndRight.stl" which you will have to print twice.
*) Depending on the gas you want to detect you can also use a MQ-7 or any other sensor of this product line. The MQ gas detectors use a small heater inside with an electro-chemical sensor, if you would like to find out more about them, check out this link. As you can see in the first image the MQ-2 sensor has a good sensitivity for flammable and combustible gasses . The ordinate shows the resistance ratio of the sensor and the abscissa the concentration of the gases.
Step 2: Preparing for Painting
This step is optional, but I highly suggest following it, since smoothing and priming your 3D prints will help getting a really nice finish.
Before settling with XTC 3D I have tried different methods to smooth 3D prints:
- Sanding: In my experience sanding PLA doesn't work well since it is rather soft and you will have to sand a lot to remove all the cracks. Though it is certainly the best choice to remove superficial irregularities.
- Filler primer: I tried filler primer on my Deadpool Knife Block and as shown in the last step it resulted in a huge failure. It certainly depends on the brand you use, but I gave up quickly, because I found that XTC 3D is easier to handle. I sometimes use a layer of filler primer after using XTC 3D to get a perfectly even finish. In my experience filler primer is easier to sand than XTC 3D.
- THF: I like using THF to smooth my prints, but I was looking for alternatives since it is suspected to cause cancer.
Cleaning brushes after using XTC 3D is tricky. Acetone helps, but I would suggest using disposable brushes. Another important thing you should take into consideration is using thin layers. If there are deeper cracks in your 3D print, try using car body filler, since you won't be able to fill them with XTC 3D.
After the XTC 3D is dry, use 200 to 400 grid sand paper to smooth it. I love using coloured primers by Army Painter, though there are certainly cheaper alternatives available. Once you are done priming, the parts are ready for painting.
Step 3: Painting
Now it's time to paint the Minion. I was having a hard time painting the outer circle of the eye, so I quickly printed a stencil (EyeStencil.stl), which made the job quite a lot easier.
Do not glue the lamps in place just yet, since it will make gluing the LEDs in harder.
I've uploaded a vector graphic of the logo in order to help you paint it. You can open it with inkscape.
Usually I am a big fan of shading, but in the case I preferred the "clean" look.
Once you are done painting add a layer of clear coat. I like to use toothpicks and Blue-Tack to hold smaller pieces, as shown in the last picture.
Step 4: Electronics
The electric circuit is pretty simple: The Arduino Pro Mini is used to read the analog signal from the gas detector to determine if a combustible gas has been measured. If so, it starts blinking the alarm LEDs and triggers the alarm sound via the MP3 module. The “Start/Pause”, “Next” & “Previous” triggers of the WTV-020 MP3 module are directly connected to the digital out ports of the Arduino. The 2nd pin (DAC output) of the WTV-020 MP3 board is connected via a decoupling capacitor to the LM386 amplifier board that is controlling the speaker. It should be noted that (in contrast to the Arduino) the WTV-020 board has to be supplied with 3.3V in order to prevent your SD card from frying.
In order to save some space and avoid a lot of wires hanging around I decided to etch a circuit board that connects all necessary parts and offers connectors for all periphery systems like the LED and the switch. I was able to put almost all parts on a round board that fits nicely under the speaker. You can find the circuitry layout files in eagle format, an etching mask and the Arduino program code here. Please note that the circuit board in the images is still a prototype and missing some connectors, e.g. for the sensor input. I have corrected this in the attached circuit files.
An important side note: During testing the circuit I almost went insane due to the MP3 module. Apparently some batches were produced with the wrong layout so that the GND pin of the micro-SD card is not connected. In my case this led to irreproducible errors where the whole setup worked fine for a few minutes and then jittered a lot, played scratchy sounds or just stopped playing anything for hours. It took me a few days of assembly/disassembly cycles to finally realize that the problem was not my circuit, voltage oscillations or vengeful ghosts of my discarded projects but the fact that all 5 MP3 modules I have bought (from 3 different vendors) had this error on the board... I highly recommend that you check the micro-SD card connector GND pin and connect it – if necessary – to the board GND signal.
Convert MP3 to AD4 file format
Although the WTV-020 is advertised as a MP3 player I was only able to play sounds if the file format was ad4. You can find a detailed description and also a tool to convert WAV files to ad4 on the buildcircuit site. I got the Bee-doo sound directly from the video. I am not going to upload it here since I don't want to run into any legal trouble.
Program the Arduino Mini
The sketch to program the Minion can be found in the attached files. I have used two external libraries (Timer and Bounce2) that you need to include in order to be able to compile the code. You can find a guide how to program the Arduino sketch onto the Arduino Pro Mini in step 6 of this instructable. For this you will need a SPI programmer or e.g. an Arduino Uno that is running the ArduinoISP sketch. In this case you have to connect the pins 10, 11, 12 and 13 of the Arduino Uno with the pins RST, 11, 12 and 13 of the Arduino Pro Mini on your circuit and follow the programming guide described in the link. Please note that at that time no other parts (e.g. the LEDs) should be connected to the board.
Step 5: Assembly
Getting the wires through the arm was the trickiest part of the whole build (ok, except maybe getting the MP3 board to run). Even the thinnest wires I had wouldn't fit. So I decided to use magnet wire. Simply remove the insulation with a sharp knife or heat and solder them to the sensor.
I wanted to be able to open the minion later on, without damaging anything. So I decided to use screws disguised as the buttons of the pants. In order for them to hold everything in place you will have to glue the nuts into the holes of the Minion body.
Next you will have to glue the arm in place. I stabilized it with some tape and things I had lying around, as you can see in the second picture.
Then glue the push button and the power connector (I used one for a USB B plug) into the holes in the pants, as well as the amplifier to the speaker.
Glue "Spacer.stl" and the three LEDs to the inside of the minion, as shown in the fifth picture. Then place speaker on top of them and "Holder.stl" on top of the speaker. Now you can place the circuit board into the holder, as well as all the wires.
Place the Minion body into the pants and screw the two parts together (don't forget the suspenders). Last screw "SensorCover.stl" to the sensor and you are done.
Step 6: Bonus Step: Prototyping
I decided to add this step, because of friends not finishing their projects when something goes wrong and telling me that it is easy for me to say to keep going because my projects always work.
Let me tell you, they certainly don't. I always run into trouble, I just rarely include those in an instructable.
I ran into multiple problems during this build. Two (the MP3 player not working and not being able to get the wires through the arm) are already described in the instructable, but there were certainly more.
For example after printing my design the first time and sliding the body into the pants I realized that after gluing the arms in place I wouldn't be able to take it apart anymore. So decided to make the suspenders removable, which took me quite some time to design. Furthermore, as you can see it took me quite a few prints until I was happy with the design of the arms.
Originally the minion was supposed to run on LiPo batteries, but during the testing phase the charging circuit we made got so hot that we started to worry that it might melt the plastic. So we decided to scratch the idea. The Minion can be run with a power bank and without the additional space and weight I was able to make it way smaller.
Trying to make the Minion as compact as possible resulted in cable break quite a few times during the prototyping phase, so we decided to design the circuit board you can see in step 4.