Noe av det som gjør micro:bit til en fantastisk lærings plattform sammenlignet med andre mikroprosessor produkter er hvor mange sensorer som er innebygd. En av disse sensorene er lyssensoren.
For å styre gatelys langs veier og gater brukes skumrings relé sammen med tids relé. Etter et satt klokkeslett, og når det mørkt nok skrur gatelysene seg på. I denne leksjonen skal vi bruke micro:bit sin lyssensoren til å programmere et skumrings relé.
Lysnivå
Hvor mørkt for mørkt?
Alle sensorer som brukes i elektronikk prosjekter er egentlig analoge. For et skumrings relé vil det si at det vil gi ett elektrisk signal som er mellom 0v og 5v (volt). Siden datamaskiner ikke skjønner analoge signal blir dette analoge signalet gjort om til en 8-bit digital verdi som vi kan lese av i programmet vårt som et tall mellom 0 og 255.
0 er så mørkt som micro:bit klarer å måle, og 255 er det maksimale lysnivået micro:bit klarer å måle. Sensoren "lysnivå" vil altså gi oss ett relativt lysnivå mellom 0 og 255.
Datamaskiner bruker binære tall for å representerer tall. Et binært tegn kan bare være 1 eller 0, sann eller usann. Skal man skrive tall som er større enn 1 må man bruke flere binære tegn.
Ett 8-bit binært tall består altså av 8 bit som er 1 eller 0. Avhengig av hvilket av disse bitene 1 eller 0 påvirker hvilket desimaltall (10-talls systemet) vi har.
Binær tallet 00000010 = desimaltallet 2
Binær tallet 00000011 = desimaltallet 3
Binær tallet 00000100 = desimaltallet 4
Binærtallet 10000000 = desimaltallet 128
Binærtallet 11111111 = desimaltallet 255
Ett 8-bit binært tall kan ha 256 forskjellige verdier, fra 0 til 255.
Siden det er umulig for oss å vite hva lyssensoren faktisk måler er vi nødt til å ta i bruk seriell monitoren for å lese av hvilket lysnivå micro:bit måler når vi synes det er så mørkt at vi vil skru på gatelysene.
Skriving av målt lysnivå til seriellport
Når programmet er lastet ned til micro:bit, og har startet å kjøre, kan vi åpne seriell monitoren i MakeCode og lese av hva lyssensoren måler.
Skjembilde fra MakeCode seriell konsoll
Basert på hva jeg målte med lyssensoren på min micro:bit er et relativt lysnivå på 22 omtrent så lyst eller mørkt jeg vil at det skal være for at gatelysene skal slå seg på.
Gatelys
I dette prosjektet bruker vi RGB lysdiodene på BitBot XL som gatelys.
micro:bit og BitBot som skumrings relé og gatelys
I programmet over har jeg tatt i bruk en logisk blokk som sjekker og blir sann om "lysnivå" er mindre enn, eller likt 22. Hvis denne logiske blokken blir sann settes alle RGB-lysdioder til å lyse gult, hvis den den logiske blokken var usann; skrus alle RGB-lysdioder seg av.
Kodeblokkene som må brukes for BitBot XL funksjonaliteten finner du ved å først legge til utvidelsen "BitBot" i MakeCode. Denne finner du ved å gå til "Utvidelser" under avansert i kodeblokk listen.
Når denne er lagt til kan du finne en kodeblokk kategori som heter "bitbot" hvor alle tilgjengelige kodeblokker finnes.
Last ned programmet til micro:bit, sett micro:bit i BitBot XL. Skru på stømmen til BitBot XL og se om RGB lysdiodene skrur seg på når det er mørkt nok.
Hvis lysdiodene ikke skrur seg på kan du koble micro:bit til datamaskinen din og lese av hvilket lysnivå som måles av lyssensoren ved å se på seriell konsollen i MakeCode. Hvis lysnivået er over 22, må du nok øke grensen for lysnivå.
Innbruddsalarm
Avslør om noen snoker i skuffene dine!
En annen måte å bruke et skumrings relé på er å sjekke om lysnivået er over en en satt grense.
Har du en bror, søster, far, eller mor som du mistenker at snoker i skuffene dine er dette et perfekt prosjekt for deg.
I stedet for å sjekke om lysnivået er under eller lik en satt grense, endrer vi på logikk blokken slik at den sjekker om lysnivået er over eller lik en satt grense. Er lysnivået over grensen skrur vi på høyttaleren til BitBot XL, slik at den uler som en alarm sirene. Er lysnivået under grensen skrur vi av høyttaleren. På denne måten vil BitBot XL være lydløs så lenge den er i en lukket skuff, men den vil hyle og fungere som en alarm om skuffen åpnes og det kommer lys ned i skuffen.
micro:bit og BitBot XL som innbrudds alarm.