Kode i blogindlæg

kode

skrive koden her

>

<

Udgivet i Arduino, Digital Dannelse | Skriv en kommentar

Sommerskole 2016

Hold fast hvor er der sket meget siden sidste sommerskole for nørder i 2015. Dengang havde jeg ikke hørt om Arduino og Raspberry Pi, ikke set en 3D printer eller kodet i scratch. Det har jeg nu.
Alligevel kommer jeg hjem fra sommerskole 2016 med en masse inspiration. Et udpluk:

Openstreetmap. Streetview uden Google.
Roborally med robotbil. Jeg fik lejlighed til at samle et af Peter Eduards kits:
Cn-kSDwWgAAqSa2   eduCAR

Akryl, støbe
Snak med Peter om innovation og konkurrencer fx ESA. Milepæle.
Tinkerschool Austin
Bbc, qi(xl)
Forløb om raketbrændstof som indgang til elektronik
Program til raketter: Rocket designer via Steen https://twitter.com/oz1sej
Ledere og halvledere, led, photoresistorer og det periodiske system. Som indgang til elektronik.
ThinkerCAD 3d tegneprogram til børn
Hvad kommer efter Scratch? Python?
Lejlighed til at bygge på min egen selvkørende robotbil:

Nemprogrammering.dk
Code Battle
Cansat-kursus norge
Samarbejde i Explain Everything på windows10, smartphone og ipad
App Academy webinars om micro:bit
Grundbog i digitale kompetencer, Marlene Erkman
Helle Hinge
Mbot sensorkit
Anders Pagh, Horsens, TechNinja
Arduino med skærm fra sparkfun
Oversætte Arduino projektbog?
Eu.mineplex.com minecraft multiplayer
3d slash

Sidst på eftermiddagen lørdag den 23. juni var der opsendelse af Nexø I, som vi så på storskærm:

I den anledning havde vi vores egen raketopsendelse om formiddagen:

Ikke mindst havde jeg en micro:bit med hjem, som er et godt bud fra BBC på en microcontroller rettet udelukkende mod uddannelsessektoren:
jzzhflts
Forhandles i Karins butik: http://www.podconsultsbutik.dk/

Udgivet i Arduino, Makerlab | Skriv en kommentar

Højdemåler i ny version

Jeg har skiftet retning med en højdemåler i en vandraket. Jeg vil fortsat måle trykket, og beregne højden deraf. Men går fra at skrive data til et SD-kort, hvilket giver en spændende graf. Men SD-kortet skal aflæses i en computer, og jeg vil gerne have et resultat så snart raketten rammer jorden.
Derfor har jeg sat et LC Display ind i setuppet. Spændt på om det overlever sammenstødet med jorden.

Højdemåler2

Højdemålingerne svinger en smule. Det kan gøres mindre ved at lægge et filter i programmet, men komplicerer tingene for meget:
højdemålinger

Hvis du kan genkende LCD’et, er det fra en Nokia 5110. Da produktionen stoppede, blev der mange millioner displays til overs, og de kan nu erhverves for ca. 10 kr stykket. Dertil har de et meget lavt strømforbrug.

Koden er tilpasset Codebender.cc:

double pressure; //Variabel til tryk i Pascal (Pa) 
double startpressure; //Variabel til tryk i Pascal (Pa) 
double tempC; //Variabel til temperatur i grader Celcius 
double starttempC; //Variabel til temperatur i grader Celcius 
double hojde; // variabel til højden i meter over havet 
double maxHojde = 0;
double starttempK; //Variabel til temperaturen i Kelvin 
int pauseTid = 5000; //tid mellem hver måling 
const double gaskonstant = 8.31; // gaskonstanten i N*m/mol*K 
const double tyngdeacceleration = 9.807; //tyngdeaccelerationen i m/s^2 
const double molarmasse = 0.02896; //Molarmassen af luft i kg/mol
#include "Wire.h" 
#include "Adafruit_BMP085.h" 
Adafruit_BMP085 mySensor; // laver et objekt kaldet mySensor

#include <Adafruit_GFX.h>
#include <Adafruit_PCD8544.h>

// pin 7 - Serial clock out (SCLK)
// pin 6 - Serial data out (DIN)
// pin 5 - Data/Command select (D/C)
// pin 4 - LCD chip select (CS)
// pin 3 - LCD reset (RST)
Adafruit_PCD8544 display = Adafruit_PCD8544(7, 6, 5, 4, 3);


