Potteplantevander udvidelse

Mosfet er erstattet af et relæ, fordi (formoder jeg) den transistor jeg brugte, var ikke logik-kontrolleret dvs. kan ikke styres af under 5V, hvorfor den havde svært ved at lukke forbindelsen mellem source og drain: Når pumpen tændte forblev den tændt i timevis. Med relæet skifter den, som den skal.

Der er to fugtighedsmålere, fordi hvis en fejler (fx pga. en løs forbindelse) vil vandingen straks begynde og fortsætte: der skal en ekstra linje ind med måling af fugtighed, for at de to fugtighedsmålere ikke forstyrrer hinanden.

Vand reservoiret må ikke indeholde mere vand, end der er plads til i plantekassen. Der må ikke være gødning i reservoiret, da alger elsker det.

Jeg har stadig ikke testet om en kapacitor på en digital pin kan klare det i stedet for mosfet/relæ. Desuden er det ikke så interessant, hvad læreren kan gøre, men hvad eleverne kan gøre. Systemet står nu på gangen, og jeg synes udvidelsen er nødvendig, for at eleverne kan se et fungerende eksempel på Arduino-brug.

P.t. venter jeg på et PCB, som måske kan gøre samlingen er kredsløbet lettere.

Der er flere undersøgelser af vertical gardens og hydroponics forude.

Udgivet i Computational thinking, Elektronik, Programmering | Kommentarer lukket til Potteplantevander udvidelse

KnapSpil

Et spædt forsøg med interaktionsdesign, som bl.a. bekræftede at det er en udfordring, at få et projekt, som jeg kan udføre overført til elever OG gav en erkendelse af at interaktionsdesign er svært.

Projektet består af en 1x2m mdf plade med lysende arkadeknapper fordelt. Til højre er et joystick:

Spillet handler om at en spiller skal styre lyset i en arkadeknap vha. joysticket. Det er kun en knap der lyser ad gangen, og joysticket kan flytte rundt på hvilken knap der lyser.

Imens skal den anden spiller nå at trykke på den knap der lyser, inden lyser skifter til en anden knap på pladen. Når spiller et at styre lyser helt til højre, har spilleren vundet.

Det bliver en konkurrence i reaktionsevne, den ene med joysticket, den anden ved at trykke på knapper. Af en eller anden grund er det ret kompliceret at forklare, hvilket måske er en del af problemet med interaktionsdesignet.

Eleverne har placeret knapperne, boret hullerne, monteret ledningerne (det blev verdens største spaghetti med over 30 ledninger), forbundet ledningerne til en Arduino mega, justeret koden, herunder forsinkelsen på joysticket.

Koden indeholder i essensen en matrix på 3×4, idet der er 9 knapper arrangeret i et 3×3 Grid. Hver celle angiver nummeret på knappen, som samtidig viser Arduino-pin for LED’en (forbundet til pin 0-9) og Arduino-pin for knappen (forbundet til pin 10-19):

9

6

3

0

10

7

4

1

11

8

5

2

Numrene tildeles ud fra søjle nr. 0 til 2 (fra højre mod venstre) og række 0 til 2. Dvs. nr = søjle*3 + række. For nr 5 er søjle = 1 og række = 2 => 1*3+2 = 5.

Matricen er født med nuller og holder styr på hvilken knapper der er aktiv, dvs. lyser, repræsenteret med et 1-tal i matricen. En funktion løber Matricen igennem (ovenfor), og tænder den knap, som svarer til et 1-tal i matricen. Vha. joysticket kan 1-tallet flyttes rundt i matricen, hvilket flytter lyset rundt på lyset på pladen.

Der ligger nogle hårdkodede begrænsninger i koden, f.eks. hvis lyset når den fjerde række i matricen (til venstre på pladen), er spillet slut, og begynder forfra i øverste højre hjørne.
Koden indeholder også en række funktioner, som hhv. får knapperne til at blinke i takt, i rækkefølge, slukker m.m. Kode.

Spillet var ikke forsynet med nogen forklaringer, hvorfor de fleste forbipasserende var noget usikre på anvendelsen. Desuden har der ikke været den store lyst eller vilje til at prøve spillet af. Derfor: Det kunne fungere som et eksperiment ud i interaktionsdesign, hvordan hintes eller forklares spillets formål og regler?

kode.

