Witamy w kolejnej części kursu Start z Raspberry Pi. Jak już wspomnieliśmy będzie on oparty o Zestaw prototypowy Picoboard Raspberry Pi, przygotowany przy współpracy z botland.com.pl. Dostępne są zestawy zarówno dla nowego Raspberry Pi Model B+ jak i dla starszych wersji: Raspberry Pi Model A i Raspberry Pi Model B. W tej części skupimy się na przygotowaniu zestawu oraz Raspberry Pi do kursu. Zainstalujemy system Raspbian, wraz z biblioteką WiringPi oraz skonfigurujemy połączenie z naszą siecią domową. Opowiem również o zestawie stykowym i jego podłączeniu do Maliny.

Instalacja systemu

Do instalacji Raspbiana wykorzystamy narzędzie NOOBS (domyślnie znajduje się na karcie SD, którą można kupić w zestawie z Raspberry Pi), które nie wymaga ściągania obrazów systemów, a wystarczy pobrać spakowany katalog i następnie go rozpakować na kartę SD. Aplikacja ułatwia instalację różnych systemów w łatwy sposób, bez ciągłego formatowania karty.

Jeśli masz już zakupiony zestaw Raspberry Pi + karta SD z botland.com.pl, to możesz przejść do punktu Instalacja Raspbiana.

Przygotowanie karty z NOOBS

  1. Pobieramy pliki ZIP ze strony download.raspberrypi.org lub plik torrent
  2. Wkładamy kartę SD do czytnika w komputerze i upewniamy się czy jest sformatowana jako FAT32
  3. Otwieramy pobrany plik ZIP
  4. Zawartość kopiujemy na kartę SD

Instalacja Raspbiana

Raspberry Pi wraz z włożoną kartą SD z NOOBS-em, podłączamy do monitora i klawiatury, a następnie podłączamy zasilanie. Przy pierwszym uruchomieniu pojawi się okno instalacyjne NOOBS, w którym możemy wybrać system do instalacji.

Wybieramy Raspbian i klikamy Install. Proces instalacji chwilę potrwa, a gdy już się skończy klikamy Finish. Raspberry Pi uruchomi się ponownie i załaduje nam system Raspbian. Przy pierwszym uruchomieniu możemy skonfigurować m.in. język i układ klawiatury oraz włączyć uruchamianie do pulpitu. Zależy od nas czy chcemy używać pulpitu czy poruszać się w konsoli. W filmie przedstawiona została szybka konfiguracja lokalizacji oraz włączenie uruchamiania systemu do pulpitu. Domyślnym użytkownikiem i jego hasłem jest pi/raspberry.

Konfiguracja sieci

Dla osób które posiadają np dostęp tylko do sieci WiFi można skonfigurować dostęp do swojej sieci za pomocą prostego menadżera konfiguracji WiFi. Jak tego dokonać znajdziecie w filmie. Podłączenie do sieci za pomocą złącza LAN nie powinno być problemem bo w większości wypadków wystarczy tylko podłączyć skrętkę i nasza malina sama połączy się z siecią.

Instalacja biblioteki WirinPi

Do sterowania pinami GPIO używać będziemy biblioteki WiringPi, której instalacja jest prosta i wymaga wydania tylko kilku poleceń:

sudo apt-get install git-core
git clone git://git.drogon.net/wiringPi
cd wiringPi
./build

Biblioteka pozwala oprócz pisania aplikacji z wykorzystaniem jej również na używanie już gotowego polecenia gpio za pomocą którego możemy sterować pinami GPIO. Będziemy korzystać głównie z tego polecenia aby serwować pinami. Choć pokażę również przykładowe programy napisane za pomocą biblioteki WirinPi.

Przykłady wykorzystania polecenia gpio

Odczytanie stanu pinów gpio readall powinno nam zwrócić coś podobnego

+----------+------+--------+------+-------+
| wiringPi | GPIO | Name   | Mode | Value |
+----------+------+--------+------+-------+
|      0   |  17  | GPIO 0 | IN   | Low   |
|      1   |  18  | GPIO 1 | IN   | Low   |
|      2   |  27  | GPIO 2 | IN   | Low   |
|      3   |  22  | GPIO 3 | IN   | Low   |
|      4   |  23  | GPIO 4 | IN   | Low   |
|      5   |  24  | GPIO 5 | OUT  | High  |
|      6   |  25  | GPIO 6 | IN   | Low   |
|      7   |   4  | GPIO 7 | IN   | High  |
.
..
...

itd.

Ustawienie pinu na stan wysoki

gpio write <nr_pinu> 1

Przykładowa aplikacja napisana w języku C za pomocą biblioteki wiringPi

#include <wiringPi.h>
int main (void)
{
  wiringPiSetup () ;
  pinMode (0, OUTPUT) ; /ustawienie pinu jako wyjściowego
  for (;;)
  {
    //ustawienie pinu na stan wysoki ; odczekanie pół sekundy
    digitalWrite (0, HIGH) ; delay (500) ; 

    //ustawienie pinu na stan niski ; odczekanie pół sekundy
    digitalWrite (0,  LOW) ; delay (500) ;
  }
  return 0 ;
}

Pełnym wytłumaczeniem opcji polecenia gpio zajmiemy się później w ramach kolejnych części kursu, ale już teraz polecam się z nią zapoznać wpisując w konsoli man gpio.

Zestaw stykowy

Dzięki zestawowi stykowemu tj. płytce prototypowej,przewodów połączeniowych , modułowi protopi oraz zasilania nie będziemy musieli korzystać z lutownicy i cyny. Wszystkie układy będziemy wykonywać na płytce prototypowej. Płytka posiada 830 pół a jej schemat połączeń widzimy poniżej na zdjęciu.

plytka prototypowa

Jak widać linie zasilania (niebieski i czerwone) sa połączone poziomo ze sobą. Zaś pionowe to połączenia pól do prototypownia, każde z pionowych lini składa się z 5 pół w rzędzie. Górne rzędy są oddzielone od dolnych. Układ jest dość prosty i przemyślany.

Moduł ProtoPi w zależności od wersji posiada 26 pinów (dla wersji A i B) oraz wersje plus z 40 pinami (dla wersji B+). Moduł składa się ze złączki, którą wpinamy z jednej strony do płytki prototypowej a z drugiej wpinamy taśmę, która następnie wpinamy na piny od Raspberry Pi.  Sam moduł posiada opisane złącza co ułatwi nam orientację podczas tworzenia układów.

moduły protopi

Moduł zasilający, który wpinamy do płytki prototypowej pozwoli nam w łatwy sposób dostarczyć zewnętrze zasilanie, które zasili nam nasze elementy elektroniczne, które potrzebują większego natężenia prądu niżeli Raspberry Pi jest w stanie nam dostarczyć.

modul zasilajacy i przewody do płytki stykowej

Na końcu mamy jeszcze przewody połączeniowe męsko męskie za pomocą których będziemy łączyć nasze elementy elektroniczne.

W kolejnej części zajmiemy się już zabawą z diodami i nie tylko :)

  • Franciszek Stachura

    W końcu coś z c++

    • Cyryl

      Nie licz na skomplikowane aplikacje w C/C++ jest to kurs dla początkujących, ale postaram się tez dodać czasem przykłady w tym języku ;)

    • Sbk

      Cieszy mnie ten cykl kursów, bo dawna chciałem zacząć zabawę z RPi ale jestem kompletnie zielony… :-)

  • anon

    Czekam na kolejne części z niecierpliwością

  • Misieksc

    a kiedy następna część :) ??