Introduction: Arduino-Fart-O-Meter

About: I am a French Canadian that loves robots and embedded electronics. I work on all kinds of cool projects, like a high-power electric push scooter controlled with an Arduino. Please visit my website for more co…

OH NO! He didn't!

Yes I did!

My project is simple: Farting in a chair and sending the signal wirelessly to a panel that shows the intensity of the fart!





Words of caution: Please do not force yourself to fart, you might shit in your pants if you try to hard!

Thanks to all my friends who helped in this project! (and all my tester!)

Michaël Vachon
Steven Jolley (Fart NINJA)
Manuel Grégoire
Mathieu Desnoyers
Pier-Alexandre Fortin
Louis-Philippe Gagnon
Francis Leconte
Gaétan Mercier
Sébastien Choquette

Step 1: Component List

The project consists of two modules:

The emitter located on the chair and the receiver located somewhere else (e.g. on your desk).

Here is what you need to make a Fart-O-Meter:

Emitter:
1 x large protoboard PCB
1 x ATMEGA168/328 arduino chip with bootloader
1 x LM117 - 3.3V regulator  (Sparkfun sku: COM-00526)
1 x 7805 - 5V regulator 
1 x 1N4148 diode
1 x 16Mhz crystal
5 x 0.1uF decoupling capacitor
1 x 220uf 16V capacitor
1 x Green LED
1 x Bi-Color LED (or two separate green and red LED)
3 x 220Ohm current limiting resistor for LED
1 x 10K resistor for reset of the Arduino
2 x 100K potentiometer - one for gas sensor calibration and the other one for debugging
1 x Audio Jack 3.5mm use to connect the methane sensor
1 x 3.5mm audio jack  (Sparkfun sku: PRT-08032)
1 x 8 x AA battery holder
1 x 9V power clip - It connects to my 8 x AA battery holder
1 x Plastic enclosures
1 x FTDI Basic Breakout - 5V ( Sparkfun sku: DEV-09716)
1 x  MQ-4 - Methane Gas Sensor (Sparkfun sku: SEN-09404)
1 x nRF2401A Transceiver with Chip Antenna (Sparkfun sku: WRL-00152)

Receiver:
1 x Arduino (Solarbotics sku: 28920)
1 x shield (Solarbotics sku:16090)
1 x Transceiver nRF2401A with Chip Antenna (Sparkfun sku: WRL-00152)
1 x Servo motor

Hardware for receiver
1 x large acrylic/plexiglass sheet for mouting everything to it
4 x Silicone Bumpers - so the platform does not slip
4 x HEX 3/8 inch standoffs (Sparkfun sku: COM-00126 ) 
4 x 1/4" Screws 4-40 Thread (Sparkfun sku: PRT-00447
4 x Machine Screw Nut - 4-40  (Sparkfun sku: PRT-10232 )
2 x 1/2" Screws 8-32 Thread for mouting servo
1 x 8 x AA battery holder
1 x 9V power clip - It connects to my 8 x AA battery holder

Step 2: Tools

Here are the tools you might need:

Tools:
1 x Multimeter
1 x Side cutters
1 x Nose pliers
1 x Lighter - for heat shrink and testing the methane sensor (yes, the methane sensor is sensitive to butane)
1 x USB cable for programming the Arduino
1 x Screwdriver set
1 x Sharp knife
1 x Set of drills
1 x Precision screwdriver set
1 x Double side sticky tape
1 x Duck tape
1 x Scotch tape
1 x Drill
1 x Safety glasses

Be safe!

Step 3: What Is a Methane Sensor?

The MQ-4 can detect natural gas concentrations anywhere from 200 to 10000 ppm (Parts Per Million).
It is very sensitive and has a quick response time.

This sensor is analog and gives out voltage depending of the gas concentration. When there is no gas, the voltage read is around 1.3V.Otherwise, when you fart, it goes up to 5V! 

Since it uses a small heater inside, it consumes 175mA!! It has to be considered when choosing the battery source.

Step 4: Transceiver NRF2401A

Sparkfun have this great wireless module called the nRF2401A Transceiver. 

There is also a librarie to make it work with the Arduino.
http://www.arduino.cc/playground/InterfacingWithHardware/Nrf2401

You can make that module work in no time!

There is an important thing you should remember, the module works on 3.3V not 5V.

If you use a standard Arduino, you will need something to convert the signal down to 3.3V. The stock Arduino is 5V.
There is different ways to do so.

Here is a tutorial on Sparkfun website

Sensor Interfacing
http://www.sparkfun.com/tutorials/65

Sparkfun also sells this ready made PCB board called Logic Level Converter (Sparkfun sku: BOB-08745)


I simply use a voltage divider to bring the 5V down to 3.3V

Step 5: The Emitter

