Корак 1: Уради
Шта је ово?
Претвори свој micro:bit уређај у уређај за самостално бележење података који чува највећу и најмање очитану вредност температуре и те податке чува чак и када се батерија потроши или када се искључи напајање микробита струјом.
Ово је програм уPython-у, који можете да користите без икаквог познавања програмског језика Python.
Шта сте научили
- Како да користите Python за учитавање и уписивање података у трајну меморију који ће остати у micro:bit-у чак и када се прекине његово напајање струјом
- Како поступати са грешкама у Python-у програмима
- Како претворити нумеричке вредности у ниске и обратно
Шта вам је потребно
- micro:bit
- опционално паковање батерија
Како употребљавати
- Преузмите програм у облику .hex датотеке и пребаците га на ваш micro:bit уређај.
- Ако имате батерије, прикачите их на ваш micro:bit и оставите га негде где ће се температура мењати. Можете да тестирате тако што ћете микробит уређај оставити напољу или у фрижидеру на неколико минута.
- Протресите га како бисте приказали тренутну температуру.
- Притисните тастер А како бисте видели најнижу забележену температуру.
- Притисните тастер Б како бисте видели највишу забележену температуру.
- Истовремено притисните пинове GND и 2, како бисте поништили измерену максималну и минималну температуру и поставили на тренутно измерену вредност температуре.
Корак 2: Програмирај
1from microbit import *
2
3# function to read data file:
4def get_nv_data(name):
5 try:
6 with open(name) as f:
7 v = int(f.read())
8 except OSError:
9 v = temperature()
10 try:
11 with open(name, 'w') as f:
12 f.write(str(v))
13 except OSError:
14 display.scroll('Cannot create file %s' % name)
15
16 except ValueError:
17 display.scroll('invalid data in file %s' % name)
18 v = temperature()
19
20 return v
21
22# function to write data file:
23def set_nv_data(name, value):
24 try:
25 with open(name, 'w') as f:
26 f.write(str(value))
27 except OSError:
28 display.scroll('Cannot write to file %s' % name)
29
30min = get_nv_data('min.txt')
31max = get_nv_data('max.txt')
32
33while True:
34 currentTemp = temperature()
35 if currentTemp < min:
36 min = currentTemp
37 set_nv_data('min.txt', min)
38 if currentTemp > max:
39 max = currentTemp
40 set_nv_data('max.txt', max)
41 if accelerometer.was_gesture('shake'):
42 display.scroll(currentTemp)
43 if button_a.was_pressed():
44 display.scroll(get_nv_data('min.txt'))
45 if button_b.was_pressed():
46 display.scroll(get_nv_data('max.txt'))
47 if pin2.is_touched():
48 display.scroll('clearing data')
49 set_nv_data('min.txt', currentTemp)
50 set_nv_data('max.txt', currentTemp)
51
Како то ради
Овај уређај за бележење података чува те податке чак и када је на micro:bit уређају искључено напајање. То се ради тако да се подаци чувају у трајној меморији. То је рачунарска меморија чији садржај остаје и када се искључи напајање, баш као што и micro:bit уређај чува програм који је преузет на њега и када га искључимо са рачунара.
Подаци се на micro:bit уређају чувају у две текстуалне датотеке које се називајумин.txt
и макс.txt
које се могу у Python програм прочитати и ажурирати.
Овај програм користи променљиве за праћење и упоређивање температуре:
ТренутнаТемп
је вредност тренутно очитане температуре са сензора за температуру на micro:bit уређају.максимум
је вредност највише температуре. Ова променљива добија нову вредност када је тренутно измерена температура већа од (>) тренутне вредностимаксимума
.минимум
је вредност најмање температуре. Ова променљива добија нову вредност уколико је тренутна температура мања од (>) тренутне вредностимин
.
Две функције,узми_нв_податке
i постави_нв_податке
, читају и уписују нумеричке податке у трајним текстуалним датотекама. Ова функција претвара бројеве у текст и обратно:
int()
претвара текст (који се назива стринг) у нумеричку (цео број) променљиву, коју можемо да користимо за поређење са тренутно измереном температуром.- функција
str()
претвара нумеричку променљиву, попут очитавања температуре, у текст који се може чувати у текстуалној датотеци.
Функција користи блокове пробај
и изузетак
како бисте забележили грешке које настају приликом читања или уписивања у датотеци. Ако не постоји сачувана текстуална датотека са максималном и минималном температуром, када први пут покренете програм, он поставља да вредности променљиве максимум
и минимум
буду тренутно измерене вредности температуре.
Главни део програма се дешава унутар бесконачне петље док тачно:
. Она се понаша као блок покрени заувек у MakeCod-у.
Корак 3: Унапреди
- Сензор за температуру на micro:bit-у смештен је унутар процесора и његово очитавање обично даје температуре веће од оних из околине. Измерите разлику у температурама помоћу обичног термометра, па у програму додајте одступање које се добија када се та разлика одузме од очитане
температуре ()
. - Промените програм тако да бележи различите податке, као на пример као силе мерене акцелерометром.
- Додајте радио функцију да бисте податке слали на други micro:bit који се налази на некој другој локацији.
This content is published under a Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) licence.