artoo-arduino 1.1.0 → 1.2.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.
Files changed (47) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile.lock +15 -17
  3. data/README.md +8 -63
  4. data/artoo-arduino.gemspec +4 -3
  5. data/examples/analog_sensor.rb +31 -0
  6. data/examples/{firmata_blink_led.rb → blink_led.rb} +1 -1
  7. data/examples/{firmata_blink_led_with_toggle.rb → blink_led_with_toggle.rb} +1 -1
  8. data/examples/{firmata_button_and_led.rb → button_and_led.rb} +0 -0
  9. data/examples/{firmata_dc_motor_speed.rb → dc_motor_speed.rb} +1 -1
  10. data/examples/{firmata_dc_motor_speed_h-bridge_2_pins.rb → dc_motor_speed_h-bridge_2_pins.rb} +1 -1
  11. data/examples/{firmata_dc_motor_switch.rb → dc_motor_switch.rb} +1 -1
  12. data/examples/{firmata_dc_motor_switch_h-bridge_2_pins.rb → dc_motor_switch_h-bridge_2_pins.rb} +1 -1
  13. data/examples/{firmata_led_brightness.rb → led_brightness.rb} +1 -1
  14. data/examples/led_brightness_with_analog_input.rb +29 -0
  15. data/examples/{firmata_led_with_button_toggle.rb → led_with_button_toggle.rb} +1 -1
  16. data/examples/{firmata_maxbotix.rb → maxbotix.rb} +2 -2
  17. data/examples/{firmata_motor.rb → motor.rb} +1 -1
  18. data/examples/motor_speed_with_analog_input.rb +30 -0
  19. data/examples/{firmata_servo.rb → servo.rb} +1 -1
  20. data/examples/{firmata_wiichuck.rb → wiichuck.rb} +0 -0
  21. data/lib/artoo-arduino/version.rb +1 -1
  22. data/lib/artoo/adaptors/firmata.rb +51 -9
  23. data/test/adaptors/firmata_test.rb +30 -0
  24. metadata +43 -48
  25. data/examples/littlewire_blink_led_with_toggle.rb +0 -17
  26. data/examples/littlewire_button_and_led.rb +0 -16
  27. data/examples/littlewire_dc_motor_speed.rb +0 -31
  28. data/examples/littlewire_maxbotix.rb +0 -19
  29. data/lib/artoo/adaptors/littlewire.rb +0 -63
  30. data/lib/artoo/drivers/board.rb +0 -10
  31. data/lib/artoo/drivers/button.rb +0 -43
  32. data/lib/artoo/drivers/led.rb +0 -59
  33. data/lib/artoo/drivers/maxbotix.rb +0 -44
  34. data/lib/artoo/drivers/motor.rb +0 -167
  35. data/lib/artoo/drivers/servo.rb +0 -49
  36. data/lib/artoo/drivers/wiichuck.rb +0 -61
  37. data/lib/artoo/drivers/wiiclassic.rb +0 -139
  38. data/lib/artoo/drivers/wiidriver.rb +0 -103
  39. data/test/adaptors/littlewire_test.rb +0 -25
  40. data/test/drivers/firmata_board_test.rb +0 -21
  41. data/test/drivers/led_test.rb +0 -92
  42. data/test/drivers/maxbotix_test.rb +0 -25
  43. data/test/drivers/motor_test.rb +0 -204
  44. data/test/drivers/servo_test.rb +0 -43
  45. data/test/drivers/wiichuck_test.rb +0 -11
  46. data/test/drivers/wiiclassic_test.rb +0 -11
  47. data/test/drivers/wiidriver_test.rb +0 -54
@@ -22,4 +22,34 @@ describe Artoo::Adaptors::Firmata do
22
22
 
23
23
  @adaptor.connected?.must_equal false
24
24
  end
25
+
26
+ describe "device info interface" do
27
+ it "#firmware_name"
28
+ it "#version"
29
+ end
30
+
31
+ describe "digital GPIO interface" do
32
+ it "#digital_read"
33
+ it "#digital_write"
34
+ end
35
+
36
+ describe "analog GPIO interface" do
37
+ it "#analog_read"
38
+ it "#analog_write"
39
+ end
40
+
41
+ describe "PWM GPIO interface" do
42
+ it "#pwm_write"
43
+ end
44
+
45
+ describe "servo GPIO interface" do
46
+ it "#servo_write"
47
+ end
48
+
49
+ describe "i2c interface" do
50
+ it "#i2c_start"
51
+ it "#i2c_end"
52
+ it "#i2c_read"
53
+ it "#i2c_write"
54
+ end
25
55
  end
metadata CHANGED
@@ -1,16 +1,17 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: artoo-arduino
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0
4
+ version: 1.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ron Evans
8
8
  - Adrian Zankich
