[Raspberry Pi 3B] Pierwszy kęs malinowego ciastka.

Ukłon w stronę użytkowników ...
Niechaj i niewierni mają swój kącik :)
ODPOWIEDZ
Awatar użytkownika
Nefarious19
Moderator
Posty: 13
Rejestracja: 17 paź 2017, 10:03
Lokalizacja: Łódź

[Raspberry Pi 3B] Pierwszy kęs malinowego ciastka.

Post autor: Nefarious19 » 18 lis 2018, 16:57

Witajcie drodzy forumowicze 😊
Z racji tego, że zakupiłem ostatnio w okazyjnej cenie od znajomego, komputer jednopłytkowy o nazwie RaspberryPi, postanowiłem po krótce opisać moje pierwsze zderzenie z tym urządzeniem. Model który posiadam to 3B a więc nieco gorszy od 3B+.

1. Na początek specyfikacja:

Procesor: Broadcom BCM2837 64-bit, Quad-Core ARM Cortex A53, fcpu = 1,2 GHz, ARMv8-A

Pamięć: RAM: 1 GB LPDDR2 @ 900 MHz, ROM: karta MicroSD, minimum 8GB, klasa 10

GPIO: 2x20 goldpinów w rastrze 2.54mm. liczba IO do wykorzystania to 27.

Zasilanie: 5V/2.5A (musi być porządny zasilacz a nie ładowarka z ali za 1 dolca)

Interfejsy: 4x USB 2.0 - gniazdo typ A, port Ethernet 10/100 Mbps, WiFi 802.11 b/g/n 150 Mbps, Bluetooth Low Energy, BLE 4.1, Kamera - gniazdo CSI, Wyświetlacz dotykowy - gniazdo DSI, Wideo HDMI HD 1080px / 30 fps, Komunikacja UART, SPI, I2C, GPIO

2. Wygląd płytki chyba wszyscy znają, nie mniej wrzucę kilka fotek znalezionych w Internecie:

Góra:
Obrazek

Dół:
Obrazek

A tu schemat:

KLIK

3. Pierwsze uruchomienie

Żeby uruchomić płytkę, musimy odpalić na niej jakiś system operacyjny. Należy więc wejść na stronę Fundacji RaspberryPi i pobrać obraz systemu. W moim przypadku jest to Raspbian (oparty na debianie) z zainstalowanym już środowiskiem graficznym oraz z różnym przydatnym oprogramowaniem o nazwie: RASPBIAN STRETCH WITH DESKTOP AND RECOMMENDED SOFTWARE. Program należy wypalić na karcie microSD o pojemności minimum 8GB i klasie 10 (zalecenie producenta). W tym celu należy pobrać program Etcher który w łatwy sposób pozwoli na sformatować w odpowiedni sposób kartę i wgrać na nią niezbędne pliki.

Okno programu:
Obrazek

Klikamy przycisk Select image i wybieramy plik .zip z obrazem systemu, następnie klikamy Select drive i wybieramy kartę SD. Po tym klikamy Flash! i program zrobi za nas całą robotę. Po wszystkim otrzymamy komunikat o pomyślnym wgraniu programu na kartę. Voila! Obraz gotowy.

Uwaga!
Jeżeli chcemy odpalić płytkę w środowisku desktopowym, należy podpiąć klawiaturę, mysz oraz monitor lub wyświetlacz. Jeżeli jednak nie mamy takiej możliwości lub wystarczy nam TERMINAL należy włączyć interfejs UART ponieważ domyślnie jest on wyłączony. W tym celu należy włożyć kartę SD do komputera, odnaleźć partycje o nazwie boot i w pliku config dodać na końcu linijkę:

Kod: Zaznacz cały

enable_uart=1

Dzięki temu będziemy mogli się połączyć z płytką poprzez interfejs UART i działać na niej z poziomu terminala. Pinout złącza znajduję się poniżej:

Obrazek

Podpinamy się pod UART0

