Introduktion till Micro Bit med inriktning på vädermätningar och sensorer

Relevanta dokument
SNABBGUIDE VAD ÄR MICRO:BIT? HUR FUNGERAR DEN? KOMMA IGÅNG MED BLOCKPROGRAMMERING 10 OLIKA LEKTIONSFÖRSLAG.

Ipad i teknikundervisningen

Digitalt lärande och programmering i klassrummet

Signalbehandling, förstärkare och filter F9, MF1016

Konstruktion av volt- och amperemeter med DMMM

Elektronik och Microbit

Innehåll. 1 Inledning 3

Ellära. Laboration 2 Mätning och simulering av likströmsnät (Thevenin-ekvivalent)

Laboration 1: Styrning av lysdioder med en spänning

Vilken skillnad gör det var du placerar det? Prova båda.

Programmera i teknik - kreativa projekt med Arduino

Micro:bit och servomotorer

Micro:bit. Bruksanvisning. Innokas verkosto Petja Pyykkönen, Saimaan mediakeskus (Översättning Jens Lindholm)

64 för BBC micro:bit. :GAME Varning: TM. Kortets layout:

Laborationsrapport Elektroteknik grundkurs ET1002 Mätteknik

Digitalt lärande och programmering i klassrummet

Blinkande LED med 555:an, två typkopplingar.

Kom igång med Micro:bit och JavaScript Blocks Editor. Framsida

DIGITAL MULTIMETER BRUKSANVISNING MODELL DT9201

Elektronik grundkurs Laboration 1 Mätteknik

Digitala Projekt (EITF11)

Växtviskaren EITF11 Digitala projekt VT15, I12

Workshop Micro:bit Maria Sandfjord Helene Zeland Bodin

TiS 2017 Inkluderande koppelkodning. Tomas Jonsson Maria Adlerborn

Roboten. Sida 1 av 11

KOM IGÅNG, UPPDRAG OCH KOMPONENTER

Lgr 11 och digital kompetens

Du har följande material: 1 Kopplingsdäck 2 LM339 4 komparatorer i vardera kapsel. ( ELFA art.nr datablad finns )

Innehållsförteckning. Figur- och tabellförteckning. Figure 1 Blockschema över hårdvaran...4 Figure 2 Blockschema över programet...

Micro:bit. Börja skapa egna program

Ett urval D/A- och A/D-omvandlare

Programmera i Block Editor

EV3 Roboten. Sida 1 av 13

- Digitala ingångar och framförallt utgångar o elektrisk modell

Programmering med Arduino

FYD101 Elektronik 1: Ellära

PROJEKT STAFFAN STALLEDRÄNG

Mekanisk solros, Digitala projekt(edi021) Kristoer Nordvall, Stefan Windfeldt, Inlämmnad: 4 december 2006

Legorobot. Lär dig programmera en legorobot. Teknikåttan Ola Ringdahl Lena Kallin Westin

Laboration 5. Temperaturmätning med analog givare. Tekniska gränssnitt 7,5 p. Förutsättningar: Uppgift: Temperatur:+22 C

Figur 1 Konstant ström genom givaren R t.

Temperaturmätare med lagringsfunktion DIGITALA PROJEKT EITF11 GRUPP 14, ERIK ENFORS, LUDWIG ROSENDAL, CARL MIKAEL WIDMAN

Experiment med schmittrigger

Tentamen den 21 oktober TEL102 Inledande elektronik och mätteknik. TEL108 Introduktion till EDI-programmet. Del 1

SAN IP54. LED-plafond med slagtålig opalfärgad kupa E-nummer: art. nr.: 4270 EAN-KOD:

JavaScript Block Editor:

SM Serien Strömförsörjning

1 SÄKERHET FARA VARNING VIKTIGT FUNKTIONER... 4

Kalenderangivelse (veckodag, datum och månad) Alarm snooze funktion Tidzonsinställning Temperaturangivelse i grader Celsius LED bakgrundsljus

