loading
Picture of Arduino-Fart-O-Meter
Fart-O-Meter_10Feb2011_0039.JPG
Fart-O-Meter_13Feb2011_0086.JPG
FART-O-METER color.gif
Fart-O-Meter_13Feb2011_0081.JPG
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

 
Remove these adsRemove these ads by Signing Up

Step 1: Component list

Picture of Component list
Fart-O-Meter_29Jan2011_0002.JPG
Fart-O-Meter_29Jan2011_0006.JPG
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

Picture of 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?

Picture of 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

Picture of Transceiver nRF2401A
Fart-O-Meter_29Jan2011_0002.JPG
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

Picture of The emitter
Fart-O-Meter_01Feb2011_0010.JPG
Fart-O-Meter_01Feb2011_0011.JPG
Fart-O-Meter_01Feb2011_0013.JPG
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

Picture of Sensor connector
Fart-O-Meter_02Feb2011_0016.JPG
Fart-O-Meter_02Feb2011_0017.JPG
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

Picture of Testing the methane sensor
Fart-O-Meter_06Feb2011_0028.JPG
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

Picture of Mounting PCB for methane sensor
Fart-O-Meter_02Feb2011_0023.JPG
Fart-O-Meter_05Feb2011_0025.JPG
Fart-O-Meter_05Feb2011_0026.JPG
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

Picture of Protective shield
Fart-O-Meter_02Feb2011_0019.JPG
Fart-O-Meter_02Feb2011_0020.JPG
Fart-O-Meter_02Feb2011_0021.JPG
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

Picture of The complete emitter
Fart-O-Meter_13Feb2011_0043.JPG
Fart-O-Meter_13Feb2011_0044.JPG
Fart-O-Meter_13Feb2011_0040.JPG
Fart-O-Meter_13Feb2011_0050.JPG
Here is the complete emitter.

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

Step 11: The receiver

Picture of The receiver
Fart-O-Meter_13Feb2011_0053.JPG
Fart-O-Meter_13Feb2011_0055.JPG
Fart-O-Meter_13Feb2011_0056.JPG
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

Picture of Making the arrow
Fart-O-Meter_14Feb2011_0088.JPG
Fart-O-Meter_14Feb2011_0095.JPG
Fart-O-Meter_14Feb2011_0089.JPG
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

Picture of The chair
Fart-O-Meter_13Feb2011_0065.JPG
Fart-O-Meter_13Feb2011_0066.JPG
Remove the seat off the chair. In my case, I simply unscrewed 4 screws.

Step 16: Drill hole in chair

Picture of Drill hole in chair
Fart-O-Meter_13Feb2011_0068.JPG
Fart-O-Meter_13Feb2011_0070.JPG
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

Picture of Secure sensor
Fart-O-Meter_13Feb2011_0072.JPG
Fart-O-Meter_13Feb2011_0073.JPG
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

Picture of Mounting the enclosure
Fart-O-Meter_13Feb2011_0075.JPG
I used double sided sticky tape to mound to the back of the chair.

Step 19: The final product

Picture of The final product
Fart-O-Meter_13Feb2011_0086.JPG
There you go!

You can now prove that your girlfriend farts!

BTW, this works great!

Step 20: Future improvements

Picture of Future improvements
DSC06390.JPG
DSC06389.JPG
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!
abraham_214 months ago

Nice One. Thanx Dude

BikeHacker1 year ago

Nice!!!

that is sooooooooooooooooooooooo hilarious

Whoa, I received my MQ-4 from China today. Plugged it in, and it had a short. Instead of heating up the sensor element, it turned the printed circuit board red hot. Left some nice burn marks on my fingers. Well, that was every bit as fun as touching the business end of a hot Solder iron..
I also have an MQ-5 in my parts bin, but it's listed as a Liquid Propane gas detector. The MQ-4 was supposed to be for Methane. I hope the seller in China will send me a new MQ-4 that doesn't self destruct.. Maybe by the time it arrives, my burns will be fully healed over ;-P

I did something similar but a bit simpler. Used MQ-9 instead.
This system detects farting and turns on the fan to get a rid of a smell. Once the smell is gone it turns itself off.

http://arturito.net/2014/02/02/fart-detector-with-fanventilator-made-with-arduino/

Epic
robomaniac (author) 2 years ago
I am re-using this protoboard for a new project. I see some design mistake in the power supply.
The input of the 3.3V should be connected directly at the output of the 5V and not 12V.

If you connect them like this schematic, you go from 12V to 3.3V that's 8,7V drop inside the LM1117 voltage regulator. Same for the 7805: 12V to 5V is 7V. Since I use linear regulator, they are not efficient and heat up. The more voltage across them the more they heat up. So by connecting the LM1117 after the 7805 I go from 5V to 3.3V the voltage drop is less and will heat less.

Good luck

liviu_vasut3 years ago
I wonder if you can make the receiver echo the signal back and measure the microseconds it took. Would there be a significant change in time along with varying the distance between the transceivers?

I'm planning on making an autonomous robot and I'm looking for a (local) positioning system. If you have time, please give it a try, I'll drink a bear in your health :). I wouldn't want to buy the parts for nothing.
day-veed4 years ago
LOL!!! I laughed so hard I farted!
octollama4 years ago
lol c'est drole, mes interesant :D
Patented4 years ago
Haha toute qun projet sa ;) vraiment bien expliqué et illustré! Jaime vraiment la clarté des tes images !! Great that you are back on instructables!

Nicolas
robomaniac (author)  Patented4 years ago
Attend de voir le vidéo! :P

j'upload sa demain matin!

Merci!