De Sense HAT programmeren Je eerste computerprogramma

Vergelijkbare documenten
Het hele scherm besturen

De Sense HAT heeft een temperatuursensor waarmee je de temperatuur. #lees de temperatuur van de sensor en sla op als temp

De Sense HAT heeft een temperatuursensor waarmee je de temperatuur. #lees de temperatuur van de sensor en sla op als temp

DE ASTRO PI PROGRAMMEREN

DE ASTRO PI PROGRAMMEREN VOOR MISSION ZERO

DE ASTRO PI KLAARMAKEN VOOR GEBRUIK

Project 1 Een discolamp

Wat betekenen brightness en contrast? En welke waarden kun je invullen? Met de volgende commando s kun je het beeld van de camera bewerken.

Seven segments of Pi

Een spoedcursus python

BEGINNER JAVA Inhoudsopgave

Je gaat leren programmeren en een spel bouwen met de programmeertaal Python. Websites zoals YouTube en Instagram zijn gebouwd met Python.

Inhoudsopgave Voorwoord 5 Voordat je begint 6 Wat heb je nodig? 7 De website bij het boek 7 Voor ouders, verzorgers en leraren

Kleuren met getallen Afbeeldingen weergeven

WORKSHOP ORANGE PI & PYTHON v september 2017

De mbot. Je wilt zeker meteen al aan de slag. Maar voordat we beginnen moet je 3 dingen weten.

Aan de slag met de micro:bit!

De mbot Ranger. Je wilt zeker meteen al aan de slag. Maar voordat we beginnen moet je 3 dingen weten.

Module 2: Wat is Scratch?

Java Les 3 Theorie Herhaal structuren

Handleiding help Sinterklaas!

TEKST INVOEREN EN BEWERKEN

[13] Rondjes draaien (loops)

Je gaat leren programmeren in Ruby. En daarna in Ruby een spelletje maken. Websites zoals Twitch en Twitter gemaakt zijn met behulp van Ruby?

Afbeelding 12-1: Een voorbeeld van een schaakbord met een zwart paard op a4 en een wit paard op e6.

Simon de schildpad J van Weert 1

Hoe moet je een prachtige presentatie maken?

TELEPORTEREN MET VARIABELEN

Verkeerslichten. De Verkeerslichten & de PLC in het TIBBLTO / VICTO lokaal. Werkplek 1. Leer & werkboek.

MAKERKLAS WORKSHOP ARDUINO. Maandag 7 december 2015

Excel. Inleiding. Het meest gebruikte spreadsheet programma is Excel.

Lesje programmeren. Hallo allemaal, wat fijn dat je er bent. ROBOTICA

Vrij Technisch Instituut Grote Hulststraat Tielt tel fax

FABSHEET VERSA LASERSNIJDER 40W

Kennismaking met programmeren

Mindstorms NXT practicum

SCRATCH GEVORDERDEN Inhoudsopgave

Scratch in drie uur. Hallo, mijn naam is Minti Mint! Ik ga je uitleggen hoe je je eigen computerspel kunt maken. We gaan een racespel maken!

Simon de schildpad J van Weert 1

Mindstorms NXT practicum

Als je de categorie Getal hebt gekozen kunt u in de notatie bepalen hoe het getal moet worden weergegeven.

HANDLEIDING MICROSOFT POWERPOINT RADBOUD UNIVERSITEIT NIJMEGEN

Fable Aan de slag Bijgewerkt:

Zo gaat jouw kunstwerk er straks uitzien. Of misschien wel heel anders.

Missie #1 : Maak een halve draai. 3. Kijk of de status op 'Aantal rotaties Aan' staat 4. Verander de waarde van 'Aantal rotaties' naar 5

Hallo. Ik snap het Ik kan uitleggen via welke stappen ik een programma maak en dit op de micro:bit zet.

1. Sluit de LED aan zoals afgebeeld 2. Sluit de USB-kabel aan op de Arduino 3. Klik op de knop uploaden 4. De LED begint te knipperen

Een klok met wijzers Voorkennis: Rekenen en graden Leerdoel: Systeem tijd opvragen Werken met variabele Tussen verschillende sprites signalen sturen

c o n t r o l Computerbesturing voor basisscholen Laurence Rogers en Doug Dickinson, School of Education, University of Leicester

