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

Google Home Assistant

Der findes Siri, Google Assistant, Cortana, Amazon’s Alexa, og nu også en Google DIY “intelligent” assistent i pap kaldet AIY til en 20-30 dollars. https://aiyprojects.withgoogle.com/

AIY står vist for “Artificial Intelligence Yourself”, altså gør-det-selv kunstig intelligens, men AI-delen er “kun” machine learning til stemmegenkendelse og resten er søgninger på google. Dvs. der er ikke noget nyt software-mæssigt i kittet, men interaktionen med enheden via en stemmestyret fast installation er ny. Interaktionsdesign er i fokus.

https://www.raspberrypi.org/magpi/buy-aiy-projects-voice-kit/

Billede fra mapgpi

Kittet er ret nemt at samle og ok at aktivere. Efter en del DIY projekter, var det rart med et rigtigt kit med en god og grundig brugsanvisning fra MagPI.

Nå kittet fungerer, har det adgang til google søgning, og min google-kalender, hvor det kan lægge aftaler og alarmer ind, men den kan (endnu) ikke bruge mange andre google apps (play, gmail, youtube, drive, chromecast, google+ m.v.). Data bliver sendt til Googles servere i skyen, hvor stemmegenkendelsen sker, og et respons genereres. Så det følger deres sædvandlige forretningsmodel = masser af data til Google.

Næste punkt er at koble servo motorer til kittet og få dem stemmeaktiveret. Og så kommer Google snart med et videostyret kit = endnu flere data 🙂

 

Udgivet i Elektronik, Maskinlæring, Programmering | Kommentarer lukket til Google Home Assistant

Lineær regression med maskinlæring

Gode pædagogiske introduktioner til maskinlæring søges, her lineær regression. Der er bedre måder, at lave lineær regression end maskinlæring, fx. mindste kvadraters metode (jeg tør ikke sige, at MK-metode løser problemet eksakt). Så dette er en introduktion til at gradvist tilpasse sine parametre ud fra kendte data.

Jeg mindes at en lignende metode var med i den formelsamling, jeg selv blev præsenteret for i Mat A i 1993. Måske var det ikke regression, men tilnærmet bestemmelse af rødder den beskrev(?). Under alle omstændigheder er metoden mere aktuel i dag end dengang.

Her har jeg fremstillede nogle data i Excel, som næsten ligger på en ret linje, og gemt dem som en .csv fil:

Udfordringen var samtidig en træning i at skrive python-kode. Jeg har brugt miljøet Jupyter, men en simplere editor vil være en fordel.

Jeg bøvler stadig lidt med lokale og globale variable. Men koden behøver ikke være længere end som vist herunder. genfromtxt omdanner to søjler i Excel til en liste af lister. Hver liste indeholder et datapunkt (x,y). Variablen “points [j][1]” henviser til en y-værdi i datapar nr. j.

Det mest interessante sker nok i opdateringen af a og b, hvor d(error)/d(a)=x og d(error)/d(b)=1 anvendes.

Min maskinlærings-algoritme giver:

y=2,08x+3,72

Excel giver:

y=2,05x+3,8

Det er da ret godt gået, de få punkter taget i betragtning.

Jeg ville også lave nogle grafiske repræsentationer af processen. Så blev koden noget længere.

Summen af (error)^2 for hver gang datasættet løbes igennem (1 epoch), falder i løbet af de første ca. 10 epochs (figur t.h.).

Summen af errors^2 dækker over nogle udsving mellem positive og negative error-værdier, som jeg kan se når jeg printer alle error-værdierne. Det er måske forklaringen på, at jeg ikke kommer nærmere Excel’s løsning.

For 50 iterationer og startværdier på a=1 og b=0 (blå linje), ses herunder hvordan linjen drejes opad og b løfter sig med hver gentagelse. Mest i starten, derefter finjustering:

Hvis learning rate hæves for meget, her 0,1, fås nonsens (herunder). Algoritmen springer mellem over- og undershoot?

Hvordan skal eleverne arbejde med forstå algoritmen? ”De [eleverne] taster noget ind på lommeregneren eller computeren, men har ikke forståelsen af, hvad de gør.” Leslie Christensen, CBS, Gymnasieskolen 29.april 2016. En bedre grafisk animation af linjerne, ville være rart.

For sjov ville jeg også se, om jeg kunne kode algoritmen i Scratch. Det tog ikke lang tid:

Scratch kan mig bekendt ikke importere data, og kan ikke tegne grafer. Men viser alligevel, hvordan værdierne ændres med tiden:

Udgivet i Digital Dannelse, Maskinlæring, Programmering | Skriv en kommentar

Innovation i NF

Som mange andre kører vi i NF variationer af forløbene: Vand, sundhed, energi/ressourcer. I slutningen af hvert forløb ligger et kort projektperiode, som forberedelse til den evalueringsopgave, som eleverne skal præsentere ved eksamen.

Foto: Steen Ladefoged, 2012

Efter et par års tilløb fik vi i år, lavet et forløb, med en innovativ del. De første måneder gik med at undersøge problem-feltet (skybrud i Svendborg) fra en hhv. kemisk, biologisk og geografisk vinkel.

Som nogen (Einstein) sagde: Brug 90% af tiden på at undersøge problemet og 10% af tiden på løsningen.

