"Out Juggling In My Class" by William V. Thayer

Act 10. JUG:010 Rhythmic Juggling CBL Lab

copyright © 1997 Wm. V. Thayer, All Rights Reserved




The objective of this laboratory is to measure a juggler's dwell time and vacant time for both hands. Then graph these times and find the flight time and height of each toss. You may be interested in how your ratio, k, of dwell time to hand cycle (dwell plus vacant) time looks in light of P. J. Beek's findings.

As suggested by C. Shannon, juggling bags are wraped in aluminum foil and solder tape (flat woven wire) is stitched to the palm of the gloves.

The foil wrapped bags short the wires on the glove when the ball is held, that is, during dwell time.

The following figure shows how to wire the glove wires (solder tape) to the game port DB-15 D-Shell connector.

Juggling Game Port connection

So for a few dollars of telephone four wire cable, some other supplies and a little sewing and soldering time, one can have a little fun collecting data.

The following MS-DOS QBASIC program was fast enough to get game port button switch values in the .001 to .003 second range for my old 386 computer.


100 REM PROGRAM JUGAMEP1.BAS ----  TURN PRINTER ON LINE AND START BEFORE 4000
104 REM GAME PORT JUGGLING PROGRAM FROM PAUL BERGSMAN'S BOOK CONTROLLING THE WORLD WITH YOUR PC
106 DEFINT A-R
108 REM   Read, and display, statis of gameport joysticks and buttons
110 REM   BUTTON A1 IS STIG(1) AND BUTTON A2 IS STRIG(5) DWELL IS -1 VACANT 0
112 DIM R&(9000), L&(9000)
116 DIM RO&(9000), LO&(9000)
120 CLS : FOR K = 1 TO 4000: LOCATE 5, 3: PRINT K: NEXT K: K = 0: CLS
122 N& = 1: MRO& = 1: MLO& = 1: MR& = 1: ML& = 1: MALM& = 8999
128 O# = TIMER * 100
130 REM
140 IF STRIG(1) = -1 THEN R&(MR&) = N&: MR& = MR& + 1
145 IF STRIG(5) = -1 THEN L&(ML&) = N&: ML& = ML& + 1
150 IF STRIG(1) = 0 THEN RO&(MRO&) = N&: MRO& = MRO& + 1
155 IF STRIG(5) = 0 THEN LO&(MLO&) = N&: MLO& = MLO& + 1
255 N& = N& + 1: IF ML& > MALM& OR MR& > MALM& OR MLO& > MALM& OR MRO& > MALM& THEN P# = TIMER * 100: GOTO 300
260 GOTO 130
300 Q# = P# - O#: X# = Q#: PRINT "TIME = "; X# / 100; " SECONDS FOR "; N&; " INTERVALS OF "; X# / (100 * N&): Y# = X# / (100 * N&)
390 KI& = 1: LPRINT "     _____________________ RIGHT HAND DWELL TIMES_____________________"
400 FOR K& = 2 TO MR&
410 IF R&(K&) = R&(K& - 1) + 1 THEN 480
420 LPRINT "RDR: "; R&(KI&); " "; R&(KI& + 1); "..."; R&(K& - 2); " "; R&(K& - 1); " FOR "; (R&(K& - 1) - R&(KI&)) * Y#; " SEC."
470 KI& = K&
480 NEXT K&
490 INPUT "LOAD PAPER AND ENTER"; Z$
500 KI& = 1: LPRINT "     _____________________ RIGHT HAND VACANT TIMES_____________________"
510 FOR K& = 2 TO MRO&
520 IF RO&(K&) = RO&(K& - 1) + 1 THEN 550
530 LPRINT "RVR: "; RO&(KI&); " "; RO&(KI& + 1); "..."; RO&(K& - 2); " "; RO&(K& - 1); " FOR "; (RO&(K& - 1) - RO&(KI&)) * Y#; " SEC."
540 KI& = K&
550 NEXT K&
560 INPUT Z$
590 KI& = 1: LPRINT "     _____________________ LEFT HAND DWELL TIMES_____________________"
600 FOR K& = 2 TO ML&
610 IF L&(K&) = L&(K& - 1) + 1 THEN 680
620 LPRINT "LDR: "; L&(KI&); " "; L&(KI& + 1); "..."; L&(K& - 2); " "; L&(K& - 1); " FOR "; (L&(K& - 1) - L&(KI&)) * Y#; " SEC."
670 KI& = K&
680 NEXT K&
690 INPUT "LOAD PAPER AND ENTER"; Z$
700 KI& = 1: LPRINT "     _____________________ LEFT HAND VACANT TIMES_____________________"
710 FOR K& = 2 TO MLO&
720 IF LO&(K&) = LO&(K& - 1) + 1 THEN 750
730 LPRINT "LVR: "; LO&(KI&); " "; LO&(KI& + 1); "..."; LO&(K& - 2); " "; LO&(K& - 1); " FOR "; (LO&(K& - 1) - LO&(KI&)) * Y#; " SEC."
740 KI& = K&
750 NEXT K&
760 REM INPUT Z$
995 Q# = P# - O#: X# = Q#: LPRINT "TIME = "; X# / 100; " SECONDS FOR "; N&; " INTERVALS OF "; X# / (100 * N&)
996 PRINT "MR& = "; MR&; "  MRO& = "; MRO&; "  ML& = "; ML&; "  MLO& = "; MLO&; "  N& = "; N&
998 LPRINT DATE$, TIME$: PRINT
999 PRINT "DONE": END