Udgivet i Arduino, Maker, Programmering | Kommentarer lukket til KnapSpil

Vejledning i Digitale Kompetencer

I 2017 stx-reformteksten, står “digitale kompetencer” nævnt mange gange. Nu har UVM udgivet deres vejledning, som uddyber hvad digitale kompetencer er, og hvordan der kan/skal arbejdes med dem. Vejledningen er en lovtekst dvs. man kan fortolke den, men man kan ikke vælge at ignorere den eller dele af den.

Hele vejledningen ses her: https://uvm.dk/-/media/filer/uvm/udd/gym/pdf18/aug/180816-vejledning-til-lov-og-bekendtgoerelse—digitale-kompetencer.pdf

Meget i vejledningen er forudsigeligt a la eleverne skal “udvikle deres viden, kundskaber og indsigt indenfor det digitale.” og “skabe digitalt nysgerrige elever..” og med “..kritisk blik kunne anvende digitale medier.” med mere. (side 2)

Der er lange passager om den sædvanlige, men vigtige, humanistiske tilgang om kildekritik og refleksion over egen og andres digitale adfærd og konsekvenser heraf.

Men noget er også nyt i stx fx: eleverne skal have “..indsigt indenfor det digitale område til bl.a. at kunne producere, arbejde kreativt og innovativt..” (side 3)

Som jeg læser det, ligger der en udvidelse i, at eleverne skal kunne producere noget digitalt. Og vi taler ikke bare om en powerpoint. Det udbygges med “skabelsen af digitale løsninger” og “digitale standardværktøjer, således at de bliver i stand til at producere fx data, spil eller andre digitale produkter.” (side 3)

Og så bliver det helt vildt: “designe og programmere digitale produkter og it-systemer” og “podcasts eller videoer anvendt som foredrag, indsamling og produktion af datasæt, design af it-systemer eller modelleringer.” (side 4)

Der ligger imo en række nye ord som designe, producere, produkter, modellering og programmering. Ja, der stod programmering.

Generelt er jeg ikke tilhænger af tema- eller kursusdage. De ser godt ud på papiret, men læringsudbyttet er for lavt. Digitale kompetencer skal der arbejdes med i fagene. 

Desværre er man vist ikke helt enige i ministeriet, eller man har set, at der ikke er tid nok i fagene: “Den kan både indeholde konkrete krav til kompetenceområder, som de enkelte fag tager sig af, og andre som opfyldes i enten de faglige samspil eller som enkeltstående kursusforløb/kursusdage, som eleverne deltager i som en del af undervisningen.” (side 4)

Gør informatik obligatorisk.

Udgivet i Digital Dannelse, Programmering | Kommentarer lukket til Vejledning i Digitale Kompetencer

Computational thinking i HF

Jeg har valgt at investere et NF-biologi modul i Computational Thinking (CT). HF’ere er ikke den nemmeste gruppe at arbejde med (hvilket gør dem interessante), men måske er CT særlig relevant for HF’erne, som i dag sigter mod de mellemlange uddannelser.

Som forberedelse, har klassen arbejdet med klassiske økologiske begreber, bl.a. vækstkrav herunder lysfarver. I en række forsøg med karse, har vi varieret lyset mellem hvid, blå, rød, grøn og ingen lys. Resultaterne var ikke så overbevisende, men eleverne fandt hurtigt ud af sammenhængen mellem klorofyls absorptionsspektrum og vores forventninger til resultater.

Chlorophyll ab spectra-en.svgBy Chlorophyll_ab_spectra2.PNG: Daniele Pugliesi
derivative work: M0tty – This file was derived from: Chlorophyll ab spectra2.PNG: , CC BY-SA 3.0, Link

Moderne industrielle drivhuse opererer med sensorer, der følger bl.a. lys, fugt, temperatur og næringsstofmålinger, og med en række aktuatorer til fx vanding, næringsstof-dosering, lysfarver og høst. Det kan vi ikke lave på skolen, men en mindre udgave i form af et lille indendørs bed med krydderurter, som eleverne kan spise af ved deres frokost. Et lignende system kendes fx fra IKEAs cafeteria.

Dataopsamling er en del af NF, og vores CT overbygning er “blot”, at følge dataene i en algoritme, og dermed bruge dem til andet end teoretisk analyse. Jeg forsøgte at lave et meget simpelt setup i form af en potteplante-vander: En fugtmåler i jorden opsamler data, sender dem til en Arduino, som tænder en pumpe, når fugtigheden bliver for lav.