Dobra, mamy już obraz na karcie więc umieszczamy ją w slocie od spodu płytki i podpinamy przejściówkę USB-UART np. opartą o FT232RL i ustawioną na 3.3V. Uruchamiamy terminal na prędkości 115200. Bierzemy porządny zasilacz 5V o prądzie znamionowym około 2.5A lub wyższym. Musi mieć on końcówkę ze złączem microUSB (jak dla mnie to zły pomysł, nie wiem co za problem dać dam małego jacka jak w małych switchach czy routerach?? Tragedia…) i włączamy zasilanie płytki. Płytka zaczyna się bootować a naszym oczom po paru chwilach ukaże się ekran logowania (Ja już mam po Polsku bo to nie jest moje pierwsze logowanie, nie mniej podczas pierwszego startu wszystko wygląda podobnie):

Obrazek

W miejsce loginu wpisujemy pi
W miejsce hasła wpisujemy raspberry (możemy je oczywiście później zmienić)

No i pyk myk, jesteśmy już w systemie 😊

4. Konfiguracja WiFi

Dobra, w dzisiejszych czasach, kiedy nawet ATmega może zaśmiecać internet swoimi danymi odnoście temperatury w pokoju Jana Kowalskiego, głupio by było gdyby nasz malinowy komputer nie posiadał takiego przywileju. Należy więc dodać odpowiedni profil sieci bezprzewodowej do pliku wpa_supplicant.conf.

Odpalamy plik w naszym ulubionym edytorze, w moim przypadku będzie to VIM.
  1. pi@rpi:~$ sudo vi /etc/wpa_supplicant/wpa_supplicant.conf
Na końcu pliku dodajemy wpis:
  1. network={
  2.     ssid="nazwa_sieci"
  3.     psk="haslo"
  4. }
Oczywiście jeżeli nie chcemy by nasz hasło było widoczne jako gołe znaki ASCII możemy je zakodować. Możemy użyć narzędzia wpa_passphrase.
  1. pi@rpi:~$ wpa_passphrase ”nazwa_sieci”
  2. # reading passphrase from stdin
  3. haslo12345678
  4. network={
  5.         ssid="nazwa_sieci"
  6.         #psk="haslo12345678"
  7.         psk=fead02b54fcba07258b27d202060ec9bd35a5ce08aadf79c587c92cbe1c0e039
  8. }
Powyższy wynik należy skopiować i wkleić do pliku /etc/wpa_supplicant/wpa_supplicant.conf zamiast poprzedniego wpisu, usuwając oczywiście zakomentowane i wioczne hasło.

Możemy też to zrobić prościej przez przekierowanie wyjścia z terminala do pliku:
  1. pi@rpi:~$ : wpa_passphrase "nazwa_sieci" >>/etc/wpa_supplicant/wpa_supplicant.conf
  2. haslohaslo1234
  3.  
Należy jeszcze edytować plik /etc/wpa_supplicant/wpa_supplicant.conf i zmienić pole country=GB na PL. Zapisujemy plik w vimie :wqa. Należy eraz dokonać rekonfiguracji wlan0:
  1. pi@rpi:~$ : wpa_cli -i wlan0 reconfigure
I sprawdzamy czy nasze Pi połączyło się z internetem:
  1. pi@rpi:~$ : ifconfig wlan0
  2. wlan0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
  3.         inet 192.168.0.103  netmask 255.255.255.0  broadcast 192.168.0.255
  4.         inet6 fe80::defb:ffee:24c0:c8cb  prefixlen 64  scopeid 0x20<link>
  5.         ether b8:27:eb:8f:32:c2  txqueuelen 1000  (Ethernet)
  6.         RX packets 196  bytes 13799 (13.4 KiB)
  7.         RX errors 0  dropped 0  overruns 0  frame 0
  8.         TX packets 60  bytes 7584 (7.4 KiB)
  9.         TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