Smarttelefonen som verktyg för datainsamling

Fluke 170-serien Digitala multimetrar med sann RMS

Svensk bruksanvisning (sid-hänvisningar till medföljande engelska bruksanvisning)

Robotfotboll med Arduino

Undersökning av logiknivåer (V I

Elektro och Informationsteknik LTH. Laboration 3 RC- och RL-nät i tidsplanet. Elektronik för D ETIA01

TILLÄMPNINGAR INOM DATORTEKNIK

Undersökning av olinjär resistans

2. Vad menas med begreppen? Vad är det för olikheter mellan spänning och potentialskillnad?

Batteri. Lampa. Strömbrytare. Tungelement. Motstånd. Potentiometer. Fotomotstånd. Kondensator. Lysdiod. Transistor. Motor. Mikrofon.

Instruktion elektronikkrets till vindkraftverk

1 Laboration 1. Bryggmätning

CanCom C721 RadioTransceiver V1.19

LEGO Energimätare. Att komma igång

IE1206 Inbyggd Elektronik

IE1206 Inbyggd Elektronik

Instruktion för I/O-Kort, med USB-anslutning.

FlyBot. Copyright Sagitta Pedagog AB

PROJEKT LJUD. KOPIERINGSUNDERLAG Martin Blom Skavnes, Staffan Melin och Natur & Kultur Programmera i teknik ISBN

Elektro och Informationsteknik LTH. Laboration 6 A/D- och D/A-omvandling. Elektronik för D ETIA01

OP-förstärkaren, INV, ICKE INV Komparator och Schmitt-trigger

Grundläggande ellära. Materiellåda art nr. 1. I den första uppgiften skall du använda ett batteri, 2 sladdar med banankontakter och en lös glödlampa.

Gobius Fritid för slutna avfallstankar. Installationsanvisning. Börja här

LBST-604. NEXA LBST-604 Skymningsrelä. Säkerhet. Tekniska data. Uppdaterad: 23 feb av 7

Sammanfattning av kursen ETIA01 Elektronik för D, Del 1 (föreläsning 1-6)

WORKSHOP: EFFEKTIVITET OCH ENERGIOMVANDLING

Prova på. Brun Svart Orange/ Brun Svart Svart Röd Röd Röd Orange/ Röd Röd Svart Röd

Karlstads universitet / Elektroteknik / TEL108 och TEL118 / Tentamen / BHä & PRö 1 (5) Del 1

Laborationsrapport. Kurs El- och styrteknik för tekniker ET1015. Lab nr. Laborationens namn Lik- och växelström. Kommentarer. Utförd den.

µc 3011/3012 Programmerbar signalomvandlare Programmering via µ Consol Programvara MC Vision Digital datalänk

Extrauppgifter Elektricitet

Förstärkning Large Signal Voltage Gain A VOL här uttryckt som 8.0 V/μV. Lägg märke till att förstärkningen är beroende av belastningsresistans.

e-sense move dali Manual

Wheatstonebryggans obalansspänning

Disposition av prototypkort

4:2 Ellära: ström, spänning och energi. Inledning

AL-C AL-S AUX. AL-C SENSOR. (Complete) (Overload) (Aux.) + IN - IN. Svart. Grön Vit Screen. Röd EXC. + Lastgivare

FÄLTMÄTINSTRUKTION C.A 1510

Digitalteknik: CoolRunner-II CPLD Starter Kit Med kommentarer för kursen ht 2012

Laboration 1 Elektriska kretsar Online fjärrstyrd laborationsplats Blekinge Tekniska Högskola (BTH)

William Sandqvist

CT900LED-BED LS900. Bruksanvisning för DENNA BRUKSANVISNING GÄLLER FÖR MJUKVARUVERSION 1.9. KNOP Rehatek AB

SI-pinnar (och kompasser)

Digital isoleringstestare, 2500V Modell:

LBST-609. NEXA LBST-609 Skymningsrelä. Säkerhet. Tekniska data

Laboration 1: Likström

Mät kondensatorns reaktans

Extralab fo r basterminen: Elektriska kretsar

Micro:bit. Koppla till elektronik

Gobius 1- överfyllnadsskydd för septiktankar

Lektion 1: Möt Robo! Områden: Robotteknik, ingenjörsteknik mekanisk design

Transkript:

Introduktion till Micro Bit med inriktning på vädermätningar och sensorer Ray Pörn och Mats Braskén (Åbo Akademi) och Jonas Waxlax (Gymnasiet Lärkan) Detta är en introduktion till mikrodatorn Micro Bit. Den kan t.ex. användas för att skapa olika typer av enkla spel, elektroniska dekorationer och den kan relativt enkelt programmeras för att fjärrstyra och kommunicera med andra enheter, exempelvis mobiltelefonen eller en annan Micro Bit. Det centrala i denna introduktion är att studera hur olika yttre sensorer och givare kan kopplas till Micro Bit (Micro Bit har även inbyggda sensorer som accelerometer och kompass). Eftersom grafiska programmeringsverktyg, som t.ex. Scratch, har blivit vanliga i grundskolan kommer vi i denna introduktion att genomgående använda ett motsvarande verktyg för att programmera Micro Bit. Detta medför vissa begränsningar, så har man behov av att utföra mer komplicerade beräkningar bör man använda något textbaserat programmeringsspråk (t.ex. Python eller JavaScript). Micro Bit (eller micro:bit) är bara fyra gånger fem centimeter stor, men chippet rymmer en fullt fungerande liten mikrodator (ett s.k. inbyggt system). Det är public service-bolaget BBC tillsammans med Microsoft och Samsung (samt många fler) som ligger bakom projektet och den levererades i juni år 2015 till en miljon brittiska sjundeklassare, men har nu också börja säljas till allmänheten. Tanken har varit att skapa en kul, enkel, lärorik och förmånlig mikrodator för Knapp A skolbruk. Datorn har 25 programmerbara LED-lampor, två programmerbara knappar samt inbyggd accelerometer och magnetometer*. Den kan också ge ut ungefärliga temperaturer och belysningsnivåer. Den har en USB-port, Bluetooth (trådlös kommunikation), fem in- och utgångar som går att ansluta till med krokodilklämmor och ca 20 små pinnar. Datorn kan antingen få ström via USB-kontakten eller sladdlöst i ett par dagar med hjälp av en adapter och två vanliga AA-batterier. Micro Bit kan programmeras med hjälp flera olika verktyg: - JavaScript - Python - C/C++-kod - Grafiskt verktyg Microsoft Block Editor (liknar mycket Scratch) - Microsoft Touch Develop. 5x5=25 individuella led-lampor Knapp B *En mera noggrann teknisk specifikation fås via Wikipedia med tillhörande länkar https://en.wikipedia.org/wiki/micro_bit. En utförlig dokumentation för C/C++-programmerare som innehåller en stor mängd funktionalitet har utarbetats av Lancaster University https://lancasteruniversity.github.io/microbit-docs/. 1

I denna introduktion ska vi lära oss att programmera Micro Bit med hjälp av Microsoft Block editorn. Fokus är på att använda mikrodatorn som sensor för att mäta och utforska olika saker i omgivningen kopplade till väder och vind. Strukturen på materialet/övningarna är följande: 1. Det inledande exemplet lär vi oss att skriva ett enkelt program, simulera det i Emulatorn samt spara det på Micro Bit. Vanliga programmeringskommandon presenteras kort. 2. Vi studerar hur Micro Bit kan användas som en vanlig termometer. Temperaturen visas i realtid på displayen. 3. Vi gör ett program som mäter ljusstyrkan (illuminansen) med hjälp av Micro Bit. En grov modell konstrueras för att Micro Bit ska kunna ge ut approximativa illuminanser i lux. 1. Ett första program i Micro Bit a) Gå till http://microbit.org/ välj Lets s Code och Microsoft Block Editor b) Nu öppnas en s.k. emulator där man kan programmera och testa sitt program. Då man är nöjd överför man programmet till Micro Bit och kan sedan köra det direkt från den. c) Välj Basic och dra show leds till arbetsytan. Bocka i ledarna som ska lysa (t.ex. ett plustecken +) och tryck på run. Nu visas resultatet i Emulatorn till höger. d) För att överföra detta program (att ett plustecken visas) till Micro Bit utför vi följande steg (Mozilla Firefox). Kompilera Spara (Save Ok) Dra filen från Downloads till MICROBIT (D:). Nu börjar Micro Bit blinka och när överföringen är klar så slutar blinkningarna. Nu kan vi koppla lös Micro Bit från datorn och den klarar sig själv (batteri behövs). 2