Kredsløbet

Arduinoens digitale pins giver ikke nok strømstyrke til at starte pumpen (en kapacitor kan måske hjælpe?), det gør dens 5V pin til gengæld. Derfor brugte vi en transistor (det røde board) til at tænde/slukke pumpen.

Fugtighedsmåleren til venstre måler hvor meget strøm, den kan sende mellem de to ben. Hvis den står med konstant spænding i bare let fugtig jord, bliver den hurtigt nedbrudt via diverse redox-processer. Derfor ville jeg gerne styre spændingen på fugtighedsmåleren med en digital pin. Den løsning valgte jeg hurtigt at droppe, for at give eleverne et så simpelt system som muligt. Grupperne fik desuden udleveret tre bægerglas med hhv. vand, fugtig jord og ingenting.

Jeg har ikke udstyr eller overblik til at arbejde med en hel klasse, men havde samlet komponenter og computere til tre grupper a ca. 4 elever. Jeg valgte skolens computere, for at være sikker på forbindelsen mellem Arduino og PC og for at spare tid (selvfølgelig begyndte den ene PC at opdatere i timen) på at installere Arduino IDE (måske virker CodeBender stadig?).

Jeg havde skrevet en lang fin hardcopy instruktion med spørgsmål, som eleverne ignorerede:

Indendørs bed med krydderurter

De kiggede på et billede af kredsløbet (hvilket godt kunne være lidt mere entydig) og gik i gang.

Det er som sædvanligt svært for eleverne, at samle et kredsløb korrekt. Jeg kunne godt tænke mig, at undersøge hvad problemet er. Måske er de ikke opmærksomme på at der er forskel på pins/ben. Eller tildele roller, så en dikterer, en udfører og en kontrollerer. Måske kan en simplere MCU fx Micro:bit eller Hummingbird hjælpe?

Resten af klassen skulle arbejde med formidlingsopgaver hhv. en poster om systemet og et google-site, mere mere information om systemet, https://sites.google.com/view/krydderurter/startside. Det var få, der kom i mål med det.

Det er et bærende princip i CT, at eleverne ikke altid skal bygge systemer helt fra bunden, men ofte skal modificere et eksisterende system. Jeg havde skiftet min oprindelige ide fra blokprogrammering til at eleverne skulle arbejde med tekstprogrammering.

Udsnit af koden

Eleverne ignorerede de 20 linjer kode fuldstændigt og kom først videre, når jeg kom forbi og instruerede i de videre skridt. Jeg overvejer hvordan man kan komme klarere omkring instruktionen, fx gå tilbage til blokprogrammering eller prøve en platform, som kun kan vise én side ad gangen, og først går videre, når siden er løst (pro-tip fra kollega).

Deres opgave var bl.a. at registrere fugtighedsdata i hhv. luft, vand og fugtig jord, indtaste værdien fra fugtig jord i koden og uploade koden til Arduino-enheden (skal instruktionen være så kort?). Det lykkedes to af grupperne, og de var ret entusiastiske omkring at sætte hele systemet op, som også blev forsynet med tidsindstillet LED lys i rød og blå:

Efter en kort efterfølgende snak med eleverne, havde jeg indtryk af, at de synes det var interessant, og at der var overraksende mange, som havde lavet noget lignende i folke- eller efterskole.

Da eleverne var gået, tilføjede jeg lige en ekstra fugtighedsmåler til systemet, så begge målinger skal vise tørhed, før pumpen starter, idet een måler er for følsom for støj, løse forbindelser og pilfingre. (ved to fugtighedssensorer, skal den ene strømforsynes fra en digital pin og den anden til 5/3,3V for at undgå at de forstyrrer hinanden).

Desuden sikrede jeg, at slangen fra pumpen endte over vandoverfladen i vand-reservoiret, da den omvendt situation vil resultere i, at hævert-effekten vil hive alt vandet over til planterne første gang pumpen tænder.

En anden gang vil jeg introducere vand meget senere -pumpen kan sagtens tænde uden der er vand tilstede, og flere af Arduino’erne blev lidt våde, hvorfor vi ikke kunne uploade ny kode til dem.

