Skip to content

Активност

Либела

Средње | MakeCode, Python | Акцелерометар - мерач убрзања, Звук, Лед екран | Логичке операције, Одабир, Оператори поређења, Сензори

Корак 1: Уради

Шта је ово?

Направите алат како бисте били сигурни да су ваше слике, полице или радне површине у равни. Нови micro:bit са уграђеним звучником омогућава вам да лако унапредите своју либелу са повратним звучним информацијама.

Увод

Водич за програмирање

Шта сте научили

  • Како да користите акцелерометар за мерење углова
  • Шта су 'нагиб' и 'окрет'
  • Како комбиновати очитавања сензора у две димензије да би се утврдило да је површина у равни

Како то ради

дијаграм приказује нагиб и окрет на micro:bit-у
  • Micro:bit-ов акцелерометар може да мери угао нагињања у два правца: нагоре и надоле (нагиб) и са једне на другу страну (окрет). Ово се у пројекту користи да би micro:bit приказао на ЛЕД екрану уз коришћење звучног сигнала да се налази у водоравном положају, што би могло бити од користи када желите да окачите слику или поставите радну површину.
  • Петљу користимо у програму како би се вршило стално мерење углова нагињања micro:bit-а.
  • Ако акцелерометар мери угао између +5 и -5 степени на оба нагиба и окретања, micro:bit је у равни. Тада се на ЛЕД екрану приказује знак штиклирано и репродукује се неки тон.
  • Да бисте чули тон, прикључите слушалице или звучник на пинове 0 и GND, или, ако имате нови micro:bit, чућете га преко уграђеног звучника.
  • Ако је илинагибили окретање изван опсега од +5 до -5 степени, тада се на ЛЕД екрану приказује икс (x) и зауставља се звук.

Шта вам је потребно

  • micro:bit
  • MakeCode или Python уређивач
  • батерије (опционално)

Корак 2: Програмирај

1from microbit import *
2import music
3
4# Uses accelerometer readings in the x and y axis 
5# and also allows the micro:bit to be slightly off-level
6# to make it work better in practice
7while True:
8    if accelerometer.get_x() > -10 and accelerometer.get_x() < 10 and accelerometer.get_y() > -10 and accelerometer.get_y() < 10:
9        display.show(Image.YES)
10        music.play('C5:1')
11        sleep(200)
12    else:
13        display.show(Image.NO)
14

Корак 3: Унапреди

  • Да ли можете да промените висину тона у зависности од угла?
  • Да ли можете да програмирате 'балончић' који ће се померати по ЛЕД екрану као на правој либели?