Att spara kodfilen lokalt Om man vill spara sitt program lokalt (utanför Block Editorn) görs detta genom att spara en s.k. JSON-fil (extension.jsz) på valfritt ställe. Denna fil kan sedan öppnas via block editorn om man koda vidare. Kort intro till några andra kommandon Forever-loop: Konstruera följande blockprogram i editorn. Alla använda block hittas under Basic. Testa att koden fungerar genom att köra programmet i emulatorn (run). Vad gör programmet och hur fungerar det? För över programmet till Micro Bit och testa. Knapptryck-händelser: Gör ett program som visar ett +-tecken då man trycker på knappen A, ett x-tecken då man trycker på B och tömmer skärmen då man trycker på A och B samtidigt. Villkorssatser: Vi skapar ett program som flyttar en enskild LED-lampa runt i 5x5-matrisen. Genom att trycka på A-knappen flyttas markören ett steg åt höger och genom att trycka på B-knappen flyttas den ett steg nedåt. Villkorssatser används för att börja om från rad 0 respektive kolumn 0. Initialisering av aktiv LED Händelse för tryck på knapp A - Släck aktiv LED - Öka x-position med 1 - Om vi når position 5 börja om från början (0) - Tänd aktiv LED 3

2. Microbit + sensorer (mäta temperatur) En sensor gör det möjligt att mäta en fysikalisk storhet, så som temperatur, ljusstyrka, tryck eller luftfuktighet. De enklaste sensorerna fungerar så att det finns ett enkelt (ofta linjärt) samband mellan storheten (t.ex. temperatur) och den spänning som sensorn ger ut. Vad vi därför behöver göra för att tillverka en digital termometer, är att läsa av spänningen (vanligen mellan 0 och 5 V) sensorn ger ut med vår Micro Bit. Sensorns spänning tas in på en av Micro Bits tre analoga ingångar (se bilden nedan). Därefter behöver vi skriva några rader kod som tar det inlästa spänningsvärdet, beräknar motsvarar temperatur och därefter visar värdet på Micro Bits inbyggda LED-display. Att mäta temperatur med hjälp av temperatursensorn TMP36*. Sensorn TMP36 är temperatursensor som behöver en matningsspänning mellan 2,7 V och 5,5 V för att fungera (Microbit ger ut 3 V vilket alltså duger bra). Temperatursensorns utspänning är direkt proportionell (eller linjär) mot temperaturen i grader Celsius. Noggrannheten i temperaturangivelsen är av storleksordningen 1 2 och mätområdet 40 till 125 (graf b nedan). Sambandet mellan temperatur (T) och utspänning (U) ges av linjen b i grafen nedan. Linjens riktningskoefficient är 10 mv/ och linjen passerar exakt genom punkten (50, 1000 mv). Batteri Sensor Sensor och batteri kopplad till Microbit. I bilden har en kopplingsbräda använts för att förenkla kopplingsarbetet. *Denna komponent kan enkelt köpas på nätet (styckepris 2,30 ), t.ex. från Robomaa: http://robomaa.fi/tmp36-temperature-sensor 4

