pi_piper 1.3 → 1.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/Manifest CHANGED
@@ -6,3 +6,4 @@ lib/pi_piper/bcm2835.rb
6
6
  lib/pi_piper/libbcm2835.img
7
7
  lib/pi_piper/pin.rb
8
8
  lib/pi_piper/spi.rb
9
+ pi_piper.gemspec
data/README.md CHANGED
@@ -1,10 +1,24 @@
1
1
  ## Overview
2
2
 
3
- Pi Piper brings event driven programming to the Raspberry Pi's GPIO pins. To get started:
3
+ Pi Piper brings event driven programming to the Raspberry Pi's GPIO pins. Pi Piper works with all revisions of the Raspberry Pi,
4
+ and has been tested with Ruby 1.9.3 under both [Raspbian "wheezy"](http://www.raspberrypi.org/downloads) and [Occidentalis v0.2](http://learn.adafruit.com/adafruit-raspberry-pi-educational-linux-distro/occidentalis-v0-dot-2).
5
+
6
+ To get started:
7
+
8
+ If you do not already have Ruby installed, first you'll need to:
9
+
10
+ sudo apt-get install ruby ruby1.9.1-dev
11
+
12
+ Despite one of the packages being titled "ruby1.9.1-dev", the above command will install Ruby 1.9.3 (as of January 2013) and the Ruby dev tools.
13
+
14
+ To install Pi Piper:
4
15
 
5
16
  sudo gem install pi_piper
6
17
 
7
18
  ### GPIO
19
+
20
+ The GPIO pins (or General Purpose I/O pins) are the primary "do anything" pins on the Raspberry Pi. Reading inputs from them is as simple as:
21
+
8
22
  ```ruby
9
23
  require 'pi_piper'
10
24
  include PiPiper
@@ -13,6 +27,12 @@ watch :pin => 23 do
13
27
  puts "Pin changed from #{last_value} to #{value}"
14
28
  end
15
29
 
30
+ #Or
31
+
32
+ after :pin => 23, :goes => :high do
33
+ puts "Button pressed"
34
+ end
35
+
16
36
  PiPiper.wait
17
37
  ```
18
38
 
@@ -32,8 +52,7 @@ Starting with version 1.2, Pi Piper offers SPI support.
32
52
 
33
53
  ```ruby
34
54
  PiPiper::Spi.begin do |spi|
35
- raw = spi.write [1, (8+adc_num)<<4, 0]
36
- value = ((raw[1]&3) << 8) + raw[2]
55
+ puts spi.write [0x01, 0x80, 0x00]
37
56
  end
38
57
  ```
39
58
 
data/Rakefile CHANGED
@@ -2,7 +2,7 @@ require 'rubygems'
2
2
  require 'rake'
3
3
  require 'echoe'
4
4
 
5
- Echoe.new('pi_piper', '1.3') do |p|
5
+ Echoe.new('pi_piper', '1.3.1') do |p|
6
6
  p.description = "Event driven Raspberry Pi GPIO library"
7
7
  p.url = "http://github.com/jwhitehorn/pi_piper"
8
8
  p.author = "Jason Whitehorn"
@@ -85,19 +85,15 @@ module PiPiper
85
85
  end
86
86
 
87
87
  #Begin an SPI block. All SPI communications should be wrapped in a block.
88
- def self.begin(chip=nil)
88
+ def self.begin(chip=nil, &block)
89
89
  Bcm2835.spi_begin
90
90
  chip = CHIP_SELECT_0 if !chip && block_given?
91
91
  spi = new(chip)
92
92
 
93
- if block_given?
94
- begin
95
- yield(spi)
96
- ensure
97
- self.end
98
- end
99
- else
100
- spi
93
+ if block.arity > 0
94
+ block.call spi
95
+ else
96
+ spi.instance_exec &block
101
97
  end
102
98
  end
103
99
 
@@ -2,11 +2,11 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "pi_piper"
5
- s.version = "1.3"
5
+ s.version = "1.3.1"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Jason Whitehorn"]
9
- s.date = "2013-01-28"
9
+ s.date = "2013-02-05"
10
10
  s.description = "Event driven Raspberry Pi GPIO library"
11
11
  s.email = "jason.whitehorn@gmail.com"
12
12
  s.extra_rdoc_files = ["README.md", "lib/pi_piper.rb", "lib/pi_piper/bcm2835.rb", "lib/pi_piper/libbcm2835.img", "lib/pi_piper/pin.rb", "lib/pi_piper/spi.rb"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pi_piper
3
3
  version: !ruby/object:Gem::Version
4
- version: '1.3'
4
+ version: 1.3.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2013-01-28 00:00:00.000000000 Z
12
+ date: 2013-02-05 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: ffi