Forløbet var sjovt og lærerigt, og jeg synes principielt, at det er noget af det simpleste og stadig brugbare jeg kan lave. Jeg betragter dette, som et forsøg på at få det praktiske til at fungere, for på sigt at få mere fokus på principperne herunder de samfundsmæssige konsekvenser og algoritmen (fx gennem et algoritme-spil). Der er stadig langt til det sted hvor CT integreres gnidningsfrit i min undervisning.

Udgivet i Arduino, Computational thinking, Digital Dannelse, Elektronik | Kommentarer lukket til Computational thinking i HF

Krydderurter

Et projekt der bygger på mange ældre projekter bl.a. drivhus monitorering, blokprogrammering af Arduino m.m.

En lille indendørs have af krydderurter, som elever kan spise af. Selvvandende og med kunstigt LED-lys. Vi begynder i den simplest mulig setup.

  1. Stiklinger af basilikum, oregano og citronmelisse sættes i vand mhp. at danne rødder.
  2. Efter et par uger, plantes de i en lille potte med stenuld, dækket af LEKA-kugler.
  3. 12 potter placeres i en plastikbakke. Brug hårdt PP og/eller PE plastik (ikke PVC, som kan afgive chlor)
  4. Etabler selvvanding-kredsløb. Brug en mosfet, da Arduinoens 5V pin giver større strømstyrke end de digitale output pins. Brug dog en digital pin, som strømforsyning til fugtighedsmåleren, da den korroderer hurtigt, hvis den har konstant strøm igennem. 
  5. Programmeres herunder (mBlock). Brug passende gødningsmængde.
  6. Etabler justerbar belysning, som er tændt fx 2/3 af døgnet.

Faglige emner: Planters vækstkrav, bølgelængder og energi i lys, hvorfor spiser vi planter herunder grøntsager.

Forløbet kobles desuden op på et fælles forløb om raketter -hvordan overlever vi og opretholder en sund livsstil i rummet?

Udgivet i Arduino, biologi, Elektronik, Programmering, Raket | Kommentarer lukket til Krydderurter

Sommerskole 2018

Hvad lavede jeg på sommerskole 2018? -Ikke så meget. Nogle indtryk/ideer:

4fMap. Et site, som kan lægge forskellige lag på kort fra openStreetmap, herunder tegne 3D kort.

µStepper: Et kort til stepper-motorer, som kan levere data tilbage til den enhed, der styrer motoren.

Castbox. Asbjørns podcast-service.

Akku limpistol -Asbjørns limpistol.

Great Big Story. Mini dokumentarfilm på YouTube(?). Slut med de lange dokumentarfilm?

Medier for alle, site som samler info om creative commons.

CC0 licens: under creative commons, licens der ikke kræver at der krediteres.

Pi for alle. Nyhedsbrev om Pi i undervisning. Meget materiale.

Puzzlebox/wall. Johannes sender tegningerne(?)

Min nye værktøjskasse fra Silvan

Podcast ideer: Historien om sommerskole.

 

Til næste år: Medbring få simple no-brain projekter. Lav podcast.

Udgivet i Uncategorized | Kommentarer lukket til Sommerskole 2018

Update maj 2018

Det nye netværk på skolen er af typen WPA2 Enterpise PEAP, som kræver indtastning af loginnavn. Det er diverse IoT-dimser ikke sat op til. Det ser ud som om, at det er til at komme på med en Raspberry Pi, men ESP-moduler fx Wemos D1, har større problemer.

M5Stack er en IoT platform, som springer alt det med ledninger og lodninger over. Den bygger på ESP32, som er state-of-the-art WiFi-chippen p.t.

I stedet for Wifi, som har meget begrænset rækkevidde, er LoRaWan (det nye lav energi, stor radius signal til IoT-dimser) måske noget. Det er p.t. ikke sat op i Svendborg, men nogen skal jo være de første.

Brain.js er et node.js-bibliotek, som kan bruges til at teste og lege med forskellige neurale netværk. Imens venter jeg på The Coding Train kommer frem til tutorials inden for deres ML5 bibliotek.

Et spil med joystick og trykknapper er færdigt. Noget af det sværeste var nok interaktionsdesignet: ingen kunne gennemskue hvad spillet går ud på.