OPEN LED display met lichtkrant Oproepsystemen

Een database gebruiken

WELKOM BIJ UNICODING PROCESSING. Unicoding 1. Handleiding docent LES 1 DEEL A: Vormen, coördinaten en kleuren

Android apps met App Inventor 2 antwoorden

Gebruikershandleiding voor de persoonlijke verpakking.

BBR programmeren met Ardublock

DOOSJE BEWAAR JE SPULLEN NETJES! Ontwikkeld door

Voordat je begint, lees je eerst deze bladzijden. Daarna weet je precies hoe je dit boek gebruikt.

In dit hoofdstuk leer je hoe je dit allemaal moet doen. Daarna kun je met je eigen foto s een prachtige collage maken.

En soms geven we aan bepaalde plaatjes leuke effecten en meer is het echt niet!

Baltie. Dubbelklik op de snelkoppeling van Baltie. Klik op Modes 1. Building. Klik op Scene Open/New...: Zoek je eigen map op.

Variabelen en statements in ActionScript

[8] De ene 1 is de andere niet

HANDLEIDING INFOGRAPHIC SOFTWARE Versie 2.3 / jan 2014

Numerieke benadering van vierkantwortels

Programmeermethoden NA. Week 5: Functies (vervolg)

Module 3: Scratch programmeren: is het logisch of is het niet logisch?

Handleiding voor het maken van je eigen webpagina op de schoolsite

Fabsheet: Vinylsnijder

Beetle Blocks Startgids

Workshop XIMPEL TV Winoe Bhikharie Vrije Universiteit Amsterdam / info@ximpel.net

Figuren in Word. Vul de Wat weet ik al?-kaart in van les 7. Als je nog niet alles weet en kan, zoek het dan op in les 7.

Paint Box. Introductie. Scratch. In dit project leer je hoe je jouw eigen tekenprogramma maakt! Activity Checklist.

Handleiding Windows Movie Maker

APP INVENTOR BEGINNER

Programmeerstructuren met App Inventor

Je kunt de mbot ook draadloos programmeren via Bluetooth of met 2.4G Wireless. Bekijk de instructies op mbot draadloos.

Programmeren en Wetenschappelijk Rekenen in Python. Wi1205AE I.A.M. Goddijn, Faculteit EWI 15 mei 2014

Manual TV lobby en receptie

Overzicht kaarten. Ontdek met de Explorerkaarten wat de micro:bit allemaal kan. Lees verder aan de andere kant

door Vaksectie Informatica Alberdingk Thijm College ACS-logo

Linda Thuijs-Koopmans - LinnenArt, huisstijl en logo ontwerp -

Opladen Opmerkingen Vragen?... 11

Economische topper 4 Opdracht pag. 42 nr. 2

START Laten we leren hoe je vormen op het werkvlak verplaatst!

Programmeermethoden NA. Week 5: Functies (vervolg)

Tijdens deze les zien we twee nieuwe programmeerconcepten: herhaling en variabelen.

Sudoku s. Annelies Veen Noud Aldenhoven

Aansluitles Les 1 Overzicht van de Componenten. Basis

Arduino Zuid-Limburg Workshop 2

draaimolen programmeren PC

Pythoncursus. Opdrachtenserie 3. Tanja, Koen en Marein oktober Opdracht 1 - Turtlegraphics

Tips; fotoboek maken (bron: hema.nl)

Inleiding. Inhoudsopgave: Omschrijving. 1.1 Het toetsenbord De displays Lampjes Vaste programma's Vrije programma's 3.

Dit is een marathon les; we maken namelijk een oud/nieuw creatie met 4 programma s, tw: Paintshop pro, Particle illusion, Animationshop en Flash

Workshop FLL. Leer robots programmeren. Marieke Peelen Lennart de Graaf Daryo Verouden -

Uitleg: In de bovenstaande oefening zie je in het eerste blokje een LEES en een SCHRIJF opdracht. Dit is nog lesstof uit het tweede trimester.

Grafieken veranderen met Excel 2007

Scratch. Gemaakt door: Déjan van Noordt en Leroy van den Driesche Leerlingen HAVO 5 SG Spieringshoek Als onderdeel voor het vak Informatica

Wiskunde - MBO Niveau 4. Eerste- en tweedegraads verbanden

Transcriptie:

