Skrive en fagtekst

Jeg har læst bogen “Den digitale læsers hjerne” af Kresten Bjerg (Hans Reitzels forlag 3. udgave 2022), som handler om at skrive fagtekster til ikke-fagfæller. Jeg vil ridse de vigtigste pointer op, så jeg måske husker dem senere.

Bogen bygger på mekanismer, som er udledt af forsøg og overvejelser inden for neurovidenskab og psykologi. Mange af mekanismerne forklares ud fra evolutionsteorien. Tesen er, at vi er udviklet til at begrænse det kognitive arbejde, hvilket giver energi til andre formål (fx fouragering) og dermed øger den reproduktive succes.

Vi nedsætter det kognitive arbejde gennem flere mekanismer: Ved at rette vores opmærksomhed mod det genkendelige og ved at genbruge så mange mentale modeller som muligt. Fx husker vi ved hjælp af metaforer og i generelle kategorier, som indgår i associationer eller i fortællinger. Som forfatter kan man hjælpe læseren ved at skrive tekst, der lægger op til at bruge nogle af de nævnte mekanismer.

Ifølge forfatteren er de fleste vant til at læse på en mobilskærm, hvorfor læseren typisk bruger 2-3 sekunder på at læse de første linjer i hvert afsnit og vurdere om det er værd at læse videre. Læseren hopper hurtigere ud ad teksten og er derfor ofte på udkig efter nye steder at hoppe ind i teksten igen. Man kan diskutere om det er en adfærd, som forfattere til undervisningsmateriale skal forsøge at tilpasse sig eller forsøge at bryde med?

Personer med længere uddannelse er villige til at vente på en pointe, mens personer med kortere uddannelse har mindre faglig tålmodighed og skal derfor have pointen serveret tidligere.

Hvert afsnit i en tekst skal omhandle et og kun et emne. Afsnittet skal have en overskrift, som enten er en kategori, der hjælper læseren med at kategorisere ny viden, eller er en forklarende overskrift. Hjælp læseren med at organisere sin viden ved hjælp af kategorier og deres sammenhæng fx i tid (før, nu og efter), modsætninger (lys vs. mørk), placering (over og under).

Et afsnit indledes med en emnesætning, der formulerer emnet kort og overordnet. Det skal helst fortælle læseren, hvad der kan forventes at komme i afsnittet inklusiv evt. konklusioner på undersøgelser og lignende. Konklusioner skal ikke gemmes til slutningen. Afsnittet skal så vidt muligt tage udgangspunkt i noget let og kendt (eller genkendeligt) før det nye eller komplekse.

Derefter kan der komme længere uddybende sætninger med detaljer. Brug forbindere til at kæde sætningerne sammen fx “Det skyldes..”. Til slut evt. en kort opsamlende sætning.

I den enkelte sætning bør grundled være en central aktør og udsagnsled en central handling, da det nemmere tillader læseren at danne en fortælling. Grundled og udsagnsled bør være korte og stå tæt på hinanden. Undgå passiv former, hvor den der agerer er skjult fx “Der gives..”.

Brug navneord frem for stedord, fx undgå det, denne o.l. og brug samme ord for et fænomen frem for at skifte mellem forskellige ord for samme fænomen.

I forklaringer skal let før svært, overordnet før specifikt og kendt før ukendt. Forklaringen bør begynde med et emnefelt, som indeholder noget kendt eller noget som lige er blevet forklaret. Sæt det ukendte ind i den kendte kontekst. Derefter kan komme en forklaring, og forklaringen kan slutte med et fokusfelt, der indeholder et nyt begreb eller specifikke detaljer. Sæt altid et nyt begreb foran et punktum fx “, det kaldes entropi.”, og følg op med uddybende forklaring eller detaljer.

Det kan være en god ide, at bruge metaforer til at forklare begreber. Metaforer kan gøre det komplekse mere simpelt og gøre det abstrakte mere konkret, så det bliver nemmere for læseren at skabe en fortælling.

I øvrigt er det en god ide at tælle for læseren fx “Der er tre grunde til.. for det første..”. Ved punktopstillinger med lange tekster, bør hvert punkt indledes med et emneord.

Alt i alt finder jeg bogen velskrevet og anvendelig. 260 sider er for meget -jeg godt nøjes med 100 sider mindre.