På laserskæreren vil jeg designe en kasse, som kan låses af en servomotor. Og en model af vand-molekyler med neodym-magneter til at samle dem.

Udgivet i Elektronik, Maker, Maskinlæring | Kommentarer lukket til Update maj 2018

JavaScript og Arduino mødes

To af mine yndlings-værktøjer har mødt hinanden.

Jeg har været fascineret af mulighederne i JavaScript med p5 biblioteket i et stykke tid. Det er et sprog og bibliotek bl.a. målrettet kreativ kodning på computer, hvorfor kunstnere og undervisere bruger det. Der er udvidelser til stemmestyring, databaser og sågar maskinlæring, alt sammen præsenteret af Dan Schiffman.

Robotter og lys, der reagerer på sensorer kan kodes i C++ via en Arduino controller. Det er nemt og billigt at smække en taktil prototype sammen, skønt Arduino også bruges i dyrt laboratorie-udstyr. Her er mange mentorer bl.a. TopTechBoy.com.

Men robotter, der virkelig kan noget, og evt. kan tænke lidt selv, kræver mere regnekraft end en Arduino tilbyder, hvorfor jeg længe havde overvejet at arbejde videre med Raspberry Pi.

Indtil nu..

Hvis Arduino er min gamle kærlighed, er JavaScript(JS) min forelskelse, og de to har lige mødt hinanden. For selvfølgelig findes der et bibliotek til at kode sin Arduino i JS. Det hedder Johnny Five, og kommunikerer mellem computer og Arduino via et USB serielt kabel. Johnny Five kan desværre ikke køre i en browser, men i Node, som er en udgave af JS til en server.

Orker man at lave sin egen server? Desuden kan jeg ikke bruge alle de dejlige p5-udvidelser (stemmestyring, databaser og maskinlæring) til JS, da server-programmering foregår i Node, som godt nok ligner JS, men ikke kan loade p5.

Og dog.

En Node-server, der kommunikerer med en Arduino, kan også kommunikere med en klient, som kører JS. Dvs. jeg kan sende en besked i JS fra en browser-klient til Node-(web)serveren og videre til Arduino. Alt sammen på sammen maskine. Problem solved.

Udgivet i Arduino, Elektronik, Maker, Maskinlæring, Programmering | Kommentarer lukket til JavaScript og Arduino mødes

Forelsket i JavaScript

Meget af det grafiske og interaktive indhold på nettet er skrevet i sproget JavaScript. Det er en integreret del af de fleste hjemmesider, der som regel kodes af hhv. html, css og JavaScript. Med biblioteket p5 ovenpå JavaScript, føler jeg mig som en troldmand. Der er noget umiddelbart tilfredsstillende i at se resultatet, svarende til oplevelser med at se resultatet af en C++ kode på Arduino.

For eksempel er det JavaScript der kører motoren bag denne kode:

See the Pen Diffusion v3 by Rasmus Kragh Wendelbo (@raskrawen) on CodePen.

Nogle erfaringer fra mine første forsøg med at kode i JavaScript/p5:

1) JavaScript er pisse nemt. Der er funktioner i p5, så man kan alt. Jeg føler mig som en troldmand. Det var let at implementere slider-bars, knapper, klik på skærmen, ændre farver, skrift. Det er nemt at arbejde med lister og simple matrice-manipulationer (mere komplicerede kræver mere kode eller NumPy).

2) JavaScript er pisse svært. Der er funktionalitet, som driller fx implementere en pause i koden (delay virker ikke). Flere ting var jeg nødt til at hard code. Fx for at ændre en tekst, skal jeg først lægge en fyldt hvid box ind for at dække den gamle. For at få tegnet en graf, var jeg nødt til at lave et koordinatsystem og mappe det til pixels (200×200 pixels skal blive 10X10), og for at jeg en graf (ret linje), var jeg nødt til at definere to punkter, tegne linjen mellem dem, og stoppe linjen udenfor koordinatsystemet. Her ville pythons MatPlotLib hjælpe.

3) Jeg skal prøve at få bedre overblik over koden, måske pseudokode lidt, for at planlægge hvilke funktioner jeg har brug for.

4) Jeg kan køre min JS-kode i en online editor fx CodePen eller repl.it. Eller på en side i GitHub, og her kan jeg oprette så mange hjemmesider jeg gider. Der er også mange online miljøer til kode, som kan generere et link til resultatet.

