En Arduino øjenåbner...

Her er en af de "fabriksbesøg" blogindlæg som hacker-verdenen elsker: Et besøg hos en fabrik der (bla.) laver prints til Arduinoer.

Der er to ting ved den historie jeg hæfter mig ved:

For det første: Scarmagno var en af Olivettis produktionsfaciliteter og selv nu, så mange år efter, er der tilsyneladende masser of elektronikproduktion stadigvæk.

For det andet: 25.000 printkort til én enkelt model af Arduinoer ?

Wow...

Er det nu vi skal prøve at få beslutningen om ikke at undervise i programmering i folkeskolen op til revurdering ?

phk

PS: Glem ikke arbejdsmødet om COMAL historien d. 27 sep.

Kommentarer (29)
sortSortér kommentarer
  • Ældste først
  • Nyeste først
  • Bedste først
Jens Pedersen

Arduino i de tidligere skoleår
Senere en Raspberry Pi, til dem der vil lære at lege på højere niveau. (de hurtige finder ud af at koble de to sammen...)

Tilsæt en gruppe "voksne" der ulønnet vil skabe et dansk community for skoleelver, med simple eksempler til at komme i gang med...

Så er det slut med først at lære programmering 101 efter gymnasie-tiden.

  • 3
  • 1
Kenneth Geisshirt

På en del folkeskoler eksperimenteres der med "profil-linjer" - typisk i 7.-9. klasse. I den natur/teknik-linjen kunne det da være interessant at give en grundkursus i programmering vha. Arduino. Da Arduino let kan bruges sammen med sensorer, kan elverne bygge og programmere små måleopstilling til fysik/biologi/kemi-undervisningen.

  • 7
  • 1
Palle Simonsen

Jeg var en af de heldige der ved at bidrage til at (F)OSS arrangement fik en Arduino (og jeg har efterfølgende anskaffet en PI).
Normalt programmeres Arduino i et C-lignende programmeringssprog og man kommer ikke særlig langt med sådan en, uden at vide noget om elektronik og elementær fysik. Så vi er mindst i 7 klasse eller endnu længere fremme - såsom 2g.
Hvis man vil noget i folkeskolen med Arduino findes der dog heldigvis et scratch bibliotek, der eksponerer nogle Arduino features i MIT scratch (http://seaside.citilab.eu/scratch/arduino) og nogle behjertede lærere kunne sikkert strikke nogle gode opgaver/projekter sammen. Men hvad siger de professionelle her - dvs. skolelærerne?

  • 2
  • 0
Jacob Christian Munch-Andersen

Uden at være skolelærer må jeg sige at jeg nu også betvivler Arduino og lignendes særlige begyndervenlighed. Jeg kan godt forstå at en del gamle programmører finder at det er sjovt stykke nostalgisk legetøj, men skal det være begynderlet så er de vigtigste ting i min optik et miljø som ikke kræver at man selv skal finde biblioteker, rode med compileropsætning eller lignende metaprogrammeringsopgaver, samt at der er ordentlig og let tilgængelig dokumentation. De krav gør en Arduino ikke noget specielt for at leve op til, man kan selvfølgelig lave et godt begyndermiljø til Arduino, men jeg kan ikke se hvordan det skulle blive bedre end et godt begyndermiljø til almindelige PCer.

  • 6
  • 0
Lars Bjerregaard

så er de vigtigste ting i min optik et miljø som ikke kræver at man selv skal finde biblioteker, rode med compileropsætning eller lignende metaprogrammeringsopgaver, samt at der er ordentlig og let tilgængelig dokumentation


Det virker da på mig netop som en af styrkerne ved Arduino's miljø. Det er nogenlunde så plug-and-play som jeg kan forestille mig det. Ingen opsætning andet end at vælge det rigtige board i menuen.

  • 1
  • 0
Jacob Christian Munch-Andersen

Det virker da på mig netop som en af styrkerne ved Arduino's miljø. Det er nogenlunde så plug-and-play som jeg kan forestille mig det. Ingen opsætning andet end at vælge det rigtige board i menuen.


Nøgleordet i den sætning er "miljø", selve computeren er i denne sammenhæng ligegyldig, det er programmeringsmiljøet, ikke computeren, der er den afgørende faktor.

Hvis vi nu for diskussionens skyld antager at Arduino miljøet er det perfekte begyndermiljø, hvad er det så selve hardwaren gør som ikke kunne opnås med en emulator eller kompilering direkte til en PC platform?

  • 0
  • 0
Palle Simonsen

@Lars:

Her er det simpleste wiring eksempel:

// blinks the board LED, use 48 for Wiring 1.0 boards, use pin 15  
// for Wiring S  
   
void setup()  
{  
  pinMode(WLED, OUTPUT);  // set pin as output  
}  
   
void loop()  
{  
  digitalWrite(WLED, HIGH);  // set the LED on  
  delay(1000);               // wait for a second  
  digitalWrite(WLED, LOW);   // set the LED off  
  delay(1000);               // wait for a second  
}

Scratch er et grafisk på flere måder blokorienteret sprog ;), der f.eks. anvendes i LEGO mindstorms og Google's nu hedengangne appinventor.