De Sense HAT programmeren Je eerste computerprogramma De Sense HAT is een uitbreiding voor de Raspberry Pi die speciaal voor de Astro Pi-wedstrijd is gemaakt. Met dit bord is het mogelijk om allerlei informatie waar te nemen en weer te geven op een led-scherm. In deze reeks activiteiten maak je kennis met de Python-commando s van de Sense HAT. Wat je nodig hebt - Astro Pi kit met monitor, toetsenbord en muis of - Een PC met de Sense HAT emulator (www.trinket.io/sense-hat) Schrijf in de Sense HAT emulator de volgende code: #importeer de functies van de Sense Hat #maak een variabele waarmee je functies van de Sense Hat eenvoudig kunt oproepen #dit is niet per se nodig, maar anders moet je overal waar sh staat SenseHat() invullen #Laat de volgende tekst op het display zien sh.show_message( Groetjes van de aarde! ) sh.show_message laat tekst verschijnen op het LED scherm. Je kunt zelf bepalen wat voor tekst je invoert. Je kunt ook de scrolsnelheid veranderen. Probeer maar eens het volgende commando in te voeren: sh.show_message( Groetjes van de aarde!, scroll _speed=0.05, ) www.ruimtevaartindeklas.nl 1 www.ruimtevaartindeklas.nl 3

Meer experimenteren Starten Probeer ook eens het volgende programma uit De Astro Pi bestaat uit drie onderdelen Raspberry Pi computer Sense HAT met LED scherm en sensoren Camera (infrarood of zichtbaar licht) #importeer functies uit time #nodig voor time.sleep import time sh.show_letter( h ) time.sleep(0.3) sh.show_letter( o ) time.sleep(0.3) sh.show_letter( i ) Als je een Astro Pi hebt, dan kun je rechtstreeks op de Astro Pi programmeren. Start de Astro Pi op. Klik op het Raspberry Pi logo linksbovenin. Selecteer Programming > Python 3. Selecteer File > New File en je kunt starten met je programma schrijven in het nieuwe venster. Als je geen Astro Pi hebt, dan kun je toch een programma schrijven en testen! Hiervoor gebruik je de Sense HAT emulator. Open je webbrowser en ga naar www.trinket.io/sense-hat en je kunt starten met programmeren! Stel jezelf de volgende vragen: - wat zijn de verschillen tussen show_message en show_letter? - wat doet time.sleep? www.ruimtevaartindeklas.nl 4 www.ruimtevaartindeklas.nl 2

De kleuren van het scherm De LED lampjes apart besturen Het scherm van de Sense HAT bevat 64 LEDs die verschillende kleuren kunnen weergeven. In elk van de 64 LEDs bevinden zich drie kleinere LEDs: een rode, een groene en een blauwe, net als in het scherm van een tv of smartphone. Je kunt alle drie deze kleuren apart aansturen. Het scherm kan meer dan alleen tekst weergeven. Je kunt ook een afbeelding maken. Een afbeelding bestaat uit kleine puntjes, pixels. Op het LED scherm kun je een afbeelding van 64 pixels maken. Ontdek hier hoe je de pixels apart kunt aansturen. Schrijf het volgende programma Schrijf het volgende programma. #de drie basiskleuren van de LED lampjes #elke kleur kan een waarde 0 tot 255 hebben rood = (255, 0, 0) groen = (0, 255, 0) blauw = (0, 0, 255) sh.show_message( rood, text_colour=rood) sh.show_message( groen, text_colour=groen) sh.show_message( blauw, text_colour=blauw) #zet de x- en de y-coördinaat op 0 x=0 y=0 #zet de kleuren op maximale sterkte r=255 g=255 b=255 sh.set_pixel(x, y, r, g, b) Je kunt ook kleuren mengen. Ook kun je de getallen die horen bij een kleur rechtstreeks invoeren in sh.show_message. Hieronder een voorbeeld. sh.show_message( welke kleuren zijn dit?, text_ colour=(255, 255, 0), back_colour=(255, 0, 255)) #maak het scherm weer zwart Verander x in waarden 0 t/m 7. Wat gebeurt er op het scherm? Doe hetzelfde voor y. Waarom kun je voor x of y geen 8 of hoger in vullen? Probeer ook eens andere kleuren uit door r g en b te veranderen. www.ruimtevaartindeklas.nl 5 www.ruimtevaartindeklas.nl 7

