<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Micro:bit &#8211; GymnasieLaboratoriet</title>
	<atom:link href="https://gymlab.dk/category/elektronik/microbit/feed/" rel="self" type="application/rss+xml" />
	<link>https://gymlab.dk</link>
	<description></description>
	<lastBuildDate>Sat, 22 Oct 2022 14:49:35 +0000</lastBuildDate>
	<language>da-DK</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.4</generator>

<image>
	<url>https://gymlab.dk/wp-content/uploads/2015/06/cropped-10346051_1469495819954469_231841563154319278_n-32x32.jpg</url>
	<title>Micro:bit &#8211; GymnasieLaboratoriet</title>
	<link>https://gymlab.dk</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Skylanders i Escape room 2022</title>
		<link>https://gymlab.dk/2022/10/skylanders-i-escape-room-2022/</link>
		
		<dc:creator><![CDATA[rkw]]></dc:creator>
		<pubDate>Sat, 22 Oct 2022 14:49:34 +0000</pubDate>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Maker og DIY]]></category>
		<category><![CDATA[Micro:bit]]></category>
		<category><![CDATA[Programmering]]></category>
		<guid isPermaLink="false">http://gymlab.dk/?p=2829</guid>

					<description><![CDATA[Til et Escape room projekt har jeg leget lidt med knægtens Skylanders: 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 &#8230; <a href="https://gymlab.dk/2022/10/skylanders-i-escape-room-2022/">Læs resten <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="has-medium-font-size wp-block-paragraph">Til et Escape room projekt har jeg leget lidt med knægtens Skylanders:</p>


<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img fetchpriority="high" decoding="async" src="https://gymlab.dk/wp-content/uploads/2022/08/Skylanders-swapforce-1024x576.jpg" alt="" class="wp-image-2830" width="581" height="326" srcset="https://gymlab.dk/wp-content/uploads/2022/08/Skylanders-swapforce-1024x576.jpg 1024w, https://gymlab.dk/wp-content/uploads/2022/08/Skylanders-swapforce-300x169.jpg 300w, https://gymlab.dk/wp-content/uploads/2022/08/Skylanders-swapforce-768x432.jpg 768w, https://gymlab.dk/wp-content/uploads/2022/08/Skylanders-swapforce-1536x864.jpg 1536w, https://gymlab.dk/wp-content/uploads/2022/08/Skylanders-swapforce.jpg 1600w" sizes="(max-width: 581px) 100vw, 581px" /><figcaption>Skylander</figcaption></figure>
</div>


<p class="has-medium-font-size wp-block-paragraph">De er baseret på et passivt RFID-tag (radiofrekvensidentifikation), som er kendt fra nøglebrikker. </p>


<div class="wp-block-image">
<figure class="alignright size-full is-resized"><img decoding="async" src="https://gymlab.dk/wp-content/uploads/2022/08/Skylanders_tag.png" alt="" class="wp-image-2834" width="188" height="140" srcset="https://gymlab.dk/wp-content/uploads/2022/08/Skylanders_tag.png 532w, https://gymlab.dk/wp-content/uploads/2022/08/Skylanders_tag-300x223.png 300w" sizes="(max-width: 188px) 100vw, 188px" /></figure>
</div>


<p class="has-medium-font-size wp-block-paragraph">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.  </p>



<p class="has-medium-font-size wp-block-paragraph">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 &#8220;26 11 100 40&#8221;. Dette ID er hardcoded ind i forgreningen linje 54. Hvis denne Skylander placeres på readeren, vil Arduino&#8217;en skifte pin 2 fra low til high i en puls på 100 millisekunder (delay(100) linje 56). </p>


<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" src="https://gymlab.dk/wp-content/uploads/2022/08/Skylanders_code.png" alt="" class="wp-image-2831" width="538" height="242" srcset="https://gymlab.dk/wp-content/uploads/2022/08/Skylanders_code.png 880w, https://gymlab.dk/wp-content/uploads/2022/08/Skylanders_code-300x135.png 300w, https://gymlab.dk/wp-content/uploads/2022/08/Skylanders_code-768x346.png 768w" sizes="(max-width: 538px) 100vw, 538px" /><figcaption><a href="https://github.com/raskrawen/EscapeGame/tree/gh-pages/Skylanders/sketch_aug19a">https://github.com/raskrawen/EscapeGame/tree/gh-pages/Skylanders/sketch_aug19a</a></figcaption></figure>
</div>


<p class="has-medium-font-size wp-block-paragraph">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.</p>



<p class="has-medium-font-size wp-block-paragraph">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. </p>



<figure class="wp-block-image size-full is-resized"><img loading="lazy" decoding="async" src="https://gymlab.dk/wp-content/uploads/2022/08/Skylander_code2.png" alt="" class="wp-image-2832" width="490" height="189" srcset="https://gymlab.dk/wp-content/uploads/2022/08/Skylander_code2.png 887w, https://gymlab.dk/wp-content/uploads/2022/08/Skylander_code2-300x116.png 300w, https://gymlab.dk/wp-content/uploads/2022/08/Skylander_code2-768x298.png 768w" sizes="auto, (max-width: 490px) 100vw, 490px" /><figcaption>https://makecode.microbit.org/_57tiWd4MtTsm</figcaption></figure>



<p class="has-medium-font-size wp-block-paragraph">Er pulsen derimod længere fx 220 ms er det ninja-skylanderen, som er blevet placeret på readeren.</p>



<p class="has-medium-font-size wp-block-paragraph">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.</p>



<p class="has-medium-font-size wp-block-paragraph">Teknikken blev brugt at flere grupper til årets escape room. Desuden var der opgaver som inkluderede: </p>



<ul class="has-medium-font-size wp-block-list"><li>Et 1800-tals portrætmaleri, som skulle drejes så portrættet kiggede op i himlen.</li><li>En drejeskive-telefon, som skulle drejes korrekt.</li><li>En digital labyrint på micro:bit&#8217;ens 5&#215;5 display, som skulle gennemføres med et joystick.</li><li>en cut-the-wire / keep-talking and nobody explodes opgave. Her skulle de rigtige ledninger klippes over baseret på en skriftlig guide.</li></ul>



<p class="wp-block-paragraph"></p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Escape game 2022</title>
		<link>https://gymlab.dk/2022/05/escape-game-2022/</link>
		
		<dc:creator><![CDATA[rkw]]></dc:creator>
		<pubDate>Fri, 20 May 2022 14:54:51 +0000</pubDate>
				<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Maker og DIY]]></category>
		<category><![CDATA[Micro:bit]]></category>
		<guid isPermaLink="false">http://gymlab.dk/?p=2729</guid>

					<description><![CDATA[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 &#8230; <a href="https://gymlab.dk/2022/05/escape-game-2022/">Læs resten <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">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. </p>



<p class="wp-block-paragraph">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.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="643" height="398" src="https://gymlab.dk/wp-content/uploads/2022/05/ER-flow.png" alt="" class="wp-image-2737" srcset="https://gymlab.dk/wp-content/uploads/2022/05/ER-flow.png 643w, https://gymlab.dk/wp-content/uploads/2022/05/ER-flow-300x186.png 300w" sizes="auto, (max-width: 643px) 100vw, 643px" /></figure>



<p class="wp-block-paragraph">Gåderne er alle baseret på Micro:bit, og her følger et udpluk: </p>



<ul class="wp-block-list"><li>Æ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. </li></ul>



<ul class="wp-block-list"><li>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.</li></ul>



<p class="wp-block-paragraph">Drejeskivetelefonen fungerer næsten, dvs. man skal dreje skiven helt i bund, for at få det rigtige tal. Og de højere værdier (&gt;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.</p>



<ul class="wp-block-list"><li>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.</li></ul>



<p class="wp-block-paragraph">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.</p>



<p class="wp-block-paragraph">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.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Drejeskive-telefon og Micro:bit</title>
		<link>https://gymlab.dk/2022/02/drejeskive-telefon-og-microbit/</link>
		
		<dc:creator><![CDATA[rkw]]></dc:creator>
		<pubDate>Sat, 26 Feb 2022 18:13:37 +0000</pubDate>
				<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Maker og DIY]]></category>
		<category><![CDATA[Micro:bit]]></category>
		<category><![CDATA[Programmering]]></category>
		<guid isPermaLink="false">http://gymlab.dk/?p=2706</guid>

					<description><![CDATA[Klokken, som normalt sidder bagest i telefonen, er fjernet og en Micro:bit er monteret i stedet. Kun USB ledningen stikker ud, så bit&#8217;en kan få strøm og kan blive omprogrammeret. Efter at have lokaliseret benene til højttaler, drejeskive og afbryder &#8230; <a href="https://gymlab.dk/2022/02/drejeskive-telefon-og-microbit/">Læs resten <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Klokken, som normalt sidder bagest i telefonen, er fjernet og en Micro:bit er monteret i stedet. Kun USB ledningen stikker ud, så bit&#8217;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.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="576" src="https://gymlab.dk/wp-content/uploads/2022/02/20220208_170947-1024x576.jpg" alt="" class="wp-image-2711" srcset="https://gymlab.dk/wp-content/uploads/2022/02/20220208_170947-1024x576.jpg 1024w, https://gymlab.dk/wp-content/uploads/2022/02/20220208_170947-300x169.jpg 300w, https://gymlab.dk/wp-content/uploads/2022/02/20220208_170947-768x432.jpg 768w, https://gymlab.dk/wp-content/uploads/2022/02/20220208_170947-1536x864.jpg 1536w, https://gymlab.dk/wp-content/uploads/2022/02/20220208_170947.jpg 1600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /><figcaption>drejeskiven tilgås via telefonens ben 15, og afbryderen via ben 11.</figcaption></figure>



<p class="wp-block-paragraph">Drejeskiven fungerer, som beskrevet (<a href="https://gymlab.dk/2022/01/en-gammel-telefon/">https://gymlab.dk/2022/01/en-gammel-telefon/</a>) 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>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="907" height="295" src="https://gymlab.dk/wp-content/uploads/2022/02/dataopsamling1.png" alt="" class="wp-image-2710" srcset="https://gymlab.dk/wp-content/uploads/2022/02/dataopsamling1.png 907w, https://gymlab.dk/wp-content/uploads/2022/02/dataopsamling1-300x98.png 300w, https://gymlab.dk/wp-content/uploads/2022/02/dataopsamling1-768x250.png 768w" sizes="auto, (max-width: 907px) 100vw, 907px" /></figure>



<p class="wp-block-paragraph">På kurven ovenfor er drejet hhv. 1, 2, 3, 4 og 9. Antallet af pulser kan tælles af en Micro:bit, idet blokken &#8220;on pin P1 pulsed high&#8221; kaldes for hver puls: <a href="https://makecode.microbit.org/_cTjDfLe5mYsu">https://makecode.microbit.org/_cTjDfLe5mYsu</a>:</p>



<div style="position:relative;height:calc(300px + 5em);width:100%;overflow:hidden;"><iframe style="position:absolute;top:0;left:0;width:100%;height:100%;" src="https://makecode.microbit.org/---codeembed#pub:_cTjDfLe5mYsu" allowfullscreen="allowfullscreen" frameborder="0" sandbox="allow-scripts allow-same-origin"></iframe></div>



<p class="wp-block-paragraph">Koden er bl.a. inspireret af denne post: <a href="https://makecode.microbit.org/projects/rotary-dial-radio">https://makecode.microbit.org/projects/rotary-dial-radio</a></p>



<p class="wp-block-paragraph">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 &#8220;pulseCount&#8221;. </p>



<p class="wp-block-paragraph">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.</p>



<p class="wp-block-paragraph">Mulige Escape Room opgaver kan være:</p>



<ul class="wp-block-list"><li>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&#215;5 LED displayet, et tal ud gennem bagenden, som er forsynet med klart plastik. Dette tal skal bruges til en kodelås.</li><li>En anden telefons højttaler bipper et tal, som skal drejes på den første telefon. </li><li>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.</li></ul>



<p class="wp-block-paragraph">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 &#8220;være flere steder på een gang&#8221;, for at løse gåden.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>En gammel telefon</title>
		<link>https://gymlab.dk/2022/01/en-gammel-telefon/</link>
		
		<dc:creator><![CDATA[rkw]]></dc:creator>
		<pubDate>Mon, 31 Jan 2022 14:29:40 +0000</pubDate>
				<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Micro:bit]]></category>
		<category><![CDATA[Programmering]]></category>
		<guid isPermaLink="false">http://gymlab.dk/?p=2680</guid>

					<description><![CDATA[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. De gamle drejeskrive-telefoner anvender mekanik som &#8230; <a href="https://gymlab.dk/2022/01/en-gammel-telefon/">Læs resten <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">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.</p>



<pre class="wp-block-code"><code><a title="Fod, CC BY 2.5 DK <https://creativecommons.org/licenses/by/2.5/dk/deed.en>, via Wikimedia Commons" href="https://commons.wikimedia.org/wiki/File:20091023_Kirk_F68.JPG"><code><img decoding="async" src="https://upload.wikimedia.org/wikipedia/commons/thumb/5/58/20091023_Kirk_F68.JPG/512px-20091023_Kirk_F68.JPG" alt="20091023 Kirk F68" width="512"></code></a></code></pre>



<p class="wp-block-paragraph">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. </p>



<p class="wp-block-paragraph">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&#8217;en. Koden i JS:</p>



<pre class="wp-block-code"><code>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 &gt; 0 &amp;&amp; input.runningTime() - lastPulseMs &gt; 200) {
        basic.showNumber(pulseCount - 1)
        pulseCount = 0
    }
})</code></pre>



<p class="wp-block-paragraph">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.</p>



<p class="wp-block-paragraph">Målet er nu, at bygge en Micro:bit ind i telefonen. Bit&#8217;en sender signal til en anden Micro:bit &#8220;udenfor&#8221; telefonen med de tal, som der drejes på skiven.</p>



<p class="wp-block-paragraph">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.</p>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1024" height="768" src="https://gymlab.dk/wp-content/uploads/2022/01/telefon-1024x768.jpg" alt="" class="wp-image-2689" srcset="https://gymlab.dk/wp-content/uploads/2022/01/telefon-1024x768.jpg 1024w, https://gymlab.dk/wp-content/uploads/2022/01/telefon-300x225.jpg 300w, https://gymlab.dk/wp-content/uploads/2022/01/telefon-768x576.jpg 768w, https://gymlab.dk/wp-content/uploads/2022/01/telefon-1536x1152.jpg 1536w, https://gymlab.dk/wp-content/uploads/2022/01/telefon.jpg 1600w" sizes="auto, (max-width: 1024px) 100vw, 1024px" /></figure>



<p class="wp-block-paragraph">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): &#8220;serial.writeValue(&#8220;x&#8221;, pins.digitalReadPin(DigitalPin.P0))&#8221;. </p>



