I was motivated by a visit to the London Science Museum where there is a 22m tall pendulum. That's a bit too big for my house so I was encouraged by Schumacher & Tarbet's description of a method to implement a short Foucault pendulum. The Science Museum uses a mechanical tug on the pendulum string to keep the pendulum swinging. S & T went for a magnetic drive. A permanent magnet in the pendulum bob was repelled by a pulse in a coil close below the centre of the pendulum's swing. Their scheme was hampered by the pendulum going into an elliptical path after a while. This needed an aluminium ring near the maximum swing of the pendulum to keep the swing in a straight line. They demonstrated it successfully with a 3m pendulum. Still a bit big for me!
After some attempts with the S & T scheme, I changed to using magnetic attraction as the pendulum approaches the centre instead of repelling it after it has passed. This seems to have worked to keep the swing in line and has maintained a 1.8m long pendulum swinging for several days.
The Picaxe program measures the period of half a swing using Timer1 and a pause - Timer1 can't manage the full interval. 3 measurements are averaged. Then the next passage of the pendulum starts timing a period a bit less than the period of half a swing when the drive coil is energized for a short time. I think, but haven't tested, that dynamic measurement of the period of swing is not needed - a constant figure would probably suffice.
My setup comprises a 1.8m length of 0.4mm diameter nylon line. The pendulum bob is a steel plug and strong (neodymium?) disc magnet (15mm diameter, 1.8mm thick) together weighing 21g. Passage of the bob over the centre is detected by an A1120 Hall effect sensor and an LM311 comparator to get a clear signal for the Picaxe (08M2). The drive coil is powered by a MOSFET. The coil came from my Meccano Elektrikit from the 1960s. It is about 20mm long with internal diameter 10mm and external 18mm. It is 4.5mH and 17ohm. The whole circuit was set up on an AXE091 development board. The circuit diagram is attached.
The code:
I demonstrated the functioning pendulum to my wife and wished her Happy Christmas. She expressed intense unimpressedness so I'm off to Ratner's tomorrow.
After some attempts with the S & T scheme, I changed to using magnetic attraction as the pendulum approaches the centre instead of repelling it after it has passed. This seems to have worked to keep the swing in line and has maintained a 1.8m long pendulum swinging for several days.
The Picaxe program measures the period of half a swing using Timer1 and a pause - Timer1 can't manage the full interval. 3 measurements are averaged. Then the next passage of the pendulum starts timing a period a bit less than the period of half a swing when the drive coil is energized for a short time. I think, but haven't tested, that dynamic measurement of the period of swing is not needed - a constant figure would probably suffice.
My setup comprises a 1.8m length of 0.4mm diameter nylon line. The pendulum bob is a steel plug and strong (neodymium?) disc magnet (15mm diameter, 1.8mm thick) together weighing 21g. Passage of the bob over the centre is detected by an A1120 Hall effect sensor and an LM311 comparator to get a clear signal for the Picaxe (08M2). The drive coil is powered by a MOSFET. The coil came from my Meccano Elektrikit from the 1960s. It is about 20mm long with internal diameter 10mm and external 18mm. It is 4.5mH and 17ohm. The whole circuit was set up on an AXE091 development board. The circuit diagram is attached.
The code:
Code:
' Foucault control
#PICAXE 08M2
#NO_DATA
' Input from A1120 Hall effect switch on C.3, leg 4
' Output to Drive coil on C.2, leg 5 via MOSFET
' Based on Schumacher and Tarbet, http://www-meg.phys.cmu.edu/~schumach/ras_papers/Schumacher_Tarbet_Foucault_0902.1829.pdf
' A critical parameter is the Period of the pendulum, T = 2.pi.(L/g)^0.5, about 2.7s for a 1.8m pendulum.
' Magnet in the pendulum bob causes pulse in Hall switch as it passes centre.
' Pulse applied to Drive coil as it approaches centre.
SYMBOL Sensin = pinC.3 ' Hall effect Sense connection leg 4
SYMBOL Drivout= C.2 ' Drive coil connection leg 5
SYMBOL TMR1L = $16 ' SFR location of Timer1 low byte
SYMBOL TMR1H = $17 ' SFR location of Timer1 high byte
SYMBOL TMR1Off = 1934 ' Timer 1 Offset
SYMBOL TMR1Slp = 997 ' Timer 1 Slope ticks/ms
SYMBOL Tpul = 20 ' Duration of Drive pulse (ms)
SYMBOL Tpulus = Tpul * 100 ' Drive pulse in 10 us units for Pulseout
SYMBOL Adv = 25 ' Time before centre to fire Drive coil (ms)
SYMBOL Period = 1270 ' Less than (by a bit less than 60ms - max Timer1 timing) Approx half Period of pendulum (ms)
SYMBOL Ntries = 3 ' Number of measurements of Period
SYMBOL Ind = b2 ' Counter
SYMBOL finl = b4
SYMBOL finh = b5
SYMBOL fin = w2
SYMBOL Tper = w10 ' Estimate of half period (ms)
'Start of main loop
DO
' Measure time for 1/2 swing. Tper is excess time over Period
Tper = 0
FOR Ind = 1 TO Ntries ' Take average over Ntries passes
DO
LOOP WHILE Sensin=0 ' Wait for magnet to pass centre
PAUSE Period
POKESFR TMR1L, 0 ' Make sure Timer1 starts at 0
POKESFR TMR1H, 0
POKESFR TMR1L, 0
DO
LOOP WHILE Sensin=0 ' Wait for magnet to pass centre
PEEKSFR TMR1L, finl
PEEKSFR TMR1H, finh
' fin is excess time in Timer1 ticks
' Convert from ticks to ms and add
Tper = fin - TMR1Off / TMR1Slp + Tper ' in ms
NEXT Ind
' Take average of Tper , add Period and subtract Advance to get time after centre pass to fire Drive coil (ms)
Tper = Tper / NTries + Period - Adv
DO
LOOP WHILE Sensin=0 ' Wait for magnet to pass centre
PAUSE Tper
Pulsout Drivout, Tpulus ' Drive the coil
LOOP
END
I demonstrated the functioning pendulum to my wife and wished her Happy Christmas. She expressed intense unimpressedness so I'm off to Ratner's tomorrow.