Raspberry Pi: Per Bash mit GPIO Lib wiringpi, per Phyton mit RPi.GPIO und Java mit pi4j ansteuern der Pins auf Kali

Um die Pins per Bash anzusteuern, kann die wiringpi Lib verwendet werden. Die GPIO Homepage oder auch die Pin Belegung des rPi ist hilfreich.

So, jetzt erst einmal alles installieren und testen mit einer LED mit Widerstand an Pin 7 (4. Pin von oben links) und Masse (ganz unten links).

Zuerst alles für die Bash, um von der Konsole auf die Pins zugreifen zu können:

# installieren der wiringPi lib
# git installieren
sudo apt-get install git-core
# repo clonen
git clone git://git.drogon.net/wiringPi
cd wiringPi
git pull origin
cd wiringPi
# compilieren 
./build
# test die Version ausgeben
gpio -v
# Ergebnis: gpio version: 2.25
# Status aller ausgeben mit
gpio readall
# Ergebnis:

Wir sehen nun alle Werte. Z.B. ist der GPIO. 7 auf OUT geschaltet und der Wert in Spalte V(alue) ist 0.
Da ich eine LED zwischen GPIO 7 und Masse geklemmt habe ist die nun aus.
alle aus
Jetzt schalten wir die LED an Pin 7 an mit:

gpio write 7 1

und die LED geht an. Der Status ist nun auf 1 in der V Spalte:
GPIOs

Jetzt soll auch der Zugriff per Python laufen.
Da es bei Kali kein Python Package gibt, bauen wir RPi.GPIO selbst zusammen:

# Lib downloaden
wget https://pypi.python.org/packages/source/R/RPi.GPIO/RPi.GPIO-0.5.11.tar.gz
# auspacken
tar -xvf RPi.GPIO-0.5.11.tar.gz
cd RPi.GPIO-0.5.11
# instalieren
sudo python setup.py install
# löschen
cd ~
sudo rm -rf RPi.GPIO-0.*

So jetzt können wir auch von Phyton aus auf die Pins zugreifen, hier mal ein Testscript led.py, welches die LED an Pin 7 anschaltet:

#!/usr/bin/python

import RPi.GPIO as GPIO
GPIO.setwarnings(False)
GPIO.setmode(GPIO.BOARD)
GPIO.setup(7, GPIO.OUT)
GPIO.output(7, True)
chmod +x led.py

Und ausführen des Python Script als sudo:

sudo ./led.py

Hier gibt es noch Beispiele.

Das Java Interface pi4j kann bei der Gelegenheit auch gleich installiert werden mit:

curl -s get.pi4j.com | sudo bash

Ok, bei Kali schlägt das fehl. Deshalb manuel:

# archive holen
sudo wget http://get.pi4j.com/download/pi4j-1.0-SNAPSHOT.deb
# installieren
sudo dpkg -i pi4j-1.0-SNAPSHOT.deb
# beispiele compilieren, dauert 10 min
sudo cd /opt/pi4j/examples
sudo ./build
# test eines Beispiels, Ausführen des Blink Beispiels
sudo java -classpath .:classes:/opt/pi4j/lib/'*' BlinkGpioExample

Kommt unter Kali zu folgenden Fehler, da nicht die aktuelle Java Version installiert ist, sondern 1.6.0_34. Deshalb sind auch beim compilieren Warnungen aufgetreten.

Exception in thread "main" java.lang.UnsupportedClassVersionError: com/pi4j/io/gpio/GpioFactory : Unsupported major.minor version 51.0
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:643)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
	at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
	at BlinkGpioExample.main(BlinkGpioExample.java:55)

Ok, dann auch noch Java 1.7 umschalten.

update-alternatives --config java
update-alternatives --config javac
# test
java -version
# ok 
# java version "1.7.0_75"
# OpenJDK Runtime Environment (IcedTea 2.5.4) (7u75-2.5.4-1~deb7u1)
# OpenJDK Zero VM (build 24.75-b04, mixed mode)
#
# neu compilieren, nochmal 10 min warten für alle 34 Beispiele 
sudo cd /opt/pi4j/examplessudo 
./build
# ok, keine Fehler mehr

So nun das Testen ob die Java Programme ausgeführt werden können.

Das klappt leider noch nicht, es kommt die Fehlermeldung das die libpi4j.so nicht gefunden wird:

root@pi:/opt/pi4j/examples# java -classpath .:classes:/opt/pi4j/lib/'*' BlinkGpioExample
<--Pi4J--> GPIO Blink Example ... started.
Feb 28, 2015 7:53:25 PM com.pi4j.util.NativeLibraryLoader load
SCHWERWIEGEND: Unable to load [libpi4j.so] using path: [/lib/libpi4j.so]
java.lang.UnsatisfiedLinkError: /tmp/libpi4j2137877968790734584.so: /tmp/libpi4j2137877968790734584.so: Kann die Shared-Object-Datei nicht öffnen: Datei oder Verzeichnis nicht gefunden

Die gibt es da auch nicht. Da mache ich dann bei Gelegenheit weiter…

Ähnliche Artikel:

  1. Wie kann auf einem Raspberry Pi die neueste Java 1.8 Version von Oracle installiert werden?
  2. Wie nehme ich einen Raspberry Pi inkl. Java auf einem Mac in Betrieb?
  3. Welche Java Version gibt es für Mac OS X?

wallpaper-1019588
Wie man als Reisender auf seine Kontaktlinsen achtet
wallpaper-1019588
[Comic] Superman [2]
wallpaper-1019588
DAN DA DAN: Serie erscheint bei polyband auf Disc
wallpaper-1019588
Kettlebell Konzentrations Curls