Udgivet i Biologi, Bioteknologi, Informatik, Kemi, Skriftlighed | Kommentarer lukket til Skrive en fagtekst

chatGPT

Selvfølgelig det obligatoriske indlæg skrevet af chatGPT.

Input: “Skriv et bloginlæg, som handler om chatGPT”

Output: “ChatGPT er et spændende værktøj, der bruges til at generere chatbot-svar automatisk. Det er baseret på den kunstige intelligens teknologi kaldet transformativ prædiktion, der gør det muligt for chatGPT at lære og forudsige de mest passende svar på spørgsmål og samtaler.

En af de store fordele ved chatGPT er, at det kan spare virksomheder og organisationer for tid og penge, da det kan håndtere mange samtaler og spørgsmål på én gang. Dette gør det ideelt til at bruges som en del af en kundeservice-platform eller til at besvare spørgsmål fra brugere på en hjemmeside eller i en app.

ChatGPT er også meget nyttigt, når det kommer til at lære af tidligere samtaler og forbedre sin præstation over tid. Det kan for eksempel huske, hvilke spørgsmål der er blevet stillet før, og give mere præcise svar baseret på tidligere samtaler.

Derudover kan chatGPT også bruges til at generere tekst til andre formål, fx at skrive artikler eller nyheder. Dette gør det til et meget alsidigt værktøj, der kan bruges i mange forskellige sammenhænge.

Alt i alt er chatGPT et spændende værktøj, der kan hjælpe med at spare tid og penge, samt forbedre kundeservice og interaktion med brugere. Det er et nyttigt værktøj for alle, der ønsker at automatisere deres kommunikation og forbedre deres samtaler med andre mennesker.”

Udgivet i Computational thinking, Digital Dannelse, Informatik, Maskinlæring, Programmering | Kommentarer lukket til chatGPT

Blooket = Kahoot på steroider

En gang i mellem bruger jeg forskellige digitale tjenester til træning af begreber eller blot et lille break fra de øvrige arbejdsformer. De tjenester jeg bruger mest er Quizlet, LearningApps og Kahoot. Og som noget nyt også Blooket.

Hver tjeneste har sine fordele og ulemper. Quizlet Live er godt til at få eleverne til at tale sammen, mens de quizzer. Kahoot er meget larmende, men læreren kan komme med faglige pointer mellem hvert spørgsmål, og på den måde bruge Kahoot som et interaktivt tavleoplæg. LearningApps er meget grafisk fx placer begreberne korrekt på figuren, sæt figurer i rigtig rækkefølge eller fordel begreber i kategorier.

Hvor Kahoot er en quiz, er Blooket gamificeret begrebstræning. Læreren vælger og hoster et Blooket-spil, og eleverne joiner ligesom i Kahoot.

Læreren vælger hvilket sæt af begreber-definitioner, der skal anvendes, den tid/point man spiller til og spil-genren. Der 14 forskellige og de klassiske spilgenrer er repræsenteret: tower-defense, platform, tycoons, maze, battle royal m.m. Begreber og definition kan importeres fra Quizlet eller fra word/excel.

Fælles for alle spil er, at eleverne jævnligt skal svare rigtigt på spørgsmål (MC med fire svarmuligheder) for at tjene point og klare sig godt. Eleverne spiller individuelt, men deltager i det samme spil.

I modsætning til Kahoot er der meget mere grafisk interaktivitet end blot at trykke på en farve. I nogle spil skal man styre en figur, i andre skal man blot træffe valg fx hvilken af tre kister vil du åbne? I nogle spil er der en høj grad af interaktion mellem spillerne, fx er der flere spil, hvor man kan angribe hinanden -kamp afgøres af hvem der svarer korrekt på spørgsmål. I nogle spil kan man prøve at stjæle point fra hinanden -om det lykkes afgøres af om der bliver svaret korrekt på spørgsmål. I andre spil er tilfældigt hvem man stjæler fra.

De fleste spil indeholder en høj grad af tilfældighed fx det loot man får kan være meget varierende. På tavlen kan man hele tiden følge med i hvem der fører -hvilket ofte skifter ret hurtigt, givet den høje grad af tilfældighed, som er indbygget i de fleste spil.

