Introduction: Romance Pants
Romance pants are a pair of pants that dims the room lighting and raises the stereo in relation to the fly zipper being pulled down. Of course it does not stop there. The romantic coup de grace involves electronically ignited candles triggered by the unbuttoning of the waist button. This subtle sensual assault is sure to shock and awe any prospective partner into ecstatic submission. As the evening progresses, this smarty-pants technology will undoubtedly to set the mood to the appropriate level of 'getting it on.' Romance pants are definitely where the future lay.
This project was made by Team Instructables for the Creation Challenge. Principle innovators include Amanda Ghassaei, Audrey Love, Jake Rogers, and Randy Sarafan. Team leadership and moral support provided by Mike Warren. Heckling and wisecracks provided by the rest of Team Instructables. A special thanks goes out to Erin Sharpe for a superb acting job and Greg Johnson for amazing handcrafted candle holders.
Step 1: Go Get Stuff
You will need:
(x1) Ability to attract future make-out partners (this is essential)
(x1) Kissing skills (this is optional)
(x1) A Bullduino (or Arduino)
(x1) Arduino
(x2) Arduino Wireless Shields
(x2) Xbee modules
(x1) 7805 voltage regulator
(x1) M-type power plug
(x1) 8" x 6" x 3" project enclosure
(x2) 3" x 2" x 1" project enclosures
(x1) 12" x 18" x 1/8" acrylic sheet
(x10) 6-32 x 1" nuts and bolts
(x4) 4-40 x 1/2" nuts and bolts
(x1) 4-40 x 3/8" nut and bolt
(x1) Lamp power cord
(x3) Standard power sockets
(x1) SmartFan AC-VX Fan Controller
(x1) 9V battery holder
(x4) 9V battery connectors
(x4) 9V battery
(x1) Small round PCB
(x1) 0.1uF capacitor
(x1) 10uF capacitor
(x2) 5V reed relays
(x4) 1/8" mono panel-mount jacks
(x2) 1/8" male-to-male stereo cables
(x1) Stereo with Remote
(x1) IR LED
(x1) 38mhz IR receiver
(x1) 40 AWG nichrome wire
(x1) Box of strike anywhere matches
(x6 - 24) Mood-setting candles (scented preferable)
(x2 - 10) Candle holders (with hollow bottoms)
(x1) Flattering pair of pants (must be clean)
(x1) A couple feet of conductive thread
(x12) 10K resistors
(x1) Shrink tube
(x1) Red and black 22 AWG wire
(x1) Assorted zip ties.
Step 2: Mod a Wireless Shield
The wireless shield needed to be attached to the Bullduino, which we decided was going to be worn as a belt buckle.
Thus the first order of business, was lowering the profile of the wireless shield so that it did not make the buckle stick out in front quite as far.
We trimmed the header pins down roughly 1/8" and entirely removed the ICSP socket from the shield (it turned out to be unnecessary for our needs).
The shield then sat flash with the sockets on the Bullduino.
Step 3: Mod the Bullduino
We decided that we were going to need to be able to power the Bullduino without a computer.
The Vin pin on the Bullduino did not appear to be wired up. The V+ soldering pad on the Bullduino did not appear to be electrically connected to the power coming off of the USB port. We were unsure what the V+ soldering pad was rated for, and were mildly intimidated to figure it out, as we only had one Bullduino to work with.
This left us with two options. We could either feed a +5V power supply through the 5V socket or add a wire to the +5V pin on the USB port. Neither option was particularly appealing and there was not much consensus. Some people thought we should just send it into the 5V socket and not mess around with soldering to the tiny pins on the board (as they doubted my ability to solder to tiny things). Whereas, other people thought the USB port probably had some sort of buffering to protect the Bullduino from spikes and voltages from the power supply, and thus this was the best place to connect and input voltage. We were at a bit of a standstill
Ultimately, I (i.e. Randy) waited until no one else (i.e. Amanda) was paying attention and soldered it really quickly to the USB pin. The problem was thus solved while Amanda was distracted by her "Beat Slicer." This was one instance in which the repetitive looping of Beach House songs proved useful to the team.
Once the power input extension wire was soldered into place, it was then just a matter of epoxying it down in a few spots to keep strain off the joint, and prevent it from ripping loose. I did not cover the solder connection itself with epoxy in case I needed to get in there for some reason and fix the connection.
Step 4: Zipper Potentiometer and Waist Button Switch
The zipper potentiometer was made with conductive thread, two snaps, and seven 10K resistors.
We started by sewing in half of a snap with the conductive thread, this snap becomes a lead you are able to solder the resistors and wires to. To create a ground rail for the zipper, we stitched in a line close to the zipper, then ran chutes between some of the teeth that will make the teeth on the metal zipper conductive, and make contact with the other side of the zipper, when the zipper is closed. Next, sew in the 5V rail, and your resistors.
For this part, we worked in steps, after each resistor was sewed into place, a chute was sewn in between the corresponding zipper teeth. It was helpful to count the teeth between steps, to make sure that you will make contact with the other side. The
After the zipper potentiometer was sewn into place, we turned the waist button of the pants into a switch. We embroidered the edges of the button hole with conductive thread, and also wrapped the post of the waist button with thread. Luckily, the pants had a copper button, and we were able to solder a wire directly to the button post. The button post was wired to the the 5V from the Bullduino. The button hole was connected to a 10K Ohm resisted ground wire, and a signal wire that goes to digital pin 02 on the Bullduino.
Step 5: Electric Ignition Candles
We drilled two holes through the candles using a drill press and heat gun and fed two wires through the holes so that only a small bit of copper stuck out from the top. Then we lit the candle to allow some of the wax to melt away. We wrapped a ~1" piece of nicrome wire between the two exposed copper wires so that it passed near the candle wick. We connected the wires to a 9V battery to test the connection with the nichrome wire (when voltage is applied to the nichrome wire it will glow red). Then we used a razor blade to remove the accelerant from about 5 matches and sprinkled the dust all around the nichrome wire.
And here's what happens when we connected the nichrome to 9V again:
Step 6: Stereo Remote Hack
To control the volume on the stereo we decided to use the Arduino as the stereo's remote control. This was just a matter of copying the volume-up command from the existing remote onto the Arduino and playing it back through a IR LED.
The full instructions for doing this were actually posted in a separate Instructable. To do this yourself, simply visit Clone a Remote with Arduino and follow the directions.
Step 7: Wireless Communication
Programming isn't very sexy-time (in our opinion). Let's just get all of the programming out of the way.
The Bullduino should be loaded with the following transmitter code:<pre>/* Romance Pants by Team Instructables Principle Actors include: Audrey Love, Amanda Ghassaei, Randy Sarafan This code is sending wireless serial data from a zipper potentiometer and waist button via an Xbee shield For more information, please visit: https://www.instructables.com/id/Romance-Pants/ this code is public domain, please enjoy! */ //waist button attached to digital pin 2 #define button 2 //zipper potentiometer connected to analog pin 0 #define zipper A0 //storaga variables int buttonState = 0; // variable for reading the waist button status int zipperState = 0; // variable for reading the zipper status void setup() { // initialize serial communication: Serial.begin(9600); // initialize pins pinMode(button, INPUT); pinMode(zipper, INPUT); } void loop(){ // check the state of the zipper/button buttonState = digitalRead(button); zipperState = analogRead(zipper); // check if the waist button is open. // if it is, the buttonState is LOW: if (buttonState == LOW) { Serial.print('z'); } //scale zipper state zipperState = zipperState/4; //send zipper state Serial.write(zipperState); delay(50); }
The Arduino for the receiver box should be loaded with the following code:
<pre>/* Romance Pants by Team Instructables Principle Actors include: Audrey Love, Amanda Ghassaei, Randy Sarafan This code is receiving wireless serial data from a pair of pants via Xbee and: - controlling a fan controller to dim room lighting in correlation to a pants zipper - raising volume on a stereo when the zipper is lowered - lighting candles when the pants are unbuttoned For more information, please visit: https://www.instructables.com/id/Romance-Pants/ Based on code from http://www.ladyada.net/learn/sensors/ir.html this code is public domain, please enjoy! */ // Defines the LED connected to digital pin 13 int IRledPin = 13; // Lamps connected to digital pin 9 int lampsPin = 3; int sentDat; int prevSentDat; //establish the compare value //for the volume up command int dropping = 250; void setup() { // initialize the IR digital pin as an output: pinMode(IRledPin, OUTPUT); //initializes the candle output pin pinMode(8, OUTPUT); pinMode(9, OUTPUT); Serial.begin(9600); } void loop() { if (Serial.available() > 0) { prevSentDat = sentDat; sentDat = Serial.read(); if (sentDat > prevSentDat){//if the new value is higher than last while (prevSentDat < sentDat){ prevSentDat++;//increment prevSent analogWrite(lampsPin, prevSentDat); delay(5); } } else{//new value is lower while (prevSentDat < sentDat){ prevSentDat--;//decrement prevSent analogWrite(lampsPin, prevSentDat); delay(5); } } //if the resistance is dropping, turn up the volume if(dropping <= sentDat){ //volume goes up volumeUp(); // wait for 30 milliseconds delay(30); dropping = sentDat - 5; } if(sentDat == 'z') { // fade out from max to min in increments of 5 points: digitalWrite(8, HIGH); digitalWrite(9, HIGH); delay(10000); digitalWrite(8, LOW); digitalWrite(9, LOW); } } } // This procedure sends a 38KHz pulse to the IRledPin // for a certain # of microseconds. We'll use this whenever we need to send codes void pulseIR(long microsecs) { // we'll count down from the number of microseconds we are told to wait cli(); // this turns off any background interrupts while (microsecs > 0) { // 38 kHz is about 13 microseconds high and 13 microseconds low digitalWrite(IRledPin, HIGH); // this takes about 3 microseconds to happen delayMicroseconds(10); // hang out for 10 microseconds digitalWrite(IRledPin, LOW); // this also takes about 3 microseconds delayMicroseconds(10); // hang out for 10 microseconds // so 26 microseconds altogether microsecs -= 26; } sei(); // this turns them back on } void volumeUp() { // This is the code for my particular JVC stereo // for the volume-up button delayMicroseconds(1520); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(520); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(480); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(20140); pulseIR(520); /////// delayMicroseconds(1520); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(520); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(480); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(20140); pulseIR(520); /////// delayMicroseconds(1520); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(520); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(480); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(20140); pulseIR(520); /////// delayMicroseconds(1520); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(520); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(1520); pulseIR(520); delayMicroseconds(1540); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(480); pulseIR(520); delayMicroseconds(500); pulseIR(520); delayMicroseconds(20140); pulseIR(520); /////// }
When both are programmed, make sure they are powered down and attach the wireless shields. Make certain that the microswitches on both of the the shields are toggled to "micro."
Step 8: Build the Main Controller
Download the EPS files below and laser cut them out of 1/8" acrylic. If you don't have a laser cutter, you can use a service like Ponoko or make them the old-fashioned way with power and hand tools.
Wire the three outlets together in parallel and extend two 8" wires off of each connection on the power outlets.
Mount the outlets to the front panel using nuts and bolts.
Mount the SmartFan controller, Arduino and 9V battery holder to the bracket acrylic base brack with nuts and bolts.
Drill two 1/4" holes side-by-side that are centered, about an inch apart, on one of the 6" x 3" sides of the box. Drill another 1/4" hole centered on the other side of the box.
Drill a 3/16" hole in the center of one of the 3" x 8" side of the box.
Insert the wire from the lamp cord through the singular 1/8" hole about 12" into the center of the box and knot it so that it cannot be pulled back through.
Wire the lamp cord to the "W" and " "B" terminals on the fan controller. Wire the two cords coming off the front panel to the "FW" and "FB" terminals on the fan controller.
Connect the Arduino's pin 3 to the 5V port on the fan controller, and then connect the Arduino's ground to the "com" port.
Solder a 9V battery connector to the M-type power plug such that the red wire goes to the center tip. Remember to slide the cover onto the wires before you solder it so that you can screw it back into place when you are done.
Solder the two barrel connection tabs on the mono jack together and extend a 6" black wire off of one of them. Solder 6" a red wire to each of their signal tabs.
Solder a 6" red wire to the positive lead of the IR LED and black wire to the negative lead.
Insert the component bracket snuggly into the bottom of the case.
Mount the jacks in the two 1/4" holes using their mounting hardware.
Push the LED through the 3/16" hole and hot glue it in place of necessary.
Connect all of the loose black wires to ground on the Arduino.
Connect the red wires from the jacks to pins 8 and pins 9 respectively.
Connect the red wire from the IR LED to pin 13.
Attach the connector to the 9V battery, plug it into the Arduino, and secure the battery in the battery holder.
Finally, put the lid on the top of the box and fasten it firmly place.
Phew! You're done.
Step 9: Make the Belt Controller
The belt controller is relatively straight forward.
The one "tricky bit," if you can even call it that, is regulating the 9V source to a steady 5V supply for the bullduino.
This is accomplished with a 7805 regulator and some filtering caps.
To make the regulated supply, get a small round prototype board and solder the 7805 regulator to it. Connect a 0.1uF capacitor between ground and 5V. Connect a 10uF electrolytic capacitor between ground and 9V (watch the polarity).
Attach a 9V battery snap to the Vin pin and ground. Respectively attach 6" of red and black wire to 5V and ground.
Put the belt between the Arduino and the wireless shield, such that the shield is right up next to the belt buckle.
Zip tie the voltage regulator PCB to the side of the belt.
Stick the 9V battery in your back pocket. This isn't particularly elegant, but it works.
Step 10: Make the Candle Controller
The candle controller is basically a small box with a 9V battery and a 5V relay. The relay is controlled by the the Arduino, and when triggered sends a 9V signal to the candles.
We gave each grouping of candles its own 9V supply to ensure they were getting as much power as possible, and ensure each one triggered when voltage was applied.
To build this, take your 3" x 2" x 1" project enclosure and drill a 1/4" hole in the center of each 1" x 2" side.
Mount a 1/8" audio jack in one of these holes. Connect the the pins from the audio jack to the coil pins on the relay.
Connect the 9V supply to one of the source pins on the relay. Connect a 6" red wire to the other pin.
Pass the black wire from the 9V power supply and the red wire from the relay out the other hole in the case.
Make sure the battery connection is good, and seal it up.
Build one of these for each grouping of candles that you want triggered.
Step 11: Set It Up
Position the main controller box in your room so that the IR LED can send signals to the stereo receiver.
Strategically place the candles around your room to maximize ambiance and minimize fire hazard (the flames can ignite very explosively). Plug in the candle relays to the main controller box using a long audio cable and fill the candles with match head dust.
Place lamps around the room and plug all of them into the three prong plugs on the controller box.
Put the pants on and the belt with Bullduino. Wire the Bullduino into the pants as specified in Step 4.
Step 12: Profit!
If you have made it this far - Congratulations!
However, bringing home a lover is probably going to be most challenging part of this project and primarily relies on your skill and cunning.
Fortunately, you have a killer Bullduino belt buckle. If this does not gain the attention of a potential make out partner, we don't know what will.
So... Go get 'em tiger!
Once you get them back to your lair, just let the romance pants work their magic, and always wear protection.
Attachments