The program records the state, on or off, of the dwell period by listing the counting numbers during which dwell is on. The same is true for the vacant period. This double reporting was done to help with contact bounce or contact problems. You may want to make the glove wires more or less close as you see the need for better data.

The approximate average time interval is given in seconds so you can adjust the counting number periods by hand if data points are picked to skip bounce noise.

Next, plot the left and right hand counting number periods and the associated time periods as shown as started in the following Beek Tessellation Graph left hand motion.

The left hand vacant report looked like:
LVR: 9299 . . . 9547 FOR .318 seconds
LVR: 10241 . . . 10463 FOR .285 seconds
LVR: 11115 . . . 11367 FOR .322 seconds
and so on

The left hand dwell report looked like:
LDR: 9548 . . . 10241 FOR .890 seconds
LDR: 10465 . . . 11114 FOR .832 seconds
LDR: 11368 . . . 12022 FOR .840 seconds
and so on

The right hand vacant report looked like:
RVR: 9788 . . . 10023 FOR .302 SEC
RVR: 10687 . . . 10917 FOR .295 SEC
RVR: 11566 . . . 11838 FOR .347 SEC
AND SO ON

The right hand dwell report looked like:
RDR: 10024 . . . 10685 FOR .849 SEC
RDR: 10918 . . . 11566 FOR .832 SEC
RDR: 11840 . . . 12464 FOR .801 SEC
AND SO ON

Locate these additional values on the following graph.


Juggling Data Graphed


Next step is to find the flight times by marking the start and end of each flight with the corresponding interval counting numbers. Then find the difference between the starting and ending interval number and multiply that difference by the time interval which was .001284 seconds for the above data.

The first bags counting numbers were 9299 to 10024 for a difference of 725 giving a .931 second flight time.

Use the following MS-DOS QBASIC program or your calculator to show that the flight height is 41.8 inches.


100 REM JUGGLING HEIGHTS PROGRAM JHEIGHT.BAS
105 CLS : PRINT : PRINT "___________________JUGGLING HEIGHT BASED ON FLIGHT TIME____________________": PRINT
110 INPUT "THE FLIGHT TIME F = "; F
120 S = (193 / 4) * F ^ 2: PRINT : PRINT "CALCULATION MADE USING S = 193 (F/2)^2": PRINT
130 PRINT "IF TOTAL FLIGHT TIME IS F = "; F; " THEN THE HEIGHT IS "; S; " INCHES"
140 PRINT : PRINT "ANOTHER CALCULATION?"; : INPUT " Yes/No "; QUEST$
150 IF QUEST$ = "Y" OR QUEST$ = "YES" THEN PRINT : GOTO 110
160 IF QUEST$ = "y" OR QUEST$ = "yes" THEN PRINT : GOTO 110
200 END

The first k ratio value was .737.

The Beek Tessellation Graph paper is a great aid in finding cascade juggling information from the data.

Let me know how your results work out!





Computer Laboratory with Vernier's LabPro and Logger Pro

The Talk Outline



Back to the course list


Copyright © 1991 through © 1998
with all rights reserved by
William V. Thayer, PedLog contact!