<p class="wp-block-paragraph">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).</p>



<p class="wp-block-paragraph">Her er fx målt på afbryderen, når denne aktiveres tre gange, og signalet fra p0 dermed skifter fra 1 til 0.</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="902" height="219" src="https://gymlab.dk/wp-content/uploads/2022/02/dataopsamling3.png" alt="" class="wp-image-2704" srcset="https://gymlab.dk/wp-content/uploads/2022/02/dataopsamling3.png 902w, https://gymlab.dk/wp-content/uploads/2022/02/dataopsamling3-300x73.png 300w, https://gymlab.dk/wp-content/uploads/2022/02/dataopsamling3-768x186.png 768w" sizes="auto, (max-width: 902px) 100vw, 902px" /></figure>



<p class="wp-block-paragraph">Enjoy</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Har du talt med din røgmaskine?</title>
		<link>https://gymlab.dk/2021/09/har-du-talt-med-din-roegmaskine/</link>
		
		<dc:creator><![CDATA[rkw]]></dc:creator>
		<pubDate>Thu, 02 Sep 2021 17:00:56 +0000</pubDate>
				<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[Informatik]]></category>
		<category><![CDATA[Maker og DIY]]></category>
		<category><![CDATA[Micro:bit]]></category>
		<guid isPermaLink="false">http://gymlab.dk/?p=2670</guid>

					<description><![CDATA[En billig røgmaskine er et godt stykke legetøj, som jeg har brugt til Halloween, fødselsdage og Escape Rooms gennem de sidste par år. Meget effektfuld på en nem og billig måde. Røgvæske består af ufarligt vand og glycerol, som via &#8230; <a href="https://gymlab.dk/2021/09/har-du-talt-med-din-roegmaskine/">Læs resten <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">En billig røgmaskine er et godt stykke legetøj, som jeg har brugt til <strong>Halloween</strong>, fødselsdage og Escape Rooms gennem de sidste par år. Meget effektfuld på en nem og billig måde. <strong>Røgvæske </strong>består af ufarligt vand og glycerol, som via en pumpe føres forbi et varmelegeme. Ved opvarmning fordamper væsken, men fortættes hurtigt igen via glycerol-molekylernes meget polære overflade -røgen er skabt. Maskinen er udstyret med en slags fjernbetjening (kablet) og en timer -når den er aktiveret sender den røg ud i sekvenser a 2 minutters røg og 2 minutters pause.</p>



<p class="wp-block-paragraph">Via et voltmeter og lidt <strong>reverse engineering</strong> har jeg fundet den forbindelse, der forsyner pumpen med strøm (+ og -). Her har jeg lavet et snit i + ledningen (rød) og forlænget den med to kabler, som går ud af maskinen (gule på billedet herunder). Når de to kabler forbindes, genetableres den strømførende forbindelse, pumpen starter og maskinen pumper røg ud.</p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://gymlab.dk/wp-content/uploads/2021/07/smoke2-1024x768.jpg" alt="" class="wp-image-2671" width="528" height="395" srcset="https://gymlab.dk/wp-content/uploads/2021/07/smoke2-1024x768.jpg 1024w, https://gymlab.dk/wp-content/uploads/2021/07/smoke2-300x225.jpg 300w, https://gymlab.dk/wp-content/uploads/2021/07/smoke2-768x576.jpg 768w, https://gymlab.dk/wp-content/uploads/2021/07/smoke2-1536x1152.jpg 1536w, https://gymlab.dk/wp-content/uploads/2021/07/smoke2.jpg 1600w" sizes="auto, (max-width: 528px) 100vw, 528px" /><figcaption>røgmaskinens indre</figcaption></figure>



<p class="wp-block-paragraph">De to nye kabler kan tilsluttes et <strong>relæ</strong>, som kan styres af en mikrocontroller (fx Arduino eller Micro:bit). Når relæet aktiveres fx fra en Arduino, genetableres forbindelsen i røgmaskinen. </p>



<figure class="wp-block-image size-large is-resized"><img loading="lazy" decoding="async" src="https://gymlab.dk/wp-content/uploads/2021/07/smoke1-1024x768.jpg" alt="" class="wp-image-2672" width="571" height="427" srcset="https://gymlab.dk/wp-content/uploads/2021/07/smoke1-1024x768.jpg 1024w, https://gymlab.dk/wp-content/uploads/2021/07/smoke1-300x225.jpg 300w, https://gymlab.dk/wp-content/uploads/2021/07/smoke1-768x576.jpg 768w, https://gymlab.dk/wp-content/uploads/2021/07/smoke1-1536x1152.jpg 1536w, https://gymlab.dk/wp-content/uploads/2021/07/smoke1.jpg 1600w" sizes="auto, (max-width: 571px) 100vw, 571px" /><figcaption>røgmaskinen aktiveret af en Arduino via relæ.</figcaption></figure>



<p class="wp-block-paragraph">Arduino kan styre et 5V relæ, mens Micro:bit skal bruge et relæ med 3V styrespænding. Fordelen ved <strong>Micro:bit</strong> er bl.a. at den kan umiddelbart modtage radiosignaler fra en anden bit, hvorfor man kan skabe en egentlig trådløs fjernbetjening eller aktivere den, når nogen kommer tæt på med deres bit.</p>



<p class="wp-block-paragraph">Da det kun er den ene ledning, som jeg har modificeret, og denne er godt isoleret, burde der ikke være nogen sikkerhedsmæssige udfordringer.</p>



<p class="wp-block-paragraph">Oprindeligt var det min plan at hacke røgmaskinens fjernbetjeningen, men jeg for sikker på kredsløbet og valgte derfor at gå ind i selve maskinen.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Det intelligente væksthus</title>
		<link>https://gymlab.dk/2020/12/det-intelligente-vaeksthus/</link>
		
		<dc:creator><![CDATA[rkw]]></dc:creator>
		<pubDate>Thu, 17 Dec 2020 19:36:35 +0000</pubDate>
				<category><![CDATA[Biologi]]></category>
		<category><![CDATA[Bioteknologi]]></category>
		<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[Micro:bit]]></category>
		<guid isPermaLink="false">http://gymlab.dk/?p=2521</guid>

					<description><![CDATA[Jeg har fået mulighed for at afprøve et nyt kit til automatiseret biologisk produktion i samarbejde med PodConsult, som har udviklet kittet i samarbejde med xinabox. Kittet ligger sig mellem hydroponics (plantevækst i et stenuld med meget vand tilstede) og &#8230; <a href="https://gymlab.dk/2020/12/det-intelligente-vaeksthus/">Læs resten <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Jeg har fået mulighed for at afprøve et nyt kit til automatiseret biologisk produktion i samarbejde med <a href="https://xinabox.cc/">PodConsult</a>, som har udviklet kittet i samarbejde med <a href="https://xinabox.cc/">xinabox</a>. Kittet ligger sig mellem hydroponics (plantevækst i et stenuld med meget vand tilstede) og vertikal vækst (plantevækst med LED-belysning i flere etager), og et baseret på Micro:bit.</p>



<div class="wp-block-image"><figure class="alignright size-large is-resized"><img loading="lazy" decoding="async" src="https://gymlab.dk/wp-content/uploads/2020/10/bbcmicrobit.gif" alt="" class="wp-image-2527" width="293" height="164"/></figure></div>



<p class="wp-block-paragraph"><strong>Micro:bitten</strong> har vist sig som en lettilgængelig platform med en mangfoldighed af muligheder. For nybegyndere kan de indbyggede I/O-enheder kodes med blokke, mens øvede kan kode den i Python eller JavaScript og tilslutte eksterne enheder og forbinde den til internettet. På mange pædagogiske punkter overgår Micro:bit andre platforme som Arduino og Raspberry pi. </p>



<p class="wp-block-paragraph">Kittet skal afprøves i et stx biologi c hold med ca. 30 elever. Eleverne skal gå fra Micro:bit nybegyndere til øvede på meget kort tid. De kommer med stor erfaring i at bruge digitale redskaber, men nok uden forudsætninger for programmering. Det bliver nok forløbets store spørgsmål: </p>



<p class="wp-block-paragraph"><strong>Er Micro:bitten så lettilgængelig, at eleverne kan lave et kompliceret teknisk setup på 1-2 moduler med en rimelig grad af selvstændighed? </strong></p>



<p class="wp-block-paragraph">Heldigvis er jeg der til at støtte dem, så de kan arbejde efter en kogebog, hvis deres egne kompetencer svigter. Det går selvfølgelig ud over selvstændigheden, så forhåbentligt kan de kode Micro:bitten selv efter nogle generelle instrukser. </p>



<div class="wp-block-image"><figure class="alignright size-large is-resized"><img loading="lazy" decoding="async" src="https://gymlab.dk/wp-content/uploads/2020/10/LEDstrip-1024x768.jpg" alt="" class="wp-image-2530" width="345" height="258" srcset="https://gymlab.dk/wp-content/uploads/2020/10/LEDstrip-1024x768.jpg 1024w, https://gymlab.dk/wp-content/uploads/2020/10/LEDstrip-300x225.jpg 300w, https://gymlab.dk/wp-content/uploads/2020/10/LEDstrip-768x576.jpg 768w, https://gymlab.dk/wp-content/uploads/2020/10/LEDstrip-1536x1152.jpg 1536w, https://gymlab.dk/wp-content/uploads/2020/10/LEDstrip-2048x1536.jpg 2048w" sizes="auto, (max-width: 345px) 100vw, 345px" /></figure></div>



<p class="wp-block-paragraph">Fra <strong>læreplanen</strong> dækker vi kernestoffet om økosystemer, arters samspil med hinanden og miljøet, stofkredsløb og energikæder, diversitet. Læreplanen indeholder også et punkt om biologisk produktion, samt digitale kompetencer idet eleverne ifølge 2017 reformen skal arbejde med at udvikle digitale produkter. </p>



<p class="wp-block-paragraph">Forløbet indeholder følgende faser:</p>



<ol class="wp-block-list"><li>Introduktion til økosystemer, primær produktion, stofkredsløb og energi-kæder. </li><li>Transport over cellemembran</li><li>Forsøg med plantevækst i en fortyndingsrække af gødning. Forsøget illustrerer både gødning som den begrænsende faktor og effekten af osmose på planterne.</li><li>Ret hurtigt sætter vi gang i plantevækst: Vegetativ formering af diverse planter (basilikum, tomat, m.m.) i stenuld. </li><li>Indledende øvelse med at tilslutte og kode Micro:bit. Fx mål temperaturen og få den vist i display&#8217;et.</li><li>Eleverne arbejder i grupper på at teste de enkelte dele af væksthus. Således er der grupper der afprøver: <ol><li>LED-lys. Hvilke farver?</li><li>Væskestand-sensor (floatmeter) og ventil til at tillede mere vand. En periode med tørke er måske ønskværdig.</li><li>Gødningsmængde i vandet (SDK-sensor)</li><li>Temperatur i væksthuset</li><li>Evt. pH meter</li></ol></li><li>Elever eller lærer samler alle sub-systemerne på et enkelt board, og alle koderne i et enkelt program. Senere tilføjes dataopsamling til skyen i form af tjenesten Thingspeak. Vi indsætter data på en webside via iframes.</li><li>Landbrug og væksthuset som økosystem, hvilke stofkredsløb og energikæder er der og kan vi måle dem? </li><li>Hvilke fordele og ulemper er der ved væksthuset. Biodiversitet (arter, økosystemer og genetik)</li><li>Er der noget som skal ændres i væksthuset?</li></ol>



<p class="wp-block-paragraph">Tiden vil vise om planen skal rettes til (som sædvanligt).</p>



<p class="wp-block-paragraph">p.t. er der nogle udfordringer med at få gang i plantevæksten i vækst-teltet, som jeg har set før. Der sker ingen bladvækst (dog rodsætning) og nogle blade krøller sig lidt sammen og der ses brune pletter hist og her. Nogle af de forklaringsmodeller jeg arbejder med er:</p>



<ul class="wp-block-list"><li>For meget LED-lys. Dog usandsynligt, da jeg kun har 3 strips i en afstand af ca. 40 cm. Jeg har slukket den ene strip og sat en timer på de resterende, så kassen kun får 16 timers lys, uden synlig effekt.</li><li>For høj temperatur. Den er ikke over 25 grader C, og flere af planterne (tomater) er tropiske og tåler høje temperaturer. En lille blæser viser ingen synlig effekt.</li><li>For meget gødning. Usandsynligt. Jeg har doseret 1 dråbe pr. ca. 50 mL.</li><li>For meget vand. De fleste af planterne har rødderne i vand hele tiden (hydroponics). Kombineret med LED-lys og høj temperatur, kan bladene opleve at optage for meget vand, med cellelysis til følge. Jeg har sat nogle planter i kassen, som står i jord og dermed kan udtørres periodevis. Resultat venter..</li><li>Utilstrækkelig lys-intensitet. Jeg har en anden LED-pære liggende, som jeg ved virker, da den har givet vækst før. Dog skulle planterne dengang bruge en uges tid på at vende sig til forholdene. Den må jeg prøve.</li><li>Utilstrækkelige bølgelængder. Selv om LED-strippene har både røde blå og hvide LED&#8217;er, kan det være en blanding af lys som ikke er optimal. Løsning: se ovenfor.</li></ul>



<p class="wp-block-paragraph">Problemet er ikke afgørende for om projektet lykkes -vi skal ikke leve af høsten endnu.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Micro:bit i Escape room</title>
		<link>https://gymlab.dk/2019/10/microbit-i-escape-room/</link>
		
		<dc:creator><![CDATA[rkw]]></dc:creator>
		<pubDate>Mon, 07 Oct 2019 13:42:44 +0000</pubDate>
				<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[Micro:bit]]></category>
		<guid isPermaLink="false">http://gymlab.dk/?p=2395</guid>

					<description><![CDATA[Så er mit første forløb på i mit første år som informatik-underviser ved at være slut. Vi arbejder på et Escape Room bygget på Micro:bit enheder. Et favorit-område for mig, men ikke særlig velegnet til første forløb: Hardware og software &#8230; <a href="https://gymlab.dk/2019/10/microbit-i-escape-room/">Læs resten <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Så er mit første forløb på i mit første år som informatik-underviser ved at være slut. Vi arbejder på et Escape Room bygget på Micro:bit enheder. Et favorit-område for mig, men ikke særlig velegnet til første forløb: Hardware og software og brugeroplevelse skal spille sammen, så der er mange steder det kan gå galt.</p>



<p class="wp-block-paragraph">Målet var at udvikle et Escape Room til brug under Naturvidenskabsfestivalen, hvor skolen får besøg af utallige 7., 8. og 9. klasser, der bruger 25 minutter ved hver post. Informatik var en af disse poster, hvorfor vores Escape Room oplevelse skulle genbruges ca. 12 gange på en dag.</p>



<p class="wp-block-paragraph">Trods det lidt barnlige udseende, er der flere fordele ved Micro:bit. Den kan kodes i blokke og tekst (JS). Den er ret let at tilgå fysisk fx med krokodillenæb, hvorfor jeg ikke var så bange for hardware-delen. Alligevel var der flere elever, som stødte på problemer. Bl.a. en gruppe, som arbejdede med servo-motorer, der måtte skifte spor, og en gruppe, som bøvlede en del med gyro&#8217;en (jeg tror, at vi kom frem til hvordan denne skal aktiveres).</p>



<p class="wp-block-paragraph">Vi begyndte med en række fælles opgaver, som introducerede variable, datatyper, kontrolstrukturer, funktioner, eventHandlers, hardware-komponenter m.m. Jeg introducerede tre komponenter: </p>


<ul>
<li>
<p>en arkade-trykknap,</p>
</li>
<li>
<p>en servo-motor og</p>
</li>
<li>
<p>en programmerbar LED-strip</p>
</li>
</ul>


<p class="wp-block-paragraph">Derefter turde eleverne (som er en del dygtige 3.g&#8217;ere) kaste sig ud i deres egne projekter. </p>



<div class="wp-block-image"><figure class="alignright is-resized"><img loading="lazy" decoding="async" src="https://gymlab.dk/wp-content/uploads/2019/09/EscapeRoom1-1024x768.jpg" alt="" class="wp-image-2411" width="261" height="196" srcset="https://gymlab.dk/wp-content/uploads/2019/09/EscapeRoom1-1024x768.jpg 1024w, https://gymlab.dk/wp-content/uploads/2019/09/EscapeRoom1-300x225.jpg 300w, https://gymlab.dk/wp-content/uploads/2019/09/EscapeRoom1-768x576.jpg 768w, https://gymlab.dk/wp-content/uploads/2019/09/EscapeRoom1.jpg 1600w" sizes="auto, (max-width: 261px) 100vw, 261px" /></figure></div>



<p class="wp-block-paragraph">Højt til loftet og vide vægge, som man siger. Mindre kreative elever kan benytte de indbyggede sensorer og feedback-muligheder. Elever, der gerne vil udfordres mere kan koble de introducerede komponenter til og andre kan selv finde komponenter på nettet. Flere fandt bl.a. på at koble højttalere til deres bit. </p>



<p class="wp-block-paragraph">Undervejs introducerede jeg til arbejdsprocessen i udarbejdelsen af et IT-system, herunder brainstorm, programmering, IT-systemers feedback og tænke højt test. Elevernes projekter gav rigelige muligheder for at teste systemerne.</p>



<div class="wp-block-image"><figure class="alignleft is-resized"><img loading="lazy" decoding="async" src="https://gymlab.dk/wp-content/uploads/2019/09/EscapeRoom3-768x1024.jpg" alt="" class="wp-image-2412" width="326" height="435" srcset="https://gymlab.dk/wp-content/uploads/2019/09/EscapeRoom3-768x1024.jpg 768w, https://gymlab.dk/wp-content/uploads/2019/09/EscapeRoom3-225x300.jpg 225w, https://gymlab.dk/wp-content/uploads/2019/09/EscapeRoom3.jpg 1200w" sizes="auto, (max-width: 326px) 100vw, 326px" /></figure></div>



<p class="wp-block-paragraph">Elevernes opgave lød som: </p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Kravs-specifikation: </p><p>I skal udvikle et IT-system på Micro:bit, som ved hjælp af hardware og software giver brugeren (unge i alderen 13-20 år) en oplevelse af at løse en gåde (puzzle) på 2-15 minutter.</p><p>Systemet skal give feedback under brug fx ved hjælp af lys eller lyd, og systemet skal give tydeligt feedback (herunder et tal), når gåden er løst.</p><p>Hele systemet skal kunne genbruges -det må ikke være nødvendigt at ødelægge det for at løse gåden.</p><p>Jeres opgave i grupper a 2-3 personer: </p><p>Udvikle IT-systemet ovenfor gennem en række af prototyper og bruger-tests. Resultatet (tallet) fra hver gåde kan bruges til at åbne en kombinations-lås, som giver adgang til en præmie.&#8221;</p></blockquote>



<p class="wp-block-paragraph">Vi valgte at indrette vores Escape Room i en ubrugt del af skolens kælder, hvilket gav en god stemning. Temaet blev Halloween, og lidt udsmykning, en røgmaskine og nogle LED-strips gav rigtig gode effekter.  </p>



<div class="wp-block-image"><figure class="alignright is-resized"><img loading="lazy" decoding="async" src="https://gymlab.dk/wp-content/uploads/2019/09/EscapeRoom2-1024x768.jpg" alt="" class="wp-image-2414" width="347" height="260" srcset="https://gymlab.dk/wp-content/uploads/2019/09/EscapeRoom2-1024x768.jpg 1024w, https://gymlab.dk/wp-content/uploads/2019/09/EscapeRoom2-300x225.jpg 300w, https://gymlab.dk/wp-content/uploads/2019/09/EscapeRoom2-768x576.jpg 768w, https://gymlab.dk/wp-content/uploads/2019/09/EscapeRoom2.jpg 1600w" sizes="auto, (max-width: 347px) 100vw, 347px" /></figure></div>



<p class="wp-block-paragraph">Jeg havde valgt at følge nogle af de trends, som findes blandt Escape Rooms, herunder: 1) Lad være med at låse folk inde: Kald det et Escape Game, og lad brugerne bryde ind i noget frem for ud. 2) Åben frem for linær vej: Lav et antal gåder, som skal løses uafhængigt af hinanden (vi havde fire kasser med kombinationslåse), så alt ikke står og falder med een gåde. </p>



<p class="wp-block-paragraph">Selve dagen forløb over al forventning. Vi havde alle de mange folkeskoleelever igennem et stramt program: forhåndsundersøgelse (&#8220;Ved I hvad et Escape Room er?&#8221;), do&#8217;s and dont&#8217;s. 15 minutter i vores Escape Room og kort afsluttende evaluering: Alle meldte om en god og anderledes oplevelse. </p>



<p class="wp-block-paragraph">Der var selvfølgelig noget teknik der drillede, men ikke mere end vi kunne lægge en seddel med et tal, og rette op på fejlen til næste besøg af brugere. Et spændende test-resultat var bl.a. at nogle børn ikke kender gruppen ABBA. Da vi testede på os selv, gav det ingen problemer, men børn på 13 år er anderledes <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/1f642.png" alt="🙂" class="wp-smiley" style="height: 1em; max-height: 1em;" /></p>



<p class="wp-block-paragraph">Eleverne havde lavet mange gode opgaver. De opgaver, som måske virkede bedst, var dem, der var ret fysiske og gav tydeligt feedback fx en &#8220;don&#8217;t touch the wire&#8221; opgave, hvor to stykker kobber-wire ikke må røre hinanden.</p>



<p class="wp-block-paragraph">En anden vellykket opgave, hvor bittens gyro har koblet til en højtaler -det hele gemt i en flyttekasse. Systemet skulle drejes i forskellige retninger, og gav en lyd af højere og højere frekvens efterhånden som brugeren nærmede sig den rette manipulation. Hver rigtig bevægelse blev belønnet med et højlyd ding a la SuperMario.  </p>



<p class="wp-block-paragraph">GDPR = ingen billeder fra dagen.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Kø i Micro:bit</title>
		<link>https://gymlab.dk/2019/06/koe-i-microbit/</link>
		
		<dc:creator><![CDATA[rkw]]></dc:creator>
		<pubDate>Sat, 08 Jun 2019 10:51:51 +0000</pubDate>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Micro:bit]]></category>
		<category><![CDATA[Programmering]]></category>
		<guid isPermaLink="false">http://gymlab.dk/?p=2360</guid>

					<description><![CDATA[Jeg påstår at en Micro:bit kan udføre de samme opgaver, som en Arduino. Dertil en Micro:bitten nemmere at komme igang med (indbyggede sensorer og LED&#8217;ere) og har mere hukommelse og hurtigere processor end Arduino. Micro:bittens ry for &#8220;at være til &#8230; <a href="https://gymlab.dk/2019/06/koe-i-microbit/">Læs resten <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[
<p class="wp-block-paragraph">Jeg påstår at en <strong>Micro:bit</strong> kan udføre de samme opgaver, som en <strong>Arduino</strong>. Dertil en Micro:bitten nemmere at komme igang med (indbyggede sensorer og LED&#8217;ere) og har mere hukommelse og hurtigere processor end Arduino. </p>



<p class="wp-block-paragraph">Micro:bittens ry for &#8220;<strong>at være til børn</strong>&#8221; skyldes nok, at den er udleveret til 4. klasser, og de fleste online kilder er henvendt til børn. Micro:bit er yngre, og derfor er der mindre materiale, den er britisk, så det amerikanske og asiatiske marked udviser begrænset interesse. Dertil skal den ofte forbindes til et breakout-board for at lave avancerede ting.</p>



<p class="wp-block-paragraph">Selv kodningen er også lidt anderledes. Arduino kodes traditionelt i et c++ lignende sprog, mens Micro:bit normalt begynder med blokke, derefter JavaScript og til slut MicroPython, hvis der skal meget funktionalitet på.</p>



<p class="wp-block-paragraph">Et Arduino-program afvikles sekventielt fra A til B til C, der er ingen andre veje.  Noget der har irriteret min underbevidsthed er, at på Micro:bit afvikles en start-sekvens og derefter et forever-loop. Men <strong>forever er ikke forever</strong>, for smider jeg en &#8220;onButtonAPressed&#8221; funktion ind bliver den afviklet, når knap A trykkes. </p>



<p class="wp-block-paragraph">Forever afbrydes -der er noget ulogisk i den sekvens. Noget jeg ikke har kontrol over.</p>



<p class="wp-block-paragraph">Eksemplet herunder kører netop et blinkende hjerte i forever-funktionen, men trykkes på knap A kommer et Happy-face pludselig frem.  </p>



<div style="position:relative;height:0;padding-bottom:70%;overflow:hidden;"><iframe style="position:absolute;top:0;left:0;width:100%;height:100%;" src="https://makecode.microbit.org/#pub:_TvW7KT6RMhwR" frameborder="0" sandbox="allow-popups allow-forms allow-scripts allow-same-origin"></iframe></div>



<p class="wp-block-paragraph">Heldigvis har jeg fået genoprettet min logiske sindsro ved at lære om Micro:bits <strong>scheduler</strong>, som holder styr på, hvad der afvikles hvornår. Funktionerne på Micro:bit afvikles via en <strong>runtime-kø</strong>. Scheduleren checker hver 6. millisekund rækkefølgen i runtime-køen, og Forever-loopet har laveste prioritet (kører i baggrunden) i runtime-køen. </p>



<p class="wp-block-paragraph">Dvs. når der sker en <strong>event </strong>køres en event-handler fx input.something, og denne kommer ind forrest i runtime-køen og bliver straks afviklet. Sker der andre events kommer de ind bag i køen. Funktioner der afvikler en pause stilles i en <strong>pause-kø</strong> og fortsættes, når pausen er slut. Imens der er pause, kan næste funktion i runtime-køen starte/fortsætte.</p>



<p class="wp-block-paragraph">Derfor vil eksemplet herunder også vise et blinkende hjerte (forever-loopet). Men når der trykkes A, afvikles en event-funktion og en smiley vil straks fremkomme. Derefter går eventhandler-funktionen på 5 sekunders pause, og imens kører forever-loopet igen, indtil pausen er forbi, eventhandler-funktionen kører videre, som ses ved en sur smiley.</p>



<div style="position:relative;height:0;padding-bottom:81.97%;overflow:hidden;"><iframe style="position:absolute;top:0;left:0;width:100%;height:100%;" src="https://makecode.microbit.org/---run?id=_3gqJwdWwDg50" allowfullscreen="allowfullscreen" sandbox="allow-popups allow-forms allow-scripts allow-same-origin" frameborder="0"></iframe></div>



<p class="wp-block-paragraph">Arduinoen kan selvfølgelig noget lignende via Interrupts, der lytter efter events, men disse skal hardkodes, hvorimod Micro:bitten umiddelbart er født med interrupts.</p>



<p class="wp-block-paragraph">Mere info:  <a href="https://makecode.microbit.org/reference/event-handler">https://makecode.microbit.org/reference/event-handler</a>, <a href="https://lancaster-university.github.io/microbit-docs/ubit/messageBus/">https://lancaster-university.github.io/microbit-docs/ubit/messageBus/</a>  </p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Maskinlæring med selvbalancerende robot</title>
		<link>https://gymlab.dk/2017/08/maskinlaering-med-selvbalancerende-robot/</link>
		
		<dc:creator><![CDATA[rkw]]></dc:creator>
		<pubDate>Tue, 01 Aug 2017 15:15:03 +0000</pubDate>
				<category><![CDATA[Arduino]]></category>
		<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[Maker og DIY]]></category>
		<category><![CDATA[Micro:bit]]></category>
		<guid isPermaLink="false">http://gymlab.dk/?p=1729</guid>

					<description><![CDATA[Lidt naivt har jeg forsøgt, at lave en selvbalancerende robot baseret på en gul DC-motor og en micro:bit. Bitten har en indbygget gyro-sensor, som kan måle om den er ved at vælte til den ene eller anden side. [youtube https://www.youtube.com/watch?v=LDcZrqrbFec?rel=0] &#8230; <a href="https://gymlab.dk/2017/08/maskinlaering-med-selvbalancerende-robot/">Læs resten <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<p>Lidt naivt har jeg forsøgt, at lave en <strong>selvbalancerende robot</strong> baseret på en gul DC-motor og en <strong>micro:bit</strong>. Bitten har en indbygget gyro-sensor, som kan måle om den er ved at vælte til den ene eller anden side.</p>
<p>[youtube https://www.youtube.com/watch?v=LDcZrqrbFec?rel=0]</p>
<p>Robotten kan ikke balancere selv, og jeg er derfor skiftet til <strong>Arduino</strong>, en ekstern gyro og er på vej mod at udskifte DC-motoren med to Stepper-motorer. Desuden skal motorerne sikkert have mindst en kapacitor for at give mere jævn spænding under start.</p>
<p><strong>Stepper-motorer</strong> kan ligesom servoer dreje til præcise gradtal, og reagerer hurtigere end DC-motorer. Steppere er ikke begrænset til 180 grader, som servo-motorer er, men kan dreje flere omgange, hvorfor de anvendes i 3D printere og andre CNC maskiner.</p>
<p>Alligevel skal deres omdrejninger stabiliseres af et <strong>PID-system</strong>. Og det er sjovt.</p>
<p>PID kan betragtes som <strong>maskinlæring</strong>, om end det har været anvendt i mange år (ligesom nogle typer af maskinlæring). Kort fortalt går det ud fra at motorens hastighed reguleres som summen af tre led:</p>
<p><strong>Proportionelt</strong> med en sensormåling. I dette tilfælde gyro&#8217;ens afvigelse i en dimension fra balance.</p>
<p><strong>Integralet</strong> af afvigelse fra balance. Her akkumuleres fejl over en vis periode, så motoren yder mere jo større fejl, der registreres. Når systemet kommer mere i balance givet motorens større reaktion, bliver mindre fejl akkumuleret og integral-leddet bliver mindre. På den måde forsøges erfaringer inkorporeret i systemet.</p>
<p><strong>Differentialet</strong> er differential-kvotienten af motorens hastighed. Når systemet går mod balance, vil motoren ofte have forholdsvis store omdrejninger, som dog er på vej nedad -de bliver mindre. Men de mindskes ikke hurtigt nok, hvorfor systemet ofte vil overskyde balancepunktet og svinge over i den modsatte side. Differentialet dæmper dette overskud en smule, så systemet nemme kan finde balance. På den måde forsøges fremtiden inkorporeret i systemet.</p>
<p>Dvs. systemet lærer delvist på baggrund af de data den opsamler, heraf maskinlæring, dog uden neurale netværk. Alligevel kan systemet være ret svært at stabilisere. En Arduino-kode kunne se ud noget i denne stil:</p>
<p><a href="https://gymlab.dk/wp-content/uploads/2017/07/skc3a6rmbillede-2017-07-30-kl-19-56-14.png"><img loading="lazy" decoding="async" class="alignnone wp-image-1733" src="https://gymlab.dk/wp-content/uploads/2017/07/skc3a6rmbillede-2017-07-30-kl-19-56-14.png" alt="" width="458" height="174" srcset="https://gymlab.dk/wp-content/uploads/2017/07/skc3a6rmbillede-2017-07-30-kl-19-56-14.png 764w, https://gymlab.dk/wp-content/uploads/2017/07/skc3a6rmbillede-2017-07-30-kl-19-56-14-300x114.png 300w" sizes="auto, (max-width: 458px) 100vw, 458px" /></a></p>
<p>kilde: http://web.csulb.edu/~hill/ee444/Lectures/08_PID%20Control.pdf</p>
<p>Hvert led (P+I+D) er forsynet med en faktor (Kp, Ki og Kd), som skal indstilles til den rigtige værdi. Hver værdi kan som regel kun findes ved små justeringer (<strong>tuning</strong>). Her kunne maskinlæring også være en oplagt tilgang. Dog en udfordring, at efter hvert run, skal jeg bringe robotten i balance igen.</p>
<p>Må se om jeg får tid til at gå videre med systemet.</p>
<p>&nbsp;</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Puzzlebox med micro:bit</title>
		<link>https://gymlab.dk/2017/07/puzzlebox-med-microbit/</link>
		
		<dc:creator><![CDATA[rkw]]></dc:creator>
		<pubDate>Sat, 08 Jul 2017 17:46:38 +0000</pubDate>
				<category><![CDATA[Elektronik]]></category>
		<category><![CDATA[Maker og DIY]]></category>
		<category><![CDATA[Micro:bit]]></category>
		<guid isPermaLink="false">http://gymlab.dk/?p=1672</guid>

					<description><![CDATA[Escape-rooms er sjove at gennemføre (ikke at jeg har prøvet), men måske endnu sjovere at planlægge. Da jeg ikke kan lave et escaperoom hjemme, er et mere tilgængeligt alternativ en puzzlebox. Altså en box, som kun åbner, når der er &#8230; <a href="https://gymlab.dk/2017/07/puzzlebox-med-microbit/">Læs resten <span class="meta-nav">&#8594;</span></a>]]></description>
										<content:encoded><![CDATA[<h3><strong>Escape-rooms</strong> er sjove at gennemføre (ikke at jeg har prøvet), men måske endnu sjovere at planlægge. Da jeg ikke kan lave et escaperoom hjemme, er et mere tilgængeligt alternativ en puzzlebox. Altså en box, som kun åbner, når der er løst en række gåder.</h3>
<h3>Micro:bit (µbit) har den fordel, at den har indbyggede sensorer, knapper og display, som gør den nem at komme i gang med. Vil man lave mere avancerede ting, kan de medfødte komponenter til gengæld begrænse friheden, med mindre man selv tilslutter komponenter.</h3>
<h3>Her en puzzlebox prototype baseret på micro:bit. Mine <strong>puzzles er målrettet børn</strong>, så de er ikke så svære, og man får (imo) tydelige hints via 5&#215;5 displayet, idet µbitten stikker op gennem et hul i låget.</h3>
<h3>µbit er monteret i et breakout edge-connector board for at give adgang til flere pins. Det er dog ikke strengt nødvendigt. På den anden side skal µbitten sidde fast i noget. Nogle forbindelser/ledninger er desuden sikret med lim fra en limpistol.</h3>
<h3><a href="https://gymlab.dk/wp-content/uploads/2017/07/img_20170626_130724.jpg"><img loading="lazy" decoding="async" class="alignnone size-full wp-image-1690" src="https://gymlab.dk/wp-content/uploads/2017/07/img_20170626_130724.jpg" alt="" width="4160" height="3120" srcset="https://gymlab.dk/wp-content/uploads/2017/07/img_20170626_130724.jpg 4160w, https://gymlab.dk/wp-content/uploads/2017/07/img_20170626_130724-300x225.jpg 300w, https://gymlab.dk/wp-content/uploads/2017/07/img_20170626_130724-768x576.jpg 768w, https://gymlab.dk/wp-content/uploads/2017/07/img_20170626_130724-1024x768.jpg 1024w" sizes="auto, (max-width: 4160px) 100vw, 4160px" /></a></h3>
<h3><strong>Første puzzle</strong> (meget nem): Tryk på begge knapper samtidig. Hint: pile peger på knapperne.</h3>
<h3><strong>Andet puzzle</strong> (middel?): Køl kassen ned til under 10 grader C. Bruger µbit&#8217;s indbyggede temperatur-sensor, som dog altid viser en temperatur ca. 3 grader over den egentlige rumtemperatur, givet processorens varmeudvikling. Hint: display viser teksten &#8220;cool&#8221;. Man kan gøre det sværere ved at skrive teksten i morse-kode.</h3>
<h3><strong>Tredje puzzle</strong> (svær): Der er to ledninger, som stikker ud af kassen, og 10 skruer. Ledningerne skal forbindes til skrue nr. 2 og 5. Desuden skal en on/off switch være tændt. Derved kommer der 3V til pin1. Hint: Display viser &#8220;5  2&#8221;.</h3>
<h3>Løsning af de tre puzzles, trigger en <strong>servo</strong> på pin0, som åbner boxen i 10 sekunder. Derefter låser den igen, og de tre puzzles skal løses forfra. Det hele får strøm fra en <a href="https://www.aliexpress.com/item/New-Metal-Cylinder-Portable-Power-Bank-2600mah-Universal-Mini-External-USB-Battery-Charger-for-iPhone-4/32499612413.html?spm=2114.search0104.3.1.V7KLWy&amp;ws_ab_test=searchweb0_0,searchweb201602_1_10152_10065_10151_10068_10171_10084_10083_10080_10304_10082_10081_5360014_10110_10136_10137_10111_10302_10060_10112_10155_10113_10114_10154_10056_10055_10054_10182_10059_100031_10099_10078_10079_10103_10073_10102_10189_10052_10053_10142_10107_10050_10051,searchweb201603_1,ppcSwitch_5&amp;btsid=ed2494c6-265f-40b5-8352-16a77222633d&amp;algo_expid=838b034f-c8d6-41a6-84ea-9e341d817f23-0&amp;algo_pvid=838b034f-c8d6-41a6-84ea-9e341d817f23">5V powerbank</a>.</h3>
<h3>Puzzle 3 er ikke en særlig elegant løsning, og vil gerne lave en løsning a la Makey Makey, hvor man blot skal berøre skruerne. Jeg har ikke haft tid til at forsøge med hvilken modstand, der er passende til µbitens 3V i stedet for 5V.</h3>
<h3><a href="https://gymlab.dk/wp-content/uploads/2017/07/microbit-banana.png"><img loading="lazy" decoding="async" class="alignnone wp-image-1673" src="https://gymlab.dk/wp-content/uploads/2017/07/microbit-banana.png" alt="" width="286" height="224" /></a></h3>
<h5>kilde: efter https://www.bigmessowires.com/2016/08/19/fruit-electronics-piano/</h5>
<h3>Der er <strong>mange andre puzzles</strong>, som børnene måske kan være med til at designe: Bruge accelerometeret, kompas, morse (som sagt), lys. Begrave µbit i boxen, så den fremstår mere ren. Boxen kan skæres på lasercutter.</h3>
<h3>kode m.m.:</h3>
<div style="position:relative;height:0;padding-bottom:70%;overflow:hidden;"><a href="https://makecode.microbit.org/#pub:_gtHWuC36tUwv">https://makecode.microbit.org/#pub:_gtHWuC36tUwv</a></div>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>

<!--
Object Caching 24/58 objects using Disk
Page Caching using Disk: Enhanced 

Served from: gymlab.dk @ 2026-10-29 06:48:47 by W3 Total Cache
-->