9
9
  - Rafael Magaña
10
+ - Edgar Silva
10
11
  autorequire:
11
12
  bindir: bin
12
13
  cert_chain: []
13
- date: 2013-09-07 00:00:00.000000000 Z
14
+ date: 2013-09-19 00:00:00.000000000 Z
14
15
  dependencies:
15
16
  - !ruby/object:Gem::Dependency
16
17
  name: artoo
@@ -18,42 +19,56 @@ dependencies:
18
19
  requirements:
19
20
  - - ~>
20
21
  - !ruby/object:Gem::Version
21
- version: 1.1.0
22
+ version: 1.2.0
22
23
  type: :runtime
23
24
  prerelease: false
24
25
  version_requirements: !ruby/object:Gem::Requirement
25
26
  requirements:
26
27
  - - ~>
27
28
  - !ruby/object:Gem::Version
28
- version: 1.1.0
29
+ version: 1.2.0
29
30
  - !ruby/object:Gem::Dependency
30
- name: hybridgroup-firmata
31
+ name: artoo-gpio
31
32
  requirement: !ruby/object:Gem::Requirement
32
33
  requirements:
33
- - - ~>
34
+ - - '>='
34
35
  - !ruby/object:Gem::Version
35
- version: 0.4.5
36
+ version: '0'
36
37
  type: :runtime
37
38
  prerelease: false
38
39
  version_requirements: !ruby/object:Gem::Requirement
39
40
  requirements:
40
- - - ~>
41
+ - - '>='
41
42
  - !ruby/object:Gem::Version
42
- version: 0.4.5
43
+ version: '0'
43
44
  - !ruby/object:Gem::Dependency
44
- name: littlewire
45
+ name: artoo-i2c
46
+ requirement: !ruby/object:Gem::Requirement
47
+ requirements:
48
+ - - '>='
49
+ - !ruby/object:Gem::Version
50
+ version: '0'
51
+ type: :runtime
52
+ prerelease: false
53
+ version_requirements: !ruby/object:Gem::Requirement
54
+ requirements:
55
+ - - '>='
56
+ - !ruby/object:Gem::Version
57
+ version: '0'
58
+ - !ruby/object:Gem::Dependency
59
+ name: hybridgroup-firmata
45
60
  requirement: !ruby/object:Gem::Requirement
46
61
  requirements:
47
62
  - - ~>
48
63
  - !ruby/object:Gem::Version
49
- version: 0.9.7
64
+ version: 0.4.5
50
65
  type: :runtime
51
66
  prerelease: false
52
67
  version_requirements: !ruby/object:Gem::Requirement
53
68
  requirements:
54
69
  - - ~>
55
70
  - !ruby/object:Gem::Version
56
- version: 0.9.7
71
+ version: 0.4.5
57
72
  - !ruby/object:Gem::Dependency
58
73
  name: minitest
59
74
  requirement: !ruby/object:Gem::Requirement
@@ -112,46 +127,26 @@ files:
112
127
  - README.md
113
128
  - Rakefile
114
129
  - artoo-arduino.gemspec
115
- - examples/firmata_blink_led.rb
116
- - examples/firmata_blink_led_with_toggle.rb
117
- - examples/firmata_button_and_led.rb
118
- - examples/firmata_dc_motor_speed.rb
119
- - examples/firmata_dc_motor_speed_h-bridge_2_pins.rb
120
- - examples/firmata_dc_motor_switch.rb
121
- - examples/firmata_dc_motor_switch_h-bridge_2_pins.rb
122
- - examples/firmata_led_brightness.rb
123
- - examples/firmata_led_with_button_toggle.rb
124
- - examples/firmata_maxbotix.rb
125
- - examples/firmata_motor.rb
126
- - examples/firmata_servo.rb
127
- - examples/firmata_wiichuck.rb
128
- - examples/littlewire_blink_led_with_toggle.rb
129
- - examples/littlewire_button_and_led.rb
130
- - examples/littlewire_dc_motor_speed.rb
131
- - examples/littlewire_maxbotix.rb
130
+ - examples/analog_sensor.rb
131
+ - examples/blink_led.rb
132
+ - examples/blink_led_with_toggle.rb
133
+ - examples/button_and_led.rb
134
+ - examples/dc_motor_speed.rb
135
+ - examples/dc_motor_speed_h-bridge_2_pins.rb
136
+ - examples/dc_motor_switch.rb
137
+ - examples/dc_motor_switch_h-bridge_2_pins.rb
138
+ - examples/led_brightness.rb
139
+ - examples/led_brightness_with_analog_input.rb
140
+ - examples/led_with_button_toggle.rb
141
+ - examples/maxbotix.rb
142
+ - examples/motor.rb
143
+ - examples/motor_speed_with_analog_input.rb
144
+ - examples/servo.rb
145
+ - examples/wiichuck.rb
132
146
  - lib/artoo-arduino.rb
