Arduino - Blowjob Trainer

14 Replies, 28614 Views

Hi all,

My first ever post on here. Have browsed this site for many months now but I felt like I have a contribution I could possibly make, and possibly looking for feedback or even a little help.

I was thinking about a Blowjob trainer for a while now. I've seen the one which can use a Web Camera, but I don't have a good web camera, and It can only be used in the light. I wanted something I could possibly use in the dark.

So, I know a SMALL amount of electronics, I have a good knowledge of coding (PHP Developer as a day job) and I know a bit of C++.

I Ordered my Arduino UNO at the weekend, along with a load of other goodies to go with it. Right, Now to explain what I've got, done, and what happens.

So, The kit consists of:

Ultrasonic Rangefinder (HC-SR04)
LCD Display (16x2 - JHD1602)
Shift Register (74HC595) (Use this for the LCD, as can cut down from 5 wires to just 3)
Servo Module (Possibly for release - Not yet tested this part, but have it dropping a key)
Solid State Relay (25A Load) - This is for controlling the Hitachi Wand (Not speed control, just ON/OFF)
2X LED (1 Green, 1 Red)
PS2 Keyboard (Computer Keyboard)



Using a Ultrasonic Rangefinder (With some correct Libraries for speed) I am able to detect how far the face is away from the object (So, Dildo attached to object, with Range finder at the bottom) so lets say I have a 12CM Dildo, The start could be 12CM, and the end could be 8CM (Depending on how far you want to go down) - The piece of code I have built also puts in A Deep throat length, but you can't turn this off right now. I might add functionality to control this, but I built this in mind of deepthroat.

The LCD And Keyboard are the next aspect. From the PS2 Keyboard, you can set some settings up, so if I want to change something I don't have to go into the code to change it, I can just do it from here. The only thing is that it needs to be setup again if you reset the unit. (I could possibly make use of the EEPROM in the future to save this). I've only just started putting the code together for controlling the settings via Keyboard + LCD, but I'll explain what settings are in the Code, and whats currently settable from the keyboard.

Blowjobs Required: 200 (Currently set in code)
BJ Start: (Currently set in code + Can be set via Keyboard)
BJ End: (Currently set in code + Can be set via Keyboard)
BJ Deep: (Currently set in code + Can be set via Keyboard)