I was able to find a nice plastic case for my project. I cut the PCB to fit inside the casing.

Then, I start by placing the 5V and 3.3V voltage regulators. I also place the 28pins socket to have a better idea of the placement.

I tested the power supply first. When that worked, I added the other parts. I then tested the circuit by flashing a temporary red LED.

Step 6: Sensor Connector

I added this 3.5mm jack to connect the methane sensor.

This makes the entire thing easy to remove and debug

Step 7: Testing the Methane Sensor

I recommend you testing on a breadboard the methane sensor. I had some bad luck with one of them. (lucky I bought two!)

For testing, I did not solder it, just wrap wire around the pins. 

Purple = 5V
Gray = Analog out
Black = Ground

Step 8: Mounting PCB for Methane Sensor

I want to have a great way to mount the sensor. I decided to have a carrier board and cut to shape a small PCB.

Step 9: Protective Shield

When I started this project, one of my friend had experience with that sensor and told me that they heat up! I though that I should protect them from heat the foam inside the chair.

It turns out it heats up but it was not a big deal. My sensor is surrounded by wood and not foam. I did not use the shield.

But here is how I did it on the lathe.

Step 10: The Complete Emitter

Here is the complete emitter.

I have the 8.4V lithium battery, a power and status LED installed.

Step 11: The Receiver

I used a bended plexiglass to fix the electronics (arduino and all the components).

Step 12: Receiver Hardware

I had to enlarge the hole on the Arduino to make the 4-40 screws fit in it.

I also had this piece of plexiglass for my science fair back in 2001 laying in my room. I mod it to fit my project.

I also give out the test template I printed it out.

Step 13: Making the Arrow

I printed the arrow from the powerpoint I gave in the previous step.

I then glued it to a cereal cardboard box. Glue the cardboard to a servo horn.

KISS
Keep It Simple and Stupid!

Step 14: Code

The code is very simple, I was going to add maximum analog peak detection but I soon realised that there was a simpler solution.

The system is master/slave. The emitter is the master and the receiver end is the slave.
I simply tell the slave to move the servo to a X position. This is it. All the hard work is done by the emitter.


The most important part of the emitter is:

Prepare the radio transmitter like this:
Radio.remoteAddress = 1;
Radio.txMode(3);


This is just an example to show how you can transfer an array.
Radio.data[0] = 22;
Radio.data[1] = 33;



You read the analog pin
val = analogRead(potpin);

Then you map it to the servo motor.
When you have 1023, that is the max position of the servo motor, 179.
val = map(val, 0, 1023, 0, 179);

You then take the value and send it to the receiver.
Radio.data[2] = val;
Radio.write();


The receiver is also very simple

wait for signal
while(!Radio.available());

Read it
Radio.read();

if(Radio.data[0] == 22 && Radio.data[1] == 33 )
{


Get the servo value in the array
    val = Radio.data[2];
Move the servo, I subtracted the voltage offset since there is no gas, the value read is 1.3V
    myservo.write(val-40);
    delay(15);

Step 15: The Chair

Remove the seat off the chair. In my case, I simply unscrewed 4 screws.

Step 16: Drill Hole in Chair

I made sure the hole I drilled provided maximum linear efficiency for gas to reach the sensor. (aka: perfectly align with my butt hole :) )

Step 17: Secure Sensor

When I made the PCB for the methane sensor, I made mounting holes. It is time to drill those holes and mount the sensor to the bottom of the chair.

You can now mount back the seat to the chair.

Step 18: Mounting the Enclosure

I used double sided sticky tape to mound to the back of the chair.

Step 19: The Final Product

There you go!

You can now prove that your girlfriend farts!

BTW, this works great!

Step 20: Future Improvements

Ok, when I was making this, my friends and I had so much crazy ideas for improvements!

#1 - Fart counter, counts how many farts you make.
#2 - Make more than one chair so it becomes a fart marathon!
#3 - Make you teacher sit on the chair during a meeting and wait...
#4 - Instead of fart level, use it for counting how many cash you need to give to your team. Fart jar!
#5 - Adding an other Arduino connected to a Febreze spray can (see below)
#6 - You can also replace the methane sensor with temperature probe... (no you sick mind, outdoor temperature probe!)
#7 - Airbag hidding under the chair that flip you in the air while the chair yell "You bastard, don't you ever fart on my face again!"

Here is the most evil idea...

Add an electric match ignition system next to the sensor, when the methane reaches max reading, light up the match!!! (Insert evil laugh here!)

Just imagine someone farting and seconds later, his ass gets on fire!!!!!!!






I hope this project was entertaining and you had fun reading it!

Thank you for reading!

Jérôme Demers
Please vote and subscribe!

Microcontroller Contest

Participated in the
Microcontroller Contest