13. toukokuuta 2026

Täydennystä ja selitystä keskiviikon harjoitustehtävään

Seuraavassa Python-koodina micro:bitin koodi, jolla ohjataan moottoria ja kerätään tietoa ohjaamisesta:
  • A-näppäimellä kasvatetaan PWM-arvoa eli käytännössä lukemaa, joka kirjoitetaan pinniin nolla
  • B-näppäimellä pienennetään PWM-arvoa
  • Näppäinten painamisen yhteydessä kirjataan muistiin PWM-arvo, joka vaihtelee asteikolla 0-1023. Asteikko on kymmenen bitin suuruinen (mitä tämä tarkoittaa?!)
  • Huomaa, ettei tiedonkeruussa tarvitse erikseen kerätä aikaleimaa vaan mikrokontrollerissa se hoituu oletusarvoisesti


def on_button_pressed_a():
 global pwm_arvo
 if pwm_arvo <= 1023:
 pwm_arvo += 50
 datalogger.log(datalogger.create_cv("pwm_taso", pwm_arvo))
input.on_button_pressed(Button.A, on_button_pressed_a)

def on_button_pressed_b():
 global pwm_arvo
 if pwm_arvo >= 0:
 pwm_arvo += -50
 datalogger.log(datalogger.create_cv("pwm_taso", pwm_arvo))
input.on_button_pressed(Button.B, on_button_pressed_b)

pwm_arvo = 0
datalogger.set_column_titles("pwm_taso")
pwm_arvo = 0

Tehtävä
a) Laajenna ratkaisu siten, että moottoria ohjataan etänä radioyhteyden avulla ja että ohjaustieto tallennetaan sen mikrokontrollerin muistiin, jolla etänä ohjataan.

b) Aja moottoria, siirrä ohjaustieto mikrokontrollerista O365:ssä Exceliin ja piirrä Excelillä kuvaaja, joka havainnollistaa PWM-arvon muuttumista ajan funktiona eli suomeksi sanottuna x-akselilla on aika ja y-akselilla PWM-arvo.