Blooket anvender mange af de klassiske tricks inden for adfærds-design: gentagne grafiske cues når der kommer en belønning eller en straf, ingen ende på spørgsmålene, super enkel valg-arkitektur (som regel kun 2-3 valgmuligheder), tilfældighed i belønning både mht. hvad man får ud af at svare korrekt og hvornår der pludselig kommer en uventet bonus, ambient kommunikation i form af samme naive grafiske udtryk som Kahoot, så eleverne allerede er sporet ind på spil, top6-leaderboard, der anerkender dem, som klarer sig godt.

Alligevel har jeg valgt at bruge det. Og eleverne elsker det tilsyneladende. De synes, at det er sjovt, men lærer de noget? På sigt får Blooket sikkert sin plads på hylden ligesom Kahoot, og kan tages frem en gang imellem.

Udgivet i Planlægning | Kommentarer lukket til Blooket = Kahoot på steroider

Skylanders i Escape room 2022

Til et Escape room projekt har jeg leget lidt med knægtens Skylanders:

Skylander

De er baseret på et passivt RFID-tag (radiofrekvensidentifikation), som er kendt fra nøglebrikker.

Tagget er støbt ind i figuren og portalen, som figuren skal placeres på, indeholder en RFID-tag reader. Selve tagget består af en kobberspole og en mikro-chip. Elektromagnetisk stråling fra readeren inducerer en svag strøm i tagget, som chippen kører på. Chippen kan gemme få data (8 bytes) og modulere signalet fra readeren, og på den måde sende information til readeren.

I stedet for portalen, har jeg forbundet en RFID reader til en Arduino og aflæst ID fra nogle af figurerne. Linje 51 (nedenfor) gemmer et ID som en string. Fx har jeg aflæst ID for en diamant Skylander til “26 11 100 40”. Dette ID er hardcoded ind i forgreningen linje 54. Hvis denne Skylander placeres på readeren, vil Arduino’en skifte pin 2 fra low til high i en puls på 100 millisekunder (delay(100) linje 56).

Jeg må se, at få refaktoreret koden, så tjekket af ID kører via en for-løkke og ikke en række if sætninger.

Arduinoen bliver forbundet til en Micro:bit, som måler hvor lang tid pulsen varer. Hvis den er ca. 120 ms (der er ca. 20 ms forsinkelse på pulsen), er der tale om diamant Skylanderen.

https://makecode.microbit.org/_57tiWd4MtTsm

Er pulsen derimod længere fx 220 ms er det ninja-skylanderen, som er blevet placeret på readeren.

Jeg ser mange muligheder i RFID tags. Fx kan de nemt gemmes i papkasser, bøger o.l. Disse skal så placeres på readeren i en bestemt rækkefølge for at klare et puzzle.

Teknikken blev brugt at flere grupper til årets escape room. Desuden var der opgaver som inkluderede:

  • Et 1800-tals portrætmaleri, som skulle drejes så portrættet kiggede op i himlen.
  • En drejeskive-telefon, som skulle drejes korrekt.
  • En digital labyrint på micro:bit’ens 5×5 display, som skulle gennemføres med et joystick.
  • en cut-the-wire / keep-talking and nobody explodes opgave. Her skulle de rigtige ledninger klippes over baseret på en skriftlig guide.

Udgivet i Arduino, Elektronik, Informatik, Maker og DIY, Micro:bit, Programmering | Kommentarer lukket til Skylanders i Escape room 2022

Dataanalyse og Machine Learning

Jeg har fulgt og afsluttet kursus i “dataanalyse og Machine Learning” ved KU. Dvs. formelt bliver kurset udbudt af AU, men afholdes på Biocenter i KBH, fordi den kursusansvarlige arbejder der, med analyse af scanningsbilleder af hjernen.

Maskinlæring (ML) har vist lige så mange specifikke tricks og metoder, som bioteknologi. Indholdet viste sig at være med et overraskende stort fokus på de pædagogiske vinkler. Der var få tekniske gennemgange (det var op til den enkelte at læse dem), men fokus på hvordan indholdet kunne formidles til elever.