Sambandet T och U blir alltså: U 1000 mv = 10 mv/ C(T 50 C) där spänningen U bör ges i milli-volt (mv). U 500 T = ( 10 Ingången på Microbit (pin 0) registrerar temperatursensorns spänningsvärde i intervallet 0 V till 3 V med en upplösning på 1024 steg. Spänningen 0 V motsvarar alltså värdet 0 och spänningen 3 V motsvarar värdet 1023. Omvandlingen från Microbitvärde (mb) till spänningsvärden (U) sker då enligt: ) U = 3000 1024 mb där enheten för spänningen U är mv. Stegen från spänning till temperatur blir då: 1. Avläsning av analog ingång (pin P0) för att få Microbitvärdet mb. 2. Beräkning av motsvarande spänningsvärde i millivolt: = 3000 1024 mb. 3. Beräkning av motsvarande temperatur med hjälp av: T = U 500 = ( U 50). 10 10 Exempel 1. Microbit avläser värdet mb = 230 på pin P0. 2. Detta värde motsvarar en spänning på: U = 3000 230 1024 3. Vilket motsvarar en temperatur på: T = 673 500 10 = 673 mv = +17 Observera att Microbit använder sig av heltalsaritmetik, varför det är bättre att multiplicera före man dividerar och använda sig av tillräckligt stora heltal (därför enheten millivolt). Microbitkoden för en enkel termometer som visar den aktuella temperaturen, samt lagrar temperaturens extremvärden (max, min), ges på följande sida. Koden består av en oändlig loop, i vilken temperatursensorvärdet läses av från pin P0, spänningen U beräknas, varefter temperaturen beräknas och visas. Efter en paus på 2 sekunder (2000 ms) töms skärmen och ett nytt temperaturvärde läses in. 5

