Arduino mikrokontrollerid

Mis on õpiloo eesmärk?

Eesmärgiks on meid ümbritsevates igapäevaasjades olevate ja neid juhtivate elektrooniliste mikrokontrollerite elementaarse tööpõhimõtte ning juhtimise aluste selgitamine kõige parema praktilise kogemuse najal.

Kuidas õpetaja tundi ette valmistas?

Eelnevalt tuli kõik materjal ikkagi ise läbi proovida, valmistada kontrolleri ja väljundseadmete ühendamiseks vajalikud joonised (vt joonis 1) ja välja töötada ning testida ka kontrollerisse konkreetse väljundseadme juhtimiseks programm (vt näidisprogrammi loo lõpus). Loomulikult sai programme tunnis vastavalt õpilaste poolt genereeritud ideedele ka täiendatud.

arduino

Joonis 1

Mida teevad õpilased selles tunnis?

Õpilaste põhitegevusteks tunnis on teadmiste omandamine mingi mikrokontrolleriga ühendatud konkreetse väljundseadme kohta ning katsetada erinevaid viise, kuidas seda kontrolleriga juhtida vastavalt soovitud tulemuseni. See hõlmab esmalt nii seadmete ühendamist kontrolleriga kui ka programmeerimist.

Mõne õpilase huvi asja vastu oli väiksem ja arvestada tuli vahel erineva taipamistasemega, mis sundis huvitatuid ja kärsitumaid aeglasemate tagant ootama. Aga need olid pisiasjad, suuri probleeme tunnis ette ei tulnud.

Missugune oli õpilaste tagasiside?

Et selline oma käte ja mõtetega koostöös loov tegevus noori huvitab, annab aimu kasvõi juba see, et päris tihti ei ole mitte päästev tunnilõpukell kontrolleritunni lõpetajaks, vaid hoopis need hetked peale vahetunni algust, kus enda poolt kokkupandud ja programmeeritud skeem lõpuks ka toimima hakkab. Loomulikult meeldib õpilastele, kui nad saavad midagi oma kätega valmis teha ja siis pelgalt mõtetest genereeritud tegevuse najal (programmeerimine) seda asja ka elule puhuda suudavad.

Soovitused, nõuanded teistele õpetajatele, kes plaanivad kasutada Arduino mikrokontrollereid?

Internetimaailm kubiseb lisaks ametlikule Arduino kodulehele www.arduino.cc erinevatest lehtedest, mis jagavad kogemusi ning õpetusi, kuidas ja mida nende kontrolleritega teha saab. Ametlikult kodulehelt erinevatele arvutiplatvormidele allalaaditav Arduino arendus- ehk programmeerimiskeskkond on saadaval ka eestikeelsena, hõlbustades tunduvalt tema kasutamist ka nende seas, kes inglise keelt ei valda.

Lisaks on olemas ka tasuta kontrolleri ja muude elektrooniliste ning elektriliste komponentide ühendusjooniste tegemise tarkvara Fritzing (www.fritzing.org), mille abil muuhulgas saab ka joonistada ühendusskeeme mingi konkreetse ülesande lahendamiseks kontrolleri abil. Olgu selleks siis temperatuuri lugemine, heli- või valgussignaalide väljastamine, mootorite ja mootorite juhtskeemide ühendamine jne.

Koodinäidis

// “Teremini” näidisprogramm – fototakistile langeva valgusvoo muutmise abil
// väljastame piiksujasse erineva tonaalsusega helisid.

// muutuja, kus hoida fototakisti väärtust
int sensoriLugem;
// muutuja, kus hoida fototakisti madalaimat väärtust
int sensorMadal = 1023;
// muutuja, kus hoida fototakisti kõrgeimat väärtust
int sensorKorge = 0;
// LED’i jalg
const int ledJalg = 13;

void setup() {
// Muudame LED’i jala väljundiks ja paneme ta põlema
pinMode(ledJalg, OUTPUT);
digitalWrite(ledJalg, HIGH);

// Kalibreerime fototakistit esimesed viis sekundit peale voolu sisselülitamist
while (millis() < 5000) {
// salvestame fototakisti maksimaalse väärtuse
sensoriLugem = analogRead(A0);
if (sensoriLugem > sensorKorge) {
sensorKorge = sensoriLugem;
}
// salvestame fototakisti minimaalse väärtuse
if (sensoriLugem < sensorMadal) {
sensorMadal = sensoriLugem;
}
}
// lülitame LED’i välja märkimaks kalibreerimisaja lõppu
digitalWrite(ledJalg, LOW);
}

void loop() {
//loeme analoogsisendi A0 väärtuse ja salvestame ta muutujasse
sensoriLugem = analogRead(A0);

// skaleerime fototakisti väärtuse helikõrguste skaalaga
int toon = map(sensoriLugem, sensorMadal, sensorKorge, 50, 4000);

// mängime saadud helikõrgust 20 millisekundit 8ndal jalal
tone(8, toon, 20);
analogWrite(ledJalg,map(sensoriLugem, sensorMadal, sensorKorge, 1, 155));
// ootame natuke
delay(10);
}

Autor: Üllar Kruustik, Valga Gümnaasium

Leave a Reply

Your email address will not be published. Required fields are marked *