Arbejdet foregik i studiegrupper. Min gruppe endte med at arbejde med et diabetes datasæt og vi brugte KNN algoritmen til at forudsige hvem der havde diabetes. Vi valgte datasættet fordi det havde forståelige features (egenskaber) fx bmi, blodtryk, alder, køn, og vi valgte KNN, fordi det er en af de nemmeste ML-metoder at konkretisere og forklare. At det så er en non-parametrisk metode (dvs. modellen er blot de træningsdata man bruger) er mindre godt, men noget jeg kan leve med.

Kodningen foregik i Google Colab, som er et fint online begynder-IDE, men man mister hurtigt overblikket over filer og indhold, så en stram indholdsstyring er en god ide.

Kurset var også mit første møde med PeerGrade, hvilket jeg synes var ret positivt. Systemet virkede godt, og sparer sikkert underviseren for meget tid, men en meget struktureret opsamling på vigtigt indhold og pointer ville hjælpe.

Alt i alt et rigtig godt kursus, og målet er at fremstille en opgave, som jeg kan bruge i biologi omkring dataanalyse og ML fx KNN eller et NN på Winsconsin breast cancer datasættet.

Udgivet i Maskinlæring, Programmering | Kommentarer lukket til Dataanalyse og Machine Learning

Biogas!

Vi har arbejdet med bioethanol i undervisningen i mange år. Bioethanol har en række fordele dels er det flydende dvs. let håndterbart og dels kan man rimelig let bestemme koncentrationen, brændværdi, blandbarhed m.m.

Efter Putin har delvist lukket for naturgassen, og Thyra-feltet er under renovation, kan man spørge –Kan DK blive selvforsynende med biogas?

Sammen med en HF-klasse lavede jeg en blanding af hovedsageligt snittet+skyllet tang, 2xkaffegrums og en sjat gødning. Blandingen blev overhældt med pløre fra en nærliggende sump. I alt ca. 20 Liter materiale, som blev anbragt i en lukket beholder (rådne-tanken) i stinkskabet.

De første 20 dage skete der ingenting. Derefter begyndte det at boble en smule.

Rådnetanken var tilkoblet et CO2-fang, idet gassen boblede igennem en koble med afløbsrens/phenolphtalein. Derefter en kolbe til opsamling af gas (biogas-fang), som ved tilstrækkeligt tryk skubbede vand fra biogas-fang over i en tredje kolbe (vandopsamler), som havde fri adgang til luften. Dvs. den producerede biogas kan slippe ud af biogasfang, med mindre der produceres virkelig store mængder. Samtidig kan der ikke komme frisk luft ind i rådne-tanken. Systemet er sikret mod eksplosion og er sikret anaerobe forhold i rådnetanken.

Biogas er lidt mere tricky end bioethanol. Det er svært at måle på. Det kan ikke destilleres. Vi kan se, at der produceres gas, fordi det bobler og vand bliver flyttet fra biogas-fanget til vandsamleren. Det er svært at sige noget om mængden og særligt om sammensætningen af biogas, da der nok er noget CO2 i blandingen trods CO2-fanget. Særligt i starten, hvor systemet indeholder O2, produceres CO2, og phenolphtalein-indikatoren i CO2-fanget skiftede meget hurtigt til farveløs.

Det mest synlige bevis på, at der produceres biogas er at indholdet i biogas-fanget kan brænde nogle sekunder. Og det har jeg gjort ugentligt de sidste 1½ måned. Billedet til højre viser den netop synlige blå flamme.

Jeg har rigget en BMP180 tryk-måler op på en Arduino Wemos, og tænker også at forsyne den med en CO2-måler. Systemet kan sende tryk- og CO2-data til Thingspeak, så jeg kan følge processen lidt nøjere. Men om vi kommer frem til et samlet udbytte er tvivlsomt.

Udgivet i Arduino, Biologi, Bioteknologi, Informatik, Kemi, Maker og DIY | Kommentarer lukket til Biogas!

Hvor god er en AI til at besvare en skriftlig eksamensopgave?

Modellerne i maskinlæring (Machine Learning, ML) kan få noget til at ligne intelligens. Systemer, der bruger ML-modeller, kaldes i daglig tale ofte Artificial Intelligence (AI), selv om en generel AI ikke findes.

mikemacmarketing, CC BY 2.0 https://creativecommons.org/licenses/by/2.0, via Wikimedia Commons

