RaspberryPi: Unterschied zwischen den Versionen

Aus Wiki
Zur Navigation springenZur Suche springen
(Pakete)
(Tipps und Tricks)
 
(39 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 22: Zeile 22:
 
* Configuration starten : '''sudo raspi-config'''
 
* Configuration starten : '''sudo raspi-config'''
 
* cron logging aufdrehen : in  der Datei '''/etc/rsyslog.conf''' die Zeile '''#cron.*''' editieren (# am Anfang löschen)
 
* cron logging aufdrehen : in  der Datei '''/etc/rsyslog.conf''' die Zeile '''#cron.*''' editieren (# am Anfang löschen)
 +
* HDMI-Monitor einschalten: ([http://www.elektronik-kompendium.de/sites/raspberry-pi/2111101.htm])
 +
vcgencmd display_power 1
  
 
===== WLAN Verbindung mit der Commandline herstellen ====
 
===== WLAN Verbindung mit der Commandline herstellen ====
Zeile 49: Zeile 51:
  
 
== GPIO==
 
== GPIO==
 +
* [http://pi.gadgetoid.com/pinout Raspberry Interaktives Pinout]
 
* [http://developer-blog.net/hardware/raspberry-pi-gpio-schnittstelle-teil-1/ gpio-schnittstelle]
 
* [http://developer-blog.net/hardware/raspberry-pi-gpio-schnittstelle-teil-1/ gpio-schnittstelle]
 
* [http://raspberrypiguide.de/howtos/raspberry-pi-gpio-how-to/ Raspberry Pi GPIO How-To (inklusice C-Programm Beispiele]
 
* [http://raspberrypiguide.de/howtos/raspberry-pi-gpio-how-to/ Raspberry Pi GPIO How-To (inklusice C-Programm Beispiele]
Zeile 54: Zeile 57:
 
== PiFace ==
 
== PiFace ==
 
* [http://www.noveldevices.co.uk/rp-piface-1 PiFace Interface Card (inklusive C Programmierung)]
 
* [http://www.noveldevices.co.uk/rp-piface-1 PiFace Interface Card (inklusive C Programmierung)]
=== Messen und steuern ===
+
 
==== 1Wire ====
+
== Messen und steuern ==
 +
* [http://abyz.co.uk/rpi/pigpio/cif.html pigpio library]
 +
* WireingPi
 +
 
 +
=== WireingPi installieren ===
 +
cd
 +
mkdir -p Programming
 +
cd Programming
 +
git clone git://git.drogon.net/wiringPicdwiringPi
 +
git pull origin
 +
./build
 +
 
 +
=== 1Wire ===
  
 
[https://www.raspiprojekt.de/anleitungen/schaltungen/9-1wire-mit-temperatursensor-ds18b20.html?showall=1&limitstart= Ds1820 an Raspberry Pi]
 
[https://www.raspiprojekt.de/anleitungen/schaltungen/9-1wire-mit-temperatursensor-ds18b20.html?showall=1&limitstart= Ds1820 an Raspberry Pi]
Zeile 71: Zeile 86:
 
wird der Sensor mit der ID '''10-000802bd06e4''' ausgelesen (dauert ca. 0,5 - 1 Sekunde.
 
wird der Sensor mit der ID '''10-000802bd06e4''' ausgelesen (dauert ca. 0,5 - 1 Sekunde.
  
==== i2c ====
+
=== i2c ===
 
[http://www.gsurf.de/vorbereiten-des-raspberry-pi-auf-i2c/ Raspberry Pi auf I2C]
 
[http://www.gsurf.de/vorbereiten-des-raspberry-pi-auf-i2c/ Raspberry Pi auf I2C]
 
[http://nathan.chantrell.net/20120519/raspberry-pi-and-the-mcp23017-i2c-io-expander/ Raspberry Pi and the MCP23017 I2C I/O Expander]
 
[http://nathan.chantrell.net/20120519/raspberry-pi-and-the-mcp23017-i2c-io-expander/ Raspberry Pi and the MCP23017 I2C I/O Expander]
  
I2C ist default im Rasberry abgedreht. Um es zu aktivieren mus in der Datei ''/etc/modprobe.d/raspi-blacklist.conf'' die Zeile ''blacklist i2c-bcm2708'' auskommentiert werden.
+
I2C ist default im Rasberry abgedreht. Um es zu aktivieren mus in der Datei '''/etc/modprobe.d/raspi-blacklist.conf''' die Zeile ''blacklist i2c-bcm2708'' auskommentiert werden.
 
 
Beschaltung: Wichtig, Pin 18 (Reset) muss auf + gelegt werden
 
  
 
* '''sudo modprobe i2c-bcm2708''' i2c Kernelmodule laden
 
* '''sudo modprobe i2c-bcm2708''' i2c Kernelmodule laden
Zeile 85: Zeile 98:
 
* mit '''sudo i2cdump -y 1 0x20''' werden alle Register des Chips auf der Adresse 0x20 ausgelesen
 
* mit '''sudo i2cdump -y 1 0x20''' werden alle Register des Chips auf der Adresse 0x20 ausgelesen
  
''Register des MCP-23017''
+
damit diese Module beim Start automatisch geladen werden, müssen sie in das File '''/etc/modules''' eingetragen werden
00h IODIRA
+
i2c_dev
01h IODIRB
+
i2c-bcm2708
02h IPOLA
+
 
03h IPOLB
+
==== i2c Bauelemente ====
04h GPINTENA
+
===== MCP 23017 =====
05h GPINTENB
+
Beschaltung: Wichtig, Pin 18 (Reset) muss auf + gelegt werden
06h DEFVALA
 
07h DEFVALB
 
08h INTCONA
 
09h INTCONB
 
0Ah IOCON
 
0Bh IOCON
 
0Ch GPPUA
 
0Dh GPPUB
 
0Eh INTFA
 
0Fh INTFB
 
10h INTCAPA
 
11h INTCAPB
 
12h GPIOA
 
13h GPIOB
 
14h OLATA
 
15h OLATB
 
  
Umschalten der Ports vom ''GPIOA'' auf Ausgang mit dem Befehl '''sudo i2cset 1 0x20 0x00 0xFF'''
+
''Register des MCP-23017'' (der letzte Buchstabe ist immer das Port (A oder B) [http://ww1.microchip.com/downloads/en/DeviceDoc/21952b.pdf Datasheet]
 +
 
 +
{| border="1"
 +
|Register
 +
|Bezeichnung
 +
|Beschreibung
 +
|Anmerkungen
 +
|-
 +
|00h
 +
|IODIRA
 +
|I/O Direction Register
 +
|0=Ausgang, 1=Eingang
 +
|-
 +
|01h
 +
|IODIRB
 +
|-
 +
|02h
 +
|IPOLA
 +
|Input Polarity Port Register
 +
|-
 +
|03h
 +
|IPOLB
 +
|-
 +
|04h
 +
|GPINTENA
 +
|Interrupt-n-Change Control Register Port A
 +
|General purpose I/O interrupt-on-change 1=> Enable GPIO input pin for interrupt-on-change event. 0=> Disable GPIO input pin for interrupt-on-change event
 +
|-
 +
|05h
 +
|GPINTENB
 +
|-
 +
|06h
 +
|DEFVALA
 +
|Default Compare Register GPINTENA
 +
|-
 +
|07h
 +
|DEFVALB
 +
|-
 +
|08h
 +
|INTCONA
 +
|interrupt control (0=interrupt on change, 1=interrupt on change from DEFVAL)
 +
|-
 +
|09h
 +
|INTCONB
 +
|-
 +
|0Ah
 +
|IOCONA
 +
|I/O Expander Configuration Register
 +
|-
 +
|0Bh
 +
|IOCONB
 +
|-
 +
|0Ch
 +
|GPPUA
 +
|GPIO PullUp Port A
 +
|(100k Ohm)
 +
|-
 +
|0Dh
 +
|GPPUB
 +
|-
 +
|0Eh
 +
|INTFA
 +
|Interrupt Flag Register Port A
 +
|Interrupt ein/aus
 +
|-
 +
|0Fh
 +
|INTFB
 +
|-
 +
|10h
 +
|INTCAPA
 +
|Interrupt Capture Register Port A
 +
|Zustand der Ports wird zwischengespeichert wenn ein Interrupt ausgelöst wird (Port A)
 +
|-
 +
|11h
 +
|INTCAPB
 +
|-
 +
|12h
 +
|GPIOA
 +
|das sind die Ein- & Ausgänge (Port A)
 +
|-
 +
|13h
 +
|GPIOB
 +
|-
 +
|14h
 +
|OLATA
 +
|Output Latches (Port A)
 +
|Ein Latch (engl. für Schnappschloss, Auffangregister)
 +
|-
 +
|15h
 +
|OLATB
 +
|}
 +
 
 +
Umschalten der Ports vom ''GPIOA'' auf Ausgang mit dem Befehl '''sudo i2cset 1 0x20 0x00 0x00'''
 
Parameter:
 
Parameter:
 
  1    => i2c Bus 1
 
  1    => i2c Bus 1
 
  0x20 => Adresse des Bausteins
 
  0x20 => Adresse des Bausteins
 
  0x00 => IODIRA (Input Output Direction Bus A)
 
  0x00 => IODIRA (Input Output Direction Bus A)
  0xff => 1111 1111 => alle als Imput (0xff => 1111 1111 => alle als Output)
+
  0xff => 1111 1111 => alle als Imput (0x00 => 0000 0000 => alle als Output)
  
 
Einschalten eines Ausganges '''sudo i2cset 1 0x20 0x12 0x01'''
 
Einschalten eines Ausganges '''sudo i2cset 1 0x20 0x12 0x01'''
Zeile 122: Zeile 211:
 
  0x01 => 0000 0001 => Port 1 einschalten (LED leuchtet)
 
  0x01 => 0000 0001 => Port 1 einschalten (LED leuchtet)
  
 +
===== DS1621 =====
 +
[http://datasheets.maximintegrated.com/en/ds/DS1621.pdf DS1621 Datasheet]
 +
 +
{| border="1"
 +
|Register
 +
|Befehl
 +
|Beschreibung
 +
|-
 +
|AAh
 +
|Read Temperature
 +
|Read last converted temperature value from temperature register (2 Byte!)
 +
|-
 +
|EEh
 +
|Start Convert T
 +
|Initiates temperature conversion.
  
damit diese Module beim Start automatisch geladen werden, müssen sie in das File '''/etc/modules''' eingetragen werden
+
|}
i2c_dev
 
i2c-bcm2708
 
  
===== Programmierung "C" =====
+
==== Programmierung "C" ====
 
[http://wiringpi.com/extensions/i2c-mcp23008-mcp23017/ Wireing Pi I2C: MCP23008 & MCP23017]
 
[http://wiringpi.com/extensions/i2c-mcp23008-mcp23017/ Wireing Pi I2C: MCP23008 & MCP23017]
 +
 +
 +
 +
 +
===== Interrupts =====
 +
[http://cs.smith.edu/dftwiki/index.php/Tutorial:_Interrupt-Driven_Event-Counter_on_the_Raspberry_Pi Tutorial: Interrupt-Driven Event-Counter on the Raspberry Pi]
 +
 +
== RaspBerry als Printserver ==
 +
 +
* sudo apt-get update
 +
* sudo apt-get install cups printer-driver-gutenprint
 +
* sudo cupsctl --remote-admin
 +
* sudo cupsctl --share-printers
 +
* sudo cupsctl --remote-printers
 +
 +
* check mit
 +
cupsctl
 +
 +
die Werte sollten auf 1 stehen
 +
_remote_admin=1
 +
_remote_any=1
 +
_remote_printers=1
 +
_share_printers=1
 +
 +
* sudo usermod -a -G lpadmin pi
 +
* https://IpVomRaspi:631/admin (nicht mit DNS !!!)
 +
*
 +
 +
== ZTE 3G/4G Modem ==
 +
 +
Quelle [http://www.g7smy.co.uk/2014/08/raspberry-pi-as-a-3g4g-router/ How-To: Raspberry Pi as a 3G/4G Router]
 +
 +
mit dem Befehl '''lsusb''' nach dem USB Dongle suchen
 +
$ sudo lsusb
 +
 +
Bus 001 Device 007: ID 19d2:1405 ZTE WCDMA Technologies MSM
 +
 +
wir benötigen den Mode '''1405'''
 +
 +
* 1225 – Default mode. USB Mass Storage Device + CD-ROM + card reader.
 +
* 1403 – Modem mode. RNDIS + Mass Storage Device.
 +
* 1405 – CDC ethernet
 +
* 0016 – Download mode
 +
 +
sollte der Mode 1405 nicht eingestellt sein dann mit dem Befehl '''usb-modemswitch''' umschalten
 +
 +
$ sudo apt-get install usb-modeswitch
 +
$ sudo usb_modeswitch -v 0x19d2 -p 0x1405 -d
 +
 +
Das Modem stellt eine Ethernet Verbindung über USB her => fertig :)
 +
 +
Wenn der Stick keine IP vergibt, die Datei '''/etc/network/interfaces''' bearbeiten und folgende Zeilen einfügen
 +
auto usb0
 +
allow-hotplug usb0
 +
iface usb0 inet dhcp

Aktuelle Version vom 11. Januar 2017, 15:44 Uhr


der RaspberryPi ist ein scheckkarten großer stromsparender Computer der sich besonders zum Messen und Regeln einigt

PaspBerry Pi Homepage

Es gibt einen Klone(Nachfolger) den [Bana Pi] der hat mehr Rechneleistung und ist angeblich kompatibel mit dem Paspberry Pi

Raspberry Pi auf elektronik-kompendium.de

Betriebssysteme

Raspbian

raspbian.org

Standart User : pi

Tipps und Tricks

  • Configuration starten : sudo raspi-config
  • cron logging aufdrehen : in der Datei /etc/rsyslog.conf die Zeile #cron.* editieren (# am Anfang löschen)
  • HDMI-Monitor einschalten: ([1])
vcgencmd display_power 1

= WLAN Verbindung mit der Commandline herstellen

  • wpa_cli starten (default interface ist wlan0
  • scan durchsucht die vorhanden Netzwerke
  • mit scan_results werden die gefundenen Netzwerke angezeigt
  • add_network legt eine neue Netzwerkkonfiguration an (beim ersten MAl die Konfiguration 0, dies wird als Wert angezeigt) dieser muss als ID angegeben werden
  • set_network 0 ssid "WLAN-Network"
  • set_network 0 psk "SupahSecretPassphrase"

Pakete

update der Paketlisten

# sudo apt-get update

Pakete updaten

# sudo apt-get upgrade


  • mc (Midnight Comander) => sudo apt-get install mc
  • iceweasel (firefox Ersatz) => sudo apt-get install iceweasel
  • php => sudo apt-get install php5
  • php-mysql => sudo apt-get install php5-mysql
  • git => sudo apt-get install git-core

Software

OpenVpn auf Raspberry Pi installieren

GPIO

PiFace

Messen und steuern

WireingPi installieren

cd
mkdir -p Programming
cd Programming
git clone git://git.drogon.net/wiringPicdwiringPi
git pull origin
./build

1Wire

Ds1820 an Raspberry Pi

Bevor man mit dem Rasperry den 1Wire Bus benutzen an, müssen die Kernel Module geladen werden

  • sudo modprobe w1-gpio pullup=1
  • sudo modprobe w1-therm

damit diese Module beim Start automatisch geladen werden, müssen sie in das File /etc/modules eingetragen werden

w1-gpio pullup=1
w1-therm

auf die Sensoren wird via Device zugegriffen. Für jeden Sesnor gibt es ein Verzeichnis unter /sys/bus/w1/devices in diesem Unterverzeichnis dann die Datei w1_slave. mit dem Befehl

/sys/bus/w1/devices/10-000802bd06e4/w1_slave

wird der Sensor mit der ID 10-000802bd06e4 ausgelesen (dauert ca. 0,5 - 1 Sekunde.

i2c

Raspberry Pi auf I2C Raspberry Pi and the MCP23017 I2C I/O Expander

I2C ist default im Rasberry abgedreht. Um es zu aktivieren mus in der Datei /etc/modprobe.d/raspi-blacklist.conf die Zeile blacklist i2c-bcm2708 auskommentiert werden.

  • sudo modprobe i2c-bcm2708 i2c Kernelmodule laden
  • sudo modprobe i2c_dev i2c Kernelmodule laden
  • sudo apt-get install i2c-tools i2c Tools installieren
  • testen des i2c mit sudo i2cdetect -y 1 Auf einer Adresse sollte ein Gerät angezeigt werden (zum Beispiel 0x20)
  • mit sudo i2cdump -y 1 0x20 werden alle Register des Chips auf der Adresse 0x20 ausgelesen

damit diese Module beim Start automatisch geladen werden, müssen sie in das File /etc/modules eingetragen werden

i2c_dev
i2c-bcm2708

i2c Bauelemente

MCP 23017

Beschaltung: Wichtig, Pin 18 (Reset) muss auf + gelegt werden

Register des MCP-23017 (der letzte Buchstabe ist immer das Port (A oder B) Datasheet

Register Bezeichnung Beschreibung Anmerkungen
00h IODIRA I/O Direction Register 0=Ausgang, 1=Eingang
01h IODIRB
02h IPOLA Input Polarity Port Register
03h IPOLB
04h GPINTENA Interrupt-n-Change Control Register Port A General purpose I/O interrupt-on-change 1=> Enable GPIO input pin for interrupt-on-change event. 0=> Disable GPIO input pin for interrupt-on-change event
05h GPINTENB
06h DEFVALA Default Compare Register GPINTENA
07h DEFVALB
08h INTCONA interrupt control (0=interrupt on change, 1=interrupt on change from DEFVAL)
09h INTCONB
0Ah IOCONA I/O Expander Configuration Register
0Bh IOCONB
0Ch GPPUA GPIO PullUp Port A (100k Ohm)
0Dh GPPUB
0Eh INTFA Interrupt Flag Register Port A Interrupt ein/aus
0Fh INTFB
10h INTCAPA Interrupt Capture Register Port A Zustand der Ports wird zwischengespeichert wenn ein Interrupt ausgelöst wird (Port A)
11h INTCAPB
12h GPIOA das sind die Ein- & Ausgänge (Port A)
13h GPIOB
14h OLATA Output Latches (Port A) Ein Latch (engl. für Schnappschloss, Auffangregister)
15h OLATB

Umschalten der Ports vom GPIOA auf Ausgang mit dem Befehl sudo i2cset 1 0x20 0x00 0x00 Parameter:

1    => i2c Bus 1
0x20 => Adresse des Bausteins
0x00 => IODIRA (Input Output Direction Bus A)
0xff => 1111 1111 => alle als Imput (0x00 => 0000 0000 => alle als Output)

Einschalten eines Ausganges sudo i2cset 1 0x20 0x12 0x01

1    => i2c Bus 1
0x20 => Adresse des Bausteins
0x12 => GPIOA
0x01 => 0000 0001 => Port 1 einschalten (LED leuchtet)
DS1621

DS1621 Datasheet

Register Befehl Beschreibung
AAh Read Temperature Read last converted temperature value from temperature register (2 Byte!)
EEh Start Convert T Initiates temperature conversion.

Programmierung "C"

Wireing Pi I2C: MCP23008 & MCP23017



Interrupts

Tutorial: Interrupt-Driven Event-Counter on the Raspberry Pi

RaspBerry als Printserver

  • sudo apt-get update
  • sudo apt-get install cups printer-driver-gutenprint
  • sudo cupsctl --remote-admin
  • sudo cupsctl --share-printers
  • sudo cupsctl --remote-printers
  • check mit
cupsctl

die Werte sollten auf 1 stehen

_remote_admin=1
_remote_any=1
_remote_printers=1
_share_printers=1

ZTE 3G/4G Modem

Quelle How-To: Raspberry Pi as a 3G/4G Router

mit dem Befehl lsusb nach dem USB Dongle suchen

$ sudo lsusb
Bus 001 Device 007: ID 19d2:1405 ZTE WCDMA Technologies MSM

wir benötigen den Mode 1405

  • 1225 – Default mode. USB Mass Storage Device + CD-ROM + card reader.
  • 1403 – Modem mode. RNDIS + Mass Storage Device.
  • 1405 – CDC ethernet
  • 0016 – Download mode

sollte der Mode 1405 nicht eingestellt sein dann mit dem Befehl usb-modemswitch umschalten

$ sudo apt-get install usb-modeswitch
$ sudo usb_modeswitch -v 0x19d2 -p 0x1405 -d

Das Modem stellt eine Ethernet Verbindung über USB her => fertig :)

Wenn der Stick keine IP vergibt, die Datei /etc/network/interfaces bearbeiten und folgende Zeilen einfügen

auto usb0
allow-hotplug usb0
iface usb0 inet dhcp