Jeg er ret sikker på, at eleverne oplevede det blot som almindelig sekvenseret undervisning, hvorefter vi gik over til en projektfase. Produktkravet lignede meget evalueringsopgaven dvs. opstil problemformulering og belys den gennem problemstillinger med bilag.

Dertil var en ny del, hvor de skulle forslå en løsning på skydbrudsproblemet. Konkret arbejdede vi med et område i Svendborg, som ofte oversvømmes ved skybrud (billede til højre), da meget af vandet fra oplandet samles i en slugt, som munder ud i byen 500 m fra havnen (rød cirkel på billedet herunder). miljøGIS kan vise højder og hvor der kan samle sig regnvand.

Vi fik besøg af en ingeniør fra kommunens regn- og spildevandshåndtering (Vand&Affald), som kort præsenterede problemet og gik rundt til grupperne for at besvare konkrete spørgsmål.

Det er tit svært at vide hvornår besøget udefra skal falde -ved introduktionen til problemet (og spørgsmål kan rettes skriftligt) eller når eleverne har arbejdet sig lidt ind på problemet og har mere konkrete spørgsmål. Og som regel er det konkrete svar mht. mængder og priser, som vi selv har svært ved at besvare.

Efter eleverne havde arbejdet nogle moduler (max 3) med opgaven, skulle de pitche eller fremlægge for deres lærer og vores gæste-ingeniør. De blev opfordret til at pitche, men havde også mulighed for en almindelig fremlæggelse.

Ud over at finde på en mulig (del-)løsning på problemet, skulle de vurdere løsningens innovationshøjde, realiserbarhed og nytteværdi. Særligt to forhold gik op for flere elever:

1) Man skal ikke forvente at finde en løsning, som løser problemet med skybrudsregn fuldstændigt.

2) Innovation kan være inkrementel eller kendt ide i ny kontekst -man behøver ikke finde på noget helt nyt, men kan implementere en kendt løsning et nyt sted.

Vi brugte ikke tid på ide-generering eller andre brainstorm aktiviteter. En enkelt af gruppernes løsningsforlag bar også præg deraf: Et tag, som kunne dække hele Svendborg by. De andre grupper tog opgaven lidt mere seriøst og kom med forslag om dæmninger, ny asfalt, plantekasser, ny rørføring, grøfter og kanaler.

Eleverne evaluerede forløbet positivt. Mit indtryk er, at eleverne fik en introduktion til  at  arbejde innovativt, herunder hvordan man fordyber sig i problemet, før man foreslår løsninger. Innovation landede i et fag, hvor vi har mulighed for fordybelse modsat fx et AT-forløb.

Udgivet i biologi, HF, innovation, kemi | Skriv en kommentar

Et par mindre nyheder i o365

Visio Online:

Vi har fået adgang til Visio Online inde fra OneDrive for Business. Visio er en lille app, dedikeret til flow-diagrammer. Eksempel: Program til lineær regression med maskinlæring:

Kassernes form indikerer hvad der foregår i dem. Se mere. De er meget nemme at forbinde i programmet. Ikke noget, som PowerPoint ikke kan, men lidt nemmere og med lidt flere muligheder indenfor sit område.

Diagrammerne kan komme i anvendelse ifbm. computational thinking, ved at man ikke koder et computer-program, men overvejer strukturen i programmet.

Forms i Excel:

Jeg bruger Microsoft Forms til spørgeskemaer, quizzer, prøver m.m. fordi eleverne er registreret via skolens o365 abonnement. Efter ca. et år, har jeg 20+ Forms, som blot ligger i en lang række på Forms-siden sorteret efter hvornår de har været redigeret sidst.

Der er ingen mulighed for at organisere sine Forms i en mappe-struktur. At placere et link fx i OneNote, til en specifik Form, er måske den bedste måde, at holde styr på sine Forms -det får jeg sjældent gjort. Som regel er det kun linket, som eleverne skal bruge for at besvare en Form, der ender i OneNote, og derfra kan man ikke tilgå redigering af den.

Før var alle filer bag en Form blevet placeret på en MS server, uden direkte adgang for brugere. Men nu er der kommet mulighed for at anbringe Excel-filen med svarene i OneDrive, og tilgå redigering af en Form fra Excel-filen. Funktionen er kun udrullet Excel Online.

Dvs. for at lave en Form, kan jeg gå til den mappe i OneDrive eller Sharepoint site, hvor jeg synes min Forms skal bo. Åbne en ny Excel Online fil, og derfra oprette min Form. Selve filen med spørgsmålene ligger fortsat kun på en MS-server, men Excel-filen tilbyder et link, hvorfra man kan tilgå redigering, og det er lidt bedre end at overskue min lange liste af Forms.

Edu resources til OneNote (og Forms):

I mit OneNote under “Indsæt” er der kommet et “Education Resources”, som giver adgang til forskellige arbejdsark, quizzer, øvelsesvejledninger, links, sekvenser med mere p.t. fra engelske kilder. Formaterne er bl.a. docx.

Jeg har endnu ikke fundet noget brugbart via tjenesten. Tiden vil vise, om der også kommer dansk materiale. Måske er det et forsøg på at erstatte delings-tjenesten docs.com, som MS lukkede for nyligt.

Udgivet i office 365, Onenote | Skriv en kommentar