artoo-sphero 1.2.0 → 1.3.0
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 +4 -4
- data/.ruby-version +1 -1
- data/.travis.yml +1 -1
- data/Gemfile.lock +16 -15
- data/README.md +6 -0
- data/artoo-sphero.gemspec +3 -3
- data/docs/commands.md +67 -0
- data/docs/events.md +29 -0
- data/lib/artoo-sphero/version.rb +1 -1
- data/lib/artoo/drivers/sphero.rb +50 -0
- metadata +28 -24
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: dd4ee78dc0212685f59e294a8e0d251a3829fe24
|
|
4
|
+
data.tar.gz: 4f7d8f33dcf7046f5eea874e3d059c36bab252ea
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 43a82c9001d6e5ec14eb2d8ceb25328ef1e9304e0eae0b14edb81203b82b985e53da0d377b1d1e034f2befba1246a0488546941a361cfb73b6cbc3a6611bbdc8
|
|
7
|
+
data.tar.gz: a903b5eae8a65898e88340533eaa312b1dcbae953d056060055630d4deb6f441452179f000ed780cf53cd6a968269a4515f33bc800462c386f10ce35310dde59
|
data/.ruby-version
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
|
|
1
|
+
ruby-2.1.0
|
data/.travis.yml
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,55 +1,56 @@
|
|
|
1
1
|
PATH
|
|
2
2
|
remote: .
|
|
3
3
|
specs:
|
|
4
|
-
artoo-sphero (1.
|
|
5
|
-
artoo (>= 1.
|
|
6
|
-
sphero (>= 1.
|
|
4
|
+
artoo-sphero (1.3.0)
|
|
5
|
+
artoo (>= 1.6.0)
|
|
6
|
+
sphero (>= 1.5.0)
|
|
7
7
|
|
|
8
8
|
GEM
|
|
9
9
|
remote: http://rubygems.org/
|
|
10
10
|
specs:
|
|
11
|
-
artoo (1.
|
|
11
|
+
artoo (1.6.0)
|
|
12
12
|
celluloid (~> 0.15.0)
|
|
13
13
|
celluloid-io (~> 0.15.0)
|
|
14
14
|
multi_json (~> 1.6)
|
|
15
15
|
pry (~> 0.9)
|
|
16
16
|
rake
|
|
17
17
|
reel (~> 0.4.0)
|
|
18
|
+
robeaux (~> 0.0.3)
|
|
18
19
|
thor (~> 0.18.1)
|
|
19
20
|
celluloid (0.15.2)
|
|
20
21
|
timers (~> 1.1.0)
|
|
21
22
|
celluloid-io (0.15.0)
|
|
22
23
|
celluloid (>= 0.15.0)
|
|
23
24
|
nio4r (>= 0.5.0)
|
|
24
|
-
coderay (1.0
|
|
25
|
+
coderay (1.1.0)
|
|
25
26
|
http (0.5.0)
|
|
26
27
|
http_parser.rb
|
|
27
|
-
http_parser.rb (0.6.0
|
|
28
|
+
http_parser.rb (0.6.0)
|
|
28
29
|
metaclass (0.0.1)
|
|
29
30
|
method_source (0.8.2)
|
|
30
31
|
minitest (5.0.6)
|
|
31
32
|
minitest-happy (1.0.0)
|
|
32
33
|
mocha (0.14.0)
|
|
33
34
|
metaclass (~> 0.0.1)
|
|
34
|
-
multi_json (1.8.
|
|
35
|
-
nio4r (0.
|
|
36
|
-
pry (0.9.12.
|
|
37
|
-
coderay (~> 1.0
|
|
35
|
+
multi_json (1.8.4)
|
|
36
|
+
nio4r (1.0.0)
|
|
37
|
+
pry (0.9.12.6)
|
|
38
|
+
coderay (~> 1.0)
|
|
38
39
|
method_source (~> 0.8)
|
|
39
40
|
slop (~> 3.4)
|
|
40
|
-
rake (10.1.
|
|
41
|
+
rake (10.1.1)
|
|
41
42
|
reel (0.4.0)
|
|
42
43
|
celluloid (>= 0.15.1)
|
|
43
44
|
celluloid-io (>= 0.15.0)
|
|
44
45
|
http (>= 0.5.0)
|
|
45
46
|
http_parser.rb (>= 0.6.0.beta.2)
|
|
46
47
|
websocket_parser (>= 0.1.4)
|
|
47
|
-
|
|
48
|
-
|
|
48
|
+
robeaux (0.0.3)
|
|
49
|
+
slop (3.4.7)
|
|
50
|
+
sphero (1.5.0)
|
|
49
51
|
thor (0.18.1)
|
|
50
52
|
timers (1.1.0)
|
|
51
|
-
websocket_parser (0.1.
|
|
52
|
-
http
|
|
53
|
+
websocket_parser (0.1.6)
|
|
53
54
|
|
|
54
55
|
PLATFORMS
|
|
55
56
|
ruby
|
data/README.md
CHANGED
|
@@ -14,6 +14,12 @@ For more information abut Artoo, check out our repo at https://github.com/hybrid
|
|
|
14
14
|
gem install artoo-sphero
|
|
15
15
|
```
|
|
16
16
|
|
|
17
|
+
Afterwards you need to install `socat` - for this please run the following command (works on both OSX and Linux):
|
|
18
|
+
|
|
19
|
+
```
|
|
20
|
+
artoo install socat
|
|
21
|
+
```
|
|
22
|
+
|
|
17
23
|
## Using
|
|
18
24
|
|
|
19
25
|
```ruby
|
data/artoo-sphero.gemspec
CHANGED
|
@@ -6,7 +6,7 @@ Gem::Specification.new do |s|
|
|
|
6
6
|
s.name = "artoo-sphero"
|
|
7
7
|
s.version = Artoo::Sphero::VERSION
|
|
8
8
|
s.platform = Gem::Platform::RUBY
|
|
9
|
-
s.authors = ["Ron Evans", "Adrian Zankich", "Mike Ford"]
|
|
9
|
+
s.authors = ["Ron Evans", "Adrian Zankich", "Mike Ford", "Tobias Pfeiffer", "Edgar Silva"]
|
|
10
10
|
s.email = ["artoo@hybridgroup.com"]
|
|
11
11
|
s.homepage = "https://github.com/hybridgroup/artoo-sphero"
|
|
12
12
|
s.summary = %q{Artoo adaptor and driver for Sphero robot}
|
|
@@ -19,8 +19,8 @@ Gem::Specification.new do |s|
|
|
|
19
19
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
|
20
20
|
s.require_paths = ["lib"]
|
|
21
21
|
|
|
22
|
-
s.add_runtime_dependency 'artoo', '>= 1.
|
|
23
|
-
s.add_runtime_dependency 'sphero', '>= 1.
|
|
22
|
+
s.add_runtime_dependency 'artoo', '>= 1.6.0'
|
|
23
|
+
s.add_runtime_dependency 'sphero', '>= 1.5.0'
|
|
24
24
|
s.add_development_dependency 'minitest', '>= 5.0'
|
|
25
25
|
s.add_development_dependency 'minitest-happy'
|
|
26
26
|
s.add_development_dependency 'mocha', '>= 0.14.0'
|
data/docs/commands.md
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
# Commands
|
|
2
|
+
|
|
3
|
+
## roll(speed, direction)
|
|
4
|
+
|
|
5
|
+
Starts the sphero rolling at the provided speed (value between `0` and `255`) and direction (value between `0` and `360`).
|
|
6
|
+
|
|
7
|
+
##### Params
|
|
8
|
+
|
|
9
|
+
- **speed** - params
|
|
10
|
+
- **direction** - params
|
|
11
|
+
|
|
12
|
+
##### Returns
|
|
13
|
+
|
|
14
|
+
`true or nil`
|
|
15
|
+
|
|
16
|
+
## stop
|
|
17
|
+
|
|
18
|
+
Stops the sphero.
|
|
19
|
+
|
|
20
|
+
##### Returns
|
|
21
|
+
|
|
22
|
+
`true or nil`
|
|
23
|
+
|
|
24
|
+
## detect_collissions
|
|
25
|
+
|
|
26
|
+
Sets the sphero to detect collisions and report them.
|
|
27
|
+
|
|
28
|
+
##### Returns
|
|
29
|
+
|
|
30
|
+
`true or nil`
|
|
31
|
+
|
|
32
|
+
## messages → [sphero_event]
|
|
33
|
+
|
|
34
|
+
Returns an array of sphero events, the messages reported by the sphero.
|
|
35
|
+
|
|
36
|
+
##### Returns
|
|
37
|
+
|
|
38
|
+
`sphero_event`
|
|
39
|
+
|
|
40
|
+
## color(:color_symbol | [red, green, blue]) → [red_int, green_int, blue_int]
|
|
41
|
+
|
|
42
|
+
You can pass a color as a symbol or an array containing RGB colors from 0 to 255 `([255, 0, 0] == red)`, if passed a symbol returns the array of RGB corresponding to the color, if passed an array of colors it returns the same array (used when setting colors to the sphero).
|
|
43
|
+
|
|
44
|
+
##### Params
|
|
45
|
+
|
|
46
|
+
- **color_symbol** - params
|
|
47
|
+
- **red** - params
|
|
48
|
+
- **green** - params
|
|
49
|
+
- **blue** - params
|
|
50
|
+
|
|
51
|
+
##### Returns
|
|
52
|
+
|
|
53
|
+
`[red_int, green_int, blue_int]`
|
|
54
|
+
|
|
55
|
+
## set_color([red, green, blue]) → true | nil
|
|
56
|
+
|
|
57
|
+
REVISION PENDING: You can either use it in tandem with color to set the color of the sphero or just pass an array containing RGB colors on the range `0` to `255` `([255, 0, 0] == red)`.
|
|
58
|
+
|
|
59
|
+
##### Params
|
|
60
|
+
|
|
61
|
+
- **red** - params
|
|
62
|
+
- **green** - params
|
|
63
|
+
- **blue** - params
|
|
64
|
+
|
|
65
|
+
##### Returns
|
|
66
|
+
|
|
67
|
+
`true or nil`
|
data/docs/events.md
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
# Events
|
|
2
|
+
|
|
3
|
+
## start_driver
|
|
4
|
+
|
|
5
|
+
Starts the driver.
|
|
6
|
+
|
|
7
|
+
## handle_collision_detected(data)
|
|
8
|
+
|
|
9
|
+
Gets triggered when the Sphero has data to send to the user, related to "collision".
|
|
10
|
+
|
|
11
|
+
##### Data
|
|
12
|
+
|
|
13
|
+
- **data**- The returned data
|
|
14
|
+
|
|
15
|
+
## handle_power_notification(data)
|
|
16
|
+
|
|
17
|
+
Gets triggered when the Sphero has data to send to the user, related to "power".
|
|
18
|
+
|
|
19
|
+
##### Data
|
|
20
|
+
|
|
21
|
+
- **data**- The returned data
|
|
22
|
+
|
|
23
|
+
## handle_sensor_data(data)
|
|
24
|
+
|
|
25
|
+
Gets triggered when the Sphero has data to send to the user, related to "sensor".
|
|
26
|
+
|
|
27
|
+
##### Data
|
|
28
|
+
|
|
29
|
+
- **data**- The returned data
|
data/lib/artoo-sphero/version.rb
CHANGED
data/lib/artoo/drivers/sphero.rb
CHANGED
|
@@ -14,6 +14,10 @@ module Artoo
|
|
|
14
14
|
COMMANDS = [:roll, :stop, :detect_collisions, :messages, :set_color, :color].freeze
|
|
15
15
|
|
|
16
16
|
# Starts drives and required connections
|
|
17
|
+
|
|
18
|
+
# Public: Starts the driver.
|
|
19
|
+
#
|
|
20
|
+
# Returns null.
|
|
17
21
|
def start_driver
|
|
18
22
|
begin
|
|
19
23
|
detect_collisions
|
|
@@ -30,6 +34,9 @@ module Artoo
|
|
|
30
34
|
end
|
|
31
35
|
end
|
|
32
36
|
|
|
37
|
+
# Public: Handles different message events.
|
|
38
|
+
#
|
|
39
|
+
# Returns sphero_event.
|
|
33
40
|
def handle_message_events
|
|
34
41
|
while not connection.messages.empty? do
|
|
35
42
|
evt = connection.messages.pop
|
|
@@ -46,18 +53,43 @@ module Artoo
|
|
|
46
53
|
|
|
47
54
|
# Detects collisions
|
|
48
55
|
# @param [Hash] params
|
|
56
|
+
|
|
57
|
+
# Public: Sets the sphero to detect collisions and report them.
|
|
58
|
+
#
|
|
59
|
+
# Returns true | nil.
|
|
49
60
|
def detect_collisions(params={})
|
|
50
61
|
connection.configure_collision_detection 0x01, 0x20, 0x20, 0x20, 0x20, 0x50
|
|
51
62
|
end
|
|
52
63
|
|
|
53
64
|
# Set color
|
|
54
65
|
# @param [Collection] colors
|
|
66
|
+
|
|
67
|
+
# Public: You can either use it in tandem with color to set the color of the
|
|
68
|
+
# sphero or just pass an array containing RGB colors on the range 0 to 255
|
|
69
|
+
# ([255, 0, 0] == red).
|
|
70
|
+
#
|
|
71
|
+
# red - params
|
|
72
|
+
# green - params
|
|
73
|
+
# blue -params
|
|
74
|
+
#
|
|
75
|
+
# Returns true | nil.
|
|
55
76
|
def set_color(*colors)
|
|
56
77
|
connection.rgb(*color(*colors))
|
|
57
78
|
end
|
|
58
79
|
|
|
59
80
|
# Retrieves color
|
|
60
81
|
# @param [Collection] colors
|
|
82
|
+
|
|
83
|
+
# Public: You can pass a color as a symbol or an array containing RGB colors from 0 to 255
|
|
84
|
+
# ([255, 0, 0] == red), if passed a symbol returns the array of RGB corresponding to the
|
|
85
|
+
# color, if passed an array of colors it returns the same array (used when setting colors to the sphero).
|
|
86
|
+
#
|
|
87
|
+
# :color_symbol - color
|
|
88
|
+
# red - params
|
|
89
|
+
# green - params
|
|
90
|
+
# blue -params
|
|
91
|
+
#
|
|
92
|
+
# Returns true | nil.
|
|
61
93
|
def color(*colors)
|
|
62
94
|
case colors.first
|
|
63
95
|
when :red then RED
|
|
@@ -72,16 +104,34 @@ module Artoo
|
|
|
72
104
|
private
|
|
73
105
|
|
|
74
106
|
# Publish collision events
|
|
107
|
+
|
|
108
|
+
# Public: Handles collision message events.
|
|
109
|
+
#
|
|
110
|
+
# data - params
|
|
111
|
+
#
|
|
112
|
+
# Returns nil.
|
|
75
113
|
def handle_collision_detected(data)
|
|
76
114
|
publish(event_topic_name("collision"), data)
|
|
77
115
|
end
|
|
78
116
|
|
|
79
117
|
# Publish collision events
|
|
118
|
+
|
|
119
|
+
# Public: Handles power message events.
|
|
120
|
+
#
|
|
121
|
+
# data - params
|
|
122
|
+
#
|
|
123
|
+
# Returns nil.
|
|
80
124
|
def handle_power_notification(data)
|
|
81
125
|
publish(event_topic_name("power"), data)
|
|
82
126
|
end
|
|
83
127
|
|
|
84
128
|
# Publish collision events
|
|
129
|
+
|
|
130
|
+
# Public: Handles sensor message events.
|
|
131
|
+
#
|
|
132
|
+
# data - params
|
|
133
|
+
#
|
|
134
|
+
# Returns nil.
|
|
85
135
|
def handle_sensor_data(data)
|
|
86
136
|
publish(event_topic_name("sensor"), data)
|
|
87
137
|
end
|
metadata
CHANGED
|
@@ -1,85 +1,87 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: artoo-sphero
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.3.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ron Evans
|
|
8
8
|
- Adrian Zankich
|
|
9
9
|
- Mike Ford
|
|
10
|
+
- Tobias Pfeiffer
|
|
11
|
+
- Edgar Silva
|
|
10
12
|
autorequire:
|
|
11
13
|
bindir: bin
|
|
12
14
|
cert_chain: []
|
|
13
|
-
date:
|
|
15
|
+
date: 2014-02-06 00:00:00.000000000 Z
|
|
14
16
|
dependencies:
|
|
15
17
|
- !ruby/object:Gem::Dependency
|
|
16
18
|
name: artoo
|
|
17
19
|
requirement: !ruby/object:Gem::Requirement
|
|
18
20
|
requirements:
|
|
19
|
-
- -
|
|
21
|
+
- - ">="
|
|
20
22
|
- !ruby/object:Gem::Version
|
|
21
|
-
version: 1.
|
|
23
|
+
version: 1.6.0
|
|
22
24
|
type: :runtime
|
|
23
25
|
prerelease: false
|
|
24
26
|
version_requirements: !ruby/object:Gem::Requirement
|
|
25
27
|
requirements:
|
|
26
|
-
- -
|
|
28
|
+
- - ">="
|
|
27
29
|
- !ruby/object:Gem::Version
|
|
28
|
-
version: 1.
|
|
30
|
+
version: 1.6.0
|
|
29
31
|
- !ruby/object:Gem::Dependency
|
|
30
32
|
name: sphero
|
|
31
33
|
requirement: !ruby/object:Gem::Requirement
|
|
32
34
|
requirements:
|
|
33
|
-
- -
|
|
35
|
+
- - ">="
|
|
34
36
|
- !ruby/object:Gem::Version
|
|
35
|
-
version: 1.
|
|
37
|
+
version: 1.5.0
|
|
36
38
|
type: :runtime
|
|
37
39
|
prerelease: false
|
|
38
40
|
version_requirements: !ruby/object:Gem::Requirement
|
|
39
41
|
requirements:
|
|
40
|
-
- -
|
|
42
|
+
- - ">="
|
|
41
43
|
- !ruby/object:Gem::Version
|
|
42
|
-
version: 1.
|
|
44
|
+
version: 1.5.0
|
|
43
45
|
- !ruby/object:Gem::Dependency
|
|
44
46
|
name: minitest
|
|
45
47
|
requirement: !ruby/object:Gem::Requirement
|
|
46
48
|
requirements:
|
|
47
|
-
- -
|
|
49
|
+
- - ">="
|
|
48
50
|
- !ruby/object:Gem::Version
|
|
49
51
|
version: '5.0'
|
|
50
52
|
type: :development
|
|
51
53
|
prerelease: false
|
|
52
54
|
version_requirements: !ruby/object:Gem::Requirement
|
|
53
55
|
requirements:
|
|
54
|
-
- -
|
|
56
|
+
- - ">="
|
|
55
57
|
- !ruby/object:Gem::Version
|
|
56
58
|
version: '5.0'
|
|
57
59
|
- !ruby/object:Gem::Dependency
|
|
58
60
|
name: minitest-happy
|
|
59
61
|
requirement: !ruby/object:Gem::Requirement
|
|
60
62
|
requirements:
|
|
61
|
-
- -
|
|
63
|
+
- - ">="
|
|
62
64
|
- !ruby/object:Gem::Version
|
|
63
65
|
version: '0'
|
|
64
66
|
type: :development
|
|
65
67
|
prerelease: false
|
|
66
68
|
version_requirements: !ruby/object:Gem::Requirement
|
|
67
69
|
requirements:
|
|
68
|
-
- -
|
|
70
|
+
- - ">="
|
|
69
71
|
- !ruby/object:Gem::Version
|
|
70
72
|
version: '0'
|
|
71
73
|
- !ruby/object:Gem::Dependency
|
|
72
74
|
name: mocha
|
|
73
75
|
requirement: !ruby/object:Gem::Requirement
|
|
74
76
|
requirements:
|
|
75
|
-
- -
|
|
77
|
+
- - ">="
|
|
76
78
|
- !ruby/object:Gem::Version
|
|
77
79
|
version: 0.14.0
|
|
78
80
|
type: :development
|
|
79
81
|
prerelease: false
|
|
80
82
|
version_requirements: !ruby/object:Gem::Requirement
|
|
81
83
|
requirements:
|
|
82
|
-
- -
|
|
84
|
+
- - ">="
|
|
83
85
|
- !ruby/object:Gem::Version
|
|
84
86
|
version: 0.14.0
|
|
85
87
|
description: Artoo adaptor and driver for Sphero robot
|
|
@@ -89,17 +91,19 @@ executables: []
|
|
|
89
91
|
extensions: []
|
|
90
92
|
extra_rdoc_files: []
|
|
91
93
|
files:
|
|
92
|
-
- .gitignore
|
|
93
|
-
- .ruby-gemset
|
|
94
|
-
- .ruby-version
|
|
95
|
-
- .rvmrc.example
|
|
96
|
-
- .travis.yml
|
|
94
|
+
- ".gitignore"
|
|
95
|
+
- ".ruby-gemset"
|
|
96
|
+
- ".ruby-version"
|
|
97
|
+
- ".rvmrc.example"
|
|
98
|
+
- ".travis.yml"
|
|
97
99
|
- Gemfile
|
|
98
100
|
- Gemfile.lock
|
|
99
101
|
- LICENSE
|
|
100
102
|
- README.md
|
|
101
103
|
- Rakefile
|
|
102
104
|
- artoo-sphero.gemspec
|
|
105
|
+
- docs/commands.md
|
|
106
|
+
- docs/events.md
|
|
103
107
|
- examples/sphero.rb
|
|
104
108
|
- examples/sphero2.rb
|
|
105
109
|
- examples/sphero_color.rb
|
|
@@ -122,17 +126,17 @@ require_paths:
|
|
|
122
126
|
- lib
|
|
123
127
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
124
128
|
requirements:
|
|
125
|
-
- -
|
|
129
|
+
- - ">="
|
|
126
130
|
- !ruby/object:Gem::Version
|
|
127
131
|
version: '0'
|
|
128
132
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
129
133
|
requirements:
|
|
130
|
-
- -
|
|
134
|
+
- - ">="
|
|
131
135
|
- !ruby/object:Gem::Version
|
|
132
136
|
version: '0'
|
|
133
137
|
requirements: []
|
|
134
138
|
rubyforge_project: artoo-sphero
|
|
135
|
-
rubygems_version: 2.
|
|
139
|
+
rubygems_version: 2.2.1
|
|
136
140
|
signing_key:
|
|
137
141
|
specification_version: 4
|
|
138
142
|
summary: Artoo adaptor and driver for Sphero robot
|