Een pixel laten bewegen Meer weten Een bewegende animatie is eigenlijk een heleboel plaatjes die je snel achter elkaar ziet. Dit kun je ook op een slimme manier doen met het LED scherm. Schrijf het volgende programma Er bestaan oneindig veel kleuren, maar jouw ogen kunnen er maar drie zien: rood, blauw en groen. Elke andere kleur zie je als een mengsel van die drie kleuren. Zo is geel voor ons hetzelfde als rood plus groen. Wit is voor ons hetzelfde als alle drie de kleuren samen. import time x=0 y=0 #Herhaal zolang x kleiner dan 8 is while (x<8): sh.set_pixel(x, y, 255, 255, 255) time.sleep(0.1) x=x+1 Het while commando noemen we ook wel een lus of loop (spreek uit als loep). Op die manier kun je een opdracht een aantal keren herhalen, zodat je niet meerdere keren dezelfde code hoeft te schrijven. Additief: Subtractief: kleuren bij elkaar op tellen kleuren van elkaar af trekken Let op: kleuren mengen met licht werkt anders dan kleuren mengen met verf. De drie basiskleuren van verf zijn magenta (rozerood), cyaan (soort blauw) en geel. Dit komt doordat je met licht kleuren bij elkaar optelt (add) en bij verf juist het licht filtert (van elkaar af trekt, subtract). Probeer de pixel ook eens naar boven te laten bewegen, of schuin omhoog. www.ruimtevaartindeklas.nl 8 www.ruimtevaartindeklas.nl 6

Het hele scherm besturen De temperatuursensor Via het commando set_pixels bestuur je het hele scherm ineens. Zo hoef je niet voor elke pixel apart een commando te schrijven! De Sense HAT heeft een temperatuursensor waarmee je de temperatuur kunt meten. Schrijf onderstaand programma en voer uit Schrijf onderstaande code en voer uit. w=(255, 255, 255) z=(0, 0, 0) smiley = [ z, z, w, w, w, w, z, z, z, w, z, z, z, z, w, z, w, z, w, z, z, w, z, w, w, z, z, z, z, z, z, w, w, w, z, z, z, z, w, w, w, z, w, w, w, w, z, w, z, w, z, z, z, z, w, z, z, z, w, w, w, w, z, z] #lees de temperatuur van de sensor en sla op als temp temp = sh.get_temperature() #rond de temperatuur af op twee decimalen temp = round(temp, 2) #zet het nummer om in een stuk tekst temp = str(temp) sh.show_message( temp ) sh.show_message(temp) sh.set_pixels(smiley) Verander de afbeelding door de kleuren te veranderen. Wat kun je nog meer tekenen? Stel jezelf de volgende vragen: Wat gebeurt er als je de regel met round weglaat? Wat doet de functie str? Wat is het verschil tussen temp en temp? www.ruimtevaartindeklas.nl 9 www.ruimtevaartindeklas.nl 11

Meer experimenteren Meer experimenteren Probeer ook eens de volgende regel uit: sh.show_message(str(round(sh.get_temperature()))) Op deze manier voer je alle opdrachten in één regel uit. Vind jij dit handiger of juist niet? Schrijf nu een programma waarbij je elke seconde de temperatuur op het display laat zien. Maak gebruik van het while True: commando. Hieronder een voorbeeld dat nog niet helemaal af is. Vul dit aan. Verander de temperatuurschuif in de Sense HAT emulator en controleer of de temperatuur verandert. Met de commando s set_pixel, set_pixels en clear() kun je eindeloos variëren in wat je op het scherm laat zien. Probeer eens de volgende dingen: - Laat een oog knipperen van de smiley. Welke pixel moet je dan veranderen? - Probeer zelf een plaatje te maken van iets dat je leuk vindt. Welke kleuren heb je nodig? - Hoe zou je een plaatje kunnen laten bewegen? Welke berekeningen moet je dan uitvoeren? while True: #let op, er ontbreekt hier nog iets! sh.show_message(temp, scroll_speed=0.03) time.sleep(2) Je kunt ook een plaatje maken die reageert op de temperatuur. Bijvoorbeeld een smiley als de temperatuur boven de 20 graden is en een uitroepteken als het onder de 20 graden is. Bedenk zelf hoe je dat kunt doen en probeer het uit. Hint: maak gebruik van het commando if (temp<20): (vergeet de dubbele punt niet). www.ruimtevaartindeklas.nl 12 www.ruimtevaartindeklas.nl 10

