-
Notifications
You must be signed in to change notification settings - Fork 0
/
A1_Rasperry_Pi.qmd
160 lines (105 loc) · 14 KB
/
A1_Rasperry_Pi.qmd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
---
title: "Raspberry Pi"
author: "Pia Bereuter"
date: today
other-links:
- text: Kapitel PDF
icon: file-pdf
href: chapters/A1_Rasperry_Pi.pdf
---
Open Source Einplatinenrechner werden in Bildung und Forschung eingesetzt und haben eine breite Anwendung in weiteren Bereichen wie IoT. SBCs haben grosse Bedeutung in der Ingenieur- und Informatikausbildung, da sie sich gut für Hands-on Vermittlung komplexer Themen eignen, und verbessern technische Fähigkeiten, stärken das Interesse und Motivation [@ariza2022].
System on Chip SOC \index{System on Chip SOC}
: integriert die meisten Funktionen und Komponenten auf einem Chip (CPU, RAM, GPU, Schnittstellen) ursprünglich für eingebettete (embedded) Systeme, heute Mobile Geräte (Mobiles, Tablets), Edge Geräte (IoT) etc. → Grössenreduktion, verbesserte Leistung, tiefer Stromverbrauch, kosteneffizient, jedoch lange Entwicklungszeiten und keine Modularität.
Single Board Computer SBC \index{Single Board Computer SBC}
: ist ein Computer auf einer Leiterplatine mit allen erforderlichen Komponenten und Anschlüssen wie CPU, RAM, GPU I/O Schnittstellen etc. → Einfach zu nutzen, tiefer Stromverbrauch, kosteneffizient, getestete Hardware, tendenziell günstig, jedoch schwierig Anpassungen vorzunehmen, weniger Möglichkeiten als «Multi Board Computer».
Der [Raspberry Pi](https://www.raspberrypi.com)\index{Raspberry Pi} ist ein preisgünstiger Einplatinencomputer (Single Board Computer SBC) in Kreditkartenformat zum Experimentieren und Erlernen des Programmierens. Die Motivation für die Entwicklung des Raspberry Pi war die sinkende Anzahl Informatikstudierender an der Universität Cambridge und der Rückgang der Informatikkenntnisse der Studierenden. Der Raspberry Pi wird von der britischen [Raspberry Pi Foundation](https://www.raspberrypi.org) entwickelt seit 2009 entwickelt.
Url: [https://www.raspberrypi.com](https://www.raspberrypi.com)
Raspberry Pi Modelle im Überblick:
- Raspberry Pi 5 (mit 4/8GB RAM ab November 2023)
- Raspberry Pi 4 Model B (mit 1/2/4/8GB RAM)
- Raspberry Pi 3 Model B+
- Raspberry Pi 2 Zero günstige und kompakte Version (mit/ohne Bluetooth und WiFi)
- Raspberry Pi 400 Unit (Tastatur mit integriertem Raspberry Pi)
- Raspberry Pi Pico Series flexible und kompakte Microcontroller mit dem RP2040 Chip
- Raspberry Pi Compute Module 4 (CM4 mit/ohne eMMC)
![Raspberry Pi Modelle: 1. Raspberry Pi 5, 2. Raspberry Pi 2 Zero, 3. Raspberry Pi 400, 4. Raspberry Pi Pico, 5. Raspberry Pi Compute Module 4, 6. RP2040 Chip](images/raspberry_pi_modelle.jpg)
Die Raspberry Pi verfügen über General Purpose Input Output GPIO\index{General Purpose Input Output GPIO} sogenannte Pins\index{Pins}, die für die Verbindung mit Sensoren und Aktoren verwendet werden können. Die Stiftleiste mit den GPIO Pins sind in unterschiedliche Gruppen unterteilt, die unterschiedliche Funktionen haben. Die GPIO Pins können über eine Programmiersprache wie Python oder C angesprochen werden und ermöglichen die Interaktion mit Sensoren oder Aktoren und weiteren Komponenten.
![links: Die Website <https://.pinout.xyz> bietet eine interaktive Übersicht und Dokumentation der Pinouts der einzelnen Raspberry Pi Modellen, wie beispielsweise welche Pins die Schnittstelle I2C ansteuern. rechts: Der Befehl `pinout` liefert direkt über das Terminal das Pinout des Raspberry Pi](images/pinout.png)
Raspberry Pi war von der weltweiten Chip- und Halbleiterknappheit betroffen und hatte seit 2020 tiefe Lagerbestände von elektronischen Komponenten. Die Nachfrage nach Raspberry Pi ist seit 2020 stark gestiegen und die Produktionskapazitäten konnten nicht erhöht werden. Die Produktionsengpässe werden sich voraussichtlich ab Ende 2023 verbessern [@upton2022]. Die Knappheit führte zu einem Preisanstieg von 50% bis 100% bei den Raspberry Pi Modellen und zu einer Verknappung der Raspberry Pi Modelle. Der Dienst [Raspberry Pi Stock Scraper](https://rpilocator.com/?country=CH) führt eine Übersicht der Verfügbarkeit der weltweiten Raspberry Pi Lagerbeständen von online Shops. Der [Pi-Shop](https://www.pi-shop.ch/bundles-kits) hat teilweise Kits und Boards in der Schweiz an Lager.
## Raspberry Pi Image schreiben
Der Raspberry Pi führt keinen internen Speicher mit sich, sondern benötigt eine SD-Karte. Auf dieser SD-Karte wird das Betriebssystem installiert, respektive als Image auf die MicroSD Karte geschrieben. Die SD-Karte muss mindestens 8 GB Speicherplatz haben idealerweise 16 GB oder mehr.
Software: [Raspberry Pi - Software](https://www.raspberrypi.com/software) \
Tutorial: [Raspberry Pi - How to set up Raspberry Pi](https://www.raspberrypi.com/tutorials/how-to-set-up-raspberry-pi)
**Raspberry Pi Imager**\index{Raspberry Pi Imager} ist die von Raspberry Pi erstellte Software für das Schreiben von Images auf eine SD Karte. Der Imager stellt direkt auch weitere Images wie Ubuntu, Medienzentren, 3D Druck etc. zur Verfügung. Alternative *Image Burner* sind [Balena Etcher](https://www.balena.io/etcher) und [Win32DiskImager](https://sourceforge.net/projects/win32diskimager/).
Das Betriebssystem **Raspberry Pi OS**\index{Raspberry Pi OS} ist ein auf Debian basiertes Betriebssystem mit Anpassungen für die Hardware auf dem Raspberry Pi. Es gibt eine **Lite** Version ohne Desktop und eine **Desktop** Version mit Desktop. Die **Desktop** Version ist für den Einstieg empfehlenswert, da sie die grafische Oberfläche bietet und die Konsole. Die **Lite** Version ist für den produktiven Einsatz empfehlenswert, da sie weniger Ressourcen benötigt und somit mehr Ressourcen für die Anwendungen zur Verfügung stehen. Dazu muss der Raspberry Pi über das Netzwerk erreichbar sein, beispielsweise über SSH.
::: hint
Für die Nutzung am Campus nutzen wir die **Desktop** Version, da wir die grafische Oberfläche für das aktivieren des Internetzugangs benötigen.
:::
Image schreiben mit **Raspberry Pi 64-bit** (Desktop Version) und mit den erweiterten Optionen Voreinstellungen zu **SSH** (Ja), **WiFi** (Heimnetzwerk), **Konto** und unter Sprache die **Zeitzone** Europe/Zurich und das das **Tastaturlayout** CH setzen.
::: hint
Die Einstellungen können später in der Konsole mit dem Programm `raspi-config` geändert werden.
:::
![Rasperry Pi Imager ausführen mit (1) Betriebssystem wählen, (2) Raspberry Pi OS (Other), (3) Raspberry Pi OS 64-bit, (4) erweiterte Einstellungen wählen und unter diesen Voreinstellungen zum Konto, SSH, Zeitzone und Tastaturlayout vordefinieren.](images/raspberry_pi_image_schreiben.png)
::: hint
Für Testzwecke kann es sinnvoll sein den Standardkontonamen `pi` und das Standardpasswort `raspberry` zu verwenden. Jedoch sollte der Kontonamen und das Passwort für den produktiven Einsatz geändert werden, vor allem wenn der Raspberry Pi mit dem Internet verbunden ist, beispielsweise mit einem aktivierten SSH Zugang.
:::
::: exercise
**Raspberry Pi Image auf SD-Karte schreiben**
1. Installiere den Raspberry Pi Imager
2. Schreibe Raspberry Pi OS 64-bit auf die SD Karte
3. Aktiviere SSH und setze die Spracheinstellungen (WiFi Name und Password des Netzwerks von Zuhause oder dem Mobile Hotspot)
4. SD Karte in den Raspberry einsetzen
5. Maus, Tastatur und Monitor anschliessen und dann mit dem Netzteil mit Strom versehen
:::
## Raspberry Pi einrichten
Für das Einrichten des Raspberry Pi wird die SD-Karte mit dem Image in den Raspberry Pi eingesetzt. Für das erstmalige Einrichten des Raspberry Pi OS ist ein Bildschirm, eine Tastatur und eine Maus erforderlich. Verbunden wird der Raspberry Pi über die HDMI-Schnittstelle mit dem Bildschirm und über die USB Schnittstelle mit der Tastatur und der Maus, dann wird die Stromversorgung über USB-C angeschlossen.
::: info
**Gehäuse öffnen und SD Karten Slot öffnen**
Den Deckel durch leichtes Drücken mit zwei Finger bei (1) horizontal leicht in Pfeilrichtung drücken, nach einem Klick lässt sich das Gehäuse aufschieben. Der SD Karten-Slot lässt sich mit einem Stift in der Einbuchtung (3) mit leichtem Druck in Pfeilrichtung öffnen (4). Das Raspberry Pi Board kann durch ein leichtes Klicken in Pfeilrichtung (5) aus dem Gehäuse entfernt werden.
![Gehäuse öffnen, SD Karte wechesln und das Board aus dem Gehäuse entfernen.](images/raspberry_pi_oeffnen_sd_karte_wechseln.jpg)
:::
## WiFi Verbindung einrichten
Das WiFi Network kann auch über den Desktop eingerichtet werden. Das WiFi Symbol in der oberen rechten Ecke des Desktops zeigt die verfügbaren WiFi Netzwerke an. Je nach Einstellungen muss hierbei noch das WiFi Land `CH` ausgewählt werden. Die WiFi Einstellungen können auch über die Konsole mit dem Programm `raspi-config` vorgenommen werden.
::: hint
Für die Verbindung mit dem Internet am Campus muss das Netzwerk *fhnw-public* ausgewählt werden. Im Browser kann über die Website [https://mpp.ict.fhnw.ch](https://mpp.ict.fhnw.ch) mit dem FHNW Login oder über das Mobiltelefon die Verbindung hergestellt werden.
:::
![WiFi Verbindung über den Desktop auf dem Campus herstellen. Das Netzwerk *fhnw-public* wählen und auf der Website https://mpp.ict.fhnw.ch die Verbindung mit dem FHNW Account oder via Mobile herstellen.](images/raspberry_pi_image_wifi_cmu.png)
## SSH Verbindung herstellen\index{SSH}
![Shell über die Softwareleiste öffnen](images/raspberry_pi_shell.jpg){#fig-shell width="30%"}
Das SSH Protokoll ermöglicht den direkten auf den Raspberry Pi über das Konsolenfenster. Hierfür wird die IP Adresse des Raspberry Pi benötigt. Die IP Adresse kann über das Programm `ifconfig` oder `ip addr` in der Konsole abgefragt werden.
![Die IP-Adresse für das Wi-Fi ist unter `wlan0` bei inet aufgeführt. Falls der Raspberry Pi mit einem Ethernet Kabel mit dem Netzwerk verbunden ist, wird die IP Adresse unter `eth0` bei inet aufgeführt.](images/raspberry_pi_ifconfig.png)
Für die Verbindung mit SSH zu Raspberry Pi existieren unterschiedliche Clients:
- Direkt über die Eingabeaufforderung in Windows mit `ssh`
- PuTTY <https://putty.org> (win) ein SSH und telnet client für Windows (auch portable Nutzung ohne Installation möglich)
- Tabby <https://tabby.sh> (win, mac, linux) ein modernes open source Terminal für lokale Shell, Serielle Schnittstelle, SSH und Telnet Verbindungen, File Transfer mit SFTP und Konfigurationsmöglichkeiten (auch portable Nutzung ohne Installation möglich)
![SSH Verbindung mit Putty einrichten](images/raspberry_pi_putty.png)
### Tabby\index{Tabby}
Neues SSH Verbindungsprofil mit Tabby erstellen mit der IP Adresse des Raspberry Pi erstellen.
1. Unter Einstellungen / Profile & Verbindungen ein Neues Profil anlegen
2. In der Auswahl SSH-Verbindung wählen
3. Unter Host die IP Adresse Benutzername des Raspberry Pi setzen und speichern
![SSH Verbindung mit Tabby einrichten (1-5) und anwenden (6).](images/raspberry_pi_tabby.png)
### Datentransfer mit SFTP
Remote Datentransfer mit SFTP dem SSH File Transfer Protokoll\index{SFTP SSH File Transfer Protokoll} ermöglicht ein einfaches Verwalten und auch sichern der Daten. Hierbei eignet sich die Software [FileZilla](https://filezilla-project.org/) oder [WinSCP](https://winscp.net/eng/docs/lang:de) für den Datentransfer.
In Fillezilla eine SFTP Verbindung über Datei/Servermanager herstellen mit Server: `<IP Adresse Raspberry Pi>`, Protokoll: `SFTP`, und bei der Verbindungart `normal` wählen und dort Benutzername und Passwort des Raspberry Pi Users angeben.
![Datentransfer mit FileZilla. Eine neue Verbindung im Servermanager (1) erstellen unter Server die IP-Adresse des Raspberry Pi setzen mit dem SFTP Prokoll, und bei der Verbindungsart *normal* wählen und Benutzername und Passwort des Raspberry Pi angeben und mit "Verbinden" (4) die SFTP Verbindung aufbauen und im Hauptfenster (5) Daten transferieren.](images/raspberry_pi_filezilla.png)
## Mobilen Hotspot nutzen
Auf Windows kann ein mobiler Hotspot eingerichtet werden, um den Raspberry Pi mit dem Internet zu verbinden. Hierfür wird die Internetverbindung des Computers über das WLAN mit dem Raspberry Pi geteilt. Einen Mobilen Hotspot auf Windows einrichten, den Raspberry Pi mit dem Netzwerk verbinden und die IP Adressen der verbundenen Raspberry Pi’s werden im Reiter Mobiler Hotspot aufgeführt.
## Raspberry Pi Config
Die Grundlegenden Einstellungen des Raspberry Pi können mit dem Programm `raspi-config`\index{raspi-config} vorgenommen werden, entweder über die Konsole oder über den Desktop.
Beispielsweise kann dort SSH aktiviert werden, das Tastaturlayout geändert werden oder die Zeitzone angepasst werden. Oder weitere Schnittstellen wie I2C, SPI oder UART aktiviert werden.
![Über die Konsole `raspi-config` starten und über das Konsolenmenu die Einstellungen anpassen. Im Beispiel wird über das Interface Options Menu *SSH* aktiviert.](images/raspberry_pi_enable_ssh.png)
## Raspberry Pi aktualisieren\index{Raspberry Pi Update}
Generell empfiehlt es sich den Raspberry Pi aktuell zu halten und vor jeder Installation von Softwarepaketen folgende Befehle durchzuführen
``` bash
sudo apt update
sudo apt upgrade
sudo apt-get clean
```
## Raspberry Pi im Netzwerk auffinden
Sobald der Raspberry Pi und auch andere Geräte mit dem Netzwerk verbunden sind kann deren IP Adresse mit Scanner Tools wie [Angry IP Scanner ](https://angryip.org), `arp -a`[^ `arp -a` listet die IP- und die MAC Adressen der einzelnen Geräte. Es kann ohne das Aufführen von Hostnamen jedoch aufwendig werden, die einzelnen Einträge durchzugehen um zu eruieren. Tipp: `arp -a` vor dem Booten des Raspberry Pi ausführen und ein zweites mal nachdem der Raspberry Pi vollständig gebootet hat nochmals und eruieren welche IP Adresse hinzugekommen ist.] oder `nmap` gefunden werden. Für Android und iOS existieren diverse Scanner Apps wie [Fing](https://www.fing.com/products/fing-app) oder [Net Analyzer](https://techet.net/netanalyzer).
Dienste, die dass Netzwerk durchleuchten wie der Angry IP Scanner sind in grösseren Netzwerken wie bei Firmen oder Universitäten aus Sicherheitsgründen blockiert. Für den Nutzen im lokalen Netzwerk zu Hause ist der Angry IP Scanner jedoch ein nützliches Tool.
![Beispiel Scan eines lokalen Netzwerks mit dem Angry IP Scanner](images/angryip_scanner.png)
::: {.content-visible when-profile="chapter"}
## Referenzen
:::