Rand Stats

RPi::GpioDirect

github:donaldh

RPi::GpioDirect

Access the Raspberry Pi GPIO

Overview

The RPi::GpioDirect module provides access to the Raspberry Pi GPIO without any dependency on C libraries. RPi::GpioDirect makes use of /dev/gpiomem so that it can run without elevated privileges.

RPi::GpioDirect has only been tested with a Raspberry Pi 3 but is likely to work with a Pi 2. RPi::GpioDirect is also dependent on a kernel with /dev/gpiomem.

Installation

$ panda install RPi::GpioDirect

Usage

use RPi::GpioDirect;

my $pi = RPi::GpioDirect.new;

say 'Pin  Name      Value  Mode';
for $pi.gpio-pins -> $pin {
    say sprintf('%2s   %-8s  %5s  %4s',
                $pin, $pi.pin-name($pin), $pi.read($pin), $pi.function($pin)
               );
}

say '';
say 'Pin  Name      Value';
for 11, 12 -> $pin {
    $pi.set-function($pin, Out);
    for Off, On, Off, On -> $value {
        $pi.write($pin, $value);
        say sprintf('%2s   %-8s  %5s',
                    $pin, $pi.pin-name($pin), $pi.read($pin));
    }
}

Author

Donald Hunter - donaldh @ #perl6