Rune Schmidt gjorde på FB opmærksom på, at openAI har en online tjeneste, som benytter ML modeller og adgang til oplysninger på nettet, til at besvare spørgsmål. Og svarene er ikke bare et copy-paste fra Wikipedia -man kan indstille hvor unikt (kreativt) et svar skal formuleres.

Med forventning om, at model-systemet hurtigt ville fejle på viden eller sætningskonstruktion, fodrede jeg det med nogle spørgsmål fra en tilfældig biologi A eksamensopgave (2013 27. aug, opg 1). Da systemet p.t. kun bruger engelsk, er spørgsmålene oversat efter bedste evne.

1. Angiv nedarvningstypen for NF1. Begrund dit svar.

What kind of heredity does the NF1 gene exhibit?

Svar: “The NF1 gene is transmitted in an autosomal dominant pattern, which means that a person only needs to inherit one copy of the mutated gene in order to be affected by the condition. The gene is passed down from generation to generation in a family, with each successive generation having a 50% chance of inheriting the mutated gene. In some cases, the gene can be passed down from a parent who does not have the condition, but this is rare.”

Selv om ‘Angiv’ fordrer et kort svar, får systemet ikke så mange point, fordi dele af “begrund dit svar” er for generel. Der er nogle oplysninger i opgaven, som skal inddrages. En kvik elev kan dog let lave koblingen, men systemet alene kan ikke -nok fordi det ikke har fået hele teksten.

Jeg var sikker på, at systemet ville fejle på NF1, men det gen “kender” det godt. Ordet “transmitted” ville jeg ikke bruge om et gen, fordi jeg kommer til at tænke på smitsomme sygdomme, men måske er det ok på engelsk.

Der mangler nogle flere fagbegreber fx heterozygot, genotype, fænotype, allel. Så 1-0 til os!

2. Forklar, hvordan et protein som fx neurofibromin kan være med til at kontrollere cellers vækst.

Explain how a protein, i.e. neurofibromine, can regulate cell growth

Svar: “Proteins can regulate cell growth by interacting with other proteins in the cell to either promote or inhibit cell growth. For example, neurofibromine can interact with proteins that promote cell growth, such as growth factor proteins, to increase the rate of cell growth. Alternatively, neurofibromine can interact with proteins that inhibit cell growth, such as tumor suppressor proteins, to reduce the rate of cell growth.”

Svaret er igen lidt kortfattet og en dygtig elev ville nok tilføje noget om genregulering. Men svaret er acceptabelt, så 1-1.

3. Gør rede for, hvorfor et stort gen må forventes at have en høj spontan mutationsrate.

Explain why a large gene is expected to have a high rate of spontaneous mutation.

Svar: “There are several reasons why a large gene is expected to have a high rate of spontaneous mutation. First, a large gene is likely to have more DNA bases than a small gene, so there are more opportunities for mutations to occur. Second, a large gene is likely to be involved in more biochemical processes than a small gene, so it is more likely to be affected by environmental factors that can cause mutations. Finally, a large gene is likely to be more complex than a small gene, so it is more likely to contain mutations that can affect its function.”

Flot at den inddrager flere relevante forklaringer. Svaret er noget generelt, og flere detaljer ville give flere point. 1-2 til systemet.

4. Forklar, hvorfor forskellige mutationer kan medføre NF1 i forskellig sværhedsgrad

Explain why different mutations may cause varying degrees of Neurofibromatosis (navn hentet i opgaveteksten)

Svar: “Different mutations may cause varying degrees of Neurofibromatosis because they can affect different genes that are involved in the development and maintenance of the nervous system. Some mutations may only affect a single gene, while others may affect multiple genes. The severity of the condition can also be affected by the location of the mutation within the gene.”

Måske et ret kort svar fra systemet, omend det mest essentielle er med. Opgaveteksten inddrager deletion og punktmutation, så der skal flere detaljer på (og gerne en figur), hvis svaret skal give max point.

Men svaret er acceptabelt og består i sig selv Turing testen, selv om jeg godt kunne tænke mig flere konkrete detaljer og relevante begreber. 1-3 til systemet.

5. Vurder, om man ved at screene sæddonorer kan undgå at videregive NF1.

Assess wether it is possible to avoid Neurofibromatosis by screening sperm donors?