BJ Allowed time per suck: 2400 (Currently set in code - ms - Whats the max amount of time allowed before punish)
BJ Penatly addon: 10 (Currently set in code - Will add +10 sucks if the action wasn't completed before the above time)
BJ Deep Good: 5 (Currently set in code - Will -5 sucks for holding a deep throat for the time above)
BJ Max allowed: 200 (Currently set in code - Won't ever go over this value if penatly)
BJ Max Penalty Time: 1200000 ( Currently set in code - After this time period from start, the user won't occure any more penaltys)
BJ Max Run Time: 2400000 (Currently set in code - After this time, User will be released even if they haven't completed task - Safety?)

Bearing in mind, if the user completes the 200 sucks, they will be released. - Maybe could add the feature to give them orgasm via vibrator at the end if they have been good.



Next, Vibrator setup: (All of the following currently set in Code)

Vibrator Startup Wait: *ms ( How long to wait after first suck to start the vibrate control - NOTE: This won't actually start the vibrator, just start the function to calculate when to start vibrate etc)
Vibrator Max Runtime: *ms ( How long once started, that the process can run for. If it reaches this and it's stll vibrating, it will wait to finish )
Vibrator Orgasm Time Needed: *ms ( How long would it be for the user to actualy orgasm )
Vibrator Orgasm TEASE MAX: *ms ( How long to run for Teasing MAX TIME )
Vibrator Orgasm TEASE MIN: *ms (How long to run for Teasing MIN Time )
The above to will be random, to generate a RANDOM tease time.
Vibrator Wait Time MAX: *ms ( How long to wait, before turning the Vibrator on MAX TIME )
Vibrator Wait Time MIN: *ms ( How long to wait, before turning the Vibrator on MIN TIME )
Vibrator Orgasm Rate: 20% ( The percentage of having an orgasm, each time the function is called )


Let me just quickly run through the Keyboard setup. So when you first turn on the Arduino, You will get a welcome message. It will run through all the current configuration IE Sucks required, Start,End,Deep CM. If you Press F1, you get to the Setup Screen. If you Press F1 Again, you start the setup for the Start,End,Deep. (At all times, information is displayed to tell you what you need to do and press.) So the first question is: Set START Depth. It will then display the current distance between the Sensor and your head (if you've placed it there) - You can see at all times the depth in CM to let you know where you are. If your happy with that point, press the ENTER key on the keyboard. Next, it will ask you for the END depth. Same thing applies here. Press Enter. Next, It will ask you to set the Deep depth. Press enter. In all of these 3 steps, if you wish to do it manually to get a more precise input, Press the TAB key on the keyboard, it will switch to manual mode (Also confirmation on LCD to let you know your in manual mode) - Next, use the UP or DOWN arrow keys on the keyboard. UP increases in CM, Down decreases in CM. Pressing enter will confirm each setting. Once you've input these 3 values, the system will check to make sure it's right (I.E make sure the END value isn't > Start value, Deep value > Start value, or Deep value > End value.) - If any of them are wrong it won't work properly so won't save and just let you know and take you back to the main menu, where you need to set them again.

As I code some more, I'm looking to be able to set the times up etc etc. Only problem is, setting up via LCD can be a little time consuming, as your limited to like 1 question per screen, but at least all input is checked.


Here's the actual process. Once back to the main menu, you press Enter and the program begins. The Vibrator will start calling it's function once it's allowed, and decide if your going to get a tease or a orgasm (Which will really interfere with you trying to concentrate on completeing the job) - You will have X seconds/MS as set above to complete each action. If you don't you get +sucks added depdending on configuration and timer will reset. It won't ever go above the set BJ Limit. Here's where the LED come into play. When RED is lit, you need to move to the END position. When it's green, you return to the START position. The LCD will give you an count down how long it is till you run out of time. Right now, it's hard coded so that in every 1 of 10 sucks, you require to give a Deep throat. When it's time for a deepthroat, the LED's will be BOTH on. Once your there, if you hold it there for the amount of seconds per suck, you get -5 sucks removed. LED's will flash to let you know it's ok to come back to start, and the LCD will tell you to let go. The Sensor will check to make sure you didn't move back down to END during the deepthroat, and if you did, you won't be rewarded. I'm thinking of putting some function in here to limit the amount of "rewards" allowed in a certain time, because if you managed to do a deep throat every time, then it wouldn't take that long, but then again if you notice the user doing deep throat a lot to get out quicker, you could always increase the allowed BJ's.

The LCD will tell you how many sucks left at all times, as well as if you have a penatly,or sucks removed. However, it won't inform you about if your going to get teased, or get an orgasm, It won't tell you how long you got to wait, or how long till escape. It's going to play tricks with you.

I've only tried the system several times with my hand. I daren't try it using the vibrator yet, Just don't have the guts to do it!


I know I might of babbled on a bit here, but I hope you like my little creation. If people are interested I am willing to show how I've done this one it's all completed. At the moment, It's all on a big breadboard and all messy. I've not got round to ordering proper boards to put it on a final board, as it's still a work in progress...


What I'd like to do, is replace the the Servo release with a Magnetic Door Lock, but I'm not quite sure how a Magnetic door lock is wired up. I know it needs power, and I could use a Relay to turn the power on and off.

Also, I'd like to add a Punishment for not completing a suck, maybe attaching to some sort of TENS device. The only TENS device I have at the moment is a Muscle one, but it needs constant connection to send a pulse. If the connection is broke, the power is turned off.- Maybe I could use a small Relay on a Fly Zapper, and just make the Relay make the connection between it's power pack and turn on and off like 5 times to punish user.
Sounds complex.

What happens when the power goes down and do you have a kill switch?

I don't trust computers, I work with them everyday and I know that every computer made for the masses is built by the lowest bidder and design to go dead in less than a year. That is why one needs a new computer every year or so.

But I do like what you are doing.
Well, The Arduino can be powered by a PP3 9V Battery, which will keep it all powered up. If you really wanted to, You can use a high capacity battery and hook it up, so no problem with not having enough resources. Right now, It's connected to the laptop for debugging, which has a battery if power dies anyway. If the Power does die, The only thing that won't work would be the Vibrator, which means you could finish early. The release would be the Servo, which only needs +5V to even move which would be powered via the PP3 or Laptop. As I was talking above about the Electromagnet, Well you need a constant power supply to keep it together, so you'd be released instantly if power failed.

I think the most complex thing is the actual code, but you only have to write the code once. I guess if it's something people would want, I could create a PCB ready to use with the Arduino, or for people that know about it and what to do aeady, just to show the Wiring Diagram.

There isn't a kill switch at the moment, as I've not been doing this tied up or nothing. I know I've posted this in the SB Area, but I guess if it was for training purposes, you wouldn't need a kill switch as you'd have someone looking over you. - Just thinking back to what originally gave me the idea, The Self Bondage blowjob trainer doesn't give you a method to release. You must finish.

The thing about a release switch is, You could press it when you wanted, it defeats the object of it being a trainer. Most people do this alone, so hooking up a loud device to sound when a button was pressed wouldn't really be an option as it wouldn't raise any eyebrows, unless you lived with people and did it in secret.

EDIT:

Just a thought. Maybe placing a bucket of paint up some where, and attaching it to the release menchinsm, so if you did press the Kill button, the Servo would rotate more than 180* (180* ATM to turn half way round to drop a key out of a cup) - so it would really start pulling the rope attached to the servo, attached to the paint bucket making it spill all over. Now You wouldn't want paint every where unless there was an emergency you needed to get out
(This post was last modified: 14 Jun 2012, 23:06 by xerof.)
Better. I think the paint idea is better.
I tried a blow job trainer. I didn't last 2 miniets. What a mess.

I am getting better however.

I would like to see the haystack you created, Because I too work in electronics and I do a lot of breadboarding and wire-wrap.
It's a total mess at the moment. Is there any online software which will allow me to sketch it up to output a JPEG? I've seen a few about but not sure what they are even called.

Only thing with the paint is, If it's heavy the Servo needs to do a lot of work. I only have a 3KG Servo right now. (http://www.rapidonline.com/Electronic-Co...le-73-4464) - Only thing with this Servo, is it seems to be a Continus servo, so unable to control properly with the Arduino (Since you can normally set the Degree with the library) - Have to set a speed + a time to guess the Angle.

I'm going to order A relay off eBay, but a small one. The one I have right now for the vibrator is: http://www.rapidonline.com/Electronic-Co...ss-60-2050

Rated for 25A, so will easily take a UK 13AMP. Only issue is the datasheet advises an Heatsink over 9Amp, though I don't think it'll get hot enough to do anything with a 13AMP fuse.

So, If I get a small one of eBay, think I'm going to use it just for trying out the Fly Zapper which I currently have modified with 2 prods out the end of it. Just make the Relay control the power source and it can power it on and off several times for punishment 😊 Ideally I need a better punishment idea, but I'm struggling what to think of right now.
A fly zapper? Is that going to be a punshment tool?
If you don't give the computer a good blowjob, it will
slap you with a jolt?

suck...suck...auck..

ERROR... THAT DOES NOT COMPUTE.

< ZAP...ZAP...ZAP >

A better punishment idea would be to have a hollow dildo and have your computer squrt something slimy and gritty on your mouth.
Hey.

Brought an Ethernet shield for the Arduino, as well as a Arduino Mega. The Sketch is getting a little to big for the Flash Memory. It will be quite big once I've added the Ethernet Shield. I've had an idea to change quite a few things. Firstly, I want to ditch the keyboard. I'm going to create a web based UI to interface with the Ethernet Shield. I'm hoping to control everything via my iPhone, From setting up the depth of the blowjob, to setting up the times. This way I can reduce LOADS of code, by just having a HTTP server listening for SET requests. (For Security, it will only listen to SET requests from a Certain IP as well as having a certain KEY set within the HTTP header). This way, All the checking and setting can be done from a PHP based jQuery adminitration panel 😊

I've decided to use the Servo to hold a small amount of paint, and to be held some where out of reach, and where I will never want it to spill, unless it's a real emergency. I've instead purchased an Electro Magnet, and Solid State Relay to keep me locked in during the process. I've took into consideration the following items:

What happens if the Arduino unit fails? - Well normally it will reboot after so long, and when it starts back up, it sets the solid state relay to state OFF, so will release the magnet.
What happens if there's a power cut - Electromagnets require power to keep together 😊 no power = free.
What happens if the Arduino runs out of power - Well, The arduino can't power the Solid State Relay, therefore cutting of the power to the Electromagnet.

One thing I haven't got, which I'm not going to get but might do at a later date, would be a Timer for the Electromagnet. I could set a timer which will be greater than the timer I have set for the whole Arduino board, so I will deffo release even if the Arduino fails.

I've been busy soldering some CAT5 Cable to some header pins, so I have a nice long extension on the LCD as well as Sonic ranger finder and LED's.

Really can't wait to give this a go... damn why are the Hitachi wands so bloody loud 😟!

Take delivery of the electromagnet etc etc tomorrow, so can start adding to it 😊
Managed to create the Web Control panel, which makes setup very very easy now, please take a look at the image below

Now, I just need to test it out fully now. I've done many test runs, and seems to work right every time. Fixed lots and lots of bugs. - Just need to pluck up the guts to use the Vibrator with this too 😊

[Image: iggjt0.png]
That's getting more and more professional. Thumbs up!
I had to re-write part of the code which dealt with the checking of depth and if the user was in deep last night, as the reward system wasn't working correctly and under certain conditions, would give the user a penalty instead. I decided to give it a trial run last night (but without the hitachi)

It worked perfectly fine. I'd set the limit to 200, and started off at 200. I completed the task within 10 minutes. I'm not sure if I'm happy the way the release system works now, and just wondering if anyone might have a better idea. I guess though with the hitachi connected, it would put me off a lot more and make it a little tricky to complete. Maybe I should be adding penalty time on top of the penalty, and have a set min release time, then penalty time added on top, to a certain max time. I might give it a try with the Hitachi and a higher count before doing that above.

Possibly Related Threads…
Thread Author Replies Views Last Post
  New (Project?) Idea - Arduino xerof 0 3,696 09 Jun 2014, 19:50
Last Post: xerof
  Arduino controllers and self-bondage designs Like Ra 21 53,341 15 Oct 2012, 02:33
Last Post: Like Ra
  Arduino controlled electromagnet kittyfur 1 8,985 11 Jun 2011, 10:49
Last Post: Like Ra