RaspberryPi

Aus Wiki
Wechseln zu: Navigation, Suche


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