133
147
  - lib/artoo-arduino/version.rb
134
148
  - lib/artoo/adaptors/firmata.rb
135
- - lib/artoo/adaptors/littlewire.rb
136
- - lib/artoo/drivers/board.rb
137
- - lib/artoo/drivers/button.rb
138
- - lib/artoo/drivers/led.rb
139
- - lib/artoo/drivers/maxbotix.rb
140
- - lib/artoo/drivers/motor.rb
141
- - lib/artoo/drivers/servo.rb
142
- - lib/artoo/drivers/wiichuck.rb
143
- - lib/artoo/drivers/wiiclassic.rb
144
- - lib/artoo/drivers/wiidriver.rb
145
149
  - test/adaptors/firmata_test.rb
146
- - test/adaptors/littlewire_test.rb
147
- - test/drivers/firmata_board_test.rb
148
- - test/drivers/led_test.rb
149
- - test/drivers/maxbotix_test.rb
150
- - test/drivers/motor_test.rb
151
- - test/drivers/servo_test.rb
152
- - test/drivers/wiichuck_test.rb
153
- - test/drivers/wiiclassic_test.rb
154
- - test/drivers/wiidriver_test.rb
155
150
  - test/test_helper.rb
156
151
  homepage: https://github.com/hybridgroup/artoo-arduino
157
152
  licenses:
