What is this?
Ruby code for controlling NeoPixels attached to a Raspberry Pi.
Is it any good?
Yes.
How do I run it?
Install the gem on your RaspberryPi, and copy the strandtest.rb
file to your
home directory:
sudo gem install pixel_pi
cp `gem contents pixel_pi | grep strandtest.rb` .
Edit the LED_COUNT
and LED_PIN
at the top of the file to
match the NeoPixel circuit attached to your RaspberryPi (read the RaspberryPi
NeoPixel guide
from Adafruit for all the details). Now run the strandtest example:
sudo ruby strandtest.rb
Enjoy the blinken lights!
It won't run!
Yes it will.
The ws2811 driver is using direct memory
addressing (DMA) via /dev/mem
to control the NeoPixels. Only the root user has
permission to read and write to this hardware device. So any time your work with
NeoPixels, your code will need to be run as the super user.
I want to help out
If you want to contribute to this gem then you will need a development environment setup on your RaspberryPi. You will need the ruby headers installed locally.
sudo apt-get install ruby ruby-dev
Install some ruby gems.
sudo gem install rake
sudo gem install rake-compiler
The rake-compiler
gem might not install properly. The problem is a very strict
requirement on the rubygems version. To work around this we need to download the
source code, create the gem by hand, and install. You can skip this step if
rake-compiler installed successfully.
sudo su
git clone https://github.com/luislavena/rake-compiler.git
cd rake-compiler
rake gem
gem install pkg/rake-compiler-0.9.3.gem --no-rdoc --no-ri
cd ../
rm -fr rake-compiler
exit
Now we can compile the NeoPixels ruby library.
rake compile
Take a look at the examples/strandtest.rb
file and adjust the LED_COUNT
and
LED_PIN
to match your circuit. Run the strandtest and bask in the glow of
blinking rainbow lights.
sudo ruby examples/strandtest.rb