De Luchtvochtigheidssensor De bewegingssensor De Sense HAT heeft een luchtvochtigheidssensor waarmee je de relatieve luchtvochtigheid kunt meten. De relatieve luchtvochtigheid is de hoeveelheid waterdamp als percentage. Een waarde van 0% betekent dat er geen waterdamp in de lucht zit. Een waarde van 100% betekent dat de lucht verzadigd met waterdamp is. De Sense HAT heeft ook een set sensoren waarmee je beweging kunt meten. Zo kun je meten of de Sense HAT verplaatst of gedraaid wordt. Schrijf onderstaand programma en voer het uit: Schrijf onderstaand programma en voer het uit: sense = SenseHat() orientation = sense.get_orientation() print( p: {pitch}\nr: {roll}\ny: {yaw}\n\n.format (**orientation)) #lees de luchtvochtigheid van de sensor en sla op als lv lv = sh.get_humidity() zwaartekracht = sense.get_accelerometer_raw() print( x: {x}\ny: {y}\nz: {z}\n.format(**zwaarte kracht)) #rond lv af op twee decimalen lv = round(lv,2) #zet het nummer om in een stuk tekst lv = str(lv) De waarden verschijnen niet op de Sense HAT, maar op het beeldscherm. Achterop dit werkblad kun je lezen hoe de bewegingssensor werkt. sh.show_message(lv) De luchtvochtigheid meten werkt hetzelfde als de temperatuur meten. Je gebruikt alleen een ander commando. Om voor de persoon die het scherm leest duidelijk te maken dat het om luchtvochtigheid gaat, voer deze regel in sh.show_message( luchtvochtigheid is + lv + % ) Kijk nog eens goed naar de code en naar het resultaat en denk na over de volgende dingen: - Bij de opdracht print: welke tekens verschijnen letterlijk op het scherm en welke tekens niet? - Wat doet \n? - Waarvoor zijn de accolades {}? En wat betekenen de woorden die ertussen staan? Met get_accelerometer_raw() kun je krachten meten in de eenheid G. De zwaartekracht op aarde is 1G. Kun jij zien in welke richting de zwaartekracht staat in de Sense HAT emulator? www.ruimtevaartindeklas.nl 13 www.ruimtevaartindeklas.nl 15

Meer weten Meer experimenteren De bewegingssensor bestaat eigenlijk uit drie losse sensoren: - De gyroscoop: meet of de sense HAT draait - De accelerometer: meet of er kracht (versnelling) op de Sense HAT staat - De magnetometer: meet het magneetveld (de richting van de noordpool) Luchtvochtigheid is een percentage, waarbij 0% niets is en 100% alles. Dit kun je mooi weergeven door het scherm te vullen met pixels. Alle pixels uit betekent een luchtvochtigheid van 0%, de helft van de pixels aan betekent 50% en alle pixels aan betekent 100%. Met de volgende code kun je het scherm de opdracht geven om een bepaald aantal pixels te laten branden. #zet pixels om in een geheel getal pixels = int(pixels) #beginwaarden van x en y (de coördinaten van het scherm) x = int(0) y = int(0) #in deze lus worden de lampjes een voor een aangezet for n in range (0, pixels): #bij 0 procent mogen er geen lampjes branden if pixels == 0: Deze drie sensoren werken op een slimme manier samen om zo te bepalen of de Sense HAT beweegt. Bewegingssensoren worden vaak gebruikt in mobiele telefoons, bijvoorbeeld om je scherm mee te draaien als je hem kantelt. In het ISS zal hij heel anders werken dan op aarde. Hoe zou dat komen? # x en y worden bij elke lus aangepast voor een extra pixel if x==8: x=0 y+=1 sh.set_pixel(x, y, 0, 0, 255) x+=1 Deze code is nog niet compleet! We hebben namelijk nog niet uitgerekend hoeveel pixels er aan moeten. Voeg op de juiste plek een extra regel toe om pixels te berekenen. www.ruimtevaartindeklas.nl 16 www.ruimtevaartindeklas.nl 14