Himbeere-Computer (Raspberry Pi)
Einleitung
Ausser dem "raspberry pi" werden noch folgende Teile gebraucht:
- USB-Netzteil mit mindestens 1.2A (meins hat 2.5A)
- USB-Kabel mit Microstecker
- HDMI-Kabel
- HDMI-Monitor (Fernseher mit HDMI-Eingang)
- USB-Tastatur
- USB-Maus
- Ethernet-Kabel
- SD-Karte mindestens 4GB, getestet: SanDisk SDHC 16GB Class 10, Samsung SDHC 4GB Class 4
- SD-Kartenleser zum Installieren unter Linux oder anderem Betriebssystem
Mit Hilfe dieser Links zum Laufen gebracht:
Die Anleitung zum Erstellen der SD-Karte unter Linux ist inzwischen aber offenbar nicht mehr vorhanden.
Deshalb hier also eine kurze Anleitung:
SD-Karte unter Linux erstellen
- Datei 2012-12-16-wheezy-raspbian.zip herunterladen (inzwischen vermutlich mit leicht anderem Namen)
- sha1sum 2012-12-16-wheezy-raspbian.zip ;Vergleichen mit der Nummer von der Webseite
- unzip 2012-12-16-wheezy-raspbian.zip ;Das dauert eine Weile
- df -h ;vor dem Einstecken des SD-Kartenlesers
- df -h ;nach Einstecken des SD-Kartenlesers mit eingesetzter SD-Karte
- umount /dev/sdx1 ;entsprechend obiger Ausgabe z.B. sdh1 einsetzen
- sudo dd bs=4M if=./2012-12-16-wheezy-raspbian.img of=/dev/sdx ;Das dauert eine Weile
- sudo sync ;danach kann die SD-Karte ausgesteckt werden
Vorsicht mit "/dev/sdx": dies muss natürlich entsprechend der Ausgabe von "df -h" angepasst werden.
Bei Angabe von falscher Disk kann die Harddisk ohne Warnung gelöscht werden!
Erstellen einer SD-Karte mit Riscos funktioniert gleich, aber mit riscos-2012-11-01-RC6.zip (inzwischen vielleicht neuere Version).
Leider funktioniert das Internet (Lan) nicht. Bei den Einstellunge steht nur USB-Lan zur Auswahl, nicht aber die Ethernet-Schnittstelle.
Eine etwas ausführlichere Anleitung zum SD-Karte einrichten.
Linux auf dem Raspi einrichten
Nachdem die SD-Karte erstellt ist, wird sie eingesteckt, alle Teile (Tastatur, Bildschirm, ...) angeschlossen und
eingeschaltet. Es erscheint dann nach kurzer Zeit ein Fenster zum Einstellungen machen.
- Mit expand_rootfs wird das Image der SD-Karte auf die gesamte Karte vergrössert
- Mit configure_keyboard die Tastaturbelegung einstellen
- Mit boot_behaviour kann man einstellen dass jeweils direkt in die Grafik-Umgebung gestartet wird.
Falls man später da nochmals andere Einstellungen machen will, kann man es mit "sudo raspi-config" wieder aufrufen.
System aktualisieren: (eventuell muss statt "apt-get" jeweils "sudo apt-get" eingegeben werden)
> apt-get update
> apt-get upgrade
> dpkg --get-selections | grep gcc
Falls gcc nicht gefunden wird:
> apt-get install build-essential
Wenn als Editor Emacs verwendet werden soll:
> apt-get install emacs
Weitere wichtige Packete installieren:
> apt-get install libx11-dev
> apt-get install xfonts-cyrillic
> apt-get install xfonts-base
> apt-get install xfonts-100dpi
> apt-get install xfonts-75dpi
Assembler-Programmierung
Eigene Tutorials:
- Eigenes Tutorial Assembler-Tutorial um direkt ohne Compiler zu programmieren (in Teil1 und 2).
- Teil2 In diesem Teil wird der Systemtimer erklärt.
- Teil3 Ab hier wird dann as (aus dem Paket gcc) als Compiler (Crosscompiler) verwendet.
- Teil4 Hier wird das Benutzen von LED-Lämpchen und Tastern erklärt, sowie eine kurze Einführung in Interrupts gemacht.
- Teil5 Hier sollten noch Interrupts vertieft werden (noch in Arbeit)
Im Netz gefundene Tutorials:
GPIO-Pins programmieren
Erste Testschaltung:
Wie diese LEDs in Assembler anzusprechen sind ist ja schon in obigem Tutorial erklärt.
Hier noch ein erstes Testprogramm mit Python:
import RPi.GPIO as GPIO
import time
GPIO.setmode(GPIO.BCM)
GPIO.setup(17, GPIO.OUT)
GPIO.setup(27, GPIO.OUT) # bei aelterer Version 21
while True:
GPIO.output(17, False) # LED einschalten
GPIO.output(27,False)
time.sleep(1) # 1 Sekunde ein
GPIO.output(17, True) # LED aus
GPIO.output(27,True)
time.sleep(2) # 2 Sekunden aus
Datenblätter
Für mein obiges Tutorial habe ich folgende Datenblätter gebraucht:
(Anscheinend wurde die Seite raspberrycenter.de von einer Firma geklaut, die nichts mit dem Raspberry Pi zu tun hat)
Weitere Links
Last update: 9.Mai.2015 / 1.Juli2020 (Links angepasst) / Rolf