@Jacob
Det fede ved arduino, PI boards og mindstorms er belønningen ved at få noget fysisk til at ske. Hvis det er rettet mod børn, må det så ikke blive for svært - her kommer f.eks. scratch ind i billedet. Men for f.eks. at lave et digital termometer med wiring skal man bl.a. vide noget om termiske modstande. Men mindre kan også gøre det: En varme eller bevægelsessensor, en motor, en lydgiver, lidt camouflage og en sagesløs person ;)

  • 6
  • 0
Troels Henriksen

Wiring er bare C. Arduino-IDE'en indsætter automatisk en inkludering af nogle headerfiler med en main()-funktion der laver lidt opsætning og derefter kalder setup()- og loop()-funktionerne. Oversættelsen sker med en almindelig C-oversætter. Det betyder også at det er ret nemt at gå videre når man har fået erfaring (og Arduino-processorer er baseret på Atmel-chips, så der er masser af teknisk dokumentation).

  • 2
  • 0
Poul-Henning Kamp Blogger

Jeg er helt uenig med Jacob C. M-A. ovenfor: Det er netop ved at få et stykke hardware til at gøre noget konkret man har en chance for at fange ungernes interesse.

Uanset hvor programmerbar en PC er, er der slet ikke samme bang-for-the-buck I at skrive et program på den, som der er ved at få en arduino til at tænde en lysdiode når man skygger for en fotomodstand osv.

Lego Mindstorms er en anden god platform.

Men det centrale problem er at der slet ikke er nogen der kan forstå hvilken nytte det ville være til, at undervise ungerne i programmering.

  • 11
  • 0
Jacob Nordfalk

... og er nok det jeg ville anbefale i folkeskolen.

Jeg ved der er flere uddannelsessteder der overvejer at bruge det i undervisningen.

http://appinventor.dk/ fungerer igen.

Der er et danssproget forum hvor man kan få hjælp: http://appinventor.dk/forum/

Der er en dansk bog om det:
http://appinventor.dk/android-apps-uden-programmering/

Man kan i øvrigt styre Mindstorm-robotter fra AppInventor og endda (med lidt arbejde) oversætte AppInventor-kode til Javakode
https://plus.google.com/114820443085046080944/posts/f5aGcSjmaXG

  • 4
  • 0
John Jensen

@Jacob
Jeg kan jun være enig, som IT-Underviser har jeg oplevet at hvis det bliver for firkantet i folkeskolen så mister eleverne interessen.

Og der vil netop Arduino og RaspberryPI lidt for langhåret for eleverne, det er kun de der har det som interesse der orker at følge med, der kan man så lave efterskoletids ordninger.

Det er PCen der bruges i hverdagen, og det primære eleverne har brug for er at kunne forstå det basale først, og især at kunne bruge computeren til andet end at gå på FB og Twitter.
De har behov for at lære at bruge de offentlige sider, Bank siderne og andre i den stil.
Der efter kan man kan så fange de der har yderligere behov og de der har interessen for at gå videre.

Man taler ofte om at den nuværende generation og de yngre er IT generationen.
Ja det er de, men men men, de er en "IT bruger generation"
De har lært at logge ind på en PC, at bruge nogle programmer, færdes på internettet osv.
Men IT genier er de ikke (når man skal generaliserer, og sætte det på spidsen :-), der er altid de der har yderligere interesse i IT, og det er de elever der skal have den opmærksomhed, og så de der virkelig gerne vil men ikke lige kan finde ud af det.