@@ -1,17 +0,0 @@
1
- require 'artoo'
2
-
3
- # Uses Digispark USB board (http://digistump.com/products/1)
4
- # with Little Wire protocol (http://littlewire.cc)
5
-
6
- connection :digispark, :adaptor => :littlewire, :vendor => 0x1781, :product => 0x0c9f
7
- device :board, :driver => :board
8
- device :led, :driver => :led, :pin => 1
9
-
10
- work do
11
- puts "Firmware name: #{board.firmware_name}"
12
- puts "Firmware version: #{board.version}"
13
-
14
- every 1.second do
15
- led.toggle
16
- end
17
- end
@@ -1,16 +0,0 @@
1
- require 'artoo'
2
-
3
- # Circuit and schematic here: http://arduino.cc/en/tutorial/button
4
-
5
- connection :digispark, :adaptor => :littlewire, :vendor => 0x1781, :product => 0x0c9f
6
- device :board, :driver => :board
7
- device :led, :driver => :led, :pin => 1
8
- device :button, :driver => :button, :pin => 0, :interval => 0.01
9
-
10
- work do
11
- puts "Firmware name: #{board.firmware_name}"
12
- puts "Firmware version: #{board.version}"
13
- puts "Press the button connected on pin #{button.pin}..."
14
-
15
- on button, :push => proc { led.toggle }
16
- end
@@ -1,31 +0,0 @@
1
- require 'artoo'
2
-
3
- #Circuit's breadboard layout here: http://learn.adafruit.com/adafruit-arduino-lesson-13-dc-motors/breadboard-layout
4
-
5
- connection :digispark, :adaptor => :littlewire, :vendor => 0x1781, :product => 0x0c9f
6
- device :board, :driver => :board
7
- device :motor, :driver => :motor, :speed_pin => 1 # Use a PWM pin
8
-
9
- work do
10
- puts "Firmware name: #{board.firmware_name}"
11
- puts "Firmata version: #{board.version}"
12
- puts "Stopping motor..."
13
- motor.min # same as 'motor.stop' or 'motor.speed(0)'
14
- sleep 3
15
- puts "Setting to maximum speed..."
16
- motor.max # same as 'motor.start'
17
- sleep 3
18
-
19
- speed = 0
20
- step = 50
21
-
22
- every 3.seconds do
23
- motor.speed(speed)
24
- puts "Current speed: #{motor.current_speed}"
25
- speed += step
26
- if [0, 250].include?(speed)
27
- step = -step
28
- end
29
- end
30
- end
31
-
@@ -1,19 +0,0 @@
1
- require 'artoo'
2
-
3
- # Circuit and schematic here: http://www.electrojoystick.com/tutorial/?page_id=285
4
-
5
- connection :digispark, :adaptor => :littlewire, :vendor => 0x1781, :product => 0x0c9f
6
- device :sonar, :driver => :maxbotix, :pin => 0, :interval => 0.5
7
- device :board, :driver => :board
8
-
9
- work do
10
- on sonar, :range => :sonar_reading
11
-
12
- puts "Firmware name: #{board.firmware_name}"
13
- puts "Firmata version: #{board.version}"
14
- puts "starting sonar..."
15
- end
16
-
17
- def sonar_reading(*args)
18
- puts args[1] * 1000
19
- end
@@ -1,63 +0,0 @@
1
- require 'artoo/adaptors/adaptor'
2
-
3
- module Artoo
4
- module Adaptors
5
- # Connect to Digispark or Littlewire device using Little Wire protocol
6
- # @see http://littlewire.cc/
7
- class Littlewire < Adaptor
8
- attr_reader :littlewire, :vendor, :product, :usb
9
-
10
- def initialize(params={})
11
- super
12
-
13
- params[:additional_params] ||= {}
14
- @vendor = params[:additional_params][:vendor] || 0x1781
15
- @product = params[:additional_params][:product] || 0x0c9f
16
- end
17
-
18
- # Creates connection with littlewire board
19
- # @return [Boolean]
20
- def connect
21
- require 'littlewire' unless defined?(::LittleWire)
22
- @littlewire = ::LittleWire.new(connect_to_usb)
23
- super
24
- return true
25
- end
26
-
27
- # Closes connection with littlewire board
28
- # @return [Boolean]
29
- def disconnect
30
- littlewire.finished
31
- super
32
- end
33
-
34
- # Returns firmware name of littlewire board
35
- # @return [String]
36
- def firmware_name
37
- "Little Wire"
38
- end
39
-
40
- def digital_read(pin)
41
- littlewire.digital_write(pin, true)
42
- littlewire.digital_read(pin)
43
- end
44
-
45
- def pwm_write(pin, level)
46
- littlewire.software_pwm_write(pin, level)
47
- end
48
-
49
- def connect_to_usb
50
- @usb = LIBUSB::Context.new.devices(
51
- :idVendor => vendor,
52
- :idProduct => product
53
- ).first
54
- end
55
-
56
- # Uses method missing to call Littlewire methods
57
- # @see https://github.com/Bluebie/littlewire.rb
58
- def method_missing(method_name, *arguments, &block)
59
- littlewire.send(method_name, *arguments, &block)
60
- end
61
- end
62
- end
63
- end
@@ -1,10 +0,0 @@
1
- require 'artoo/drivers/driver'
2
-
3
- module Artoo
4
- module Drivers
5
- # Board driver behaviors
6
- class Board < Driver
7
- COMMANDS = [:firmware_name, :version, :connect].freeze
8
- end
9
- end
10
- end
@@ -1,43 +0,0 @@
1
- require 'artoo/drivers/driver'
2
-
3
- module Artoo
4
- module Drivers
5
- # Button driver behaviors
6
- class Button < Driver
7
- COMMANDS = [:is_pressed?].freeze
8
-
9
- DOWN = 1
10
- UP = 0
11
-
12
- # @return [Boolean] True if pressed
13
- def is_pressed?
14
- (@pressed_val == 1) ? true : false
15
- end
16
-
17
- def start_driver
18
- @pressed_val = 0
19
-
20
- every(interval) do
21
- new_value = connection.digital_read(pin)
22
- update(new_value) if !new_value.nil? && new_value != is_pressed?
23
- end
24
-
25
- super
26
- end
27
-
28
- private
29
- # Publishes events according to the button feedback
30
- def update(new_val)
31
- if new_val == 1
32
- @pressed_val = 1
33
- publish(event_topic_name("update"), "push", new_val)
34
- publish(event_topic_name("push"), new_val)
35
- else
36
- @pressed_val = 0
37
- publish(event_topic_name("update"), "release", new_val)
38
- publish(event_topic_name("release"), new_val)
39
- end
40
- end
41
- end
42
- end
43
- end
@@ -1,59 +0,0 @@
1
- require 'artoo/drivers/driver'
2
-
3
- module Artoo
4
- module Drivers
5
- # The LED driver behaviors
6
- class Led < Driver
7
-
8
- COMMANDS = [:on, :off, :toggle,
9
- :brightness,
10
- :on?, :off?].freeze
11
-
12
- def initialize(params = {})
13
- @is_on = false
14
- super
15
- end
16
-
17
- # @return [Boolean] True if on
18
- def on?
19
- @is_on
20
- end
21
-
22
- # @return [Boolean] True if off
23
- def off?
24
- (not on?)
25
- end
26
-
27
- # Sets led to level HIGH
28
- def on
29
- change_state(pin, :high)
30
- @is_on = true
31
- true
32
- end
33
-
34
- # Sets led to level LOW
35
- def off
36
- change_state(pin, :low)
37
- @is_on = false
38
- true
39
- end
40
-
41
- # Toggle status
42
- # @example on > off, off > on
43
- def toggle
44
- on? ? off : on
45
- end
46
-
47
- # Change brightness level
48
- # @param [Integer] level
49
- def brightness(level=0)
50
- connection.pwm_write(pin, level)
51
- end
52
-
53
- private
54
- def change_state(pin, level)
55
- connection.digital_write(pin, level)
56
- end
57
- end
58
- end
59
- end