Svar: “There is no known way to prevent neurofibromatosis, as the cause is unknown. There is no way to screen sperm donors for the condition.”

Her fejler systemet. Ifølge opgaven er genfejlen og arvegangen kendt, og kan dermed findes i en gentest. Enten er modellens viden ikke opdateret (hvilket jeg tvivler på) eller spørgsmålet er ikke stillet på en sådan måde, at den kan give det rigtige svar.

Dertil bør et vurderingsspørgsmål besvares med en forklaring, der kan understøtte og give argumenter for den vurdering, der er foretaget. Her giver systemet ingen forklaring. 2-3.

Endeligt resultat: 2-3 til systemet, og med en grænse på 50% rigtige, er det bestået.

—–

Der er selvfølgelig mange mellemregninger. Måske har jeg lige ramt en opgave med mange spørgsmål på lavt taksonomisk niveau?

Systemet har svært ved at være konkret, nok fordi den mangler kontekst. Alligevel synes jeg, at den er overraskende god. Jeg tror godt, at det kan passere Turing testen (ikke til at skældne fra et menneske).

Det ville være interessant, at undersøge om systemet kan give mere konkrete svar, hvis det fik mere tekst med flere relevante fagudtryk fx ved at hvert spørgsmål blev fordelt på 3-4 underspørgsmål, og det endelige svar blev sat sammen ud fra svarene på underspørgsmålene.

Måske kræver det mere tid og fagligt overskud at formulere de fire underspørgsmål til systemet og sammenskrive svaret, end det kræver, at finde og skrive svaret selv. Men systemet har også en indstilling, hvor systemet kan udfylde et hul i en sætning, hvilket gør det nemmere at koble svarene sammen.

Desværre er det mit indtryk, at mange elever netop arbejder på den måde, at de først plukker inspiration fx på studieportalen (eller nu openAI), og derefter sammenskriver/formulerer deres “eget” svar.

Men det er ikke nyt. Vi har kæmpet mod studieportalen i flere år. Heldigvis kan systemet endnu ikke gemmes lokalt. Og sproglærerne har vist kæmpet mod AI et stykke tid (Google Translate).

  • Vi skal tænke os endnu mere om, når vi stiller faglige spørgsmål: Hvordan kan spørgsmålet stilles så kontekst-afhængigt, at et computer-system med adgang til Wikipedia, ikke kan besvare det?
  • Adskille med og uden hjælpemidler oftere.
  • “Os mod systemet” er en udfordring, der skal blive til “os med systemet”. Vi må prøve at bruge adgangen til IT-systemer, frem for kun at kæmpe imod dem.
Udgivet i Biologi, Maskinlæring, Skriftlighed | Kommentarer lukket til Hvor god er en AI til at besvare en skriftlig eksamensopgave?

Escape game 2022

2022 er sluttet med beskeden om, at 3g informatik C ikke skal til prøve, hvorfor vi ikke har brugt tid på at trænet op til eksamen. Holdet har arbejdet på et escape room, og årets afslutning har givet tid til at prøve en del andre gåder og tests af end normalt.

Vi har arbejdet på et rum, til flere brugere (2-3), så gåderne i højere grad kan være gemt og brugerne skal arbejde sammen for at løse dem. Vi har satset på det nederste flow i figuren herunder, da det øverste er alt for følsomt for fejl ved systemer eller brugere.

Gåderne er alle baseret på Micro:bit, og her følger et udpluk:

  • Æske der skal drejes: Brugeren skal ryste, vippe til venstre, tabe og vippe til venstre i den angivne rækkefølge. For hver korrekt manipulation viser systemet et nyt tal i displayet. Tallene er koden til en kombinationslås på en kasse, som står et andet sted. I kassen ligger en tabel over morse-koder. Udfordringer: Æsken nulstiller, hver gang den rystes lidt, hvorfor brugeren kan blive forvirret over rækkefølgen af tal.
  • Drejeskive-telefon: Brugeren skal løfte røret og lytte til korte og lange bip, derefter finde ud af, at der er tale om morsekode og bruge tabellen fra forrige opgave. Bippene er koder for et bogstav. Brugeren skal dreje bogstavet (der er både tal og bogstaver på skiven), hvorefter der kommer en ny morse-kode-lyd i røret. Når alle er korrekte sendes signal til en kasse, som spiller en melodi via en højttaler. Kassen skal åbnes og indeholder nøglen. Udfordringer: Der skal drejes ret insisterende før telefonen registrerer korrekt.