Jeżeli inet posiada prawidłowy dla naszej sieci adres IP, jesteśmy w domu. Możemy jeszcze dla pewności sprawdzić połączenie poleceniem ping, np.:
  1. pi@rpi:~$ :ping www.forum.sunduino.pl
  2. PING www.forum.sunduino.pl (51.255.59.255) 56(84) bytes of data.
  3. 64 bytes from admin.1free.eu (51.255.59.255): icmp_seq=1 ttl=52 time=46.9 ms
  4. 64 bytes from admin.1free.eu (51.255.59.255): icmp_seq=2 ttl=52 time=51.5 ms
  5. 64 bytes from admin.1free.eu (51.255.59.255): icmp_seq=3 ttl=52 time=49.9 ms
  6. 64 bytes from admin.1free.eu (51.255.59.255): icmp_seq=4 ttl=52 time=48.5 ms
  7. ^C
  8. --- www.forum.sunduino.pl ping statistics ---
  9. 4 packets transmitted, 4 received, 0% packet loss, time 3003ms
  10. rtt min/avg/max/mdev = 46.913/49.266/51.580/1.727 ms
Jak widać wszystko gra. 😊


5. Podstawowa konfiguracja samej płytki

Malinka udostępnia fajne narzędzie do konfiguracji płytki zwane raspi-config. Odpalmy je więc i zobaczmy co oferuje:


Obrazek

1. Możemy zmienić hasło użytkownika
2. Opcje sieciowe
3. Opcje bootowania
4. Opcje lokalizacji
5. Interfejsy (Camera, SSH, VNC, SPI, I2C, Serial,1-Wire, Remote GPIO)
6. Overclock (dla mojego modelu ta opcja jest niedostępna)
7. Opcje zaawansowane (Ustawienia pamięci, grafiki, audio)
8. Update (uaktualnienie kofiguratora)
9. Informacje o narzędziu

Od czego więc zacząć? Po pierwsze najpierw zmieńmy hasło. Standardowe nie jest zbyt bezpieczne. Wchodzimy więc w 1. Change User Password. Zostaniemy poinformowani że zaraz nastąpi wprowadzanie nowego hasła:

Obrazek

Wciskamy ENTER i jedziemy dalej. Otrzymamy miejsce na wpisanie nowego hasła:
  1. Proszę podać nowe hasło UNIX:
  2. Proszę ponownie podać nowe hasło UNIX:
  3.  
  4. passwd: hasło zostało zmienione
I tyle, zmieniliśmy hasło do naszego RPi. Dostaniemy informacje że hasło zostało zmienione. Kilkamy Enter w powrócimy do MENU.

Skonfigurujmy teraz Ustawienia Lokalizacji. Wchodzimy w 4 Localisation Options. Ustawiamy tam nasz kraj, klawiaturę, strefę czasową. Możemy też ustawić kraj w jamim funkcjonuje nasza sieć WiFi ale to już zrobiliśmy przy łączeniu z siecią WiFi.

Kolejnym Krokiem będzie włączenie serwera SSH żebyśmy mogli wygodnie połączyć się do naszego malinowego ciastka przez sieć. Wchodzimy w 5 Interfacing Options, wybieramy P2 SSH i wciskamy ENTER. Zostaniemy zapytani czy chcemy włączyć SSH, odpowiadamy że tak. I Tyle, to wszystko. Dostaniemy potwierdzenie że serwis SSH został odpalony. Wciskamy ENTER i przechodzimy z powrotem do MENU. Żeby sprawdzić czy SSH na pewno działa wklepujemy w terminal:
  1. pi@rpi:~$ :sudo service ssh status
  2.  
I otrzymamy:
  1. pi@rpi:~$ sudo service ssh status
  2. ● ssh.service - OpenBSD Secure Shell server
  3.    Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enab
  4.    Active: active (running) since Sun 2018-11-18 13:49:51 CET; 2h 29min ago
  5.  Main PID: 471 (sshd)
  6.    CGroup: /system.slice/ssh.service
  7.            └─471 /usr/sbin/sshd -D
  8.  
  9. lis 18 13:49:50 rpi systemd[1]: Starting OpenBSD Secure Shell server...
  10. lis 18 13:49:51 rpi sshd[471]: Server listening on 0.0.0.0 port 22.
  11. lis 18 13:49:51 rpi sshd[471]: Server listening on :: port 22.
  12. lis 18 13:49:51 rpi systemd[1]: Started OpenBSD Secure Shell server.
  13.  
I git. Działa.

