Onboard LEDs
Jeder Raspberry, also egal welcher Typ hat mindestens zwei LEDs eine rote für Power und ein grüne für Aktivität.Die Grüne ist per Software ansteuerbar, man könnte damit Signale an die Außenwelt geben.
Die folgende Information ist von hier übernommen:
Die Steuerung übernehmen
echo none >/sys/class/leds/led0/trigger
Die Steuerung wieder Original setzen
echo mmc0 >/sys/class/leds/led0/trigger
Die LED steuern
echo 1 >/sys/class/leds/led0/brightness
echo 0 >/sys/class/leds/led0/brightness
Oder die LED über Python steuern
#!/usr/bin/python
import RPi.GPIO as GPIO
from time import sleep
# Needs to be BCM. GPIO.BOARD lets you address GPIO ports by periperal
# connector pin number, and the LED GPIO isn't on the connector
GPIO.setmode(GPIO.BCM)
# set up GPIO output channel
GPIO.setup(16, GPIO.OUT)
# On
GPIO.output(16, GPIO.LOW)
# Wait a bit
sleep(10)
# Off
GPIO.output(16, GPIO.HIGH)
Eingänge mit Pull UP oder Pull Down Widerstand beschalten
Will man mit einfachen Tastern etwas eingeben, muss der Eingang zunächst einen definierten Zustand haben. Entweder einen Widerstand nach Plus - PullUp oder einen nach Masse - PullDown.Sicher ist sicher wenn man eine externen Widerstand verwendet, aber die Himbeere hat auch schon welche eingebaut. Diese 50 kOhm Widerstände kann man aktivieren.
Mit dem GPIO Tool
Mit verschiedenen Sprachen
Nur mit der Shell geht es offenbar nicht.
Mit Python (Quelle)
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
GPIO.setup(23, GPIO.IN, pull_up_down = GPIO.PUD_DOWN)
GPIO.setup(24, GPIO.IN, pull_up_down = GPIO.PUD_UP)
while True:
if(GPIO.input(23) ==1):
print(“Button 1 pressed”)
if(GPIO.input(24) == 0):
print(“Button 2 pressed”)
GPIO.cleanup()
Anwendungsbeispiel
Mit einem Taster den Raspberry starten bzw. herunterfahren, quasi ein Soft Power Switch.Zwischen Pin 5 (GPIO3) und Pin 9 oder Pin 6 (Masse) des GPIO Connectors schalten wir einen kleinen Taster. Oder wir verwenden nur einen Jumper (Pin 5 - 6) falls nichst weiter am GPIO Connector steckt.
Wird Pin 5 bei herunter gefahrenem Pi (sudo halt) kurz!!! auf Masse gelegt, startet der Pi ohne die Stromversorgung unterbrechen zu müssen.
ToDo Schaltbild
Das Geniale dabei ist: Den gleichen Taster kann man verwenden um den Pi genau in diesen Aus (Halt) Zustand zu bringen.
ToDo Programm beim Systemstart zum konfigurieren des Eingangs mit PullUp und Abfrage und Einbindung in den Systemstart.
Zunächst also mal die Abfrage der Taste und den Pi herunterfahren.
Diese Python Script zum Herunterfahren habe ich von hier.
#! /usr/bin/env python
import os
import RPi.GPIO as GPIO
GPIO.setmode(GPIO.BCM)
# GPIO3 (pin 5) set up as input. It is pulled up to stop false signals
GPIO.setup(3, GPIO.IN, pull_up_down=GPIO.PUD_UP)
try:
while True:
# wait for the pin to be sorted with GND and, if so, halt the system
GPIO.wait_for_edge(3, GPIO.FALLING)
# shut down the rpi
os.system("/sbin/shutdown -h now")
except:
GPIO.cleanup()
Um eine Quittung zu bekommen, dass der shutdown Prozess eingeleitet wurde lassen wir die grüne LED zweimal blinken.
ToDo Programm um die grüne LED umzukonfigurieren und blinken zu lassen
http://www.forum-raspberrypi.de/Thread-python-aufruf-von-shell-script-in-python
http://www.python-kurs.eu/os_modul_shell.php
Keine Kommentare:
Kommentar veröffentlichen