Drejeskivetelefonen fungerer næsten, dvs. man skal dreje skiven helt i bund, for at få det rigtige tal. Og de højere værdier (>5) rammer af og til ved siden af fx du drejer 8, men telefonen tæller en puls forkert og viser derfor 7. Det gør det svært for en bruger, som ikke må få hjælp undervejs. Et kompromis kunne være, at indrette brugen således, at brugeren bliver bedt om at dreje fx 3, men systemet accepterer både 2, 3 og 4 som svar. Næste tal skal så være langt fra fx 7, og her vil systemet acceptere at der drejes 6,7 eller 8.

  • Røg-maskine: En æske med en blinkende arkadeknap, og brugeren skal trykke det antal gange, som knappen blinker. Fx knappen blinker 3 gange og holder en pause. Brugeren skal trykke 3 gange på knappen. Derefter blinker knappen 5 gange. Dét havde brugerne meget svært ved at finde ud af. Med lidt hjælp fik brugerne trykket de rigtige antal gange, som aktiverede en anden mikro:bit, som var forbundet til en røgmaskine. Da den tændte blev brugeren overrasket, men forbandt ikke egen adfærd (klik) med tænding af røgmaskinen. Blink og pauser skal være meget tydeligt adskilte.

Hvad tager jeg med? Igen må brugertests være vejen fremad. Eleverne skal i mindre grad involveres i tema og bygge kredsløb, men i højere grad udleveres halv-/hel-færdige systemer, som eleverne kan modificere. Et oplagt tema er lagerrum på en skole dvs. almindelige skoleting, som pludseligt får en ny funktion. I år havde vi fået lov at bruge skolens værksted, som rum, hvilket var meget stemningsfuldt.

Tests har vist, at det er svært for brugeren at finde den rigtige rækkefølge for gåderne. Eleverne har brugt lang tid på at færdig-udvikle systemerne, som egentlig har virket i en del moduler, men skal testes og rettes til, så de passer med de andre gåder. Enten er det fint nok ellers skal forløbet sættes mere i system, så det er fast hvilket system, der skal signalere til hvilket system, og hvilken ramme/tema, der skal være i rummet.

Udgivet i Elektronik, Informatik, Maker og DIY, Micro:bit | Kommentarer lukket til Escape game 2022

Drejeskive-telefon og Micro:bit

Klokken, som normalt sidder bagest i telefonen, er fjernet og en Micro:bit er monteret i stedet. Kun USB ledningen stikker ud, så bit’en kan få strøm og kan blive omprogrammeret. Efter at have lokaliseret benene til højttaler, drejeskive og afbryder kan disse nu tilgås via hhv. pin po, p1 og p2. De to sidste enheder anvender samme GND.

drejeskiven tilgås via telefonens ben 15, og afbryderen via ben 11.