Myślę że na początek wystarczy tego konfigurowania. Teraz możemy połączyć się przez SSH. Odpalamy PUTTY wybieramy SSH i port 22. Wpisujemy adres IP naszego Pi. Jak go sprawdzić? Najprościej przez terminal UART wklepać
  1. pi@rpi:~$ ifconfig wlan0
  2.  
W polu inet bedzie nasz adres IP. Wpisujemy go w Putty i klikamy Open:

Widzimy okno jak poniżej:
Obrazek

Wpisujemy nasz login i hasło i Voila! Jesteśmy na naszym ciachu i możemy buszować 😊

Obrazek


5. Miganie diodą – to co tygrysy lubią najbardziej

Dobra. Teraz ostatnia część tego tutoriala czyli zamiganie diodą. Jak to zrobić? Podłączamy diodę pod GPIO18 z rezystorkiem > 500 Om. W rzeczywistości to pin nr 12 i tego numeru użyjemy w naszym skrypcie. Schematu chyba nie muszę rysować. 😉

A więc zaczynajmy.

Aktualizacja listy pakietów i samych pakietów:
  1. pi@rpi:~$ sudo apt-get update
  1. pi@rpi:~$ sudo apt-get upgrade
Instalacja pythonów(intalujemy 2.7 jak i 3.5):
  1. pi@rpi:~$ sudo apt-get installap python python3
Instalacja biblioteki do obsługi GPIO:
  1. pi@rpi:~$ sudo apt-get install python-rpi.gpio python3-rpi.gpio
Dobrze. Wszystko już mamy przygotowane. Wchodzimy więc na pulpit i otworzymy sobie folder o nazwie python gdzie będzie nasz skrypt:
  1. pi@rpi:~$ cd Desktop
  1. pi@rpi:~/Desktop $ mkdir python
  2. pi@rpi:~/Desktop $ cd python
  3. pi@rpi:~/Desktop/python $
Utworzymy teraz prosty skrypcik do migania ledem:
  1. pi@rpi:~/Desktop/python $ vi blink.py
  2.  
Wklepujemy kod jak poniżej:
  1. #!/usr/bin/python
  2.  
  3. import RPi.GPIO as GPIO
  4. from time import sleep
  5.  
  6. GPIO.setwarnings(False)
  7. GPIO.setmode(GPIO.BOARD)
  8. GPIO.setup(12, GPIO.OUT, initial=GPIO.LOW)
  9.  
  10. try:
  11.         while True:
  12.                 GPIO.output(12, GPIO.HIGH)
  13.                 sleep(0.1)
  14.                 GPIO.output(12, GPIO.LOW)
  15.                 sleep(0.1)
  16. except KeyboardInterrupt:
  17.         GPIO.cleanup()
  18.         print("Blinking done!")
Efekt? Identyczny jak na gifie poniżej 😊

Obrazek

To tyle ode mnie. Jak będę miał wenę opiszę inne moje przygody z tą płytką bo mam co do niej pewne plany 😊

Awatar użytkownika
SunRiver
Administrator
Posty: 517
Rejestracja: 08 paź 2017, 11:27
Lokalizacja: Opole
Kontakt:

Re: [Raspberry Pi 3B] Pierwszy kęs malinowego ciastka.

Post autor: SunRiver » 18 lis 2018, 17:17

No wreszcie jakiś wpis w pisuarowie :)
ale miło poczytać dla odmiany o procesorach z broda :)
w sumie nie wiem czemu nazwali to coś Pi a nie Brodie :)

Czekamy na dalsze wpisy tej niekończącej się opowieści :)
.... z każdym bitem serca ....
💫SunDUINO
💦Google+
💦Kanał Youtube
💦Sotton

Awatar użytkownika
Nefarious19
Moderator
Posty: 13
Rejestracja: 17 paź 2017, 10:03
Lokalizacja: Łódź

Re: [Raspberry Pi 3B] Pierwszy kęs malinowego ciastka.

Post autor: Nefarious19 » 18 lis 2018, 17:31

SunRiver pisze:
18 lis 2018, 17:17
No wreszcie jakiś wpis w pisuarowie :)
No fakt, już jakiś wpis jest w końcu bo wiało tu pustką :P

ODPOWIEDZ