- British Engineering Systems - http://britishengineeringsystems.com -

Strange places that happen to end up when you start browsing the net.

Posted By peter On 28/07/2007 @ 12:15 pm In intelligent vibrator | No Comments

After starting looking for something completely different (cable sizing tables to be precise) and getting side tracked by stuff to do with musical theory, I somehow ended up at [1] this page.

While I read through it waiting to see some amazing algorithm to generate a random numbers, I was struck by the fact that no one had suggested a [2] Hardware Random Number Generator which uses quantum or thermal noise to generate extremely random numbers.

After more thought i came up with the following ideas:

Once you have a noise source, if you were to amplify the noise, put it through a decoupling capacitor and clip then buffer and signal to look at only the positive half, effectively doing a half wave rectification, then theoretically, you should have a random wave form that is positive for only 50% of the time but yet unpredictable, or to look at it another way, a series of 1s and 0s of differing lengths in time. Sampled at a rate well below the upper bandwidth limit of the analogue circuitry and you have about the best random number generator you could hope for. So you take this signal and then feed this into the digital input of the chip, sample it at, say, 16 equally spaced times (loop to check pin status 16 times and shift into a handy register) and then use that 16bit number as the length of the next interval. better still if your buffer had an offset on it so that in fact you have the 0V level of the wave at the threshold of the input gate to the uC then you will get a true 50% 1s and 50% 0s over all time.

You could just scale the noise to be with in the range of the ADC and then sample that at regular intervals but depending on radio interference you may get some anomalies. Which brings me round to another method which would be to get a small radio (those little ones that they give away free) and hook the output of that to the ADC, then make it sample the sound signal, takes that voltage, turns it into a time, counts for that long, change the vibe on/off state and takes another measurement and repeat. Individual samples of voltage in the audio spectrum vary over the full voltage range at rates of up to 10kHz on the radio (20kHz is the limit of hearing but none tunes in to hear high pitched screaming so they generally don’t broadcast those frequencies) so if you are sampling in the seconds range then the output is damn near random. You could generate the sound locally as well, a container with some ball bearings or sand in and a small microphone will generate random noise when moved.
Assuming you have PWM control (although this is not hard to implement with 20-ish lines of code if not available in hardware) you take your random number gen (RNG) and gen 2 numbers, the first is amplitude and the second, duration. after this time has passes you pull another 2 numbers form the RNG and repeat. Now if you feel adventurous, you could take 3 numbers and have the 3rd as acceleration. then for even more mathematical fun, you could take another number, this would be jerk, and a fourth would be jounce. jerk and jounce are important in roller-coaster design as they help confuse the senses so might be rather fun to use here. Alternately you could generate a long series of random amplitudes at random intervals and do a polynomial spline function or regression on them and modulate the vibration to that function.

Another idea might be to sample a single cycle of a sine wave at, say, 50 points then play them back but use the RNG to select the duration for the replay of each point.

Yet another idea, you could do the turning on and off for random times at a a mean frequency that is high enough to be smoothed into a continuous signal by the inertia of the motor.
But with more thinking, I realised that this was an open loop solution to the problem and the obvious solution was to close the loop with negative feedback.

After all that if you could just work our how to tell how aroused the user was (maybe by tissue surface galvanic resistance or equivalent series impedance measurement) then you could make a REALLY infuriating gizmo. Here is more of an ECG based idea. Ii you measured heart rate and use that in negative feedback (possibly with some PID in there to ensure the system hysteresis doesn’t screw things up) you could make a very frustrating gizmo. Give it a knob to set the demand heart rate, and you can keep someone one on the edge for as long as the the knob operator decides. Or you could ramp up the input heart rate over say 20 mins to give constantly more satisfying vibrations.

The next question is how to get the PQRST heart wave form from the user. possily photo absorption blood flow measurement from the side of an invertible device, which would give 2 useful pieces of info: an AC component relating to heart rate and a DC component relating to arousal due to blood mass increase. Or can you do an ECG from nipple clamps?

Another method would be to use a [3] photoplethysmograph or a pulse oximeter, which will give an output of heart rate and blood oxygen.

Yet more thinking and I started to wonder if a huge polynomial could be used to modulated the vibration to generate a literal “roller-coaster ride.” Or could you have a vibe that pulses with user heart beat. even better that pulses less with faster heart beat. negative feedback back yet again.

The page I linked to it through was [4] this one. The guy who runs it said he had started to build one, it will be interesting to see what he comes up with.

Just goes to show that an engineering mind can take you into interesting areas of research if your not careful.


Article printed from British Engineering Systems: http://britishengineeringsystems.com

URL to article: http://britishengineeringsystems.com/2007/07/28/strange-places-that-happen-to-end-up-when-you-start-browsing-the-net/

URLs in this post:
[1] this page: http://tacit.livejournal.com/214115.html
[2] Hardware Random Number Generator: http://www.cryogenius.com/hardware/rng/
[3] photoplethysmograph: http://en.wikipedia.org/wiki/Vaginal_photoplethysmograph
[4] this one.: http://www.slashdong.org/

Click here to print.