void setup()   {
  Serial.begin(9600);
mySensor.begin(); // starter tryk-sensoren mySensor 
starttempC = mySensor.readTemperature(); // Måler STARTtemperaturen i grader C fra BMP180 
startpressure=mySensor.readPressure(); // Måler STARTtrykket i Pa 
starttempK = starttempC + 273; // temperaturen i Kelvin

  display.begin();
  // init done
  // you can change the contrast around to adapt the display
  // for the best viewing!
  display.setContrast(50);
  display.clearDisplay();   // clears the screen and buffer
}

void loop() {
  tempC = mySensor.readTemperature(); // Måler temperaturen i grader C fra BMP180 
pressure=mySensor.readPressure(); // Måler trykket i Pa 
hojde = -(starttempK*gaskonstant/(molarmasse*tyngdeacceleration))*log(pressure/startpressure);

  display.setTextSize(1);
  display.setTextColor(BLACK);
  display.setCursor(0,0);
  display.println("Tryk:");
  display.print(pressure);
  display.println(" Pa  ");
  display.print("Hojde:");
  display.print(hojde);
  display.println(" m  ");
  display.println("Max hojde: ");
  display.print(maxHojde);
  display.println(" m  ");
  display.display();
 display.clearDisplay();   // clears the screen and buffer

if (hojde>maxHojde) {
  maxHojde = hojde;
}

 delay(250);

}


Udgivet i Arduino, Makerlab | Skriv en kommentar

I mål med 2015-16

I det forgangne skoleår var jeg involveret i mange aktiviteter bl.a. synlig læring, flipped learning regionsprojekt, en mindre udgivelse om flipped learning, opgaver som it-ressourceperson herunder workshops, innovation.
Hvis det skal gå godt, uden for meget stress, var jeg nødt til at holde mere fast i nogle retningslinjer:

1) tidsregistrere grundigt.
Det har jeg gjort nogenlunde. Synes dog ikke det har givet mindre stress. Måske tværtimod, endnu en småopgave, som skal klares. Jeg vil dog nødigt undvære. Skal huske at sætte en seddel på computeren: “Husk tidsregistrering”.

2) fjerne notifikationer fra sociale medier og outlook, og kun checke sociale medier en gang om ugen.
Delvis succes. Har flyttet notifikationer og mail-klient væk fra skrivebord på telefon til bageste side, så de ikke springer i øjnene. Men checker stadig dagligt og det er ok. Får kun notifikationer fra de vigtigste FB-grupper. Stadig et åbent spørgsmål om sociale medier bare er at blæse bobler, eller om det faktisk giver noget.

3) være mere social omkring min interesse for teknologi. Jeg søger legekammerater, frem for indflydelse og egen formidling. Det kan ske gennem Makerlab Svendborg, starte CodingPirates i Svendborg eller mødes med ligesindede på gymnasiet.
Er kommet i Makerlab (ML) gennem året. Det er meget hyggeligt. Får ikke lavet så meget arbejde derude, og kan som regel først være der kl. 20. Bliver træt kl. 21. Jeg har overvejet at starte CP i Svendborg, men tror det let bliver en for stor opgave. Afholder i stedet enkelte arrangementer, hvis muligt.

4) ikke forsøge at blive den bedste på alle områder.
Det er fortsat svært at acceptere. Oplever en stigende konkurrence-situation på skolen. Finder af og til ro i tanken om at være god nok, og endda god til nogle ting.

5) få tid til at bevæge mig, og at børnene kommer til fritidsinteresser.
Jeg har ikke været til fodbold siden efteråret. Nedtur. Dårligt vejr og andre opgaver har fyldt for meget. Kigger på andre muligheder fx floorball eller skolens motionsrum. Børnene har været til en interesse, en gang om ugen. Det er dog ikke mig, som har trukket det store læs.

6) Projekter i øvrigt.
De fleste er afsluttede. Erkendelse: Det vigtige er ikke indholdet i projektet, men at inspirere andre til at indgå i projektet. Dejligt at FL-projektet er slut, så der bliver plads til noget nyt.
Som IT-ressourceperson, er det stadig lidt uklart, hvad opgaven er.

God ide at lægge en strategi for næste skoleår. Det samler op på året og givet udgangspunkt for refleksion og planer for næste år. Skrev egentligt målene i denne post ned ved årets start, men har først fundet dem nu.

Udgivet i Uncategorized | Skriv en kommentar

SumoLego

Lego Mindstorms robot sumobrydekamp.

Komplet beskrivelse af alle trin: http://gymlab.dk/sumolego/

Udgivet i Digital Dannelse, Makerlab | Skriv en kommentar

Klimastation tilpasninger

