Instructions
55
g
1
=
1
; g
2
=
10
; g
3
=
100
; g
4
= 5
00
D
i
ese
Z
e
il
e
n
defi
ni
e
r
e
n
d
i
e
G
r
e
nz
e
n
de
r B
e
r
e
i
c
h
e
fü
r
f
r
e
i
e
n
Speicher platz, an denen die Anzei
g
e umschalten soll. Der Ein
f
achheit halber verwendet das Pro
g
ramm
Mega
b
yte un
d
nic
h
t Byte,
d
a man sic
h
d
iese Za
hl
en
b
esser vorste
ll
en
k
ann. Sie
k
önnen
d
ie Grenzen je
d
erzeit
anders
f
est legen, die vier Werte müssen nur in au
f
steigender Grö
ß
e angeordnet sein.
G
P
IO
.setmo
d
e
(G
P
IO
.B
C
M
)
LED
= [4,18,23]
for i in range(3)
:
GPIO.setup
(
LED
[
i
]
, GPIO.OUT, initial=False
)
Ein
e
Li
ste
defi
ni
e
r
t
d
i
e
G
PI
O
-P
o
r
t
n
u
mm
e
rn
de
r
d
r
e
i LED
s
. D
a
n
ac
h ini
t
i
a
li
s
i
e
r
t
e
in
e
Sc
hl
e
i
fe
d
i
e
d
r
e
i
G
PI
O
-P
o
r
ts
als Ausgänge und setzt alle LEDs au
f
ausgeschaltet.
Auc
h
in
d
iesem Ex
p
eriment verwen
d
en wir eine
t
ry...excep
t
-Konstruktion und eine Endlosschlei
f
e, um
das Programm automatisch immer wieder lau
f
en zu lassen, bis es der Benutzer mit
[
Strg
]
+
[
C
]
abb
ri
cht
.
Danach
f
olgen die eigentlich interessanten Funktionen, die au
f
das Betriebssystem zugrei
f
en und den
f
reien
Speicherplatz ab
f
ragen
.
s
= os.statvfs
(
‚/‘
)
Das
Stat
i
st
i
k
m
odul
os.statvfs
()
aus
de
r
os
-
Bi
b
li
ot
h
e
k li
efe
r
t
d
iv
e
r
se
stat
i
st
i
sc
h
e
In
f
ormationen zum Dateisystem, die hier innerhalb der Endlosschlei
f
e bei jedem Schlei
f
endurchlau
f
au
f
s Neue
a
l
s O
b
je
k
t in
d
ie Varia
bl
e
s
gesc
h
rie
b
en wer
d
en
.
f
= s.
f_b
s
i
ze * s.
f_b
ava
il
/
1048
57
6
Jetzt lie
f
ert die Methode
s
.
f_b
s
i
ze
d
i
e
G
r
öße
e
in
es
Speic
h
er
bl
oc
k
s in Byte.
s
.
f_b
ava
il
gibt die Anzahl
f
reier Blöcke an. Das Produkt aus beiden Werten gibt dem
-
nach die Anzahl
f
reier Bytes an, die hier durch 1.048.576 geteilt wird, um die Anzahl
f
reier Megabytes zu erhal
-
ten. Das Erge
b
nis wir
d
in
d
er Varia
bl
en
f
gespeic
h
ert.
if f < g1
:
x = "
100
"
Ist der freie Speicherplatz kleiner als der erste Grenzwert
(
1MB
)
, wird die Zeichenfolge
x
,
d
ie
d
as Muster
d
er
eingeschalteten LEDs angibt, au
f
"100
" gesetzt. Die erste, rote LED soll leuchten. Das Muster ist eine ein
f
ache
Z
e
i
c
h
e
nk
ette
aus
de
n Zi
ffe
rn
0
u
n
d
1
.
e
l
if f < g2
:
x = "11
0
"
e
l
if f < g3
:
x = "
0
1
0
"
e
l
if f < g4
:
x = "
011
"
Mi
t
hil
fe
v
o
n
elif
-Ab
f
ragen werden die weiteren Grenzwerte abge
f
ragt und die LED-Muster entsprechend
gesetzt, wenn die erste Frage nicht zutri
ff
t, also mehr als 1MB
f
reier Speicherplatz vorhanden ist.
else:
x = "
001
"
Sollte keine der Abfragen zutreffen, also mehr freier Speicherplatz vorhanden sein, als der höchste Grenzwert
angibt, wird das LED-Muster auf
"001
" gesetzt. Die letzte, grüne LED soll leuchten
.
10145-5 Raspberry Pi verstehen und anwenden_01.indd 5510145-5 Raspberry Pi verstehen und anwenden_01.indd 55 30.06.2017 10:09:3530.06.2017 10:09:35