11th January 2014
A low frequency-modulated haptic therapeutic device.
My main interest in developing this device lies in trying to extend the range of electronic wetware therapeutic options to a wider non specialist public.
Over the past 10 years or so I've mainly concentrated on building and programming electronic "WetWare" devices which can be relatively easily
constructed by hobbyists. Nearly all these devices have to do with the modulation of either Sound, Light, Magnetic-fields or even High-Voltage Stimulation
of various parts of the body in order to achieve the desired therapeutic goal. To this end I usually program these devices in Avr and Arm assembly code
... just check out the rest of this website ;-) Recently however I happened to stumble accross Rfo-Basic by accident and I was immediately impressed
by its classical elegance and by its essentially Open-Source nature.
Real world interfacing, in real time, using an interpreted Basic offers a series of interesting challenges to someone like me who comes from an
assembly-language background. The simple lack of speed being the primary one - thinking in tens of milliseconds instead of tens of nanoseconds -
really takes getting used to. On the other hand, access to a potential world-wide community of one billion users can more than make up for this limitation ;-)
In view of the above observations, I decided to program a device, which can form the basis for a range of similar products, based upon the bare Android
phone itself and using Rfo-Basic as the primary programming language. And thus the Good Vibes project was born :-)
How it works:
The eccentric cam dc-motor which acts as a vibrator in the Android phone can be modulated in frequency between 1 Hz and 30 Hz.
The intensity (Duty-Cycle) of the motor hammer can be varied using pulse width modulation (Pwm) between 1% to 99%.
The volume of the White-Noise mono-sound through the onboard speaker can be varied in a linear fashion between 1% to 99%.
Both of these options can be accessed, using the two Sliders on the main form. A green dual- display counts down every minute
from one of the four available time sessions accompanied by a decrementing yellow progress-bar. Eight programs are offered in
total and these can be accessed,just like the Interval-Rates and Session-Times, by clicking on the appropriate touch button on the Top-Panel.
The programs offered are as follows:
1: Alpha_Low from 8 to 10 Hz.
2: Alpha_High from 10 to 12 Hz.
3: Beta_Low from 12 to 20 Hz.
4: Beta_High from 20 to 30 Hz.
5:Delta_Low from 1 to 2.5 Hz.
6: Delta_High from 2.5 to 4 Hz.
7: Theta_Low from 4 to 6 Hz.
8: Theta_High from 6 to 8 Hz.
At the end of each Interval-Rate a random number generator routine chooses one frequencyfrom the bandwidth
offered by the chosen program option and displays it along with the name of the selected program.The four Program-Times are equal to the following:
1: 15 Minutes
2: 30 Minutes
3: 60 Minutes
4: 75 Minutes
And last but not least, the eight Interval-Rates offered are as follows:
1: 5 Seconds
2: 6 Seconds
3: 10 Seconds
4: 12 Seconds
5: 15 Seconds
6: 20 Seconds
7: 30 Seconds
8: 60 Seconds
Please bear in mind that this is my first ever published Basic program and that my programming style still leaves
much to be desired.All mistakes and errors in the program belong exclusively to me alone and any thing or idea
you might find interesting is to be credited to the wonderful Rfo-Basic community from whom I've learned so much.