Participated in the
Hurricane Lasers Contest
109 Comments
6 years ago
THAT VIDEO THOUGH! omg I had to explain why I randomly cracked up in my silent office.
7 years ago
OMG, this is extreme man!! is that dream project in pier 9? haha OMG
7 years ago
Hilarious!
7 years ago
If only the light dimming was linked to Barry White coming on the stereo?
Or maybe an automated condom dispenser extrudes a "Magnum" when the pants hit the floor?
8 years ago on Introduction
you guys are nuts, and truly inspired!!!
8 years ago on Introduction
I needs to lock the door, or call you local theripist. you know...for the childrens.
8 years ago on Introduction
Herşey tamam bir sensin noksan, içim ürperiyor ya evde yoksan... :)
8 years ago on Step 3
Oh my god we can use usb also and this is totally mechanical
9 years ago on Introduction
That is by far the best use of technology known to human kind. Ever.
May I suggest automated champagne "popping" at some point of the evening?
9 years ago
Killerjackalope: a shame we don't live closer! :)
Why are we spending so much money on things like space travel and reversing global warming when inventions like This need funding?! :) You are my favorite Bot, Randofo!
9 years ago on Introduction
you sir you got my .. 'heart' :P
10 years ago on Introduction
Sorry for the spam but could I use a Turbull encabulator?
10 years ago on Introduction
So would I need two Arduino because in the parts list it says 1 bullduino and 1 Arduino, if I can't get my hands on a bullduino do I need two Arduino boards?
Reply 10 years ago on Introduction
Yes. The bullduino is basically an Arduino shaped like a bull.
10 years ago on Introduction
Would it be possible to make this without a bullduino?
Reply 10 years ago on Introduction
Yes. Use an Arduino.
10 years ago on Introduction
I made this project 4 years ago..."Sexy Pants". Looks very similar.
vimeo.com/2566796
vimeo.com/2218189
if you were at all inspired by my work I would appreciate credit and a link to my site: lynnwashere.com
thanks.
Reply 10 years ago on Introduction
Honestly, this is the first I saw this, but it is eerily similar. I think we were just thinking along the same lines. After making the clap off bra, I came up with this idea as a follow up. I basically wanted to make pants that lowered the lights, raised music, and finally lit candles when unclasped. While I did learn about zipper potentiometers and buttons switches while at Parsons (from my friend Kaho), I never saw your project until today.
10 years ago on Introduction
Just like a movie, amazing belt btw
10 years ago on Introduction
We're sorry. Your search for “12333769” found 0 items. for arduino shield. you can get it at ada fruit though.