Udgivet i Programmering | Kommentarer lukket til Forelsket i JavaScript

EscapeRoom-based learning

En anden måde at arbejde med teknologi og computational thinking (bl.a. arbejdet med computerassisteret problemløsning) er at lade eleverne designe et escape room. Jeg har set en del “X-based learning” koncepter, herunder X=brain-, game-, goal-, inquiry- m.fl. Måske bliver escaperoom-based learning det nye shit 🙂

Sammen med nogle elever og kolleger planlagde og lavede vi opgaverne til et escape room. Vi talte om et tema, og blev enige om jul, da det var midt i december. Og vi havde fået lov at låne et skummelt og rodet depotrum i kælderen, som blev døbt “Julemandens Gravkammer“.

En stort plus er, at hele konceptet kan tilpasses præcis til designernes niveau. Disse skal selvfølgelig også tænke på deltagernes, altså dem der skal prøve rummet, niveau, og tilpasse opgaverne herefter. Fagene kan være mange forskellige, da gåderne kan være både sproglige, matematiske m.m.

Udfordring: Deltagerne, som skulle spærres inde, fik at vide, at for at komme ud, skulle de finde fem stykker lego, som skulle samles til en bestemt figur. De fik kort vist hvordan figuren så ud, og blev derefter låst inde (døren var ikke rigtig låst).

Vi arbejdede med at opgaverne så vidt muligt skulle løses i rækkefølge, for at fremme en sekventiel tankegang inspireret af computational thinking. Hver opgave udløste et stykke lego til den store figur.

Opgaver:

1: Flette et julehjerte, som, når det blev flettet korrekt, viste tre ligninger med tre ubekendte. De tre ubekendte var koden til et skrin. I skrinet lå ledningen et et UV lysstofrør. Med kinin-opløsning havde vi skrevet en usynlig besked på et skilt. En af beskederne var at tænde en OH projektor.

2: Projektoren viste (når alt andet lys blev slukket) et digt, hvor ordet gul var understreget. Med et par flere hints, blev de ledt til en LEGO robot, som kunne give dem en gul nøgle, når det rigtige program blev aktiveret.

3: Nøglen åbner et skrin, som indeholder en Arduino, der blinker i morsekode. De valgte at lade en grøn LED blinke bogstaver og lade en gul LED signalere “nyt bogstav”. Der ligger også en oversættelsesnøgle. Beskeden sender deltagerne til en papkasse, hvor man skal stikke hånden ind og føle på nogle legoklodser. De skriver ordet: Piano.

Arduino som blinker i morsekode. Den gule LED blinker når et nyt ord begynder, og den grønne LED blinker bogstaverne.

4: Ved klaveret skal der løses en matematisk gåde, som sender deltagerne til en kasse med fire legoknapper. Når de tre trykkes samtidig siger kassen (en Lego Mindstorms) 666.

5: 666 er koden til en hængelås, som åbner et skrin, hvori den sidste lego-klods ligger.

Vi valgte, at deltagerne så vidt muligt skulle klare opgaverne i rækkefølge, for at få eleverne til at tænke over sekvenseringen i planlægningen -hvordan skulle deltagerne komme fra den ene opgave til den næste.

Vi prøvede med tre grupper af deltagere, som klarede sig meget forskelligt -lærergruppen klarede sig nok dårligst, men var også første prøvekanin. Der skal ret tydelige hints til at få deltagerne gennem opgaverne i den tænkte rækkefølge. Alternativt skal de tilbydes hjælp undervejs fx med tre livliner. Der må ikke være for mange opgaver, hvis deltagerne skal have en chance.

Det er rigtig sjovt, at være med til at finde på tema og opgaver -formentlig meget sjovere end at være en deltager der spærres inde. Opgaverne kan tilpasses alle fag (sprog, matematik, naturvidenskab, programmering, elektronik, m.v.) og niveauer.

Er et escape room bare pjat eller er der noget læring i det? Selv om det ikke passer ind i de almindelige fag, er der masser af læring i struktureringen af hele rummet, designe opgaver med logiske løsninger og formidlingen overfor deltagerne, som spærres inde. Disse læringspotentialer er svære at opstille som mål -så meget for synlig læring.

Udgivet i Elektronik, planlægning, Programmering | Kommentarer lukket til EscapeRoom-based learning