Drejeskiven fungerer, som beskrevet (http://gymlab.dk/2022/01/en-gammel-telefon/) ved at et kredsløb meget hurtigt etableres og afbrydes et antal gange alt efter hvor langt skiven drejer. Kredsløbet kan dermed sende strøm i en række pulser:

På kurven ovenfor er drejet hhv. 1, 2, 3, 4 og 9. Antallet af pulser kan tælles af en Micro:bit, idet blokken “on pin P1 pulsed high” kaldes for hver puls: https://makecode.microbit.org/_cTjDfLe5mYsu:

Koden er bl.a. inspireret af denne post: https://makecode.microbit.org/projects/rotary-dial-radio

Når der er mere end 300 ms mellem to pulser, betyder det, at drejeskivens rotation er færdig, og resultatet kan vises og tilgås via variablen “pulseCount”.

Man fornemmer på kurven ovenfor, at ni-tallet giver større risiko for fejl-tælling, da pulserne nogle gange er lidt længere eller kortere end gennemsnittet. Et drejet ni-tal bliver således nogle gange målt som 8 eller 10 af Micro:biten, mens de små tal (1-5) fungerer bedre. Cutoff på 300 ms for en puls kan evt. fin-tunes.

Mulige Escape Room opgaver kan være:

  • Telefons højttaler gentagende bipper 3 gange med en pause imellem. Brugeren skal derefter dreje tallet 3. Tonen skifter og nu bippes der 5 gange indtil brugeren drejer et fem-tal osv. Når gåden er løst (fx efter fire tal), blinker Micro:bit via 5×5 LED displayet, et tal ud gennem bagenden, som er forsynet med klart plastik. Dette tal skal bruges til en kodelås.
  • En anden telefons højttaler bipper et tal, som skal drejes på den første telefon.
  • Den endelige løsning på gåden kan sendes til en Micro:bit midt i rummet, eller en Micro:bit, som brugerne har med. Løsningen skal bruges til en kodelås.

Jeg vil gerne lægge vægt på brugernes samarbejde og bevægelse. Derfor er det fristende at lade flere enheder tale sammen, så brugerne skal “være flere steder på een gang”, for at løse gåden.

Udgivet i Elektronik, Informatik, Maker og DIY, Micro:bit, Programmering | Kommentarer lukket til Drejeskive-telefon og Micro:bit

En gammel telefon

Gamle fastnet-telefoner med drejeskive som billedet nedenfor, kan være sjovt legetøj. De er genkendelige og indeholder skiven, en højtaler, mikrofon, afbryder og evt. en klokke, som man kan manipulere med fx ifm escape room.

20091023 Kirk F68

De gamle drejeskrive-telefoner anvender mekanik som hurtigt lukker og åbner et kredsløb, når drejeskiven kører tilbage. Det resulterer i et antal elektriske puls-slag svarende til det nummer, som er valgt på drejeskiven. Nogle drejeskive-telefoner bruger vist en lysmåler og små LED-er på drejeskiven, til at fremkalde pulsene.

Micro:bit har en tidstæller (running time), der kan anvendes til at registrere hvor lang hver puls er. Hvis en puls er under 200 ms lang inkrementeres nummerviseren, og når der ikke er flere pulser, vises resultatet (tal mellem 0 og 9) på micro:bit’en. Koden i JS:

pins.onPulsed(DigitalPin.P0, PulseValue.Low, function () {
    led.plot(0, 0)
})

pins.onPulsed(DigitalPin.P0, PulseValue.High, function () {
    led.unplot(0, 0)
    pulseCount += 1
    lastPulseMs = input.runningTime()
})

let lastPulseMs = 0
let pulseCount = 0
pins.setPull(DigitalPin.P0, PinPullMode.PullUp)

basic.forever(function () {
    serial.writeValue("x", pins.digitalReadPin(DigitalPin.P0))
    if (pulseCount > 0 && input.runningTime() - lastPulseMs > 200) {
        basic.showNumber(pulseCount - 1)
        pulseCount = 0
    }
})

Det er afgørende at forsyne den pin, som pulserne skal måles på, med en pull up modstand. Denne er indbygget i Micro:biten og kan aktiveres med kommandoen pins.setPull(DigitalPin.P0, PinPullMode.PullUp) hvilket vist kun fungerer for et udvalg af pins fx p0, p1 og p2.

Målet er nu, at bygge en Micro:bit ind i telefonen. Bit’en sender signal til en anden Micro:bit “udenfor” telefonen med de tal, som der drejes på skiven.

En udfordring er feedback, men måske kan det gives via Micro:biten udenfor telefonen eller gennem den højttaler, som er indbygget i telefon-røret.

De ben i telefonen, som giver adgang til hhv. drejeskrive, højttaler og afbryder kan findes ved at bruge en Mirco:bit som et simpel multimeter til at måle om der er forbindelse i kredsløbet. Igen gives anvendes en pull-up setting på pin p0, og der tilføjes (JS): “serial.writeValue(“x”, pins.digitalReadPin(DigitalPin.P0))”.

Herefter kan de to ledninger forbundet til hhv. GND og p0 placeres på forskellige ben i telefonen, og p0 status kan aflæses over tid i et diagram i MakeCode-interfacet (klik på device).

Her er fx målt på afbryderen, når denne aktiveres tre gange, og signalet fra p0 dermed skifter fra 1 til 0.

Enjoy

Udgivet i Elektronik, Informatik, Micro:bit, Programmering | Kommentarer lukket til En gammel telefon