Darmowy fragment publikacji:
Tytuł oryginału: The Maker s Guide to the Zombie Apocalypse
Tłumaczenie: Konrad Matuk
ISBN: 978-83-283-2683-5
Original © 2016 by Simon Monk.
Title of English-language original: The Maker s Guide to the Zombie Apocalypse,
ISBN 978-1-59327-667-6, published by No Starch Press.
Polish-language edition copyright © 2016 by Helion SA.
All rights reserved.
All rights reserved. No part of this book may be reproduced or transmitted in any form or by any means,
electronic or mechanical, including photocopying, recording or by any information storage retrieval system,
without permission from the Publisher.
Wszelkie prawa zastrzeżone. Nieautoryzowane rozpowszechnianie całości lub fragmentu niniejszej
publikacji w jakiejkolwiek postaci jest zabronione. Wykonywanie kopii metodą kserograficzną,
fotograficzną, a także kopiowanie książki na nośniku filmowym, magnetycznym lub innym powoduje
naruszenie praw autorskich niniejszej publikacji.
Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich
właścicieli.
Autor oraz Wydawnictwo HELION dołożyli wszelkich starań, by zawarte w tej książce informacje były
kompletne i rzetelne. Nie biorą jednak żadnej odpowiedzialności ani za ich wykorzystanie, ani za związane
z tym ewentualne naruszenie praw patentowych lub autorskich. Autor oraz Wydawnictwo HELION nie
ponoszą również żadnej odpowiedzialności za ewentualne szkody wynikłe z wykorzystania informacji
zawartych w książce.
Wydawnictwo HELION
ul. Kościuszki 1c, 44-100 GLIWICE
tel. 32 231 22 19, 32 230 98 63
e-mail: helion@helion.pl
WWW: http://helion.pl (księgarnia internetowa, katalog książek)
Pliki z przykładami omawianymi w książce można znaleźć pod adresem:
ftp://ftp.helion.pl/przyklady/apokal.zip
Drogi Czytelniku!
Jeżeli chcesz ocenić tę książkę, zajrzyj pod adres
http://helion.pl/user/opinie/apokal
Możesz tam wpisać swoje uwagi, spostrzeżenia, recenzję.
Printed in Poland.
• Kup książkę
• Poleć książkę
• Oceń książkę
• Księgarnia internetowa
• Lubię to! » Nasza społeczność
Spis tre(cid:258)ci
O AUTORZE ............................................................................................. 11
O KOREKTORZE MERYTORYCZNYM ....................................................... 12
PODZI(cid:125)KOWANIA ................................................................................... 13
WST(cid:125)P ...................................................................................................... 15
Najwa(cid:285)niejsze umiej(cid:218)tno(cid:258)ci majsterkowicza niezb(cid:218)dne do przetrwania ...............................15
O projektach umo(cid:285)liwiaj(cid:200)cych prze(cid:285)ycie apokalipsy .............................................................16
Pliki, które nale(cid:285)y pobra(cid:202) przed powstaniem zombie ...........................................................18
1
PODSTAWOWE INFORMACJE O APOKALIPSIE ........................................ 19
Zombie ...................................................................................................................................19
Rodzaje zombie ..................................................................................................................20
Czy zombie s(cid:200) naprawd(cid:218) martwe? ....................................................................................21
Jak d(cid:239)ugo potrwa wysyp zombie? ...........................................................................................22
ABC prze(cid:285)ycia w postapokaliptycznym (cid:258)wiecie ....................................................................23
Dom ...................................................................................................................................23
Woda ..................................................................................................................................24
Jedzenie i paliwo ................................................................................................................24
Zabijanie zombie ................................................................................................................25
Odpowiedni ubiór ..............................................................................................................26
Dbanie o zdrowie ...............................................................................................................26
B(cid:200)d(cid:283) gotowy ..........................................................................................................................28
Inne osoby, które przetrwa(cid:239)y apokalips(cid:218) ...............................................................................28
Cz(cid:218)(cid:258)ci potrzebne do wykonania projektów ..........................................................................29
Samochody .........................................................................................................................29
Lokalne sklepy z cz(cid:218)(cid:258)ciami .................................................................................................30
Praca nad projektami .............................................................................................................31
Lutowanie ..........................................................................................................................31
Konstrukcje mechaniczne ..................................................................................................31
Modu(cid:239)y elektroniczne ........................................................................................................31
Poleć książkęKup książkę2
GENEROWANIE PR(cid:107)DU ........................................................................... 33
Moc i energia ......................................................................................................................... 33
Ró(cid:285)ne rodzaje pr(cid:200)du ............................................................................................................. 34
Pr(cid:200)d sta(cid:239)y o niskim napi(cid:218)ciu ............................................................................................... 35
Pr(cid:200)d przemienny o wysokim napi(cid:218)ciu ............................................................................... 37
Ogniwa i akumulatory ........................................................................................................... 38
Ogniwa jednokrotnego u(cid:285)ytku .......................................................................................... 38
Akumulatory ...................................................................................................................... 38
(cid:146)adowanie akumulatora ........................................................................................................ 39
Projekt 1. (cid:146)adowanie za pomoc(cid:200) energii s(cid:239)onecznej ............................................................. 39
Panele fotowoltaiczne ....................................................................................................... 40
Sterowniki (cid:239)adowania ........................................................................................................ 40
Czego b(cid:218)dziesz potrzebowa(cid:239)? ........................................................................................... 41
Konstrukcja ........................................................................................................................ 42
(cid:146)adowanie akumulatora za pomoc(cid:200) energii s(cid:239)onecznej .................................................... 47
Projekt 2. Generator rowerowy ........................................................................................... 48
Czego b(cid:218)dziesz potrzebowa(cid:239)? ........................................................................................... 49
Konstrukcja ........................................................................................................................ 49
Korzystanie z rowerowego generatora ............................................................................. 56
3
KORZYSTANIE Z PR(cid:107)DU ........................................................................ 59
Zasilanie urz(cid:200)dze(cid:241) z akumulatora samochodowego ............................................................. 59
Gniazdo zapalniczki samochodowej .................................................................................. 60
Zasilaj(cid:200)ca wtyczka USB ..................................................................................................... 62
Falowniki ........................................................................................................................... 63
Projekt 3. O(cid:258)wietlenie diodowe ............................................................................................ 64
Czego b(cid:218)dziesz potrzebowa(cid:239)? ........................................................................................... 64
Konstrukcja ........................................................................................................................ 65
Korzystanie z o(cid:258)wietlenia .................................................................................................. 67
Projekt 4. Monitor akumulatora ............................................................................................ 67
Czego b(cid:218)dziesz potrzebowa(cid:239)? ........................................................................................... 68
Konstrukcja ........................................................................................................................ 69
Program ............................................................................................................................. 72
Korzystanie z monitora na(cid:239)adowania akumulatora ............................................................ 75
4
ALARMY WYKRYWAJ(cid:107)CE ZOMBIE .......................................................... 77
Projekt 5. Alarm aktywowany za pomoc(cid:200) linki ..................................................................... 77
Czego b(cid:218)dziesz potrzebowa(cid:239)? ........................................................................................... 79
Konstrukcja ........................................................................................................................ 80
Korzystanie z alarmu aktywowanego za pomoc(cid:200) linki ...................................................... 85
6
S p i s t r e (cid:258) c i
Poleć książkęKup książkęProjekt 6. Wykrywanie zombie za pomoc(cid:200) podczerwieni .....................................................86
Czego b(cid:218)dziesz potrzebowa(cid:239)? ...........................................................................................87
Konstrukcja ........................................................................................................................88
Program .............................................................................................................................90
Obs(cid:239)uga wykrywacza zombie korzystaj(cid:200)cego z czujnika podczerwieni .............................92
Czujniki podczerwieni pochodz(cid:200)ce z odzysku ...................................................................92
5
MONITORING I RASPBERRY PI ............................................................... 95
Raspberry Pi ...........................................................................................................................95
System Raspberry Pi ...........................................................................................................97
Czego b(cid:218)dziesz potrzebowa(cid:239)? ...........................................................................................98
Zasilanie systemu ...............................................................................................................98
Instalacja systemu Raspbian ..............................................................................................100
Projekt 7. Monitorowanie zombie za pomoc(cid:200) kamery sieciowej wyposa(cid:285)onej
w interfejs USB ....................................................................................................................101
Czego b(cid:218)dziesz potrzebowa(cid:239)? .........................................................................................102
Konstrukcja ......................................................................................................................103
Korzystanie z kamery .......................................................................................................109
Projekt 8. Bezprzewodowy system monitorowania zombie ...............................................110
Czego b(cid:218)dziesz potrzebowa(cid:239)? .........................................................................................111
Konstrukcja ......................................................................................................................112
Korzystanie z kamery Wi-Fi .............................................................................................116
6
ZDALNE OTWIERANIE DRZWI I WYKRYWANIE OTWARCIA DRZWI ..... 117
Projekt 9. Zdalnie sterowany zamek do drzwi ....................................................................118
Czego b(cid:218)dziesz potrzebowa(cid:239)? .........................................................................................120
Konstrukcja ......................................................................................................................121
Bezprzewodowe otwieranie drzwi ..................................................................................125
Projekt 10. Czujnik otwarcia drzwi ......................................................................................126
Czego b(cid:218)dziesz potrzebowa(cid:239)? .........................................................................................127
Konstrukcja ......................................................................................................................128
Program ...........................................................................................................................128
Korzystanie z czujnika otwarcia drzwi .............................................................................131
7
MONITOROWANIE OTOCZENIA ............................................................ 133
Projekt 11. Cichy alarm przeciwpo(cid:285)arowy ..........................................................................133
Czego b(cid:218)dziesz potrzebowa(cid:239)? .........................................................................................135
Konstrukcja ......................................................................................................................135
Program ...........................................................................................................................142
Korzystanie z alarmu przeciwpo(cid:285)arowego ......................................................................144
S p i s t r e (cid:258) c i
7
Poleć książkęKup książkęProjekt 12. Alarm zapobiegaj(cid:200)cy przekroczeniu dopuszczalnej temperatury ..................... 144
Czego b(cid:218)dziesz potrzebowa(cid:239)? ......................................................................................... 145
Konstrukcja ...................................................................................................................... 145
Program ........................................................................................................................... 148
Korzystanie z alarmu o przekroczeniu dopuszczalnej temperatury ................................ 150
8
BUDOWA CENTRUM DOWODZENIA BAZ(cid:107) .......................................... 153
Projekt 13. Centrum dowodzenia oparte na Raspberry Pi ................................................. 153
Czego b(cid:218)dziesz potrzebowa(cid:239)? ......................................................................................... 154
Konstrukcja ...................................................................................................................... 154
Program ........................................................................................................................... 155
Korzystanie z centrum zarz(cid:200)dzania baz(cid:200) ......................................................................... 162
Projekt 14. Korzystanie z bezprzewodowej technologii Bluetooth .................................... 163
Czego b(cid:218)dziesz potrzebowa(cid:239)? ......................................................................................... 164
Konstrukcja ...................................................................................................................... 164
Program ........................................................................................................................... 168
Korzystanie z centrum dowodzenia wyposa(cid:285)onego w interfejs Bluetooth ..................... 170
9
PRZYCI(cid:107)GANIE UWAGI ZOMBIE ........................................................... 171
Projekt 15. Przyci(cid:200)ganie uwagi zombie za pomoc(cid:200) lampy b(cid:239)yskowej
sterowanej mikrokontrolerem Arduino .............................................................................. 172
Czego b(cid:218)dziesz potrzebowa(cid:239)? ......................................................................................... 174
Konstrukcja ...................................................................................................................... 175
Program ........................................................................................................................... 181
Korzystanie z generatora b(cid:239)ysków przyci(cid:200)gaj(cid:200)cych uwag(cid:218) zombie ................................ 182
Projekt 16. Przyci(cid:200)ganie uwagi zombie za pomoc(cid:200) ruchu i d(cid:283)wi(cid:218)ku generowanych
przez Arduino ...................................................................................................................... 184
Czego b(cid:218)dziesz potrzebowa(cid:239)? ......................................................................................... 185
Konstrukcja ...................................................................................................................... 186
Program ........................................................................................................................... 192
Korzystanie z urz(cid:200)dzenia odwracaj(cid:200)cego uwag(cid:218) zombie za pomoc(cid:200) d(cid:283)wi(cid:218)ku i ruchu ... 195
10
KOMUNIKACJA Z INNYMI OCALA(cid:146)YMI ............................................... 197
Projekt 17. Radiolatarnia wykonana na bazie Raspberry Pi ................................................. 198
Czego b(cid:218)dziesz potrzebowa(cid:239)? ......................................................................................... 198
Konstrukcja ...................................................................................................................... 200
Program ........................................................................................................................... 200
Korzystanie z nadajnika FM ............................................................................................. 201
Projekt 18. Skaner radiowy oparty na Arduino ................................................................... 204
Czego b(cid:218)dziesz potrzebowa(cid:239)? ......................................................................................... 204
Konstrukcja ...................................................................................................................... 205
8
S p i s t r e (cid:258) c i
Poleć książkęKup książkęProgram ...........................................................................................................................210
Korzystanie ze skanera .....................................................................................................212
Projekt 19. Latarnia nadaj(cid:200)ca komunikaty za pomoc(cid:200) kodu Morse’a ..................................212
Czego b(cid:218)dziesz potrzebowa(cid:239)? .........................................................................................213
Konstrukcja ......................................................................................................................214
Program ...........................................................................................................................217
Korzystanie z latarni nadaj(cid:200)cej kod Morse’a ....................................................................222
11
KOMUNIKACJA ZA POMOC(cid:107) WIBRACJI ............................................... 225
Projekt 20. Arduino i cicha komunikacja za pomoc(cid:200) wibracji ..............................................225
Czego b(cid:218)dziesz potrzebowa(cid:239)? .........................................................................................227
Konstrukcja ......................................................................................................................228
Program ...........................................................................................................................233
Korzystanie z projektu .....................................................................................................236
A
KOMPONENTY ...................................................................................... 239
Modu(cid:239)y elektroniczne ...........................................................................................................240
Mikrokomputer Raspberry Pi i zwi(cid:200)zane z nim komponenty ..............................................240
Kable, druty i z(cid:239)(cid:200)cza .............................................................................................................241
Narz(cid:218)dzia .............................................................................................................................242
Komponenty elektroniczne ..................................................................................................242
Pozosta(cid:239)e komponenty ........................................................................................................243
Kod paskowy rezystora ........................................................................................................243
B
PODSTAWOWE UMIEJ(cid:125)TNO(cid:165)CI .............................................................. 245
Zdejmowanie izolacji ............................................................................................................245
Skr(cid:218)canie ze sob(cid:200) przewodów ............................................................................................246
Podstawy wykonywania po(cid:239)(cid:200)cze(cid:241) lutowniczych ..................................................................248
Lutowanie kabli ................................................................................................................249
Przylutowywanie komponentów do p(cid:239)ytki obwodu ........................................................250
Korzystanie z koszulek termokurczliwych ...........................................................................253
Korzystanie z multimetru .....................................................................................................254
Pomiar napi(cid:218)cia pr(cid:200)du sta(cid:239)ego .........................................................................................256
Pomiar nat(cid:218)(cid:285)enia pr(cid:200)du sta(cid:239)ego .......................................................................................257
Pomiar rezystancji ............................................................................................................258
Testowanie ci(cid:200)g(cid:239)o(cid:258)ci ........................................................................................................259
Dodatkowe funkcje multimetru .......................................................................................260
C
ARDUINO — PORADNIK DLA POCZ(cid:107)TKUJ(cid:107)CYCH .............................. 261
Czym jest Arduino? ..............................................................................................................261
(cid:165)rodowisko programistyczne Arduino .................................................................................263
S p i s t r e (cid:258) c i
9
Poleć książkęKup książkęInstalacja zintegrowanego (cid:258)rodowiska programistycznego Arduino ................................... 263
Wgrywanie szkicu ............................................................................................................ 265
Instalowanie szkiców u(cid:239)atwiaj(cid:200)cych walk(cid:218) z zombie ....................................................... 266
Podstawy programowania Arduino ..................................................................................... 267
Struktura szkicu Arduino ................................................................................................. 267
Tworzenie zmiennych i sta(cid:239)ych ....................................................................................... 268
Konfigurowanie cyfrowych wyj(cid:258)(cid:202) .................................................................................... 268
Konfigurowanie cyfrowych wej(cid:258)(cid:202) .................................................................................... 269
Stabilizacja cyfrowych wej(cid:258)(cid:202) za pomoc(cid:200) rezystora podci(cid:200)gaj(cid:200)cego ................................ 270
Odczyt danych z analogowych wej(cid:258)(cid:202) .............................................................................. 271
Generowanie analogowych sygna(cid:239)ów wyj(cid:258)ciowych ........................................................ 272
Powtarzanie kodu za pomoc(cid:200) p(cid:218)tli warunkowych .......................................................... 272
Okre(cid:258)lanie dwóch warunków za pomoc(cid:200) instrukcji if i else ............................................ 274
Porównywanie warto(cid:258)ci logicznych ................................................................................ 275
Grupowanie kodu — tworzenie funkcji .......................................................................... 275
Monta(cid:285) p(cid:239)ytki Screw Shield ................................................................................................. 277
Dalsza lektura ...................................................................................................................... 280
SKOROWIDZ .......................................................................................... 281
10
S p i s t r e (cid:258) c i
Poleć książkęKup książkę5
Monitoring i Raspberry Pi
POZA WYKRYWANIEM ZOMBIE WARTO RÓWNIE(cid:191) OBSERWOWA(cid:109) ICH
POCZYNANIA. NIE PRÓBUJ (cid:165)LEDZI(cid:109) HORDY UMARLAKÓW OSO-
BI(cid:165)CIE! PRZYGL(cid:107)DAJ SI(cid:125) IM Z BEZPIECZNEJ ODLEG(cid:146)O(cid:165)CI, CZYLI
z wn(cid:218)trza swojej bazy — uchroni Ci(cid:218) to przed zgubnymi
skutkami bezpo(cid:258)redniego kontaktu z zombie. W tym rozdziale
dowiesz si(cid:218), jak korzysta(cid:202) z kamer sieciowych wyposa(cid:285)onych
w interfejs USB oraz z kamer wyposa(cid:285)onych w interfejs bezprzewodowy. W celu
zminimalizowania zu(cid:285)ycia pr(cid:200)du b(cid:218)dziemy korzysta(cid:202) z jednop(cid:239)ytkowego kom-
putera Raspberry Pi (rysunek 5.1).
Oba projekty przedstawione w tym rozdziale wymagaj(cid:200) pobrania odpowied-
niego oprogramowania. W zwi(cid:200)zku z tym warto przygotowa(cid:202) system do pracy
jeszcze przed nadej(cid:258)ciem apokalipsy.
Raspberry Pi
Zaprezentowane przeze mnie projekty mog(cid:200) by(cid:202) obs(cid:239)ugiwane za pomoc(cid:200) stan-
dardowego laptopa lub komputera stacjonarnego, ale urz(cid:200)dzenia te pobieraj(cid:200) du(cid:285)o
pr(cid:200)du. Laptop charakteryzuje si(cid:218) moc(cid:200) od 20 W do 60 W, a komputer stacjonarny
mo(cid:285)e pobiera(cid:202) jeszcze wi(cid:218)cej pr(cid:200)du. Ponadto potrzebowa(cid:239)by(cid:258) falownika. Zasilacze
laptopów generuj(cid:200) pr(cid:200)d sta(cid:239)y o niskim napi(cid:218)ciu, ale zwykle napi(cid:218)cie to jest wy(cid:285)sze
od 12 V, a wi(cid:218)c bezpo(cid:258)rednie zasilanie laptopa z akumulatora 12 V jest niemo(cid:285)liwe.
Poleć książkęKup książkęRysunek 5.1. Zombie u(cid:258)miechaj(cid:200)cy si(cid:218) i machaj(cid:200)cy do obiektywu kamery
Ponadto wyobra(cid:283) sobie sytuacj(cid:218), w której jeste(cid:258) zmuszony do opuszczenia
swojej bazy z powodu naporu zombie. Czy naprawd(cid:218) chcia(cid:239)by(cid:258) ryzykowa(cid:202) (cid:285)ycie,
taszcz(cid:200)c ogromn(cid:200) obudow(cid:218) komputera stacjonarnego?
Raspberry Pi jest miniaturowym jednop(cid:239)ytkowym komputerem pracuj(cid:200)cym
pod kontrol(cid:200) systemu Linux. Wymiary tej p(cid:239)ytki s(cid:200) zbli(cid:285)one do wymiarów karty
kredytowej. Raspberry Pi charakteryzuje si(cid:218) moc(cid:200) 3 W. W tym projekcie, a tak(cid:285)e
w innych projektach opisanych w tej ksi(cid:200)(cid:285)ce wykorzystujemy p(cid:239)ytk(cid:218) Raspberry
Pi Model B+ (rysunek 5.2). Je(cid:285)eli dysponujesz starsz(cid:200) p(cid:239)ytk(cid:200) Raspberry Pi Mo-
del B lub nowsz(cid:200) Raspberry Pi 2, te(cid:285) mo(cid:285)esz z nich korzysta(cid:202). Wi(cid:218)ksza wydaj-
no(cid:258)(cid:202) nowszej p(cid:239)ytki powinna sprawi(cid:202), (cid:285)e strona pokazuj(cid:200)ca obraz rejestrowany
przez kamer(cid:218) powinna by(cid:202) wy(cid:258)wietlana znacznie szybciej. Nie warto korzysta(cid:202)
z modeli A i A+, poniewa(cid:285) charakteryzuj(cid:200) si(cid:218) one ni(cid:285)sz(cid:200) wydajno(cid:258)ci(cid:200) i zainsta-
lowano na nich pami(cid:218)(cid:202) operacyjn(cid:200) o mniejszej pojemno(cid:258)ci.
Raspberry Pi mo(cid:285)e wykonywa(cid:202) skrypty napisane w Pythonie i mo(cid:285)e zosta(cid:202) pod-
(cid:239)(cid:200)czony do zewn(cid:218)trznych urz(cid:200)dze(cid:241). Na przyk(cid:239)ad w projekcie opisanym w podroz-
dziale „Projekt 7. Monitorowanie zombie za pomoc(cid:200) kamery sieciowej wyposa(cid:285)onej
w interfejs USB” dioda LED pod(cid:239)(cid:200)czona do z(cid:239)(cid:200)cza GPIO p(cid:239)ytki Raspberry Pi
zmieni kolor emitowanego (cid:258)wiat(cid:239)a z zielonego na czerwony. Z(cid:239)(cid:200)cze GPIO sk(cid:239)ada
si(cid:218) z dwóch rz(cid:218)dów pinów znajduj(cid:200)cych si(cid:218) z boku p(cid:239)ytki (zob. rysunek 5.2).
96
R o z d z i a (cid:239) 5
Poleć książkęKup książkęRysunek 5.2. P(cid:239)ytka Raspberry Pi Model B+
System Raspberry Pi
W celu uzyskania w pe(cid:239)ni funkcjonalnego komputera do p(cid:239)ytki Raspberry Pi nale(cid:285)y
pod(cid:239)(cid:200)czy(cid:202) klawiatur(cid:218) i mysz USB, a tak(cid:285)e ma(cid:239)y monitor wyposa(cid:285)ony w z(cid:239)(cid:200)cze
HDMI (multimedialny interfejs wysokiej rozdzielczo(cid:258)ci) — rysunek 5.3.
Rysunek 5.3. System komputerowy oparty na Raspberry Pi
Klawiatura i mysz to standardowe urz(cid:200)dzenia peryferyjne, które mo(cid:285)esz kupi(cid:202)
wsz(cid:218)dzie. W celu ci(cid:200)g(cid:239)ego podgl(cid:200)du poczyna(cid:241) zombie do Raspberry Pi mo(cid:285)esz
M o n i t o r i n g i R a s pb e r r y P i
97
Poleć książkęKup książkępod(cid:239)(cid:200)czy(cid:202) zwyczajny telewizor lub monitor. Jednak(cid:285)e w celu zminimalizowania
ilo(cid:258)ci pobieranego pr(cid:200)du w tym projekcie b(cid:218)dziemy korzysta(cid:202) z monitora zasila-
nego pr(cid:200)dem sta(cid:239)ym o napi(cid:218)ciu 12 V, o przek(cid:200)tnej ekranu równej 7 cali (18 cm).
W najgorszym wypadku zastosowanie tego monitora podwoi moc pobieran(cid:200) przez
komputer, która mo(cid:285)e wtedy osi(cid:200)gn(cid:200)(cid:202) szczytow(cid:200) warto(cid:258)(cid:202) 6 W.
Czego b(cid:218)dziesz potrzebowa(cid:239)?
Do pod(cid:239)(cid:200)czenia systemu komputerowego opartego na Raspberry Pi do akumu-
latora dostarczaj(cid:200)cego pr(cid:200)d o napi(cid:218)ciu 12 V b(cid:218)dziesz potrzebowa(cid:239) nast(cid:218)puj(cid:200)cych
komponentów:
Komponent
(cid:135) Raspberry Pi
(cid:135) Ma(cid:239)y monitor wyposa(cid:285)ony
w z(cid:239)(cid:200)cze HDMI
(cid:135) Klawiatura i mysz
(cid:135) Kabel HDMI
Uwagi
Model B+ lub Pi 2 z kart(cid:200) SD
zawieraj(cid:200)c(cid:200) pakiet NOOBS
Monitor ze z(cid:239)(cid:200)czem HDMI zasilany
pr(cid:200)dem o napi(cid:218)ciu 12 V; sugerowane
urz(cid:200)dzenie charakteryzuje si(cid:218)
rozdzielczo(cid:258)ci(cid:200) 800(cid:117)480 pikseli
Standardowa klawiatura i mysz
(oba urz(cid:200)dzenia musz(cid:200) by(cid:202)
wyposa(cid:285)one w interfejs USB)
Najkrótszy
(cid:135) Adapter pod(cid:239)(cid:200)czany do gniazdka
Minimalne nat(cid:218)(cid:285)enie pr(cid:200)du: 1 A
zapalniczki samochodowej
umo(cid:285)liwiaj(cid:200)cy zasilanie urz(cid:200)dze(cid:241)
wyposa(cid:285)onych w z(cid:239)(cid:200)cze USB
(cid:135) Adapter zapalniczki samochodowej
zako(cid:241)czony wtykiem zasilaj(cid:200)cym
o (cid:258)rednicy 2,1 mm
(cid:135) Aktywny koncentrator USB
(cid:189)ród(cid:239)o
Adafruit (2358),
Botland (RPI-02544)
Adafruit (1934),
Allegro
Sklep komputerowy,
sklepy internetowe
Sklep komputerowy,
sklepy internetowe
Sklep motoryzacyjny,
sklep komputerowy
Sklep motoryzacyjny
Niezb(cid:218)dny tylko w przypadku pracy
z p(cid:239)ytk(cid:200) Raspberry Pi Model B
Sklep komputerowy,
sklepy internetowe
Je(cid:285)eli korzystasz z p(cid:239)ytki Raspberry Pi Model B, która zawiera zaledwie dwa
gniazda USB, to b(cid:218)dziesz musia(cid:239) zastosowa(cid:202) aktywny koncentrator USB lub zestaw
myszy i klawiatury bezprzewodowej wyposa(cid:285)ony we wspólny kontroler USB. Je(cid:285)eli
pod(cid:239)(cid:200)czysz mysz i klawiatur(cid:218) bezpo(cid:258)rednio do dwóch portów USB p(cid:239)ytki Raspberry
Pi, to nie b(cid:218)dziesz mia(cid:239) gdzie pod(cid:239)(cid:200)czy(cid:202) kamery b(cid:218)d(cid:200)cej elementem kolejnego
projektu.
Zasilanie systemu
Raspberry Pi jest zasilany za po(cid:258)rednictwem gniazda micro USB, a wi(cid:218)c w celu
pod(cid:239)(cid:200)czenia tej p(cid:239)ytki do akumulatora 12 V mo(cid:285)esz skorzysta(cid:202) z adaptera umo(cid:285)-
liwiaj(cid:200)cego pod(cid:239)(cid:200)czanie urz(cid:200)dze(cid:241) USB do gniazdka zapalniczki samochodowej.
Sugerowany przeze mnie monitor jest wyposa(cid:285)ony w oddzieln(cid:200) p(cid:239)ytk(cid:218) steruj(cid:200)c(cid:200),
98
R o z d z i a (cid:239) 5
Poleć książkęKup książkęktóra dostarcza do niego pr(cid:200)d i umo(cid:285)liwia po(cid:239)(cid:200)czenie z Raspberry Pi (p(cid:239)ytk(cid:218) t(cid:218)
wida(cid:202) na (cid:258)rodku rysunku 5.3). P(cid:239)ytka steruj(cid:200)ca prac(cid:200) monitora jest wyposa(cid:285)ona
w gniazdo zasilania o (cid:258)rednicy 2,1 mm.
Rozdzielacz gniazda zapalniczki samochodowej wyposa(cid:285)ony w z(cid:239)(cid:200)cza USB
(rysunek 5.4) doskonale nadaje si(cid:218) do zasilania ca(cid:239)ego systemu z akumulatorów.
Je(cid:285)eli jeszcze tego nie zrobi(cid:239)e(cid:258), to zast(cid:200)p teraz wtyczk(cid:218) gniazda zapalniczki samo-
chodowej par(cid:200) zacisków typu krokodyl, co umo(cid:285)liwi pod(cid:239)(cid:200)czenie takiego rozdzie-
lacza bezpo(cid:258)rednio do akumulatora. W rozdziale 3. znajdziesz instrukcje dotycz(cid:200)ce
pod(cid:239)(cid:200)czania do akumulatora ró(cid:285)nych urz(cid:200)dze(cid:241).
Rysunek 5.4. Rozdzielacz gniazda zapalniczki samochodowej
wyposa(cid:285)ony w dodatkowe gniazda USB
Korzystaj(cid:200)c z urz(cid:200)dzenia widocznego na rysunku 5.4, mo(cid:285)esz zasila(cid:202) Raspberry
Pi za pomoc(cid:200) standardowego przewodu micro USB, a w podrozdziale „Projekt 8.
Bezprzewodowy system monitorowania zombie” do gniazda zapalniczki pod(cid:239)(cid:200)-
czysz adapter umo(cid:285)liwiaj(cid:200)cy zasilanie kamery Wi-Fi i routera. Przyjrzyj si(cid:218) napi(cid:218)-
ciom znamionowym kamery i routera. Najprawdopodobniej urz(cid:200)dzenia te s(cid:200) zasila-
ne pr(cid:200)dem sta(cid:239)ym o napi(cid:218)ciu 12 V, co w postapokaliptycznym (cid:258)wiecie umo(cid:285)liwi
zasilanie ich za pomoc(cid:200) zgromadzonego zapasu akumulatorów samochodowych.
Ostrze(cid:285)enie
Zachowaj ostro(cid:285)no(cid:258)(cid:202) podczas pracy z wy(cid:258)wietlaczem, szczególnie je(cid:285)eli tylna
(cid:258)ciana obudowy ekranu jest wykonana z metalu — je(cid:285)eli dotknie ona ods(cid:239)oni(cid:218)tego
ty(cid:239)u p(cid:239)ytki sterownika, to dojdzie do zwarcia i uszkodzenia p(cid:239)ytki.
P(cid:239)ytk(cid:218) sterownika ekranu mo(cid:285)esz pod(cid:239)(cid:200)czy(cid:202) do akumulatora za pomoc(cid:200) kabla,
który z jednej strony b(cid:218)dzie zako(cid:241)czony okr(cid:200)g(cid:239)(cid:200) wtyczk(cid:200) o (cid:258)rednicy 2,1 mm,
a z drugiej zaciskami typu krokodyl. Jednak(cid:285)e lepszym pomys(cid:239)em od zak(cid:239)adania
wielu tego typu zacisków na bieguny jednego akumulatora jest skorzystanie
z rozdzielacza gniazda zapalniczki samochodowej. Dzi(cid:218)ki niemu b(cid:218)dziesz móg(cid:239)
pod(cid:239)(cid:200)czy(cid:202) do akumulatora wiele ró(cid:285)nych urz(cid:200)dze(cid:241) wyposa(cid:285)onych we wtyczki
zapalniczki samochodowej (zob. rozdzia(cid:239) 3., sekcj(cid:218) „Gniazdo zapalniczki samo-
chodowej”).
M o n i t o r i n g i R a s pb e r r y P i
99
Poleć książkęKup książkęInstalacja systemu Raspbian
Komputer Raspberry Pi nie jest wyposa(cid:285)ony w dysk twardy. System operacyjny
komputerów Raspberry Pi 2 i Raspberry Pi Model B+ jest zapisany na karcie
microSD, na której przechowywane s(cid:200) równie(cid:285) programy i dane. Starsze wersje
Raspberry Pi korzysta(cid:239)y ze standardowej karty SD. Podczas apokalipsy nie b(cid:218)dziesz
mia(cid:239) dost(cid:218)pu do internetu, a wi(cid:218)c postaraj si(cid:218) kupi(cid:202) kart(cid:218) z za(cid:239)adowanym systemem.
Je(cid:285)eli chcesz sam zainstalowa(cid:202) system na pustej karcie pami(cid:218)ci, a internet jeszcze
dzia(cid:239)a, to wykonaj instrukcje przedstawione na stronie: http://www.raspberrypi.
org/help/noobs-setup/.
Niezale(cid:285)nie od tego, czy kupisz kart(cid:218) z za(cid:239)adowanym systemem, czy umie(cid:258)cisz
go na karcie sam, zak(cid:239)adam, (cid:285)e posiadasz kart(cid:218) microSD z instalatorem NOOBS
(ang. New Out Of the Box Software) stworzonym przez Raspberry Pi Foundation.
W(cid:239)ó(cid:285) kart(cid:218) microSD w odpowiednie gniazdo komputera Raspberry Pi, pod(cid:239)(cid:200)cz
do niego klawiatur(cid:218), mysz i monitor, a nast(cid:218)pnie pod(cid:239)(cid:200)cz wszystko do zasilania.
Sugerowany przeze mnie monitor powinien wykry(cid:202) Raspberry Pi pod(cid:239)(cid:200)czony do
portu HDMI, a Raspberry Pi powinien automatycznie wykry(cid:202) rozdzielczo(cid:258)(cid:202) tego
ekranu. Je(cid:285)eli Raspberry Pi nie wykrywa rozdzielczo(cid:258)ci ekranu, to zajrzyj do do-
kumentacji znajduj(cid:200)cej si(cid:218) na stronie: http://www.raspberrypi.org/documentation/ —
sekcja configuration (konfiguracja) — i zapoznaj si(cid:218) z zawarto(cid:258)ci(cid:200) pliku config.txt,
dzi(cid:218)ki której dowiesz si(cid:218), jak skonfigurowa(cid:202) komputer Raspberry Pi. Wydrukuj
wspomnian(cid:200) dokumentacj(cid:218) i w(cid:239)ó(cid:285) j(cid:200) do tej ksi(cid:200)(cid:285)ki — przygotuj si(cid:218) na nadej(cid:258)cie
apokalipsy i brak dost(cid:218)pu do internetu.
Wskazówka
Po uruchomieniu Raspberry Pi pakiet NOOBS zaproponuje Ci wybór sys-
temu operacyjnego. W tej ksi(cid:200)(cid:285)ce korzystamy z systemu Raspbian, a wi(cid:218)c zaznacz
pole znajduj(cid:200)ce si(cid:218) obok nazwy tego systemu i kliknij przycisk Install (instaluj).
Instalacja systemu operacyjnego jest d(cid:239)ugotrwa(cid:239)a, a wi(cid:218)c obserwuj wskazania sys-
temu wykrywaj(cid:200)cego zombie i upewnij si(cid:218), czy dysponujesz odpowiednim zapasem
akumulatorów. Po zako(cid:241)czeniu instalacji mo(cid:285)esz wykona(cid:202) kolejne czynno(cid:258)ci.
Do systemu Raspbian do(cid:239)(cid:200)czono wiele u(cid:285)ytecznych programów, ale w chwili
pisania tej ksi(cid:200)(cid:285)ki brakuje w nim porz(cid:200)dnej przegl(cid:200)darki internetowej, która
b(cid:218)dzie wspó(cid:239)pracowa(cid:239)a z kamer(cid:200) sieciow(cid:200). Moj(cid:200) ulubion(cid:200) przegl(cid:200)dark(cid:200) jest
Chromium — zmodyfikowana wersja Google Chrome, która dzia(cid:239)a sprawnie po
uruchomieniu na skromnych zasobach komputera Raspberry Pi. Aplikacja Chro-
mium, tak jak wi(cid:218)kszo(cid:258)(cid:202) darmowego oprogramowania, musi zosta(cid:202) pobrana
z internetu.
Przepraszam, je(cid:285)eli jest ju(cid:285) na to za pó(cid:283)no, ale musisz teraz pod(cid:239)(cid:200)czy(cid:202) Rasp-
berry Pi do swojego domowego routera za pomoc(cid:200) kabla Ethernet i zainstalowa(cid:202)
przegl(cid:200)dark(cid:218) Chromium. Kliknij ikon(cid:218) LX Terminal znajduj(cid:200)c(cid:200) si(cid:218) na pulpicie.
Spowoduje to otwarcie okna terminala, w którym b(cid:218)dzie widoczny tylko znak
zach(cid:218)ty:
$
100
R o z d z i a (cid:239) 5
Poleć książkęKup książkęZa ka(cid:285)dym razem, gdy b(cid:218)d(cid:218) Ci(cid:218) prosi(cid:239) o wpisanie jakiego(cid:258) polecenia, b(cid:218)d(cid:218)
podawa(cid:239) je obok znaku zach(cid:218)ty, którego nie musisz wpisywa(cid:202). W otwartym wcze-
(cid:258)niej oknie wprowad(cid:283) nast(cid:218)puj(cid:200)ce polecenia:
$ sudo apt-get update
$ sudo apt-get install chromium
Polecenie sudo (z ang. substitute user do) umo(cid:285)liwia wykonywanie polece(cid:241)
administracyjnych. Nale(cid:285)y poprzedzi(cid:202) nim polecenia wymagaj(cid:200)ce uprawnie(cid:241) admi-
nistratora — przyk(cid:239)adem takich polece(cid:241) s(cid:200) polecenia instaluj(cid:200)ce nowe oprogra-
mowanie, z których teraz korzystamy.
Program zarz(cid:200)dzaj(cid:200)cy pakietami apt-get jest sk(cid:239)adnikiem dystrybucji systemu
Linux opartych na projekcie Debian i s(cid:239)u(cid:285)y do zarz(cid:200)dzania oprogramowaniem
i instalowania aplikacji. Polecenie update u(cid:285)yte wraz z poleceniem apt-get
powoduje aktualizacj(cid:218) listy programów dost(cid:218)pnych w internetowych repozytoriach.
Polecenie apt-get install sprawi, (cid:285)e program apt-get znajdzie i zainstaluje naj-
nowsz(cid:200) wersj(cid:218) pakietu okre(cid:258)lanego przez ostatni argument, który w tym przy-
padku okre(cid:258)la konieczno(cid:258)(cid:202) zainstalowania przegl(cid:200)darki Chromium.
Po zainstalowaniu przegl(cid:200)darki Chromium mo(cid:285)esz przyst(cid:200)pi(cid:202) do pracy nad
projektem monitoringu przeznaczonego do obserwowania poczyna(cid:241) zombie!
Projekt 7.
Monitorowanie zombie za pomoc(cid:200)
kamery sieciowej wyposa(cid:285)onej w interfejs USB
W tym projekcie b(cid:218)dziemy korzysta(cid:202) z taniej kamery sieciowej wyposa(cid:285)onej
w interfejs USB, któr(cid:200) pod(cid:239)(cid:200)czymy do Raspberry Pi za pomoc(cid:200) d(cid:239)ugiego przewodu.
Maksymalna d(cid:239)ugo(cid:258)(cid:202) kabla USB 2.0 wynosi 30 m, a wi(cid:218)c kamer(cid:218) mo(cid:285)esz umie(cid:258)ci(cid:202)
nawet w takiej odleg(cid:239)o(cid:258)ci od komputera.
Wi(cid:218)kszo(cid:258)(cid:202) elementów projektu wida(cid:202) na rysunku 5.5. Kamera internetowa
znajduje si(cid:218) poza kadrem po lewej stronie biurka, a wi(cid:218)c pokaza(cid:239)em j(cid:200) na dodat-
kowym obrazku widocznym w prawym górnym rogu tego rysunku. Samodzielna
konstrukcja systemu monitoringu, w przeciwie(cid:241)stwie do gotowych zestawów
telewizji przemys(cid:239)owej, umo(cid:285)liwia zaprojektowanie oprogramowania idealnie dopa-
sowanego do Twoich potrzeb.
Kamera sieciowa jest sterowana za pomoc(cid:200) krótkiego programu napisanego
w Pythonie. Program ten wykrywa zmiany przechwytywanego obrazu. Po wykry-
ciu ruchu zmienia on z zielonego na czerwony kolor (cid:258)wiat(cid:239)a emitowanego przez
diod(cid:218) RGB pod(cid:239)(cid:200)czon(cid:200) do pinów z(cid:239)(cid:200)cza GPIO p(cid:239)ytki Raspberry Pi. Alarm mo(cid:285)esz
skasowa(cid:202), wciskaj(cid:200)c klawisz spacji — spowoduje to zmian(cid:218) koloru (cid:258)wiat(cid:239)a emito-
wanego przez diod(cid:218) z powrotem na zielony.
M o n i t o r i n g i R a s pb e r r y P i
101
Poleć książkęKup książkęRysunek 5.5. Kamera monitoruj(cid:200)ca poczynania zombie oraz alarm wykrywaj(cid:200)cy ruch
Projekt ten ma t(cid:218) przewag(cid:218) nad projektem opisanym w rozdziale 4., w pod-
rozdziale „Projekt 6. Wykrywanie zombie za pomoc(cid:200) podczerwieni”, (cid:285)e po uru-
chomieniu alarmu b(cid:218)dziesz móg(cid:239) dok(cid:239)adnie przyjrze(cid:202) si(cid:218) zombie, który chce Ci(cid:218)
zaatakowa(cid:202).
Czego b(cid:218)dziesz potrzebowa(cid:239)?
Do wykonania tego projektu b(cid:218)dziesz potrzebowa(cid:239) systemu opartego na p(cid:239)ytce
Raspberry Pi (opisanego w podrozdziale „Raspberry Pi”) i nast(cid:218)puj(cid:200)cych kompo-
nentów:
Komponent
(cid:135) Kamera USB
(cid:135) Przed(cid:239)u(cid:285)acz kabla USB
(cid:135) Raspberry Squid — dioda
RGB i nak(cid:239)adka u(cid:239)atwiaj(cid:200)ca
prac(cid:218) ze z(cid:239)(cid:200)czem GPIO
Uwagi
List(cid:218) kompatybilnych kamer znajdziesz
na stronie: http://elinux.org/RPi_USB_
Webcams
Wybierz kabel o w(cid:239)a(cid:258)ciwej d(cid:239)ugo(cid:258)ci
(nie mo(cid:285)e ona przekracza(cid:202) 30 m)
Dioda RGB z rezystorami ograniczaj(cid:200)cymi
oraz przewodami umo(cid:285)liwiaj(cid:200)cymi
pod(cid:239)(cid:200)czenie jej do gniazda GPIO
(cid:189)ród(cid:239)o
Sklep komputerowy
Sklep komputerowy
Allegro, http://www.
monkmakes.com/squid/
102
R o z d z i a (cid:239) 5
Poleć książkęKup książkęNie ka(cid:285)da kamera USB jest kompatybilna z Raspberry Pi. List(cid:218) kompatybilnych
urz(cid:200)dze(cid:241) znajdziesz na stronie: http://elinux.org/RPi_USB_Webcams. W swojej
wersji opisywanego projektu skorzysta(cid:239)em z kamery HP 2300 Webcam.
Wskazówka
Istnieje specjalny modu(cid:239) kamery o wysokiej rozdzielczo(cid:258)ci przeznaczonej dla Rasp-
berry Pi, pod(cid:239)(cid:200)czany bezpo(cid:258)rednio do specjalnego gniazda p(cid:239)ytki Raspberry Pi.
Modu(cid:239) ten sprawdza si(cid:218) doskonale jako kamera, jednak w naszym projekcie nie
mo(cid:285)emy z niego skorzysta(cid:202), poniewa(cid:285) kamera, której u(cid:285)ywamy, musi by(cid:202) zainsta-
lowana w du(cid:285)ej odleg(cid:239)o(cid:258)ci od Raspberry Pi.
Raspberry Squid jest praktycznym gad(cid:285)etem stworzonym z my(cid:258)l(cid:200) o Rasp-
berry Pi. Jest to dioda RGB LED z wbudowanymi rezystorami ograniczaj(cid:200)cymi,
któr(cid:200) mo(cid:285)esz pod(cid:239)(cid:200)czy(cid:202) bezpo(cid:258)rednio do pinów portu GPIO. Projekt ten jest
otwarty i instrukcje umo(cid:285)liwiaj(cid:200)ce jego samodzielne zbudowanie znajdziesz na
stronie: https://github.com/simonmonk/squid/. Istnieje równie(cid:285) mo(cid:285)liwo(cid:258)(cid:202) zakupu
gotowego gad(cid:285)etu. Wi(cid:218)cej informacji na ten temat znajdziesz na stronie: http://
www.monkmakes.com/.
Konstrukcja
Po po(cid:239)(cid:200)czeniu ze sob(cid:200) wszystkich komponentów wymienionych w sekcji „System
Raspberry Pi” b(cid:218)dziesz musia(cid:239) jedynie pod(cid:239)(cid:200)czy(cid:202) diod(cid:218) Raspberry Squid do portu
GPIO, kamer(cid:218) do gniazda USB, monitor do pr(cid:200)du o napi(cid:218)ciu 12 V i Raspberry
Pi do pr(cid:200)du o napi(cid:218)ciu 5 V (rysunek 5.6).
Krok 1. Pod(cid:239)(cid:200)cz diod(cid:218) Raspberry Squid
Steruj(cid:200)c trzema z(cid:239)(cid:200)czami, do których pod(cid:239)(cid:200)czona jest dioda Raspberry Squid, mo(cid:285)na
wygenerowa(cid:202) dowolny kolor emitowanego przez ni(cid:200) (cid:258)wiat(cid:239)a. W projekcie nie
b(cid:218)dziemy korzysta(cid:202) z pe(cid:239)nego potencja(cid:239)u tej diody, poniewa(cid:285) potrzebujemy jedynie
(cid:258)wiate(cid:239) zielonego i czerwonego.
W celu u(cid:239)atwienia identyfikacji pinów z(cid:239)(cid:200)cza GPIO mo(cid:285)esz skorzysta(cid:202) ze spe-
cjalnego szablonu. Szablony takie znajdziesz w ofercie ró(cid:285)nych dostawców, m.in.
udost(cid:218)pnia je Adafruit. Przyk(cid:239)adem takiego szablonu jest Raspberry Leaf do(cid:239)(cid:200)-
czany do gotowej diody Raspberry Squid. Szablon na(cid:239)ó(cid:285) na piny z(cid:239)(cid:200)cza GPIO —
b(cid:218)dziesz móg(cid:239) z (cid:239)atwo(cid:258)ci(cid:200) zidentyfikowa(cid:202) poszczególne styki tego z(cid:239)(cid:200)cza. Teraz
mo(cid:285)esz pod(cid:239)(cid:200)czy(cid:202) diod(cid:218) Raspberry Squid (rysunek 5.7).
Czarny przewód diody Raspberry Squid nale(cid:285)y pod(cid:239)(cid:200)czy(cid:202) do dowolnego pinu
oznaczonego etykiet(cid:200) GND (masa). Proponuj(cid:218), aby(cid:258) skorzysta(cid:239) w tym celu z trzecie-
go pinu (licz(cid:200)c od góry) znajduj(cid:200)cego si(cid:218) w prawym rz(cid:218)dzie styków (patrz(cid:200)c na
p(cid:239)ytk(cid:218) tak, jak pokazano na rysunku 5.7). Czerwony przewód diody Raspberry
Squid pod(cid:239)(cid:200)cz do pinu numer 18, a zielony do pinu numer 23. Nie b(cid:218)dziesz
potrzebowa(cid:239) koloru niebieskiego, a wi(cid:218)c niebieski przewód diody Raspberry Squid
mo(cid:285)esz pozostawi(cid:202) niepod(cid:239)(cid:200)czony, ale dla porz(cid:200)dku mo(cid:285)esz go pod(cid:239)(cid:200)czy(cid:202) do
dowolnego z pozosta(cid:239)ych pinów z(cid:239)(cid:200)cza GPIO oznaczonych etykiet(cid:200) GND.
M o n i t o r i n g i R a s pb e r r y P i
103
Poleć książkęKup książkęRysunek 5.6. Schemat systemu monitoringu
Rysunek 5.7. Pod(cid:239)(cid:200)czanie diody Raspberry Squid do z(cid:239)(cid:200)cza GPIO
Krok 2. Zainstaluj kamer(cid:218) USB
Je(cid:285)eli masz ju(cid:285) kamer(cid:218) USB, to przed ewentualnym zakupem innego modelu
sprawd(cid:283), czy posiadany przez Ciebie egzemplarz wspó(cid:239)pracuje z Raspberry Pi.
Na pocz(cid:200)tku sprawd(cid:283), czy Raspberry Pi wykrywa Twoj(cid:200) kamer(cid:218) jako urz(cid:200)dzenie
104
R o z d z i a (cid:239) 5
Poleć książkęKup książkęUSB — w oknie LXTerminal wpisz polecenie lsusb. Polecenie to nale(cid:285)y wpisa(cid:202) po
raz pierwszy przed pod(cid:239)(cid:200)czeniem kamery do komputera oraz po raz drugi po jej
pod(cid:239)(cid:200)czeniu (nie korzystaj jeszcze z przed(cid:239)u(cid:285)acza kabla USB).
$ lsusb
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp.
Bus 001 Device 004: ID 03f0:e207 Hewlett-Packard
Bus 001 Device 006: ID 04d9:1603 Holtek Semiconductor, Inc. Keyboard
Bus 001 Device 005: ID 1c4f:0034 SiGma Micro
Je(cid:285)eli po pod(cid:239)(cid:200)czeniu kamery na li(cid:258)cie pojawia si(cid:218) dodatkowe urz(cid:200)dzenie, to
powinno by(cid:202) ono Twoj(cid:200) kamer(cid:200). Moja kamera jest wy(cid:258)wietlana na powy(cid:285)szej li(cid:258)cie
jako jej czwarty element (licz(cid:200)c od góry).
Je(cid:285)eli Twoja kamera nie pojawia si(cid:218) na li(cid:258)cie, to spróbuj j(cid:200) od(cid:239)(cid:200)czy(cid:202), pod(cid:239)(cid:200)czy(cid:202)
ponownie, a nast(cid:218)pnie po raz kolejny uruchomi(cid:202) polecenie lsusb. Je(cid:285)eli to nie
zadzia(cid:239)a, spróbuj uruchomi(cid:202) Raspberry Pi ponownie.
Niestety, wykrywanie kamery jako urz(cid:200)dzenia USB nie gwarantuje jej poprawnej
wspó(cid:239)pracy z Raspberry Pi. Oka(cid:285)e si(cid:218) to dopiero po uruchomieniu programu.
Mo(cid:285)e by(cid:202) tak, (cid:285)e Twoja kamera dzia(cid:239)a poprawnie dopiero po pod(cid:239)(cid:200)czeniu do
aktywnego koncentratora USB. W przypadku starszych modeli Raspberry Pi
pod(cid:239)(cid:200)czenie kamery do portu USB mo(cid:285)e powodowa(cid:202) ponowne uruchamianie si(cid:218)
ca(cid:239)ego systemu. W takim przypadku kamer(cid:218) nale(cid:285)y pod(cid:239)(cid:200)czy(cid:202) przed uruchomie-
niem Raspberry Pi.
Krok 3. Instalacja oprogramowania
Pod(cid:239)(cid:200)cz Raspberry Pi do sieci za pomoc(cid:200) kabla Ethernet. Upewnij si(cid:218), (cid:285)e po(cid:239)(cid:200)-
czenie z internetem jest aktywne, i pobierz archiwum z kodami programów opi-
sanych w tej ksi(cid:200)(cid:285)ce. W celu pobrania tego archiwum uruchom przegl(cid:200)dark(cid:218)
internetow(cid:200) i wpisz w jej oknie adres: http://www.helion.pl/ksiazki/apokal.htm.
Na stronie tej znajdziesz odwo(cid:239)anie do pliku b(cid:218)d(cid:200)cego archiwum z kodem. Podczas
pracy nad tym projektem b(cid:218)dziesz korzysta(cid:239) z kodu znajduj(cid:200)cego si(cid:218) w folderze
usb_webcam. Archiwum z kodem mo(cid:285)esz pobra(cid:202) równie(cid:285) bezpo(cid:258)rednio z serwera
FTP (ramka „Pobieranie kodu z serwera”).
Kod programu monitor.py napisanego w Pythonie jest do(cid:258)(cid:202) krótki — wyja-
(cid:258)ni(cid:218) go w dalszej cz(cid:218)(cid:258)ci tego podrozdzia(cid:239)u. Nie b(cid:218)d(cid:218) tu opisywa(cid:239) zagadnie(cid:241)
zwi(cid:200)zanych z j(cid:218)zykiem Python, które wykraczaj(cid:200) poza tematyk(cid:218) tego projektu.
Je(cid:285)eli nie mia(cid:239)e(cid:258) wcze(cid:258)niej styczno(cid:258)ci z tym j(cid:218)zykiem programowania, to mo-
(cid:285)esz zajrze(cid:202) do mojej ksi(cid:200)(cid:285)ki Raspberry Pi. Przewodnik dla programistów Py-
thona (Helion, 2014).
Kod programu rozpoczyna si(cid:218) od polece(cid:241) importuj(cid:200)cych modu(cid:239)y, z których
korzysta aplikacja. Importowane biblioteki wchodz(cid:200) w sk(cid:239)ad systemu Raspbian,
a wi(cid:218)c nie b(cid:218)dziesz musia(cid:239) ich dodatkowo instalowa(cid:202).
M o n i t o r i n g i R a s pb e r r y P i
105
Poleć książkęKup książkęPOBIERANIE KODU Z SERWERA
Kod wszystkich programów opisanych w tej ksi(cid:200)(cid:285)ce mo(cid:285)esz pobra(cid:202) z serwera FTP.
Mo(cid:285)esz to zrobi(cid:202), wpisuj(cid:200)c w oknie przegl(cid:200)darki adres: ftp://ftp.helion.pl/
przyklady/apokal.zip lub wpisuj(cid:200)c w oknie LXTerminal polecenie:
$ wget ftp://ftp.helion.pl/przyklady/apokal.zip
Spowoduje to pobranie archiwum zawieraj(cid:200)cego kod programów (b(cid:218)dzie do
tego potrzebne po(cid:239)(cid:200)czenie z internetem, a wi(cid:218)c plik ten warto pobra(cid:202), zanim
rozpocznie si(cid:218) apokalipsa).
Pobrane archiwum nale(cid:285)y rozpakowa(cid:202). W tym celu uruchom polecenie:
$ unzip apokal.zip
W niektórych dystrybucjach systemu Linux rozpakowanie pliku mo(cid:285)e wyma-
ga(cid:202) zainstalowania specjalnego narz(cid:218)dzia. W tym celu uruchom polecenie:
$ sudo apt-get install unzip
import sys
import time
import pygame
import pygame.camera
import RPi.GPIO as GPIO
Modu(cid:239)y time i sys zawieraj(cid:200) narz(cid:218)dzia umo(cid:285)liwiaj(cid:200)ce dost(cid:218)p do systemu opera-
cyjnego i u(cid:258)pienie programu (jest to sposób na opó(cid:283)nienie wykonywania niektó-
rych operacji). Modu(cid:239) pygame zawiera graficzn(cid:200) bibliotek(cid:218) gier Pygame, w której
znajduje si(cid:218) interfejs obs(cid:239)uguj(cid:200)cy kamer(cid:218). Program wymaga równie(cid:285) dost(cid:218)pu
do systemu GPIO w celu sterowania prac(cid:200) diody LED — umo(cid:285)liwia to biblio-
teka RPi.GPIO.
W dalszej cz(cid:218)(cid:258)ci kodu znajduj(cid:200) si(cid:218) sta(cid:239)e, które b(cid:218)d(cid:200) u(cid:285)ywane przez program.
Mo(cid:285)esz je zmodyfikowa(cid:202), je(cid:285)eli chcesz korzysta(cid:202) z obrazu kamery o innej rozdziel-
czo(cid:258)ci lub je(cid:285)eli chcesz zwi(cid:218)kszy(cid:202) domy(cid:258)lny rozmiar okna.
camera_res = (320, 240)
window_size = (640, 480)
red_pin = 18
green_pin = 23
Parametry znajduj(cid:200)ce si(cid:218) w nawiasach po sta(cid:239)ych camera_res i window_size
okre(cid:258)laj(cid:200) kolejno szeroko(cid:258)(cid:202) i wysoko(cid:258)(cid:202) wyra(cid:285)one w pikselach. Kod znajduj(cid:200)cy
si(cid:218) po tych sta(cid:239)ych inicjalizuje system Pygame (u(cid:285)ywany do wy(cid:258)wietlania obrazu
rejestrowanego przez kamer(cid:218)), kamer(cid:218) oraz porty GPIO, które umo(cid:285)liwiaj(cid:200) ste-
rowanie barw(cid:200) diody Raspberry Squid:
106
R o z d z i a (cid:239) 5
Poleć książkęKup książkępygame.init()
pygame.camera.init()
# Inicjalizuj z(cid:225)(cid:261)cze GPIO.
GPIO.setmode(GPIO.BCM)
GPIO.setup(red_pin, GPIO.OUT)
GPIO.setup(green_pin, GPIO.OUT)
screen = pygame.display.set_mode(window_size, 0)
# Znajd(cid:296), otwórz i uruchom kamer(cid:266) o niskiej rozdzielczo(cid:286)ci.
cam_list = pygame.camera.list_cameras()
webcam = pygame.camera.Camera(cam_list[0], camera_res)
webcam.start()
old_image = False
Pierwsze dwie linie kodu inicjalizuj(cid:200)cego (
) obs(cid:239)uguj(cid:200) bibliotek(cid:218) Pygame
) inicjalizuj(cid:200) porty z(cid:239)(cid:200)cza GPIO. Nast(cid:218)pnie inicjali-
i kamer(cid:218), a kolejne trzy linie (
) — przybiera on wymiary okre(cid:258)lone przez sta(cid:239)(cid:200) window_size.
zowany jest ekran (
) wyszukuje wszystkie kamery
Kolejny fragment kodu (oznaczony numerem
pod(cid:239)(cid:200)czone do Raspberry Pi, a nast(cid:218)pnie tworzy odwo(cid:239)anie do pierwszej z nich
(webcam). Nast(cid:218)pnie kamera ta jest uruchamiana. Ostatnia linia kodu (
) definiuje
zmienn(cid:200) o nazwie old_image, która jest u(cid:285)ywana do wykrywania ruchu w wyniku
porównywania ze sob(cid:200) kolejnych klatek rejestrowanych przez kamer(cid:218).
Po inicjalizacji wszystkich elementów program uruchamia sprawdzaj(cid:200)c(cid:200) ruch
funkcj(cid:218) check_for_movement:
def check_for_movement(old_image, new_image):
global c
diff_image = pygame.PixelArray(new_image)
.compare(pygame.PixelArray(old_image), distance=0.5,
weights=(0.299, 0.587, 0.114))
ys = range(0, camera_res[1] / 20)
for x in range(0, camera_res[0] / 20):
for y in ys:
if diff_image[x*20, y*20] 0:
return True
return False
Funkcja check_for_movement porównuje ze sob(cid:200) dwa obrazy: poprzedni(cid:200) klatk(cid:218)
(old_image) i ostatni(cid:200) klatk(cid:218) (old_image). Parametr distance jest u(cid:285)ywany do porów-
nywania (compare) ró(cid:285)nicy pomi(cid:218)dzy kolorami odpowiadaj(cid:200)cych sobie pikseli obu
obrazów. Parametr weights nie jest wyja(cid:258)niony w dokumentacji biblioteki
pygame, a warto(cid:258)ci u(cid:285)yte w tym programie zosta(cid:239)y wzi(cid:218)te z przyk(cid:239)adu PixelArray
przedstawionego w dokumentacji tej biblioteki (http://www.pygame.org/docs/ref/
pixelarray.html).
W wyniku operacji porównywania powstaje nowy obraz o nazwie diff_image,
w którym bia(cid:239)e piksele zosta(cid:239)y wstawione w miejsca, gdzie wykryto ró(cid:285)nic(cid:218) kolorów.
M o n i t o r i n g i R a s pb e r r y P i
107
Poleć książkęKup książkęW celu wykrycia ruchu program powinien przeanalizowa(cid:202) ka(cid:285)dy piksel obrazu
diff_image, ale du(cid:285)y ruch spowoduje zmian(cid:218) wielu pikseli, a zombie s(cid:200) du(cid:285)e.
W zwi(cid:200)zku z tym kod analizuje co dwudziesty piksel.
Kolejne dwie funkcje sprawiaj(cid:200), (cid:285)e dioda Raspberry Squid emituje czerwone
(red) lub zielone (green) (cid:258)wiat(cid:239)o:
def led_red():
GPIO.output(red_pin, True)
GPIO.output(green_pin, False)
def led_green():
GPIO.output(red_pin, False)
GPIO.output(green_pin, True)
Raspberry Squid jest zwyczajn(cid:200) diod(cid:200) RGB LED i tak jak w przypadku
wi(cid:218)kszo(cid:258)ci diod tego typu kolor emitowanego przez ni(cid:200) (cid:258)wiat(cid:239)a mo(cid:285)na okre(cid:258)li(cid:202),
stosuj(cid:200)c odpowiedni(cid:200) kombinacj(cid:218) wysokich (True) i niskich (False) stanów sygna(cid:239)ów
podawanych na piny z(cid:239)(cid:200)cza GPIO, do których pod(cid:239)(cid:200)czona jest dioda. W tym
projekcie chcemy, aby dioda emitowa(cid:239)a (cid:258)wiat(cid:239)o o kolorach czerwonym i zielo-
nym, a wi(cid:218)c kod przekazuje do jednego z pinów argument True, a do drugiego
argument False. Nie korzystamy tu z koloru niebieskiego, a wi(cid:218)c nie musimy zaj-
mowa(cid:202) si(cid:218) trzecim emiterem diody.
Na koniec doszli(cid:258)my do g(cid:239)ównej p(cid:218)tli programu, która przechwytuje now(cid:200)
klatk(cid:218) obrazu i skaluje j(cid:200) tak, aby mo(cid:285)na j(cid:200) by(cid:239)o wy(cid:258)wietli(cid:202) w oknie programu:
count = 0
led_green()
while True:
count = count + 1
new_image = webcam.get_image()
# Zdefiniuj obraz old_image podczas pierwszego wykonania kodu p(cid:266)tli.
if not old_image:
old_image = new_image
scaled_image = pygame.transform.scale(new_image, window_size)
# Pnly sprawdza co dziesi(cid:261)t(cid:261) klatk(cid:266).
if (count 10) == 0 :
if check_for_movement(old_image, new_image):
led_red()
count = 0
old_image = new_image
screen.blit(scaled_image, (0, 0))
pygame.display.update()
Zmienna count przechowuje liczb(cid:218) wywo(cid:239)a(cid:241) p(cid:218)tli. Gdy zmienna count osi(cid:200)gnie
warto(cid:258)(cid:202) równ(cid:200) 10, to porównywane s(cid:200) ostatnie dwa obrazy. Analiza co dziesi(cid:200)tego
obrazu przyspiesza dzia(cid:239)anie programu (gdyby nie ten zabieg, dzia(cid:239)a(cid:239)by on zbyt
wolno). W przypadku wykrycia ruchu funkcja check_for_movement zwraca war-
to(cid:258)(cid:202) logiczn(cid:200) True, a kolor (cid:258)wiat(cid:239)a emitowanego przez diod(cid:218) LED jest zmieniany
na czerwony.
108
R o z d z i a (cid:239) 5
Poleć książkęKup książkęOstatnia cz(cid:218)(cid:258)(cid:202) kodu g(cid:239)ównej p(cid:218)tli programu sprawdza wyst(cid:200)pienie zdarzenia
zamkni(cid:218)cia okna, które powoduje zatrzymanie dzia(cid:239)ania programu:
# Sprawd(cid:296) wyst(cid:261)pienie zdarze(cid:276).
for event in pygame.event.get():
if event.type == pygame.QUIT:
webcam.stop()
pygame.quit()
sys.exit()
if event.type == pygame.KEYDOWN:
print(event.key)
if event.key == 32: # spacja
led_green()
Podczas sprawdzania wyst(cid:200)pienia zdarze(cid:241) przechwytywane s(cid:200) równie(cid:285) zda-
rzenia polegaj(cid:200)ce na wci(cid:258)ni(cid:218)ciu klawisza (KEYDOWN). Po wci(cid:258)ni(cid:218)ciu spacji program
zmienia kolor (cid:258)wiat(cid:239)a emitowanego przez diod(cid:218) LED na zielony.
Korzystanie z kamery
W celu uruchomienia kamery w oknie terminala Raspberry Pi wpisz wymienione
ni(cid:285)ej polecenia. Powinny one spowodowa(cid:202) otwarcie okna pokazuj(cid:200)cego podgl(cid:200)d
obrazu rejestrowanego przez kamer(cid:218) (rysunek 5.8).
$ cd /home/pi/zombie/Raspberry Pi/usb_webcam
$ sudo python monitor.py
Rysunek 5.8. Dzia(cid:239)anie kamery USB
M o n i t o r i n g i R a s pb e r r y P i
109
Poleć książkęKup książkęDioda Raspberry Squid powinna teraz emitowa(cid:202) (cid:258)wiat(cid:239)o zielone. W celu spraw-
dzenia dzia(cid:239)ania mechanizmu wykrywaj(cid:200)cego ruch pomachaj r(cid:218)k(cid:200) przed obiek-
tywem kamery. Dioda LED powinna zmieni(cid:202) kolor emitowanego (cid:258)wiat(cid:239)a na czer-
wony. Zmiana koloru na zielony nast(cid:200)pi dopiero po wci(cid:258)ni(cid:218)ciu klawisza spacji.
Je(cid:285)eli wszystko dzia(cid:239)a poprawnie po pod(cid:239)(cid:200)czeniu kamery bezpo(cid:258)rednio do
Raspberry Pi, czas sprawdzi(cid:202) dzia(cid:239)anie kamery po pod(cid:239)(cid:200)czeniu jej za po(cid:258)red-
nictwem przed(cid:239)u(cid:285)acza kabla USB. Kamer(cid:218) zamontuj w miejscu umo(cid:285)liwiaj(cid:200)cym
podgl(cid:200)d wej(cid:258)cia do bazy (dzi(cid:218)ki kamerze b(cid:218)dziesz wiedzia(cid:239), czy mo(cid:285)esz bezpiecznie
wyj(cid:258)(cid:202) z bazy).
Istnieje pewna d(cid:239)ugo(cid:258)(cid:202) kabla, po przekroczeniu której zniekszta(cid:239)cenia sygna(cid:239)u
generowanego przez kamer(cid:218) b(cid:218)d(cid:200) na tyle du(cid:285)e, (cid:285)e Raspberry
Pobierz darmowy fragment (pdf)