Raspberry Pi

20) RasPI a kyvadlo (RasPI jako časomíra)

 

Tento článek popisuje pouze jeden pokus, který jsem chtěl zrealizovat už dávno, ale neměl jsem potřebné vybavení.
Jedná se o měření doby kmitu kyvadla. Následně se pak tato doba porovná s teoreticky vypočtenou periodou kmitu.

Když už mám Raspíčko, je možné ho využít i jako docela přesnou časomíru.

Základem pro měření času je optická závora, jejíž stav je snímán na GPIO portu Raspi. Jako vstup jsem použil porty na expanderu (mám je vyvedené na konektor na krabičce). Daly by se použít i GPIO porty přímo na RasPI, ale tam by bylo třeba si dát pozor na to, aby signály nepřekročily 3,3V. (Expanderu 5V na vstupu nevadí, ale GPIO port přímo na Raspíčku by se tím mohl zničit.)

Protože jsem měl k dispozici pouze  fotoodpor, jako snímač a obyčejnou LEDku jako vysílač, musel jsem signál z fotoodporu ještě upravit tak, aby na GPIO port dodával signál logická "1" nebo "0" - podle toho, jestli je světlo přicházející z LEDky přerušeno kyvadlem. Využil jsem k tomu obyčejný tranzistor, pár odporů a nějaký trimr, kterým jsem nastavil spínací úroveň.

Pro ukončení měření jsem použil tlačítko na druhém GPIO pinu

Tady je celé zapojení na nepájivém poli.

Vlastní kyvadlo jsem zkonstruoval ze stavebnice Merkur. Chtěl jsem, aby bylo možné měnit výšku závěsu. Jako závaží jsem použil matici M8, kterou jsem ještě zaplnil modelínou, aby skrz ní neprosvítalo světlo:

Program pro měření jsem vytvořil v Pythonu.

Nejdřív ale bylo nutno doinstalovat "smbus" pro práci se sběrnicí I2C (abych měl přístup k portům expanderu).
Je možné to provést přes příkazovou řádku pomocí apt-get. Já jsem si ale nepamatoval, jak se ten doplněk přesně jmenuje, tak jsem ho instaloval přes Synaptic. Dal jsemv něm: Vyhledat -> "smbus"  a Synaptic mi nabídnul k instalaci python-smbus. To bylo ono, tak jsem to nainstaloval. V dřívějších verzích Raspbianu se ten doplněk jmenoval py-smbus.

Tady je kód toho měřiče času pro Python:

#!/usr/bin/python

import os
import time
import smbus

bus = smbus.SMBus(0)) # starsi varianta RasPi (256MB)
#bus = smbus.SMBus(1) # novejsi varianta RasPi (512MB)

address = 0x24 # I2C adresa expanderu
bus.write_byte_data(address , 0x00 , 0xff)  # cely ackovy port expanderu nastavit jako vstupni

casy= []

stav = 1
stoptlacitko = 1;

while stav == 1:         # dokud je kyvadlo vychylene vlevo, CEKEJ
 stav =  (bus.read_byte_data(address,0x12) & 0x01)

impulz = time.time()     # prvni pruchod nejnizsim bodem zleva do prava - to je start mereni casu
oldimpulz = impulz


while stoptlacitko != 0: # mereni probiha tak dlouho, dokud neni stisknuto tlacitko

  while stav == 0:       # cekani, nez se kyvadlo vychyli mimo senzor (vpravo) ...
    stav =  (bus.read_byte_data(address,0x12) & 0x01)

  while stav == 1:       # dokud je kyvadlo vychylene (vpravo), CEKEJ ...
    stav =  (bus.read_byte_data(address,0x12) & 0x01)

  while stav == 0:       # dokud kyvadlo prechazi pred cidlem z jedne strany (zprava do leva), CEKEJ ...
    stav =  (bus.read_byte_data(address,0x12) & 0x01)

  while stav == 1:       # dokud je kyvadlo vychylene vlevo, CEKEJ ...
    stav =  (bus.read_byte_data(address,0x12) & 0x01)


  impulz = time.time()   # kdyz kyvadlo zakryje senzor z druhe strany (zleva), zaznamenej cas

  
  stoptlacitko =  (bus.read_byte_data(address,0x12) & 0x02) # testovani STOP tlacitka

 
  casy.append(impulz - oldimpulz)  # uloz delku periody

  oldimpulz = impulz



for c in range(len(casy)):
  print casy[c]



Po skončení měření a vypsání hodnot jsem je překopíroval z terminálu do "velkého PC" do Excelu a tam jsem s nimi dál pracoval.

Dělal jsem pokusy s různou délkou závěsu a také jsem zkoušel měnit tíhové zrychlení pomocí magnetů.
Když se vloží magnet pod místo s nulovou výchylkou kyvadla, jeho magnetická síla, působící na železnou matici, se přičte k tíhové síle a perioda se zkrátí. Dochází také k velkému tlumení kmitání, které způsobuje zrychlení kmitání, jak je vidět dole na grafech.

Když se ale magnety položí mimo, tak jejich magnetická síla naopak mírně pozdrží průchod matice přes "nulový" bod, takže se perioda prodlouží. Na rozdíl od magnetu umístěného přímo pod nulovým bodem, v tomto případě nedochází k tak velkému tlumení kmitů.

Magnety položené tak, že prodlužují periodu kmitu.

Tady je video kyvadla v pohybu přes fotozávoru

Odkaz na YouTube

A tady jsou naměřená data ke stažení: kyvadlo-data.xls

Zajímavé grafy:

 


úvodní strana webu AstroMiK.org

poslední úprava stránky 23.9.2012