Installation von GPIO

Um auf dem Raspberry Pi innerhalb von Perl GPIO benutzen zu können sind die folgenden Installationen notwendig:

  1. die C library für Broadcom BCM 2835 von http://www.open.com.au/mikem/bcm2835
  2. die BCM2835 perl library von CPAN http://search.cpan.org/~mikem/Device-BCM2835/lib/Device/BCM2835.pm

Folgende Schritte sind für die Installation der C library von Broadcom BCM 2835 durchzuführen:

 wget http://www.open.com.au/mikem/bcm2835/bcm2835-1.17.tar.gz
 tar zxvf bcm2835-1.17.tar.gz
 cd bcm2835-1.17
 ./configure
 make
 sudo make test
 sudo make install
 

Für die BCM 2835 perl library sind die folgenden Schritte zu befolgen:

 wget http://search.cpan.org/CPAN/authors/id/M/MI/MIKEM/Device-BCM2835-1.6.tar.gz
 tar –xvfz Device-BCM2835-1.6.tar.gz
 perl Makefile.PL
 make
 sudo make test
 sudo make install
 

Die korrekte Funktion lässt sich mit der im Folgenden dargestellten Teststellung überprüfen.

Blink LED Breadboard

Blink LED Schaltplan

Sehr gute Dienste leistet hier das Beispiel Skript von http://elinux.org/RPi_Low-level_peripherals#GPIO_Driving_Example_.28Perl.29

 #!/usr/bin/perl

use Device::BCM2835;
 use strict;

# call set_debug(1) to do a non-destructive test on non-RPi hardware
 #Device::BCM2835::set_debug(1);
 Device::BCM2835::init()
 || die "Could not init library";

# Blink pin 11:
 # Set RPi pin 11 to be an output
 Device::BCM2835::gpio_fsel(&Device::BCM2835::RPI_GPIO_P1_11,
 &Device::BCM2835::BCM2835_GPIO_FSEL_OUTP);

while (1){
 # Turn it on
 Device::BCM2835::gpio_write(&Device::BCM2835::RPI_GPIO_P1_11, 1);
 Device::BCM2835::delay(500); # Milliseconds
 # Turn it off
 Device::BCM2835::gpio_write(&Device::BCM2835::RPI_GPIO_P1_11, 0);
 Device::BCM2835::delay(500); # Milliseconds
 }
 

Das Skript macht nichts anderes als die LED jeweils für 500 Millisekunden an beziehungsweise auszuschalten und läuft bis es durch die Eingabe von ctrl+c abgebrochen wird.

Blink LED Wiring

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.