Skip to content

denko-rb/pigpio_ffi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pigpio_ffi 0.1.0

This gem uses FFI to provide Ruby method bindings for the pigpio C library. This makes the Raspberry Pi GPIO pins usable in Ruby.

NOTE: This is for Ruby on Linux, not for the Raspberry Pi Pico (W).

Installation

Install pigpio with:

  sudo apt-get install pigpio

Install this gem as root:

  sudo gem install pigpio_ffi

Ruby scripts need to be run as root:

  sudo ruby my_script.rb

Example

require 'pigpio_ffi'

PiGPIO.gpioInitialise
PiGPIO.gpioSetMode(4, 1)

10.times do
  PiGPIO.gpioWrite(4, 1)
  sleep 0.5
  PiGPIO.gpioWrite(4, 0)
  sleep 0.5
end

# This must be called or the script will block forever.
PiGPIO.gpioTerminate

This will blink an LED attached to GPIO 4, every half second, for 10 seconds total.

Mapped Features

  • Basic GPIO (set mode, read, write, alert on change)
  • PWM (bitbang)
  • Servo (bitbang)
  • Waves (infrared and other protocols)
  • I2C (still untested)
  • SPI (still untested)

Documentation

As much as possible, the class methods of PiGPIO follow the function names and argument formats of the pigpio C functions. These can be found in its documentation, located here.

Exceptions:

  • Functions where one argument is a callback function. These translate to Ruby methods that take a block.
  • Functions that take arrays and their length as separate arguments. These translate to Ruby methods where the length argument is omitted.
  • Not all functions are mapped. I left out anything Ruby (or an existing gem) can already do, or any complex data processing that would be easier in Ruby anyway.

TODO: List methods with different interfaces, and unmapped methods here.

About

Ruby gem that wraps the pigpio C library, using FFI.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages