OnionOmega
A Ruby wrapper for the fast-gpio
command line tool found on the Onion Omega
base operating system.
This gem provides a basic GPIO
class and a Stepper
class that uses the GPIO
pins to drive a stepper motor.
Installation
Add this line to your application's Gemfile:
gem 'onion_omega'
And then execute bundle
Usage
The GPIO
class simply wraps the fast-gpio
command line tool and has a
similar interface:
gpio = OnionOmega::GPIO.new(dry_mode: false)
gpio.set_output 0
gpio.set 0, 1
The Stepper
class uses the GPIO class above to perform sequence of operations
to drive a stepper motor:
stepper = OnionOmega::Stepper.new(
range: 1000,
pins: [0, 1, 2, 3],
half_stepping: false,
persist_to_file: nil,
gpio: GPIO.new
)
stepper.forward 1
stepper.backward 1
stepper.set_percentage 0.1
stepper.reset
While range
is a required parameter, it is only used for
Stepper#set_percentage
and Stepper#reset
.
The option to override the GPIO
object is useful for testing to allow a GPIO
object that has dry_mode
enabled to passed in which will only result in STDOUT
messages instead of actual commands being executed.
Development
After checking out the repo, run bin/setup
to install dependencies. Then, run
rake test
to run the tests. You can also run bin/console
for an interactive
prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install
. To
release a new version, update the version number in version.rb
, and then run
bundle exec rake release
, which will create a git tag for the version, push
git commits and tags, and push the .gem
file to
rubygems.org.
Contributing
Bug reports and pull requests are welcome on GitHub at
https://github.com/stevenocchipinti/onion_omega.
License
The gem is available as open source under the terms of the MIT
License.