Electronic – Interfacing Lego Mindstorm with ultrasonic transducers and actuators

interfacenxtultrasoundvoltage

I'm very new to electronics. I'm working on my school science project and am having difficulties to turn theory into praxis. For my science project, I'm aiming to construct a device that will enable blind people to appreciate the distance of an object ahead of them through the use of ultrasound and a touch signal.

Theory (simple): Ultrasound (input) => Mindstorms NXT (process) => Shock (output)

In more detail:
The ultrasound sensor gathers the distance of the object in front of it.
The data of the ultrasound is fed into the NXT. Based on the distance of the object, the NXT outputs a shock; the closer the object, the higher the shock, the further away the object, the lower the shock (the shock is not high, thus not uncomfortable).

The NXT runs on 9 AA batteries (9 volts). I can specify how much power a specific output port can deliver eg. setOutput(power in %) (so I'm guessing it's regulating the amount of current that is flowing out).

Here's the difficult part (for me). I've bought one of these prank shock toys from the local prank store. I'd like to connect it the NXT output port. The prank shocker runs on 4 button cell batteries that deliver 6 volts.

I've figured output 10 % of the output on the NXT output port (setOutput(10)) is close to identical to the current being delivered by the 4 button cell batteries.

I've connected the shocker to the NXT, when I run my program and touch the shocker I don't get any shock. The only thing that seems to happen is that the shocker makes a silent little sound.

Could someone please share their thoughts on what I'm doing wrong, and the best way to implements what I'm trying to do? Help is hugely appreciated. I can share more details if needed.

Update:

Due to the difficulties to implement the shocker into my science project, I've scrapped the idea of using it as communication to the blind user. (I know it's not right to "give up", yet thanks to feedback I see it's not the optimal decision and I don't wont to harm my precious NXT).

I'll be using my Android's vibrating motor and hook up my phone to the NXT via bluetooth. Apparently there is no way to control the intensity of the vibration (Not sure why, (like Russel says), one could vary the voltage or PWM).

Best Answer

The "buzz word" (pun noted :-) ) is "Haptics" - tactile sensory feedback.

Shock relies on skin resistance which can vary with skin condition, atmospehrics and sweat. It also relies on the degree of user sensation, which can vary widely. It also tends to have positive feedback when conduction starts due to sweat generation and user reaction/grip/contact resistance changes. .

You would probably get a better and more easily achieved result by using a vibrating motor which is specifically designed to provide haptic feedback - these are small motors with an offset centre-of-gravity bob weight that produces a "buzzing" sensation when the motor runs. Vibration level can be varied from insistently frenetic to the barest of tactical murmurs. These are used in eg cellphones for the vibrate function. They are available in many scrapped cellphones and can be bought new from Digikey and no doubt various other suppliers.

The motor uses relatively little power, can be speed controlled by varying voltage (or PWMing DC) and are made for exactly the sort of thing you are attempting.

These are available new from Digikey but there are many other sources.

enter image description here