Med Raspberry Pi på eventyr
“Mennesket er blevet sine værktøjers værktøj”, skrev den amerikanske forfatter H.D. Thoreau i 1800-tallet. Hvis han havde ret dengang, må han i endnu højere grad have det i dag, for vi bliver mere og mere afhængige af teknologi, som vi forstår mindre og mindre af. Moderne grafiske brugerflader giver et legende, til tider brugervenligt og oplevelsesdesignet lag, ovenpå meget avanceret teknologi ─ uden at give indsigt i, hvordan teknologien fungerer.
Godt, så længe det drejer sig om at sende en mail eller lave et opkald, begrænsende hvis brugeren vil gå ud over programmets fast definerede rammer, og problematisk i en større kontekst, der handler om at forstå og kunne påvirke vores verden digitale dimension.
Minicomputeren Raspberry Pi er et alternativ til denne udvikling med dens renskurede hard- og software. Her er skåret ind til benet, for at sætte prisen lavt og dermed gøre platformen tilgængelig for så mange som muligt. Styresystemet nedtoner de grafiske virkemidler, æstetikken præges af blotlagte komponenter og printplade, og ydelsen er sammenlignelig med en hjemme-PC fra første halvdel af 00’erne. Til gengæld er den stort set umulig at bruge, uden at blive klogere på, hvordan teknologien virker, og den kan på den måde lære os at tage kontrollen over vores ‘værktøj’ tilbage.
Men hvordan foregår denne læring i praksis? Et eksempel er bogen Adventures in Raspberry Pi, skrevet af den engelske skolelærer og Raspberry Pi-entusiast, Carrie Anne Philbin. Jeg tog med på eventyr.
Et lærebogseventyr
Adventures in Raspberry Pi er opbygget som en traditionel lærebog med ni ‘eventyr’ af stigende sværhedsgrad og rettet mod teenagere. Her guides læseren fra den første opsætning og klargøring af Raspberry Pi, til en fuldt fungerende jukebox med fysiske knapper og sanginformationer på LCD-display.
Hvert eventyr har en kort introduktion, efterfulgt af instruktioner til løsning af opgaven, samt tips, definitioner på tekniske termer og referencelister med de nyttigste kommandoer.
På rejsen mod den ærefrygtindgydende jukebox introduceres således programmeringssprogene Python og Scratch, det allestedsnærværende computerspil Minecraft, musikprogrammering med Sonic Pi og ikke mindst brugen af General Purpose Input Output (GPIO)-funktionaliteten. Jeg har fokuseret på Python, Scratch og GPIO-kapitlerne og lavet en række screencasts, der viser, hvordan eventyrene tager sig ud på skærmen. Videoerne kan ses samlet eller hver for sig her:
Min egen oplevelse, da jeg gik igennem øvelserne, var ofte præget af en følelse af at skabe noget fra bunden ─ et godt, muligvis optimalt, udgangspunkt, når nyt og kompliceret stof skal læres. Og det er nødvendigt, for nogle af de uforudsete udfordringer, man møder, kan hurtigt blive barrierer, hvis man ikke er vedholdende.
Et eksempel: Det første eventyr guider læseren igennem klargøring af Raspberry Pi med download af Pi’ens styresystem til PC/Mac og overførsel til det SD-kort, der efterfølgende placeres i minicomputerens kortlæser. For mit vedkommende semiknækkede filmen allerede her, da min Macbook Pros indbyggede kortlæser ikke ville skrive styresystemet til SD-kortet, og jeg blev nødt til at bruge en ekstern kortlæser ─ noget jeg kun gjorde, fordi jeg har oplevet problemet tidligere i forhold til Raspberry Pi.
Der kræves simpelthen forudgående viden, ofte om Linux, for at løse problemerne, hvis de opstår. Og det er jo netop det, som Philbins bog og Raspberry Pi-platformen vil lære os, så det er hønen og ægget om igen. Jeg ville dog ønske, at vejen ud af fejlfindingsdyndet kunne gøres en smule kortere, og at opsætningen af Raspberry Pi ikke behøver at være et eventyr i sig selv, for risikoen er, at læseren står af, allerede inden hun kommer i gang.
Kommandolinjebetvinger
Med den første digitale hurdle overvundet, går det til gengæld stærkt med følelsen af at få større kontrol over computeren. Philbins andet eventyr handler om, hvordan man bruger Linux-terminalen til at starte og opdatere programmer, styre genstart og nedlukning, oprette og administrere filer, samt sammenhængen mellem den grafiske brugerflade og terminalen. Særligt det sidste element kan skabe en følelse af eventyr, når man vha. tastetryk i terminalen kan omdøbe, fjerne eller oprette filer, og derefter se ændringen på desktoppen.
Her går læring om terminalen som værktøj og forståelse for, hvordan alle vores computere og enheder fungerer, op i en højere enhed.
Cat Scratch Fever
Første møde med programmeringssprog er det visuelle Scratch, udviklet af MIT Media Lab. Her programmeres først en animation vha. programmets kodeblokke, der med drag-and-drop kan sættes sammen for at skabe et forløb og derefter et spil.
Her mærker man for alvor, hvor højt Philbins ambitionsniveau er, når den simple animation omskrives til to parallelle forløb; et der får animationens karakter til at bevæge sig og et, der får karakterens udseende til at skifte i takt med bevægelserne. Således introduceres læseren for objektorienteret programmering, selv om hun ikke bliver præsenteret for begrebet som sådan. Afslutningsvis programmeres et adventurespil, hvor også loops og if-sætninger bliver en del af læserens digitale ordforråd.
Brugen af Scratch understreger dog også en af Raspberry Piens svage sider, nemlig begrænsningen i processorkraft, hvilket resulterer i lange indlæsningstider og en musemarkør der ofte ’hænger’. Det gav anledning til frustration for mit 34-årige jeg og vil sikkert gøre det samme hos en videbegærlig og utålmodig teenager.
Slangetæmmer
Vi springer lidt i Philbins tekst og dykker ned i adventure 5, der omhandler programmeringssproget Python.
Python er, ligesom Scratch, forudinstalleret i NOOBS (New Out Of Box)-styresystemet, der kører på Raspberry Pien. Brugeren kan derfor uden svinkeærinder kastes ud i programmeringsøvelserne, der bl.a. omhandler funktioner, lister, moduler og argumenter. Begreber lært i Scratch uddybes og nye såsom debugging og syntax error kommer til, mens brugeren koder sig igennem endnu et adventurespil, om end et tekstbaseret et af slagsen.
Python-eventyret indeholder endnu en række personlige heureka-øjeblikke á la dem, man møder, når man får magt over terminalen. Man holdes hen i spænding, mens programmet indlæses, og hvis alt går godt, får man mulighed for at spille sig igennem sit eget hjemmelavede computerspil.
Hjemmestrikket hardware
Spol endnu et par kapitler frem til det ottende eventyr og introduktionen af Raspberry Pi’s GPIO-muligheder, der lader brugeren eksperimentere med breadboards med påsatte dioder, modstande og knapper.
Op til de to sidste kapitler (8 og 9) har man udelukkende beskæftiget sig med softwarerelaterede eventyr, men her introduceres læseren til de muligheder, der åbner sig, når softwaren kombineres med elektronik. Ad to omgange kobles en installation med en diode (i anden omgang også en knap) med et program skrevet i Python.
Som i de andre kapitler er der tale om en slags ‘hello world’-programmer, der demonstrerer en funktionalitet og viser brugeren, at der er hul igennem. I første omgang består udfordringen i at få en lysdiode til automatisk at tænde og slukke, hvorefter funktionaliteten i anden omgang flyttes til en tænd/sluk-knap.
Som det var tilfældet med introduktion til terminal- og Python, så giver det stor tilfredsstillelse at have fuldført opgaven. Man er som bruger hele tiden bevidst om, hvilken stump kode, der har hvilken funktion, hvilket også åbner for overvejelser omkring, hvad man mon så kan gøre, hvis man ændrer lidt i parametrene eller tilføjer ny kode. Den viden, man har opbygget i løbet af bogen, kobles her med elektronik og den fysiske verden, hvilket puster gevaldigt til skabertrangen.
Og så afvikles de to små programmer fra kommandolinjen, hvilket blot gør det endnu mere eksotisk.
Nye eventyrere kan starte her
Det kan diskuteres, om en traditionel lærebog (dog med tilhørende videoer) er det mest effektive værktøj, i en tidsalder hvor vi vænner os til at få tingene serveret i videobidder i YouTube-størrelse og gamificerede web apps. Særligt vil det være brugbart med et forum eller en anden ressource, direkte relateret til bogen, hvor lærere og elever kan henvende sig med spørgsmål og for at få løst problemer.
Men Philbins bog er en øjenåbnende kombination af elementær baggrundsviden om computere, programmering og elektronik for Raspberry Pi-nybegynderen ─ i øvrigt uanset alder.
Så hvis man er i stand til at overvinde de udfordringer, der måtte opstå undervejs, byder Adventures in Raspberry Pi på ni projekter, der lærer læseren om Raspberry Pi såvel som computere generelt. Når en lærebog kan opnå det og tilmed både sætte gang i fantasien og give værktøjer, der kan gøre fantasierne til virkelighed, så er der næsten garanti for læringssuces.
Måske ─ forhåbentlig ─ starter eventyret om, hvordan vi tager magten over vores værktøj tilbage, her.