Exempel på en Microbitkod som läser av temperatursensorn TMP36 på pin 0. Andra sensorer vilka fungerar på liknande sätt som TMP36 De enklaste sensorerna att använda är av samma typ som TMP36 ovan. Denna typ av sensorer ger ut en spänning U (vanligen 0 5 V) som är direkt proportionell mot den storhet Y man vill mäta. Sambandet kan uttryckas som Y = au + b, där a och b är konstanter (i fallet med vår temperatursensor är a = 1/10 och b = -50). Hittar vi en sådan sensor, vilken mäter den storhet vi vill mäta, kan vi direkt använda samma kod som ovan, endast byta ut konstanterna a och b. Att mäta vindhastigheten En vanlig likströmsmotor (DC-motor) fungerar som en elgenerator om man snurrar motorns axel. Till första approximation gäller ett linjärt samband mellan motorns rotationshastighet ( ) och spänningen (U): ω = au + b. Kopplar man en propeller till elmotorns axel och låter vinden blåsa, så kommer rotationshastigheten (och därmed spänningen ut) att bero av vindhastigheten (v). Antar vi att sambandet mellan rotationshastighet och vindhastighet också är linjärt, får vi att v = a U + b. Utmaningen är att hitta konstanterna a och b, vilket enklast görs experimentellt genom att mäta spänningen U vid kända vindhastigheter v. 6

