FIGURE 4: PHOTOGRAPH OF THE COMPLETED SLAVE MASTER.
swapped for the TRIADC8 depending upon the application.
Once the analog data from the accelerometers is digitized,
it is sent to the master for accumulation.
The operation of the slave PSoCs are controlled by a
single master PSoC on a PSoCEVAL1 evaluation board (see
Figure 4). We recommend the use of evaluation boards
instead of stand-alone breadboarded master units to ease
debugging and to facilitate further hacks on the present
design. The data received by the master from the slaves is
finally transferred to a computer using the UART output
from the microcontroller (and an FTDI 232R chip) or by
connecting a serial-to-USB converter to the evaluation
FIGURE 5: SAMPLE SIGNALS FROM A HIP-MOUNTED
ACCELEROMETER SHOWING THE VOLTAGE LEVELS FOR
VARIOUS EVERY-DAY ACTIVITIES.
40 SERVO 12.2008
board’s RS-232 port. The data is recorded and saved to a
file using Windows Hyper Terminal.
One of the difficulties we faced during our initial
versions was the unreliability of data transfer while using
the I2C connection between the slaves and the master. We
traced this problem to the long connection lengths between
the boards required to interconnect the slaves on a moving
human to the stationary master. In our case, the furthest
distance of the slave from the master was about five meters.
With a rated capacitance of 460 pF over this length, the design
exceeded the 400 pF maximum allowed line capacitance for
an I2C connection. The trick to mitigate such length issues
in I2C connections is to use bus extenders. We selected
the Phillips P82B715 extender along with suitable pull-up
resistors on the serial data (SDA) and serial clock (SCL) lines.
It is estimated that the use of the extender chips allows us
to increase the maximum cable distances to about 30 m.
While the design of each slave node is simple, the
system obtains its enormous power by synchronously
operating several slave nodes in parallel, controlled by a
master node equipped with the right software.
After we got the hardware all set, we faced the
formidable challenge of mounting the boards firmly on the
appendages of the subject! After much trial and error, we
built a reliable and low cost mount for the slave board by
placing it in a plastic container (soap container from
Wal-Mart, $0.50) and screwing the board to the bottom of
it. Initially, we experimented by sticking a piece of wood
in between the board and the container using epoxy to
provide rigidity. However, the epoxy was not enough to
keep the board firmly positioned under vibratory motions.
Hence, four screws were used at the corners of the board,
each with three bolts (two on either side of the board to
hold it, and one to fasten the container’s surface) to make
a firm mount. One could also use foam to fill the space
between the board and the container to damp out spurious
resonances between the board and the soap case. Once
the soap container was ready, we used an elastic neoprene
to fix the container in place.
The code associated with this project contains two
components: the hardware configuration component for
the selection and correct configuration of the various
modules in the CY8C29466 chip; and the second
component that takes care of the inter-chip
communications, sends synchronization signals to control
data acquisition and transmissions.
We configured the master PSoC with one each of
I2CHW, LCD, and UART modules. The I2CHW module
communicated with the slaves while the UART interfaced