At bruge de samlede ressourcer på alle elever er spild af ressourcer, og elevernes tid hvor de kunne dyrke deres evner i den retning de har brug for. Mange elever har simpelthen ikke interessen.

Vi kan ikke alle gå rundt og være IT ansatte, der skal være nogle der laver regnskaber, udvikler på andre platforme, slagtere og købmænd.
Alle hæderkronede erhverv, uden hvilke Danmark ville gå ned med et brag.

  • 3
  • 1
Morten Krogh Andersen

Undervise: ja
Planlægge et undervisningsforløb: fisk

Som med det meste, er kunsten vel at forstå modtageren (her eleverne) af det (undervisningen) man "producerer".

Men dit spørgsmål giver anledning til det mere overordnede spørgsmål: hvordan får vi gjort folkeskolen (skoleledere/politikere/forældre?) interesseret i at tilbyde undervisning i programmering/systemudvikling?

  • 0
  • 0
Morten Krogh Andersen

Hvis John repræsenterer den generelle holdning af "it-undervisere" i dk, kan jeg godt forstå at vi ikke er kommet videre med undervisning i programmering.

Ungerne skal nok lære at bruge netbank mv; det er jo overhovedet ikke det det hele handler om. Vores unger skal ikke kun være en "IT bruger generation"!!

De skal generelt lære hvorfor/hvordan ting virker; i matematik/regning stikker vi dem jo heller ikke bare en lommeregner, for derefter at konstatere at de er blevet en "lommeregner generation", og dermed opgive at forsøge at lære dem basal regning og matematik!

  • 1
  • 3
John Jensen

Morten, Som IT pro gennem mange år og siden hen også som underviser, har jeg erfaring fra både IT verden og Skole verden, og jeg har haft stor succes med at undervise i IT, men at tro at alle kan blive IT eksperter osv. er at narre sig selv og ikke mindst eleverne.
Og så fik jeg stor positiv respons fra alle, både ledelse, lærer, elever og ikke mindst fra forældrene.
Så jeg kan godt tillade mig at være tilfreds med det jeg har ydet.

Og hvis du tror at jeg bare stopper ved Office og Nem-ID så tager d fejl, jeg fortsætter, blandt andet ved at tage udgangspunkt i opbygningen af hjemmesider, dette gjorde jeg ved at tage eksempler fra sider der interesserede eleverne og lærte dem at skille siden ad og selv lave lignende effekter og kodning på et niveau de kunne overkomme for sidenhen at gå videre, eventuelt med animationer og script osv.
Enkelte elever var interesserede i programmering, så det tog jeg så også fat på.

Jeg lærte dem at opsætte lokale netværk mellem lokalets computere, at genkende de forskellige hardware i ved først at se i enheder i windows og siden at åbne en computer hvor de så kunne udpege hvilke enheder der var hvad osv, jeg lærte dem at bestykke deres egen ønske PC, dog uden at skulle købe det, bare at se om de forstod forskellene på de forskellige specifikationer og ud fra hvad de nu ønskede at deres personlige udgave af en PC skulle se ud.

Og flere andre langhårede ting der gik mere i dybden.

Så jo jeg har været langt mere omkring end du forestiller dig tingene på en folkeskole kan foregå.

Men der er også elever der bare ikke kan, sådan hænger det sammen og der er der forældrene skal ind over ellers bliver det et nederlag for eleven.

  • 0
  • 0
Morten Krogh Andersen

Bortset fra at du åbenbart mener at vide hvad jeg forstiller mig kan lade sig gøre, så lyder det meget fint. Men stadig meget bruger-orienteret.

Og så mangler din fortælling stadig "og så fik eleven en lampe til at blinke" indholdet, som imho er noget af det vigtigste ved at programmere til en (tilsyneladende) forholdsvis enhed som en arduino, i stedet for en pc.
Jeg tror ikke på at html er et godt sted at starte med programmering; det er da, om noget, lige til at miste begejstringen af. Det er jo layout - ikke programmering.

Men en arduino kan man lave noget, som man kan vise til alle, selv når der ikke er en pc (med netforbindelse) i nærheden.

  • 0
  • 0
John Jensen

Jeg kan ved ikke hvad du forestiller dig, men du har tydeligvis heller ikke forstået noget af det jeg har skrevet.

Jeg kan ikke her sidde og skrive alt vi har foretaget os gennem flere år, så derfor er ikke alt med, men derimod det man kan starte op med, jeg ved ikke hvorfra du har fået den ide at det fra min side kun handler om at lave det bruger orienterede, det er en fejlfortolkning der vil noget!