2. Microbit + sensorer (mäta ljusintensiteten) En annan stor klass av sensorer ger inte direkt ut en spänning, utan fungerar så att sensorns resistans ändras när någon yttre faktor ändrar (t.ex. temperaturen eller ljusintensiteten). För att använda oss av denna typ av sensorer med Micro Bit, måste vi omvandla den varierande resistansen till en varierande spänning. Detta kan enkelt göras med hjälp av en s.k. spänningsdelare (se bilden nedan). När sensorns resistans R ändrar, ändrar strömmen I genom sensorn och därmed (enligt Ohms lag) också spänningen U över sensorn. Spänningen U kan vi därefter läsa av med vår Micro Bit på samma sätt som i fallet med temperatursensorn tidigare. Ett fotomotstånd eller en LDR (Light Dependent Resistor) är en komponent vars resistans varierar med intensiteten hos det ljus som belyser komponenten. En LDR kan därför fungera som en enkel ljusdetektor*. Då ljusets intensitet ökar kommer resistansen hos LDR:n att minska och omvänt om ljusintensiteten ökar. För komponenten vi valt varierar resistansen mellan 8 kω (stark belysning) 20 kω (svag belysning) och 1 MΩ (helt mörkt). Sambandet mellan resistans och belysningen i lux är enligt tillverkaren (8 ~ 20) lux/kω (notera att sambandet inte är linjärt). En mulen dag motsvarar en belysning på ca. 1000 lux, medan direkt solljus motsvarar 32000 130 000 lux. En klar natt utan måne motsvarar 0,002 lux. * LDR-motståndet vi använder har typbeteckning PGM5526 och kan enkelt beställas på nätet från t.ex. Vekoy för 0,25 /styck: http://www.vekoy.com/product_info.php?products_id=26006 7

Då en LDR kopplas i serie med ett fast motstånd av lämplig storlek får vi en spänningsdelare (se första figuren på andra sidan). I vår koppling används ett motstånd R1 = 10 kω. Motståndet R1 och LDR:n delar alltså på spänningen 3 V. Om LDR:n har en resistans på 8 kω (dagsljus) så är spänningen över motståndet R1 enligt Ohms lag: R1 U = ( R LDR + R1 ) 3 V = ( 10 8 + 10 ) 3 V 1,67 V När ljusintensiteten minskar ökar resistansen hos LDR-motståndet. Om resistansen är 20 kω vid skymning, blir spänningen över motståndet R1 lika med U = 1,0 V. Är det helt mörkt (R LDR = 1000 kω) blir spänningen U över motståndet R1 nästan 0 V ( 0,03 V). Liksom i fallet med temperatursensorn avläser vi spänningen U på pin P0. Direkta mätningar ger att för PGM5526 får vi att 500 lux motsvarar 2500 mv, varför algoritmen blir: 1. Avläs analog ingång (P0) för att få Microbitvärdet mb. 2. Beräkna motsvarande spänning: = ( 3000 mb) mv. 1024 3. Beräkna belysningen: = ( 500 U ) lux. 2500 Algoritmen kan direkt översättas till följande kod: 3000 8

Att mäta vindriktningen En spänningsdelarkoppling kan användas i flera sammanhang. Ett sådant är att använda sig av en varierbar resistans, en s.k. potentiometer, för att mäta vindriktningen. Tanken är att potentiometern kopplas till en vindflöjel, så att när vindflöjeln vrider sig med vinden, vrids också potentiometern. När potentiometern vrids ändrar resistansen och därmed och spänningen U som läses in på pin P0 (se bilden nedan). 3. Microbit + sensorer (mera komplicerade sensorer) Tyvärr kan inte alla intressanta fysikaliska storheter mätas med hjälp av de sensortyper vi behandlat. Två exempel är sensorer vilka mäter lufttryck och luftfuktighet. Problemet är inte att sensorerna dyra, utan att de har en mer komplicerad output än bara en varierande spänning eller en varierande resistans. Den goda nyheten är att dessa mer komplicerade sensorer kan kopplas till Micro Bit. Kommunikationen mellan sensorerna invid och Micro Bit använder sig av ett dataöverföringsprotokoll som heter I2C. För att förstå vad sensorn läser av Trycksensor BMP180 Fukt- temperatursensor DHT11 och skickar ut, räcker däremot inte de verktyg som finns i den grafiska programmeringsmiljön vi använt hittills, utan man bör gå över till ett textbaserat programmeringsspråk som Python eller Javascript (båda stöds av Micro Bit). Ett kanske bättre alternativ, som gör övergången från grafisk till textbaserad programmering mjukare, är att använda sig av Sniff (se http://www.sniff.org.uk/). Sniff klarar också av att läsa av sensorer av typen DHT11. 9