One of my Grandsons recently was telling me about a type of psychotherapy that is used to treat PTSD and other traumatic incidents called EMDR, Eye Movement Desensitization and Reprocessing. He described a machine that was being used by therapists that consisted of a light bar mounted on a tripod. The row of LEDs on the light bar would move back and forth from end to end. The machine also had hand held vibration devices that are placed in each of the patients hands and a set of headphones. During the therapy, between counseling, the patient is instructed to sit with their head fixed and follow the movement of the LEDs with their eyes. While the LEDs of the left side of the bar are lit the vibration device in the left hand vibrates and while the lights on the right side of the bar are lighting the right vibration device vibrates. As the terminal LED at each end bar lights a tone sounds in the corresponding ear of the headphones.
If you have further interest in this Therapy Topic here are a couple links to get you started:
My Grandson's question to me at this point was whether it would be possible for us to make one of these light bar machines. Since I like a little purpose to my explorations I decided it would be a good project to explore. I began with a simple scan circuit based on a 4017
This very properly makes the lights scan from left to right but rather than returning it jumps back to a left right scan each time. I decided to extend the counter by one more stage and use the outputs of the second 4017 to reflect back on the LEDs so that the first 4017 would light the string in one direction and the second 4017 would light the lights in the opposite right to left sequence. I also had to be aware that ultimately the left side of the string would have to be distinguished from the right side. The Data Sheet for the 4017 provided the information necessary to add another 4017 to the string. An MC14081 "AND" gate was also necessary for the logic of this addition. The circuit was built and now I had a string of 17 LEDs flashing from left to right. Now I had to find a way to power the LEDs of the first 4017 using the second 4017 in a reverse order. I began by putting 1N4148 diodes on each of the 4017's outputs. This would allow me to power the LEDs from each 4017 without any interference. I also removed the current limitation resistor(s) on the LEDs and isolated the return leads of the left from the right side LEDs. Instead of current limiting resistors I installed a separate simple one transistor current sink for each side of the nine LED string. My hope was that ultimately I would be able to use an OPAMP to sense when each current sink was being used so that I could turn on the correct vibrator to correspond to the right or left side of the bar. The tone in the headphones could be driven by a MOSFET linked to the end LEDs. A small capacitor and resistor on the drain of the MOSFET would allow me to control the amount of time the MOSFET remained on and hence the duration of the tone. For this prototype I just powered small piezo buzzers (sonalerts) whereas a production unit would have to have oscillators and a small audio amp. To simulate the hand vibration unit I salvaged vibration motors from some old cell phones. The Op Amps that I used to discriminate the left current sink from the right one were a bit sensitive but functioned properly. I believe that a production model with improved inter device connections would improve this problem. A nine volt linear regulator was installed to stabilize the voltage to the unit so that the op amps stayed in calibration.
Here is a picture of the finished prototype board:
I am sorry but I have not produced a schematic of the unit and I probably won't. While it is very functional it is unlikely that it has been anything but a learning experience and is not likely to ever be produced in this configuration. As it got more and more complicated it occurred to me that a Micro Processor like an Arduino would easily handle this function with many less components and complexity. I have made a video of this board in operation and I will attach it at the end of the blog.
At this point I decided to develop a second prototype based on an Arduino Duemilanove. The program was very simple and linear with very little logic involved. I wanted to control the speed of the scan of the lights so I put in a potentiometer that could be read by an analog input and then the value used as a value in the "delay" command. Once that was done it was simply a matter of telling the arduino to turn on and off LEDs, vibrators, and sonalerts in the proper sequence. The circuit itself was a lot simpler although the use of the jumper wires from the Arduino outputs to the LEDs makes the board look quite cluttered and obstructs the view of the LEDs. While the sonalert beepers could run directly off the outputs of the Arduino the 150 mA at 3 volt draw of the vibration motors was too much current for the outputs. To handle this I used the 9 volt power supply and MOSFETs driven by the outputs of the Arduino to power the vibration motors. To control the current to the motors to the proper level I once again constructed a simple one transistor current sink to ground and fed both motors to it.
Here is a picture of the finished prototype board.
Here are videos of the two different prototypes each doing basically the same thing.
EMDR Prototype built using discrete components.
EMDR Prototype using Arduino Duemilanove.
This has been a good experiment as I have had the opportunity to refresh my experience with the 4017, 555, and 14081 IC devices. I have also had some fun playing with simple current sinks that can be used in lieu of current limiting resistors when supply voltage isn't stable or other considerations are important. Further the utility of MOSFETs continues to impress me. I have had the basic skills to use MOSFETs for about three years now and I do not know how I survive the other 65 years without them. This project has also forced me to once again remember that despite my old fashion gravitation to the use of discrete ICs and other components the microprocessor is a better solution in many cases.