Bruk av Pasco-sensorer

Pasco og Python

Pasco har noen trådløse sensorer som kan være veldig praktiske å bruke i skolen. I mosseskolen har vi alle fått noen temperatursensorer, noen pH-sensorer samt noen avstandsmålere som kan måle avstander, fart og akselerasjon. Alle disse sensorene snakker med Python, via Pasco sitt eget bibliotek som heter noe så enkelt som…pasco. Det er relativt enkelt å sette opp en kode som snakker direkte med sensoren, men det er ikke viktig at elevene lager denne koden selv. Det kan være like greit å få tilsendt en kode av læreren, og heller tilpasse denne til sitt behov. Her er noen eksemplet på hvordan man kan benytte seg av disse sensorene i naturfagsundervisningen.

Hvordan måle effekten av drivhuseffekt?

Alt vi trenger for å måle drivhuseffekt er 2 temperaturmålere, og en glassbolle. Dersom vi legger en måler under en glassbolle, og en annen måler ved siden av, så skal man kunne registrere temperaturer samtidig. Her er det jo viktig at man måler samtidig, nøyaktig og at man skriver ned resultater. Alt dette ordner python, og resultatene legges i en fil som kan jobbes videre med i Excel.

Her er et eksempel på en kode som benytter to sensorer. Dersom man vil at en elev bare skal kontrollere en sensor, så er det bare å endre koden deretter. 

Pyton
				#-----------------------------
ANT = 50 # Hvor mange målinger skal utføres?
SEK = 10 # Hvor mange sekunder mellom hver måling
TMP_ID_1 = '889-606' # Skriv inn ID på sensor1
TMP_ID_2 = '123-456' # Skriv inn ID på sensor2
#------------------------------
from pasco import PASCOBLEDevice
import time
from matplotlib import pyplot

temp_sensor_1 = PASCOBLEDevice()
temp_sensor_1.connect_by_id(TMP_ID_1)
temp_sensor_2 = PASCOBLEDevice()
temp_sensor_2.connect_by_id(TMP_ID_2)
liste = []

for i in range(ANT):
    temp_value1 = temp_sensor_1.read_data('Temperature')
    temp_value2 = temp_sensor_2.read_data('Temperature')
    print("Verdi måler 1:",temp_value1, "Verdi måler 2:", temp_value2)
    liste.append([temp_value1,temp_value2])
    time.sleep(SEK)

# Vi skriver dataene til en fil, som enkelt kan hentes inn i Excel
with open("temp.csv","w") as file:
    for i in range(len(liste)):
        file.write(str(liste[i][0]).replace(".", ","))
        file.write(";")
        file.write(str(liste[i][1]).replace(".", ","))
        file.write(";")
        file.write("\n")
print("Ny fil opprettet: temp.csv")
temp_sensor.disconnect()

			

Denne koden skal kunne fungere rett inn som den er, men legg merke til de 4 øverste linjene. Der skal man legge inn de verdier man ønsker før man kjører programmet. Når programmet er ferdig, så vil det også generere en csv-fil som kan åpnes i Excel for videre lek :-).

PS!
Dersom man skal benytte Pasco sammen med Python, så må biblioteket “pasco” være lagt inn sammen med python. Dersom man mangler pasco-biblioteket, så kan man gå inn i terminalen og skrive “pip install pasco” for å legge til den manglende modulen. 

Dersom du vil lage et enklere program som måler hver gang du trykker på enter, så kan dette programmet fungere:

Pyton
				#-----------------------------
TMP_ID = '889-606' # Skriv inn ID på sensor
#------------------------------
from pasco import PASCOBLEDevice

temp_sensor = PASCOBLEDevice()
temp_sensor.connect_by_id(TMP_ID)

run = ""
while run != "q":
    temp_value = temp_sensor.read_data('Temperature')
    print("Verdi måler:",temp_value)
    run = input("Trykk enter for å måle igjen, q+enter for å avslutte->")

temp_sensor.disconnect()
			

Utforsking av pH-skalaen

Hvordan virker egentlig pH-skalaen? Hvor mye vann må til for å endre pH-verdi? La oss sjekke ved hjelp av Pasco og Python. Under ser du et eksempel på hvordan en kode kan se ut for å måle pH-verdi ved hjelp av en trådløs pH-meter fra Pasco. Programmet fungerer ved at brukeren legger inn sensor-ID øverst i koden, og deretter starter programmet. Deretter startes programmet opp, og det taes en måling så fort koblingen til enheten er satt opp. Deretter kan man bare trykke Enter for å ta en ny måling. Når man er ferdig, trykker man ‘q’ og Enter, og programmet oppretter en csv-fil med alle målingene.

Pyton
				#-----------------------------
pH_ID = '206-078' # Skriv inn ID på pH-sensor
#------------------------------
from pasco import PASCOBLEDevice

pH_sensor = PASCOBLEDevice()
pH_sensor.connect_by_id(pH_ID)
liste = []

run = ""
while run != "q":
    pH_value = pH_sensor.read_data('pH')
    print("pH-verdi:",pH_value)
    liste.append(pH_value)
    run = input("Trykk 'Enter' for å ta ny måling. Skriv 'q' for å avslutte!")

# Vi skriver dataene til en fil, som enkelt kan hentes inn i Excel
with open("temp.csv","w") as file:
    for i in range(len(liste)):
        file.write(str(liste[i]).replace(".", ","))
        file.write("\n")
print("Ny fil opprettet: temp.csv")
pH_sensor.disconnect()

			

DigitAbel – for dypere læring