artoo-neopixel 0.0.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.
- checksums.yaml +7 -0
- data/lib/artoo-neopixel.rb +3 -0
- data/lib/artoo-neopixel/extensions.rb +6 -0
- data/lib/artoo-neopixel/extensions/artoo/adaptors/firmata.rb +21 -0
- data/lib/artoo-neopixel/extensions/firmata/board.rb +51 -0
- data/lib/artoo-neopixel/extensions/firmata/constants.rb +12 -0
- data/lib/artoo/drivers/neomatrix.rb +52 -0
- data/lib/artoo/drivers/neopixel.rb +51 -0
- metadata +106 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 5be3dfc06b3b39d8eb0dcffe654fb99c96909b47
|
4
|
+
data.tar.gz: 4571a544d0c1347e093a965e28fac2df67664d54
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: d69ee5db827f1b3e647ee97c7e2849786ba2a417f41356fe1d8efa1dad82a58aa0e59e90d95186569c808d65c88287c2ed439a15ffb4ee0259fd16d89974f7d7
|
7
|
+
data.tar.gz: b09366ce0a555c5e87afb7a5b3d5c89e3c2819b9895d75c0e7e47c7145ac66b4c663d0eb279a08dee76fea8e85e763eb74474a6ab655540f9749c0d3abf5025a
|
@@ -0,0 +1,21 @@
|
|
1
|
+
module Artoo
|
2
|
+
module Adaptors
|
3
|
+
class Firmata
|
4
|
+
def register_neopixel(pin, count)
|
5
|
+
firmata.register_neopixel(pin, count)
|
6
|
+
end
|
7
|
+
|
8
|
+
def neopixel(index, red, green, blue)
|
9
|
+
firmata.neopixel(index, red, green, blue)
|
10
|
+
end
|
11
|
+
|
12
|
+
def register_matrix(pin, width, height)
|
13
|
+
firmata.register_neomatrix(pin, width, height)
|
14
|
+
end
|
15
|
+
|
16
|
+
def neomatrix(x, y, red, green, blue)
|
17
|
+
firmata.neomatrix(x, y, red, green, blue)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
require "firmata/constants"
|
2
|
+
|
3
|
+
module Firmata
|
4
|
+
class Board
|
5
|
+
def register_neopixel(pin, count)
|
6
|
+
write(
|
7
|
+
START_SYSEX,
|
8
|
+
NEOPIXEL_REGISTER,
|
9
|
+
pin,
|
10
|
+
count,
|
11
|
+
END_SYSEX,
|
12
|
+
)
|
13
|
+
end
|
14
|
+
|
15
|
+
def neopixel(index, red, green, blue)
|
16
|
+
write(
|
17
|
+
START_SYSEX,
|
18
|
+
NEOPIXEL,
|
19
|
+
index,
|
20
|
+
red,
|
21
|
+
green,
|
22
|
+
blue,
|
23
|
+
END_SYSEX,
|
24
|
+
)
|
25
|
+
end
|
26
|
+
|
27
|
+
def register_neomatrix(pin, width, height)
|
28
|
+
write(
|
29
|
+
START_SYSEX,
|
30
|
+
NEOMATRIX_REGISTER,
|
31
|
+
pin,
|
32
|
+
width,
|
33
|
+
height,
|
34
|
+
END_SYSEX,
|
35
|
+
)
|
36
|
+
end
|
37
|
+
|
38
|
+
def neomatrix(x, y, red, green, blue)
|
39
|
+
write(
|
40
|
+
START_SYSEX,
|
41
|
+
NEOMATRIX,
|
42
|
+
x,
|
43
|
+
y,
|
44
|
+
red,
|
45
|
+
green,
|
46
|
+
blue,
|
47
|
+
END_SYSEX,
|
48
|
+
)
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module Firmata
|
2
|
+
module MidiMessages
|
3
|
+
# Fixnum byte sysex command for Neopixel message
|
4
|
+
NEOPIXEL = 0x72
|
5
|
+
# Fixnum byte sysex command for Neomatrix message
|
6
|
+
NEOMATRIX = 0x73
|
7
|
+
# Fixnum byte sysex command for registering a Neopixel instance
|
8
|
+
NEOPIXEL_REGISTER = 0x74
|
9
|
+
# Fixnum byte sysex command for registering a Neomatrix instance
|
10
|
+
NEOMATRIX_REGISTER = 0x75
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
require "artoo/drivers/driver"
|
2
|
+
|
3
|
+
module Artoo
|
4
|
+
module Drivers
|
5
|
+
class Neomatrix < Driver
|
6
|
+
COMMANDS = [:on, :off, :on?, :off?].freeze
|
7
|
+
|
8
|
+
attr_reader :width, :height, :registered
|
9
|
+
|
10
|
+
def initialize(params = {})
|
11
|
+
@is_on = Hash.new(false)
|
12
|
+
additional_params = params.fetch(:additional_params) { Hash.new }
|
13
|
+
@width = additional_params.fetch(:width)
|
14
|
+
@height = additional_params.fetch(:height)
|
15
|
+
@registered = false
|
16
|
+
super
|
17
|
+
end
|
18
|
+
|
19
|
+
def on?(x,y)
|
20
|
+
@is_on[[x,y]]
|
21
|
+
end
|
22
|
+
|
23
|
+
def off?(x,y)
|
24
|
+
!on?([x,y])
|
25
|
+
end
|
26
|
+
|
27
|
+
def on(x, y, red, green, blue)
|
28
|
+
change_state(x, y, red, green, blue)
|
29
|
+
@is_on[[x,y]] = true
|
30
|
+
end
|
31
|
+
|
32
|
+
def off(x, y)
|
33
|
+
change_state(x, y, 0, 0, 0)
|
34
|
+
@is_on[[x,y]] = false
|
35
|
+
end
|
36
|
+
|
37
|
+
private
|
38
|
+
|
39
|
+
def change_state(x, y, red, green, blue)
|
40
|
+
ensure_registered
|
41
|
+
connection.neomatrix(x, y, red, green, blue)
|
42
|
+
end
|
43
|
+
|
44
|
+
def ensure_registered
|
45
|
+
unless registered
|
46
|
+
connection.register_neomatrix(pin, width, height)
|
47
|
+
@registered = true
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
require "artoo/drivers/driver"
|
2
|
+
|
3
|
+
module Artoo
|
4
|
+
module Drivers
|
5
|
+
class Neopixel < Driver
|
6
|
+
COMMANDS = [:on, :off, :on?, :off?].freeze
|
7
|
+
|
8
|
+
attr_reader :count, :registered
|
9
|
+
|
10
|
+
def initialize(params = {})
|
11
|
+
@is_on = Hash.new(false)
|
12
|
+
additional_params = params.fetch(:additional_params) { Hash.new }
|
13
|
+
@count = additional_params.fetch(:count)
|
14
|
+
@registered = false
|
15
|
+
super
|
16
|
+
end
|
17
|
+
|
18
|
+
def on?(index)
|
19
|
+
@is_on[index]
|
20
|
+
end
|
21
|
+
|
22
|
+
def off?(index)
|
23
|
+
!on?(index)
|
24
|
+
end
|
25
|
+
|
26
|
+
def on(index, red, green, blue)
|
27
|
+
change_state(index, red, green, blue)
|
28
|
+
@is_on[index] = true
|
29
|
+
end
|
30
|
+
|
31
|
+
def off(index)
|
32
|
+
change_state(index, 0, 0, 0)
|
33
|
+
@is_on[index] = false
|
34
|
+
end
|
35
|
+
|
36
|
+
private
|
37
|
+
|
38
|
+
def change_state(index, red, green, blue)
|
39
|
+
ensure_registered
|
40
|
+
connection.neopixel(index, red, green, blue)
|
41
|
+
end
|
42
|
+
|
43
|
+
def ensure_registered
|
44
|
+
unless registered
|
45
|
+
connection.register_neopixel(pin, count)
|
46
|
+
@registered = true
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
metadata
ADDED
@@ -0,0 +1,106 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: artoo-neopixel
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Jay Hayes
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-03-10 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: artoo-arduino
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - ">="
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: hybridgroup-firmata
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: pry
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :development
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
description: This library extends http://artoo.io to support http://www.adafruit.com/neopixel.
|
70
|
+
email:
|
71
|
+
- ur@iamvery.com
|
72
|
+
executables: []
|
73
|
+
extensions: []
|
74
|
+
extra_rdoc_files: []
|
75
|
+
files:
|
76
|
+
- lib/artoo-neopixel.rb
|
77
|
+
- lib/artoo-neopixel/extensions.rb
|
78
|
+
- lib/artoo-neopixel/extensions/artoo/adaptors/firmata.rb
|
79
|
+
- lib/artoo-neopixel/extensions/firmata/board.rb
|
80
|
+
- lib/artoo-neopixel/extensions/firmata/constants.rb
|
81
|
+
- lib/artoo/drivers/neomatrix.rb
|
82
|
+
- lib/artoo/drivers/neopixel.rb
|
83
|
+
homepage: https://github.com/iamvery/artoo-neopixel
|
84
|
+
licenses: []
|
85
|
+
metadata: {}
|
86
|
+
post_install_message:
|
87
|
+
rdoc_options: []
|
88
|
+
require_paths:
|
89
|
+
- lib
|
90
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
91
|
+
requirements:
|
92
|
+
- - ">="
|
93
|
+
- !ruby/object:Gem::Version
|
94
|
+
version: '0'
|
95
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
96
|
+
requirements:
|
97
|
+
- - ">="
|
98
|
+
- !ruby/object:Gem::Version
|
99
|
+
version: '0'
|
100
|
+
requirements: []
|
101
|
+
rubyforge_project:
|
102
|
+
rubygems_version: 2.2.2
|
103
|
+
signing_key:
|
104
|
+
specification_version: 4
|
105
|
+
summary: Add Neopixel support to Artoo
|
106
|
+
test_files: []
|