Darmowy fragment publikacji:
Matt Richardson
Shawn Wallace
Wprowadzenie
do Raspberry Pi
Przekład: Maria Chaniewska
APN Promise 2013
##7#52#aSUZPUk1BVC1WaXJ0dWFsbw==
Wprowadzenie do Raspberry Pi
Polish edition copyright © 2013 APN PROMISE SA
Authorized Polish translation of English edition of Getting Started with
Raspberry Pi, ISBN: 978-1-449-34421-4
Copyright © 2013 Matt Richardson and Shawn Wallace. All rights reserved.
This translation is published and sold by permission of O’Reilly Media, Inc.,
which owns or controls all rights to publish and sell the same.
APN PROMISE SA, biuro: ul. Kryniczna 2, 03-934 Warszawa
tel. +48 22 35 51 600, fax +48 22 35 51 699
e-mail: mspress@promise.pl
Wszystkie prawa zastrzeżone. Żadna część niniejszej książki nie może być
powielana ani rozpowszechniana w jakiejkolwiek formie i w jakikolwiek sposób
(elektroniczny, mechaniczny), włącznie z fotokopiowaniem, nagrywaniem
na taśmy lub przy użyciu innych systemów bez pisemnej zgody wydawcy.
Wszystkie wymienione w książce nazwy mogą być znakami towarowymi lub
zarejestrowanymi znakami towarowymi ich odnośnych właścicieli i zostały użyte
tylko w celach identyfikacyjnych.
APN PROMISE SA dołożyła wszelkich starań, aby zapewnić najwyższą jakość
tej publikacji. Jednakże nikomu nie udziela się rękojmi ani gwarancji.
APN PROMISE SA nie jest w żadnym wypadku odpowiedzialna za jakiekolwiek
szkody będące następstwem korzystania z informacji zawartych w niniejszej
publikacji, nawet jeśli APN PROMISE została powiadomiona o możliwości
wystąpienia szkód.
ISBN: 978-83-7541-132-4
Projekt graficzny okładki: Randy Comer
Ilustracje: Marc de Vinc
Przekład: Maria Chaniewska
Korekta: Ewa Swędrowska
Skład i łamanie: MAWart Marek Włodarz
##7#52#aSUZPUk1BVC1WaXJ0dWFsbw==
Spis treści
Przedmowa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
Co możemy z tym robić? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vii
Raspberry Pi dla majsterkowiczów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . viii
Linux i Raspberry Pi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x
Co inni z tym zrobili . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . x
Konwencje zastosowane w tej książce. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .xi
Korzystanie z przykładów kodu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
Jak się z nami skontaktować . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xii
Podziękowania . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xiii
1 Uruchamianie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
Przewodnik po płytkach. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
Właściwe urządzenia peryferyjne . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6
Obudowa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8
Wybór dystrybucji . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
Karty Flash SD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
Rozruch. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
Konfi gurowanie komputera Pi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Wyłączanie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Rozwiązywanie problemów. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
Dodatkowe informacje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2 Podstawy Linuksa na Raspberry Pi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
Korzystanie z wiersza poleceń . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Pliki i system plików . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Więcej poleceń Linuksa. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26
Procesy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Sudo i uprawnienia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
Sieć . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
/etc . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Określanie daty i czasu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
Instalacja nowego oprogramowania. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
Dodatkowe informacje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
##7#52#aSUZPUk1BVC1WaXJ0dWFsbw==
iii
3 Język Python na komputerze Pi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
Witaj Python. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36
Odrobinę więcej o języku Python . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
Obiekty i moduły . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
Jeszcze więcej modułów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
Rozwiązywanie problemów. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
Dodatkowe informacje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4 Animacje i multimedia w języku Python. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Witaj Pygame . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
Obiekty Surface biblioteki Pygame. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49
Rysowanie na obiektach klasy Surface. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
Obsługa zdarzeń i wejścia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51
Sprite’y. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
Odtwarzanie dźwięku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56
Odtwarzanie wideo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
Dodatkowe informacje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59
5 Scratch na komputerze Pi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Witaj Scratch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
Scena . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65
Jeszcze dwie informacje na temat sprite’ów. . . . . . . . . . . . . . . . . . . . . . . . . . . . 66
Większy przykład: gra Przybysze z kosmosu . . . . . . . . . . . . . . . . . . . . . . . . . . . 68
Scratch i świat rzeczywisty. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73
Udostępnianie programów . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Dodatkowe informacje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
6 Platformy Arduino i Pi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77
Instalacja Arduino w systemie Raspbian. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78
Znajdowanie portu szeregowego . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Komunikacja szeregowa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
Dodatkowe informacje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
7 Podstawowe wejście i wyjście . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87
Używanie wejść i wyjść . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
Wyjście cyfrowe: świecenie diody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
Wejście cyfrowe: odczytywanie stanu przycisku . . . . . . . . . . . . . . . . . . . 94
Projekt: lampa włączana według harmonogramu cron. . . . . . . . . . . . . . . . . 97
Pisanie skryptów poleceń. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98
Podłączanie lampy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99
iv Wprowadzenie do Raspberry Pi
##7#52#aSUZPUk1BVC1WaXJ0dWFsbw==
Harmonogram poleceń w programie cron . . . . . . . . . . . . . . . . . . . . . . .100
Więcej na temat programu cron . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .101
Dodatkowe informacje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .102
8 Programowanie wejść i wyjść w języku Python . . . . . . . . . . . . . . . . . . . . . .103
Instalowanie i testowanie GPIO w języku Python . . . . . . . . . . . . . . . . . . . . .103
Miganie diody. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .106
Czytanie przycisku . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .108
Projekt: prosty odtwarzacz dźwięków . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .110
Dodatkowe informacje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .114
9 Kamery internetowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .115
Testowanie kamer internetowych. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .116
Instalowanie i testowanie biblioteki SimpleCV. . . . . . . . . . . . . . . . . . . . . . . .117
Wyświetlanie obrazu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .118
Modyfi kowanie obrazu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .120
Dostęp do kamery internetowej . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .122
Rozpoznawanie twarzy . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .124
Projekt: kabina fotografi czna z Raspberry Pi . . . . . . . . . . . . . . . . . . . . . . . . . .125
Dodatkowe informacje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .128
10 Python i Internet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129
Pobieranie danych z serwera www . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .129
Pobieranie prognozy pogody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .131
Komputer Pi jako serwer www. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .136
Podstawy środowiska Flask . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .136
Łączenie sieci WWW ze światem rzeczywistym. . . . . . . . . . . . . . . . . . . . . . .140
Projekt: lampa internetowa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .142
Dodatkowe informacje . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .146
A Zapisywanie obrazu karty SD. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .147
Zapisywanie karty SD z systemu OS X. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .147
Zapisywanie karty SD z systemu Windows . . . . . . . . . . . . . . . . . . . . . . . . . . .148
Zapisywanie karty SD z systemu Linux . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .149
B Przybysze z kosmosu – pełna wersja gry . . . . . . . . . . . . . . . . . . . . . . . . . . . .151
C Wejście analogowe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .157
Konwersja analogowo-cyfrowa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .157
##7#52#aSUZPUk1BVC1WaXJ0dWFsbw==
v
##7#52#aSUZPUk1BVC1WaXJ0dWFsbw==
Przedmowa
Łatwo zrozumieć, dlaczego początkowo wiele osób było sceptycznie
nastawionych do Raspberry Pi. Komputer za 35 dolarów o wielkości
karty kredytowej wydawał się sennym marzeniem. Dlatego, kiedy wszedł
na rynek, wywołał istne szaleństwo.
Całe miesiące popyt przewyższał podaż, a listy oczekujących na te mini-mi-
krokomputery były bardzo długie. Co poza ceną płytki Raspberry Pi sprawi-
ło, że cierpliwość głodnych sprzętu mas została wystawiona na próbę? Zanim
poznamy dogłębnie wszystkie wspaniałe cechy komputera Raspberry Pi, po-
mówmy o jego grupie docelowej.
Eben Upton i jego współpracownicy z Uniwersytetu Cambridge zauważy-
li, że dzisiejsi kandydaci na studia informatyczne nie mają umiejętności kan-
dydatów z lat 1990. Przypisali to – wraz z innymi czynnikami – „wzrostowi
liczby domowych komputerów PC i konsoli do gier, które zastąpiły kompu-
tery marek Amiga, BBC Micro, Spectrum ZX i Commodore 64, na których
wcześniejsze pokolenia uczyły się programować”. Komputer stał się ważny
dla wszystkich osób w gospodarstwie domowym. Dlatego młodzi ludzie byli
powstrzymywani przed majstrowaniem przy nim z obawy przed ewentualnym
uszkodzeniem tak ważnego dla rodziny narzędzia. Jednak ostatnio proceso-
ry telefonów komórkowych i tabletów potaniały, a ich moc się zwiększyła.
Utorowało to drogę Raspberry Pi do świata niezwykle tanich, ale użytecz-
nych płyt głównych komputerów. Jak w wywiadzie dla BBC News powiedział
twórca Linuksa, Linus Torvalds, Raspberry Pi sprawia, że akceptowalne jest
„pozwolenie sobie na awarię”.
Co możemy z tym robić?
Wspaniałą sprawą dotyczącą komputera Raspberry Pi jest to, że nie ma jedne-
go sposobu jego używania. Bez względu na to, czy chcemy po prostu oglądać
fi lmy i korzystać z Internetu, czy chcemy programować, uczyć się i majsterko-
wać przy użyciu tej płytki, Raspberry Pi jest elastyczną platformą do zabawy,
użytkowania i eksperymentowania. Oto zaledwie kilka różnych sposobów
do używania komputera Raspberry Pi:
##7#52#aSUZPUk1BVC1WaXJ0dWFsbw==
vii
Ogólne używanie komputera. Ważne jest, aby pamiętać, że Raspberry Pi
to komputer i możemy faktycznie używać go jako takiego. Po uruchomie-
niu go zgodnie z opisem w rozdziale 1 możemy wybrać, aby zalogować
się do grafi cznego środowiska pulpitu z przeglądarką internetową, tak jak
w przypadku większości nowoczesnych komputerów. Następnie możemy
zainstalować różnorodne darmowe oprogramowanie, na przykład wydajny
pakiet LibreOffi ce (http://www.libreoffi ce.org/) do pracy z dokumentami
i arkuszami kalkulacyjnymi bez konieczności połączenia z Internetem.
Nauka programowania. Ponieważ platforma Raspberry Pi ma być narzędziem
edukacyjnym zachęcającym dzieci do eksperymentowania z komputerami,
zawiera wstępnie załadowane interpretery i kompilatory wielu różnych ję-
zyków programowania. Dla początkujących jest tam Scratch, czyli stworzo-
ny w MIT grafi czny język programowania, który opisaliśmy w rozdziale 5.
Jeżeli chcemy zagłębić się w pisanie kodu, dobrze będzie zacząć od języka
Python, którego podstawy opisaliśmy w rozdziale 3. Nie jesteśmy jednak
ograniczeni tylko do języków Scratch i Python. Możemy programować na
komputerze Raspberry Pi również w wielu innych językach, takich jak C,
Ruby, Java i Perl.
Platforma projektowa. Raspberry Pi różni się od typowego komputera nie tyl-
ko ceną i rozmiarem, ale także zdolnością integrowania z projektami elek-
tronicznymi. Począwszy od rozdziału 7 pokażemy, jak używać Raspberry Pi
do kontrolowania diod LED i urządzeń na prąd zmienny oraz odczytywać
stan przycisków i przełączników.
Raspberry Pi dla majsterkowiczów
My, majsterkowicze, mamy wiele możliwości wyboru, jeżeli chodzi o plat-
formy, na których chcemy budować projekty technologiczne. Ostatnio
powszechnie wybierano płytki projektowe z mikrokontrolerem, takie jak
Arduino, ponieważ łatwo było na nich pracować. Ale platformy system na
układzie scalonym, takie jak Raspberry Pi, znacznie różnią się od tradycyj-
nych mikrokontrolerów. Faktycznie płytka Raspberry Pi ma więcej wspólnego
z komputerem niż z Arduino.
Nie oznacza to, że komputer Raspberry Pi jest lepszy od tradycyjnego mi-
krokontrolera. Jest po prostu inny. Jeżeli na przykład chcemy wykonać pod-
stawowy termostat, prawdopodobniej lepiej będzie dla uproszczenia użyć
Arduino Uno lub podobnego mikrokontrolera. Jeżeli jednak chcemy mieć
możliwość zdalnego dostępu do termostatu przez Internet, aby zmieniać jego
ustawienia i pobierać pliki dziennika temperatur, powinniśmy rozważyć uży-
cie Raspberry Pi.
viii Wprowadzenie do Raspberry Pi
##7#52#aSUZPUk1BVC1WaXJ0dWFsbw==
Wybór między jednym a drugim zależy od wymagań projektu, a tak na-
prawdę nie musimy koniecznie wybierać między nimi. W rozdziale 6 poka-
żemy, jak używać Raspberry Pi do programowania Arduino i jak umożliwić
komunikację między tymi platformami.
Podczas lektury tej książki lepiej zrozumiemy, jakie są mocne strony płytki
Raspberry Pi oraz dlaczego może stać się dodatkowym przydatnym narzę-
dziem w skrzynce majsterkowicza.
Ale chwilę… Jest coś jeszcze!
Tak wiele możemy zrobić z Raspberry Pi, że nie mogliśmy zmieścić
wszystkiego w jednej książce. Oto kilka innych sposobów używania
tego komputera:
Centrum multimedialne. Ponieważ Raspberry Pi ma wyjścia wideo
HDMI i analogowe, możemy łatwo połączyć go z telewizorem.
Ma także wystarczającą moc procesora, aby odtwarzać fi lmy peł-
noekranowe w wysokiej rozdzielczości. W celu wykorzystania
tych możliwości twórcy darmowego odtwarzacza multimedialne-
go open source o nazwie XBMC (http://xbmc.org/) przygotowali
także wersję na platformę Raspberry Pi. Odtwarzacz XBMC może
odtwarzać wiele formatów multimedialnych, a jego interfejs składa
się z dużych przycisków i tekstu, więc łatwo może być sterowany
z kanapy. Odtwarzacz XBMC sprawia, że możemy użyć komputera
Raspberry Pi jako składnika całkowicie dostosowywalnego domo-
wego centrum rozrywki.
Programowanie sprzętowe. Większość osób piszących programy kom-
puterowe tworzy kod działający w systemie operacyjnym, takim jak
Windows, Mac OS lub – w przypadku Raspberry Pi – Linux. A gdy-
byśmy tak mogli pisać kod, który działa bezpośrednio na proceso-
rze bez potrzeby korzystania z systemu operacyjnego? Moglibyśmy
nawet napisać własny system operacyjny od podstaw, jeżeli mieli-
byśmy na to ochotę. Wydział Computer Laboratory Uniwersytetu
Cambridge opublikował darmowy kurs online (http://www.cl.cam.
ac.uk/fr eshers/raspberrypi/tutorials/os/), który przeprowadza przez
proces pisania własnego systemu operacyjnego przy użyciu kodu
asemblera.
##7#52#aSUZPUk1BVC1WaXJ0dWFsbw==
ix
Linux i Raspberry Pi
Typowy komputer działa pod kontrolą systemu operacyjnego, takiego jak
Windows, OS X lub Linux. Jest to program, który uruchamia się, gdy włącza-
my komputer, i pozwala aplikacjom na dostęp do funkcji sprzętowych kom-
putera. Jeżeli na przykład piszemy aplikację korzystającą z Internetu, możemy
użyć do tego funkcji systemu operacyjnego. Nie potrzebujemy rozumieć ani
pisać kodu dla wszystkich różnych typów sprzętu Ethernet lub WiFi.
Podobnie jak dowolny inny komputer, Raspberry Pi używa także systemu
operacyjnego, a „seryjnym” systemem operacyjnym jest odmiana Linuksa
o nazwie Raspbian. Linux wspaniale pasuje do Raspberry Pi, ponieważ jest
darmowy i open source. Z jednej strony pomaga zachować niską cenę platfor-
my, a z drugiej czyni ją bardziej programowalną. Ponadto nie jesteśmy ogra-
niczeni tylko do Raspbiana, ponieważ jest wiele różnych odmian, czyli dystry-
bucji, systemu Linux, które możemy załadować do komputera Raspberry Pi.
Jest nawet dostępnych kilka systemów operacyjnych innych niż Linux. W tej
książce będziemy używać standardowej dystrybucji o nazwie Raspbian, któ-
ra jest dostępna ze strony pobierania Raspberry Pi (http://www.raspberrypi.
org/downloads).
Brak znajomości Linuksa nie jest przeszkodą, ponieważ w rozdziale 2
przedstawimy podstawy potrzebne do korzystania z tego systemu.
Co inni z tym zrobili
Kiedy mamy dostęp do ekscytującej nowej technologii, trudno może być nam
zdecydować, co z nią zrobić. Osoby mające wątpliwości mogą czerpać inspira-
cję z wielu interesujących i kreatywnych projektów na platformę Raspberry Pi.
Jako redaktorzy MAKE widzieliśmy wiele fantastycznych rozwiązań wykorzy-
stujących komputer Raspberry Pi i chcemy podzielić się niektórymi z nich.
Stolik kawowy do gier
(http://www.instructables.com/id/Coff ee-Table-Pi/) .
Użytkownik witryny Instructables o nazwie grahamgelding załadował pod-
ręcznik krok po kroku, jak przy użyciu płytki Raspberry Pi zrobić stolik
kawowy, który zastępuje klasyczny emulator gier z automatów. W celu uru-
chomiania gier na komputerze Pi użył emulatora MAME (Multiple Arcade
Machine Emulator), darmowego projektu oprogramowania, który pozwala
uruchamiać klasyczne gry z automatów na nowoczesnych komputerach.
Wewnątrz samego stolika zamontował 24-calowy ekran LCD podłączony
do płytki Raspiberry Pi złączem HDMI oraz klasyczne przyciski z auto-
matu do gier i joystick podłączone do złączy GPIO komputera Pi i służące
jako wejście.
x Wprowadzenie do Raspberry Pi
##7#52#aSUZPUk1BVC1WaXJ0dWFsbw==
Odtwarzacz RasPod (https://github.com/lionaneesh/RasPod). Aneesh Dogra, nasto-
latek z Indii, był jednym z uczestników wydarzenia Summer Coding Contest
zorganizowanego przez Raspberry Pi Foundation w roku 2012. Utworzył
RasPod, czyli bazujący na komputerze Raspberry Pi i sterowany interneto-
wo odtwarzacz audio MP3. Napisał go w języku Python przy zastosowaniu
środowiska internetowego o nazwie Tornado. Odtwarzacz pozwala zdal-
nie logować się do Raspberry Pi, aby włączyć i wyłączyć muzykę, zmienić
głośność, wybrać utwory i sporządzić listy odtwarzania. Muzyka wychodzi
ze złącza audio komputera Raspberry Pi, więc można słuchać jej za pomocą
pary głośników komputerowych ze wzmacniaczem lub systemu stereo.
Superkomputer Raspberry Pi (http://www.southampton.ac.uk/mediacentre/featu-
res/raspberry_pi_supercomputer.shtml). Wiele superkomputerów jest zbu-
dowanych jako klastry standardowych komputerów połączonych ze sobą.
Wykonywane na nich zadania obliczeniowe są rozdzielane między wszyst-
kie różne procesory. Grupa inżynierów informatyków z Uniwersytetu
Southampton w Wielkiej Brytanii połączyła 64 komputery Raspberry Pi,
aby utworzyć niedrogi superkomputer. Chociaż jego moc obliczeniowa jest
daleka od mocy obliczeniowej najsilniejszych dzisiejszych superkompute-
rów, demonstruje zasady tworzenia takich systemów. Co najlepsze, stelaż
użyty do utrzymania tych wszystkich płytek Raspberry Pi został zbudowa-
ny z klocków Lego przez 6-letniego syna kierownika zespołu.
Jeśli zrobicie coś interesującego z Raspberry Pi, chętnie o tym usłyszymy.
Możecie wysyłać swoje projekty do redakcji MAKE przez nasz formularz zgło-
szeniowy w Makezine.com (http://blog.makezine.com/contribute/).
Konwencje zastosowane w tej książce
W tej książce użyliśmy następujących konwencji typografi cznych:
Kursywa. Wskazuje nowe terminy, adresy URL i e-mail oraz nazwy i rozsze-
rzenia plików.
Czcionka stałopozycyjna. Jest używana do listingów programów, a także we-
wnątrz akapitów, aby odwołać się do elementów programu, takich jak na-
zwy zmiennych lub funkcji, bazy danych, typy danych, zmienne środowi-
skowe, instrukcje i słowa kluczowe.
Stała szerokość i pogrubienie. Pokazuje polecenia lub inny tekst, który po-
winien być wpisany przez użytkownika dokładnie tak.
Stała szerokość i kursywa. Pokazuje tekst, który powinien być zastąpiony
przez wartości podane przez użytkownika lub wynikające z kontekstu.
##7#52#aSUZPUk1BVC1WaXJ0dWFsbw==
xi
Ta ikona oznacza wskazówkę, sugestię lub ogólną uwagę.
Ta ikona oznacza ostrzeżenie lub przestrogę.
Korzystanie z przykładów kodu
Ta książka ma za zadanie pomóc Czytelnikom w zrealizowaniu swoich po-
mysłów. W ogólności można używać kodu z tej książki w swoich programach
i dokumentacji. Nie potrzeba kontaktować się z nami w celu uzyskania po-
zwolenia, o ile nie reprodukuje się znacznej części kodu. Na przykład pisa-
nie programu używającego wielu fragmentów kodu z tej książki nie wymaga
pozwolenia. Sprzedaż lub dystrybucja płyty CD-ROM z przykładami z ksią-
żek wydawnictwa O’Reilly wymaga pozwolenia. Odpowiadanie na pytanie
zawierające cytat z tej książki i fragmenty kodu przykładowego nie wymaga
pozwolenia. Umieszczenie znacznej ilości kodów przykładowych z tej książki
w dokumentacji swojego produktu wymaga pozwolenia.
Wysoko cenimy odwołania bibliografi czne, ale ich nie wymagamy.
Odwołanie zwykle obejmuje tytuł, autora, wydawcę i ISBN. Na przykład:
„Wprowadzenie do Raspberry Pi, Matt Richardson i Shawn Wallace (O’Reilly).
Copyright 2013, 978-1-4493-4421-4.”
W razie poczucia, że użycie przykładów kodu przekracza zasady uczciwo-
ści oraz niniejsze pozwolenie, prosimy o kontakt z nami pod adresem:
permissions@oreilly.com.
Jak się z nami skontaktować
Komentarze i pytania dotyczące tej książki prosimy adresować do wydawcy:
MAKE
1005 Gravenstein Highway North
Sebastopol, CA 95472
800-998-9938 (w USA i Kanadzie)
707-829-0515 (międzynarodowo lub lokalnie)
707-829-0104 (fax)
xii Wprowadzenie do Raspberry Pi
##7#52#aSUZPUk1BVC1WaXJ0dWFsbw==
MAKE jednoczy, inspiruje, informuje i bawi rosnąca społeczność zarad-
nych osób, które podejmują się wspaniałych projektów na swoich podwór-
kach, w swoich piwnicach i garażach. MAKE popiera prawa do podkręca-
nia, programowania i naginania dowolnej technologii zgodnie z potrzebami.
Odbiorcy MAKE stanowią ciągle rosnącą kulturę i społeczność, która wierzy
w poprawienie siebie, środowiska i systemu edukacyjnego – całego naszego
świata. Jest to więcej niż publiczność, jest to światowy ruch prowadzony przez
MAKE – nazywamy go Maker Movement (ruchem majsterkowiczów).
Więcej informacji na temat MAKE można uzyskać w Internecie:
Magazyn MAKE: http://makezine.com/magazine/
Targi Maker Faire: http://makerfaire.com
Makezine.com: http://makezine.com
Sklep Maker Shed: http://makershed.com/
Mamy stronę internetową dotyczącą tej książki, gdzie znajduje się errata, przy-
kłady i inne dodatkowe informacje. Jej adres to:
http://shop.oreilly.com/product/0636920023371.do
Komentarze lub pytania techniczne dotyczące tej książki można przesyłać pod
adresem e-mail:
bookquestions@oreilly.com
Więcej informacji na temat naszych książek, kursów, konferencji i wiadomości
znajduje się na witrynie internetowej http://www.oreilly.com.
Znajdźcie nas na Facebooku: http://facebook.com/oreilly
Śledźcie nas na Twitterze: http://twitter.com/oreillymedia
Oglądajcie nas na YouTube: http://www.youtube.com/oreillymedia
Podziękowania
Chcemy podziękować paru osobom, które podzieliły się swoją wiedzą, wspar-
ciem i opiniami podczas tworzenia książki Wprowadzenie do Raspberry Pi:
Brian Jepson
Marc de Vinck
Eben Upton
Tom Igoe
Clay Shirky
John Schimmel
Phillip Torrone
Limor Fried
Kevin Townsend
Ali Sajjadi
Andrew Rossi
##7#52#aSUZPUk1BVC1WaXJ0dWFsbw==
xiii
##7#52#aSUZPUk1BVC1WaXJ0dWFsbw==
1 Uruchamianie
Parę słów powtarza się w kółko, gdy ludzie mówią o Raspberry Pi:
mały, tani, programowalny, edukacyjny. Jednak byłoby błędem okre-
ślenie tego komputera jako plug and play, chociaż jest dość łatwo podłączyć
go do telewizora i sprawić, że coś pojawi się na ekranie. Nie jest to urządze-
nie dla konsumentów. Zależnie od celu wykorzystania Raspberry Pi przed
jego uruchomieniem musimy podjąć parę decyzji dotyczących urządzeń
peryferyjnych i oprogramowania.
Oczywiście pierwszym krokiem
jest zakup płytki Raspberry Pi.
Raspberry Pi Foundation ma umowy z kilkoma producentami, od których
możecie kupić bezpośrednio Pi za dobrze znaną cenę 25–35 dolarów. Są to:
Premier Farnell/Element 14 (http://www.element14.com/community/groups/rasp-
berry-pi/). Brytyjski dystrybutor elektroniki z wieloma oddziałami na całym
świecie (takimi jak Newark i MCM w USA).
RS Components (http://www.rs-components.com/raspberrypi). Inny brytyjski
globalny dystrybutor elektroniki (i fi rma macierzysta Allied Electronics
w USA)
Niska cena Raspberry Pi jest oczywiście ważna. Pozwolenie wszystkim na
zakupy bezpośrednio od dystrybutora i zamawianie małych ilości po cenie
hurtowej było czymś niezwykłym. Wielu potencjalnych odsprzedawców było
wprawionych w zakłopotanie pierwotnym ogłoszeniem ceny. Było im trud-
no zrozumieć, jak mogli zyskać jakikolwiek dochód. Dlatego odsprzedawcy
dodają drobną marżę do ceny 35 dolarów (zwykle zwiększając cenę do około
40 dolarów). Chociaż wszyscy mogą nadal kupować bezpośrednio od dystry-
butorów za pierwotną cenę, detaliści i odsprzedawcy często realizują zamó-
wienia szybciej. Zarówno należący do MAKE sklep Maker Shed (http://www.
makershed.com/category_s/227.htm), jak i Adafruit (http://www.adafr uit.
com/category/105) są dwoma fi rmami sprzedającymi komputery Raspberry Pi
i akcesoria z niewielką marżą.
Tyle o mikroekonomii. Przyjrzyjmy się bliżej płytce Raspberry Pi.
##7#52#aSUZPUk1BVC1WaXJ0dWFsbw==
1
Przewodnik po płytkach
Zacznijmy od krótkiego opisu tego, co widzimy po rozpakowaniu.
Raspberry Pi uważa się za płytkę projektową z mikrokontrolerem, podob-
ną do Arduino, lub za komputer zastępujący laptop. W rzeczywistości bardziej
przypomina wyeksponowane wnętrzności urządzenia mobilnego z wieloma
przydatnymi dla majsterkowiczów złączami wielostykowymi dla różnych
portów i funkcji. Na rysunku 1-1 widać wszystkie części płytki. Ich opis jest
przedstawiony poniżej.
Rysunek 1 - 1. Mapa interfejsu sprzętowego płytki Raspberry Pi
2 Wprowadzenie do Raspberry Pi
##7#52#aSUZPUk1BVC1WaXJ0dWFsbw==
A. Procesor. W sercu komputera Raspberry Pi jest taki sam procesor, jaki mo-
żemy znaleźć w smartfonie iPhone 3G i czytniku książek Kindle 2, więc
możemy uważać możliwości Raspberry Pi za porównywalne do tych moc-
nych, choć małych urządzeń. Układ scalony procesora jest 32-bitowym
systemem o taktowaniu 700 MHz, zbudowanym w architekturze ARM11.
Układy scalone ARM mają różnorodne architektury z różnymi rdzeniami
skonfi gurowanymi do zapewniania różnych możliwości za różną cenę.
Model B ma 512MB pamięci RAM, a model A ma jej 256 MB. (Pierwsze
wydanie modelu B miało również tylko 256MB pamięci RAM).
B. Gniazdo karty SD (Secure Digital). Możemy zauważyć, że komputer Pi nie
ma dysku twardego. Wszystko jest przechowywane na karcie SD. Jednym
z powodów, aby prędzej czy później zaopatrzyć się w ochronną obudowę,
jest to, że lutowane złącza gniazda SD mogą się uszkodzić, jeśli przypadko-
wo zegniemy kartę SD.
C. Port USB. Model B ma dwa porty USB 2.0, a model A tylko jeden. Wczesne
płytki Raspberry Pi (a przynajmniej część z nich) miały ograniczenie na-
tężenia prądu, jaki mogły dostarczać. Niektóre urządzenia USB pobierają
do 500mA. Pierwotnie płytka Pi obsługiwała około 100mA, ale nowsze
płytki są w pełni zgodne ze specyfi kacją USB 2.0. Aby sprawdzić, jaka
to jest płytka, możemy zobaczyć, czy ma dwa bezpieczniki resetowalne,
ograniczające natężenie prądu (patrz rysunek 1-2). W każdym razie raczej
nie jest dobrym pomysłem ładowanie telefonu komórkowego za pomo-
cą płytki Pi. Jeżeli mamy urządzenie zewnętrzne, które potrzebuje więcej
mocy, możemy użyć zewnętrznego koncentratora zasilanego.
Rysunek 1 - 2. Niektóre starsze płytki są wyposażone w bezpieczniki resetowalne (po
lewej), aby chronić koncentrator USB. W niektórych płytkach bezpiecz-
niki zastąpiono zworkami (na środku), a w ostatnim wydaniu modelu
B całkowicie je usunięto i użyto tego miejsca na otwór montażowy (po
prawej).
D. Port Ethernet. W modelu B jest standardowy port RJ45 Ethernet. W mo-
delu A go nie ma, ale możemy podłączyć ten model do sieci przewodowej
za pomocą adaptera USB Ethernet (port w modelu B jest rzeczywiście
##7#52#aSUZPUk1BVC1WaXJ0dWFsbw==
Uruchamianie
3
wbudowanym adapterem USB Ethernet). Inną opcją jest łączność WiFi za
pomocą urządzenia USB.
E. Złącze HDMI. Port HDMI zapewnia wyjście cyfrowych sygnałów wideo
i audio. Obsługuje 14 różnych rozdzielczości wideo, a sygnał HDMI może
być konwertowany do formatu DVI (stosowanego w wielu monitorach),
zespolonego (analogowy sygnał wideo zwykle przenoszony przez żółte
złącze RCA) lub SCART (europejski standard łączenia sprzętu audiowizu-
alnego) dzięki zewnętrznym adapterom.
F. Diody stanu. Pi ma pięć wskaźników LED, które zapewniają wizualne in-
formacje zwrotne (patrz tabela 1-1).
Tabela 1-1. Pięć diod stanu
ACT
Zielona
PWR
FDX
LNK
100
Czerwona
Zielona
Zielona
Żółta
Świeci w przypadku dostępu do karty SD (oznaczona jako OK
na wcześniejszych płytkach)
Powiązana z zasilaniem 3,3 V
Włączona, jeżeli karta sieciowa działa w pełnym dupleksie
Wskaźnik aktywności sieci
Włączona, jeżeli połączenie sieciowe ma 100Mb/s (niektóre
wcześniejsze płytki miały błędny napis 10M)
G. Analogowe wyjście audio. Jest to standardowe złącze analogowe 3,5 mm
minijack, przeznaczone do obsługi obciążeń o wysokiej impedancji (takiej
jak głośniki ze wzmacniaczem). Dźwięk w słuchawkach lub niezasilanych
głośnikach nie będzie zbyt dobry. W istocie podczas pisania tej książki ja-
kość wyjścia analogowego była znacznie niższa niż jakość wyjścia audio
HDMI, którą otrzymujemy po podłączeniu telewizora do złącza HDMI.
Częściowo wynika to z oprogramowania sterownika audio, które jest ciągle
rozwijane.
H. Zespolone wyjście wideo. Jest to standardowe złącze RCA, które zapewnia
zespolone sygnały wideo NTSC lub PAL. Ten format wideo ma bardzo ni-
ską rozdzielczość w porównaniu ze złączem HDMI. Jeżeli mamy telewizor
lub monitor HDMI, lepiej używać tamtego złącza, zamiast zespolonego.
I. Wejście zasilania. Jedną z pierwszych rzeczy, które zauważamy, jest to, że
płytka Pi nie ma włącznika zasilania. Do zasilania służy złącze microUSB.
(Nie jest to dodatkowy port USB. Służy jedynie do zasilania). Złącze typu
microUSB zostało wybrane, ponieważ jest tanie i można łatwo znaleźć od-
powiednie do niego zasilacze USB.
Rysunek 1-3 pokazuje wszystkie styki zasilania i wejścia/wyjścia (IO) na
Raspberry Pi, które są objaśnione w dalszej części rozdziału.
4 Wprowadzenie do Raspberry Pi
##7#52#aSUZPUk1BVC1WaXJ0dWFsbw==
Pobierz darmowy fragment (pdf)