#1:
lysmåleren kan ikke skældne mellem sollys og let skyet (har ligget konstant på 95%). Modstanden fra fotoresistoren er nede på under 100 Ohm i stærkt lys, så forskelle i intensiteten drukner, når der også er en 10 kOhm resistor i kredsløbet (skibberen og skibet).
Derfor har jeg udskiftet 10 kOhm modstanden, som er serielt forbundet til fotoresistoren, med en 1 kOhm modstand. Som beskrevet her: https://learn.adafruit.com/photocells/measuring-light
Det har øget opløsningen en smule. De små toppe er skyer der passerer:
Klimadata 1 juni 2016
Målt over ca. 5 timer.

#2:
Lufttemperatursensoren står et sted hvor den, selv i skygge, modtager en masse strålingsvarme fra mur og gulv. Temperaturen var ikke over 40 grader C, som kurven viser! Det skal løses.

#3:
Måle over flere døgn. P.t. har jeg kun en kinesisk strømforsyning, som jeg ikke tør lade køre natten over. Leder efter en CE mærket 9V strømforsyning.

Klimastation kredsløb
Kredsløbet (uden LCD skærm)

#4:
Systemet tager nu en måling hvert 13. minut, ved at indføre en counter, som tæller hvert loop.
klimadata 16 til 18 juni 2016

Udgivet i Arduino | Skriv en kommentar

Klimastation

Til undervisning i HF (NF) har vi søgt om en polytunnel, som er et drivhus i kraftig klar plastik, på 40 m2. Det fik vi dog nej til i første omgang.

Det har dog ikke forhindret mig i at begynde på en klimastation. Formålet var oprindeligt at have eleverne med. Hver gruppe kan måle hhv.:

  • jordtemperatur
  • jordfugtighed
  • luftfugtighed
  • lufttemperatur
  • lysintensitet

Vanding klares med kapillærkræfter eller en robot-del, som reagerer på jordfugtighed. Udluftning i drivhuset kan også styres af en motor (robot), som reagerer på fx lufttemperatur. De bevægelige dele er dog en udfordring, da en lille servo ikke er nok.

Som prototype har jeg lavet en station, som måler de nævnte faktorer. Og ingen bevægelige dele. Man kan selvfølgelig købe en færdig station, eller bruge Vernier-udstyr, som virker, når det tages ned fra hylden. Men jeg vil selv, derfor Arduino.

klimastation

Udfordringer bliver/har være:

  • Få alle sensorer til at virke. Det er næsten lykkedes (mangler at checke lysmålerens maksimum). Hvordan sikres skygge til lufttemperatur-måler, men lys til lysmåleren?
  • Hvordan skal data gemmes? Jeg har brugt et LCD display, da det er rart at få her og nu viden. Data skrives desuden til et mikroSD-kort. Det har drillet lidt. Næste mål er at sende data med radiosignal til en computer, som skal afbilde data live, og streame dem til YouTube via et Google Hangout. Se her hvordan (ikke redigeret).
  • Strømforsyning. P.t. via lysnettet og en transformator som giver 9V. På sigt via et solpanel og et batteri. Af den grund har jeg også valgt en Arduino Nano, som bruger mindre strøm end sine storebrødre.
  • Hvordan måles tiden?, og er det overhovedets nødvendigt, da lys, temperatur osv. er ligeglade med klokken.
  • Luftfugtighedsmåleren skal have luft, men elektronikken kan ikke tåle vand (regn). Måske skal stationen laves i flere kamre, nogle luft og lystætte, andre med adgang til frisk luft.

klimastation2

Forleden lavede jeg den første logging af data over 6 timer (indendørs i en fugtig hal):

Klimadata

Koden er blevet lidt lang: Klimastation v2, og kan ikke copy-pastes uden lidt redigering, da koden visse steder breder sig på flere linjer.

Jeg skal se efter et script, som kan vise kode på nettet, uden at ændre formateringen. Jaj.

Udgivet i Arduino, Makerlab | Skriv en kommentar

Programmering med blokke

Det kræver noget at analysere et computer-program. Det kræver meget at skrive det selv fra bunden. Den tid har vi ikke med elever. Så programmering med blokke, som trækkes og slippes, er måske at foretrække. Her skal vi ikke bekymre os om syntaks, men får både principperne og resultatet ud af det.

I mit raketprojekt drejes en servo, ud fra om en gyro-sensor peger opad eller nedad. Vurderingen foretages af en Arduino mikro-controller.

Programmet kan skrives i Arduino IDE miljøet, og vil se ud noget a la:

code

Programmet kan laves ved hjælp af programmet mBlock, og her vil det se ud noget i stil med:

mblock

