This website is written in Ruby using the Sinatra framework and hosted with Passenger / Nginx on the Raspberry Pi ( temporarily not on a Pi! ) assisted by Cloudflare and a dash of jsDelivr

WiringPi Serial And Shiftout

Gordon strikes again, releasing a new WiringPi which not only includes the ShiftOut functions I was attempting to add, but also a whole delightful library of Serial goodness.

I've rolled both of these things into a new version of the WiringPi gem, which has also undergone some significant architectural changes favouring a more Object Orientated design. I've incremented the major version to reflect this.

To use GPIO functions you should create an instance of the WiringPi::GPIO class:

require 'wiringpi'
pin = 1
io = WiringPi::GPIO.new
io.mode(pin,OUTPUT)
io.write(pin,value)
io.read(pin,value)

And to use Serial functions, use the Serial class:

require 'wiringpi'
s = WiringPi::Serial.new('/dev/ttyAMA0',9600)
s.serialPuts('Hello world!')
s.serialClose

I've also wrapped up GPIO.shiftOut with an handy, more Ruby-friendly function shiftOutArray. This takes an array of 1s and 0s and shifts them out as bytes automatically.

Full source for WiringPi-Ruby is available on GitHub and I've pushed up Gordon's WiringPi library itself for those interested in contributing to the code.

« Back to index Posted on 2012-07-10 by