schur@isi.edu (Sean Schur) (11/27/90)
I am posting the following for a friend and associate. If you have
any responses you can respond to me or to rn and I will forward
your messages or queries.
---------------------------------------------------------------
I had been working independantly on the disection of the Nintendo
power glove when a friend and associate showed me what Eric Pepke
had listed here. It's great to know someone else is working on the
glove, as it looks like VPL isn't going to release their RS232
version anytime soon. I am using parts at hand, so undoubtedly a
better way exists to get the pulse and timing into something more
CPUseful.
What I did was to chop off the glove's CPU and just use the knuckle
box and receiver. The wiring and board location names follow.
Unlike Eric, I couldn't get the switching supply on the knuckle board
to get anywhere near 40 volts. With straight 50Khz going to the
violet wire I get 15 volts. However, using the divider below to get
from 1 Mhz down to 50 Khz, if the 50 Khz is NOR'ed with pin 12 (QC)
of the divide by 10 counter and then fed to the violet wire, I get a
nice 25 volts. I suspect the switcher is very frequency sensitive, and
somehow this combination and pulse width is nearer to perfect.
The receivers can be used as is. When a nice pulse is sent from the
transmitter in the form of a burst of 50 Khz (but not longer than 3ms
to keep from double triggering) the receiver will send out a clean
negative going pulse 7.5ms long. I time from the begining of the
transmit pulse burst until the leading edge of the receiver pulse by
counting 25 Khz clocks. The circuit is set up so that the final
latches (only one shown)can catch the results and then be polled if
needed to pass the data on to your computer through a UART or parallel
port. It is easy to expand so that all 6 receiver bursts (3 for each
transmitter) could be collected.
This test circuit is easy to change and play with....changing the
counter configuration can give better resolution but more jitter.
To see the output without having to write code, I just used a couple
of Texas Instruments TIL311 hex displays connected directly to the
latch outputs. I was getting about 1cm resolution as connected.
What I would really like to know is how to very simply and quickly
get nice X-Y-Z coordinates from the planar 3 receiver array without
lots of gooey math. I have tried remaking the receiver stand so that
they fall on the axes, but must tilt the stand so that the glove
points into the origin. Again, some translation and rotation math
would be helpful. The problem with a stand set up in this way is that
it limits movement even more than the planar version. Any help would
be appreciated.
We at CAL-ARTs are deeply interested in VR. We have many artists in
the film, video, dance, music,and theater arts. In our own Media Lab,
have over 100 students producing art on Amigas, and most of those are
character animators aching to actually move INTO the worlds they are
now creating on paper, film, and video. Thanks for the forum, and
keep those ideas comming!
Dale McBeath voice (805) 255-1050 ex. 2330
CAL-ARTs (805) 245-3191
Character Animation Dept. PLINK msu-387
School of Film and Video
24700 McBean Pkwy, Valencia CA 91355
Knuckle box wiring:
Knuckle pin CPU pin Color Function
1 3 Pink Index finger (analog 100K to 500K)
2 2 Brown Thumb
3 12 Lt. Blue Finger common (thrugh a diode)
4 4 Orange Middle finger
5 11 White Small finger
6 7 Green Right transmitter
7 6 Yellow Left transmitter
8 9 Violet Switching Supply Pulse (50Khz) in
9 10 Grey Switching Supply feedback (2v nom)
10 1 Black Ground
11 5 Red +5 volts
12 8 Dk. Blue Bell (small peizo element)
Receiver Box Wiring:
(1) Recv 1 (top left)
GND (6)
(2) GND
Reset in (7)
(3) Recv 2 (corner)
Clock in (8)
(4) Recv 3 (bottom right)
Data out (9)
(5) +5
TIMING: low = ______ high = --------- lots-o-pulses = |||||||
50Khz ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
TRIG --------+_____+-----------------------------------+______+--
RESET __+-----+___________________________________+-----+_________
XMIT ________|||||||___________________________________||||||||__
GO ________+-----------------------------------+_______________
COUNT --------+|||||||||||||||||||||||||||||||||||+_______________
RCV -------------+_____+-----------------------------------+____
DATA =============X=========NEXT GOOD DATA==================X====
| +5v
>
< .39 K
(/10) +------+ >
+-----------+ +---------+ | 1/2 |QA----O--------O---> 50 Khz
| 1meg osc. |-----| 74ls160 |--CK| 74ls | | (violet)
+-----------+ +---------+ | 393 |QB------------ | --> 25 Khz
| | |
+----------CLR| |QD--------+ |
| +------+ | |
GND +------------------------+ |
| +------+ |
| | 1/2 | (/256) |
+----CK| 74ls | |
| 393 |QD--------+ |
+------+ | |
+----------------------------------------------------+ |
| +-------------------------+
| |
| +----\-----\
| +------+ +------+ | ls02 >nor-------------> XMIT
| | 1/2 |QA----A| |Q1--O--/-----/ (yellow
+----CK| 74ls |QB----B| 74ls | | or green)
| 393 |QC----C| 138 | +----------------> TRIG
+------+ | |
| |Q8-------------------> RESET
+-en'+---+--+
| EN
GND |
(open)
25 Khz>--------------------------------+----\
TRIG>-------+----\ | ls00>nand--------> COUNT
| ls00>nand-----O----------+----/
+-+----/ |
+---------------+ |
| |
+-----------------+
+-+----\ |
| ls00>nand---+
RESET>------+----/
RCV(1,2,or3)>------------------------------------+
|
+-------+ +----+---+
COUNT>--------------| 74ls | | 74ls |
| 393 >----(8 bits)---> 373 >---(8 lines)-->
| (/256)| | (latch)| DATA OUT
| | | |
+--clr--+ +--'OE---+
| |
|\ | |
RESET>-----| >not------+ GND
|/ (or POLL for data)
==============================================================================
\ /
\ \ / /
Sean Schur \ \ / /
\ \/ /
USENET: schur@isi.edu \ /a\mpyr/
Compuserve: 70731,1102 \/ \ / ideo
Plink: OSS259 \/
==============================================================================