Jeg har som sagt haft stor succes med undervisningen, og det var ikke bare HTML eller at bruge et regneark, det var hele maskinens opbygning, det var også at kunne få input udefra og at lever et output til eksterne enheder.

Jeg lavede ud fra meget gammel erfaring og på en ældre PC, en slags joystik, i stil med den typer der fulgte med en C64, altså nogle kontakter som fik computeren til at tælle i 4 kolonner en for hver kontakt (to kontakter i minus).
Og de kunne så se resultatet af deres anstrengelser, selv om det var en simpel opgave fangede det dem med det samme.

Så opstår spørgsmålet "men hvad kan man bruge det til"
Så skal der tænkes, hvordan kan man bruge nogle tal på en skærm, ofte kommer der gode forslag som så prøves, med større eller mindre succes og diskutioner om hvorfor og hvorfor ikke.
Det næste skridt er så at lære eleverne at de fisurer der bevæger sig rundt på skærmen gør det udfra netop lignende routiner.

Her bliver eleverne overraskede over at det er sådan tingene ofte foregår.

I dette simple eksempel kan man så flytte figuren i de 4 retninger, man starter med et helt almindeligt billede i 3232 eller 6464 og placere det på de to koordinater, og flytte det rundt med kontakterne, det efterlader så en stribe efter billedet.
Hvordan fjerner man den stribe osv.

Når det sidder fast, så går man videre med to figurer hvoraf den ene er styret af computeren, elevernes opgave er så at lave den anden så de kan ramme PC'ens figur osv.

Nu skal der laves simple animationer der bevæger sig efter placeringen.
En række billeder her (i starten) bare 16, (4 for op) (4 for ned( 4 for V) (4 for H)
Bevægelserne tilpasses figurens hastighed så et skridt ikke bliver til moonwalk hvor figuren flytter sig asynkront. Det gøres ved at benene flytter sig i forhold til tælleren.

Når figuren bevæger sig op ses figuren bagfra.
Når figuren bevæger sig ned ses figuren forfra.
Når figuren bevæger sig til højre ses figurens højre side.
Når figuren bevæger sig til venstre ses figurens venstre side.

Rammer figuren PC'ens figur har PC'en tabt et liv
Sker det 3 gange har PC'en tabt (eleven taber ikke endnu).
Meget simpelt lavet, og kun i de 4 retninger

Når det efterhånden går og for eleverne at der bag de avancerede spil ligger tonsvis af tunge matematiske beregninger bliver de først overraskede over at de tal de får kan bruges til at lave spis, så kommer helt automatisk interessen for at bruge matematikken i andre sammenhænge, som koder bygget på matematiske routiner, men her er det kun få der kan/vil være med, med de der vil er altid velkommen,og med lidt overtalelse og ved at gå lidt langsommere frem for andre så kommer der flere til.

Nu skriver jeg i nutid, jeg har trukket mig tilbage fra arbejdsmarkedet, og underviser ikke mere.

Men du har tydeligvis langt mere erfaring i IT undervisning af nogen gange mere end 30 elever ad gangen.
Det skal jeg selvfølgelig ikke gøre mig klog på.

  • 0
  • 0
Niels Langager Ellegaard

Hvis man skal lære en klasse på 30 elever at programmere, så vil der opstå en del kaos i de første par timer. Problemet er at eleverne først lære at finde rundt i menusystemet og forstå hvornår man skriver en parantes og hvorfor man skal skrive import og hvad det hele egentlig betyder. Læreren kommer til at løbe rundt i de første timer og mange af elever kommer til at sidde og vente i længere tid end de har lyst til.

Hvis man skal holde gejsten oppe, så er det vigtigt at vælge et system, der er så simpelt som muligt, så eleverne kan få nogen hurtige succes-oplevelser. Scratch virker som en fin løsning. Python sikkert også bruges, hvis man går langsomt frem, men jeg tror ikke at det er en god ide at introducere hardware tidligt i processen og jeg synes at wiring ser lidt indviklet ud.

Det er dejligt at se opensource entusiaster interessere sig for uddannelsesvæsnet, men jeg tror også at det er vigtigt at de sætter sig ind i skolernes behov.

  • 0
  • 0
Log ind eller Opret konto for at kommentere