Fordele ved mBlock er yderligere: Programmet kører selv om Arduinoen ikke er forbundet til computeren, i modsætning til S4A (ekstern strømkilde er selvfølgelig nødvendig). Man får lov at se den kode om mBlock har oversat blokkene til:

 

#include <Arduino.h>
#include <Wire.h>
#include <Servo.h>
#include <SoftwareSerial.h>


double angle_rad = PI/180.0;
double angle_deg = 180.0/PI;
Servo servo_9;

void setup(){
 pinMode(A0+1,INPUT);
 
}

void loop(){
 
 if((analogRead(A0+1)) > (300)){
 servo_9.attach(9);
 servo_9.write(90);
 }else{
 servo_9.attach(9);
 servo_9.write(135);
 }
 delay(1000*1);
 
}

En enkelt ulempe er, at man vist ikke kan åbne seriel monitoren eller plotteren. Måske kan kommandoen “Show variable” bruges i stedet.

Jeg må undersøge om Arduino IDE skal være installeret for at køre mBlock.

Udgivet i Arduino, Makerlab | Skriv en kommentar

Lego og matematik

Jeg besøgte MV Nordic, som forhandler Lego Mindstorms, for en måneds tid siden med folk fra ITCfyn og Det almenpædagogiske samarbejde Fyn. Her så vi hvordan matematik kan forenes med robotter.

Vi fik udleveret:

  • en standard Mindstorms robot:
By Maksym Kozlenko - Eget arbejde, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=47002680

By Maksym Kozlenko – Eget arbejde, CC BY-SA 4.0, https://commons.wikimedia.org/w/index.php?curid=47002680

  • bane med et målebånd i siden. Robotten begynder i den ene ende af målebåndet.
  • computer (ipad kan også bruges)

Opgave: Om ti minutter stiller læreren en legomand ved en bestemt afstand fra begyndelsen, og I må aflæse den afstand. Derefter har I to minutter til at programmere robotten, så den kører hen og stopper lige før legofiguren.

Robotten programmeres via antal omdrejninger, og der skal først fremstilles en lineær funktion over sammenhængen mellem antal omdrejninger og den afstand robotten kører. Min. tre punkter er selvfølgelig nødvendige :-). Funktionsudtrykket bruges derefter til at beregne antal omdrejninger, der skal bruges for at stoppe før figuren vælter.

Mange andre (nemmere) måder at arbejde med lineære funktioner. Det her er en.

Udgivet i Makerlab | Skriv en kommentar

Ny raket med elever

I fredags (20. maj) havde jeg en ny håndfuld elever til at prøve at lege med raketter. Vi havde dog kun en halv time, så der blev skåret mange hjørner:

  • To elever fremstillede faldskærmen.
  • En elev arbejdede med vinger.
  • Tre elever samlede kredsløbet, som skal udløse faldskræmen. Arduinoen var monteret på et stykke pap. Vi fik ikke tid til at arbejde med programmering, så jeg lagde programmet på Arduinoen. Eleverne testede, justerede servoen, og monterede i raketten.
  • God ide: de limede on/off knappen fast med limpistol til et hul de havde klippet i flasken.
  • Ingen arbejdede med højdemåler.

Vi prøvede et for mig nyt design, som jeg tror er mere sikkert, og hurtigere at fremstille, end det jeg hidtil har brugt, med en dør som skal åbne. Mere sikkert fordi faldskærmen ikke risikerer at sidde fast i døren, og den klap som holder faldskærmen på plads, er med til at trække faldskærmen ud, hvorfor den nok er mere tilbøjelig til at folde sig ud.

Det nye er dog måske sværere at bygge som selvstændigt modul, da det skal monteres med flasketuden nedad, for derved at danne en indsnævring mellem rakettens top og bund.

WP_20160520_009

Jeg kunne fremstille nogle flaske-bunde, som havde limet et låg på (epoxy), som udløser delen kunne spændes på:

raketskitse

Forsøget fik mig til at overveje:

  • Skal eleverne hellere programmere med blokke fx S4A eller mBlock, frem for at bruge rigtig kode, som har en for dem ukendt syntax. Af de to nævnte miljøer er mBlock at foretrække: Viser både blokke og den egentlige kode, og kan køre programmet på Arduinoen, uden denne er forbundet til en computer -det kan S4A ikke.
  • Raketter egner sig godt til rapid-prototyping, da man hurtigt får svar på om raketten virker, og ideer til hvad der kan være galt.

Opdatering 10/6 2016: epoxy holder ikke låget fast, men det kan skrues fast med en bolt og møtrik. En overhead kan måske fungere som “dør” i det nye setup. 3D-printet indmad må prøves. Samlesæt?

Udgivet i Arduino, Makerlab | Skriv en kommentar