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) # dry_mode defaults to false
gpio.set_output 0 # Sets pin 0 to be an output pin
gpio.set 0, 1 # Sets pin 0 to HIGH (on with 3v)
The Stepper
class uses the GPIO class above to perform sequence of operations
to drive a stepper motor:
stepper = OnionOmega::Stepper.new(
range: 1000, # Required. Used to calculate steps for percentage
pins: [0, 1, 2, 3], # Defaults. Which pins used to drive stepper motor
half_stepping: false, # Defaults. Whether to use full or half stepping
persist_to_file: nil, # Defaults. Persist position to file at every step
gpio: GPIO.new # Defaults. Allow GPIO object to be overridden
)
stepper.forward 1 # Defaults. Move forward 1 step
stepper.backward 1 # Defaults. Move backward 1 step
stepper.set_percentage 0.1 # Required. Move to percentage based on range
stepper.reset # Move to 0% based on current position and range
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.