rad 0.2.2 → 0.2.9
Sign up to get free protection for your applications and to get access to all the features.
- data/History.txt +34 -0
- data/Manifest.txt +113 -7
- data/{README.txt → README.rdoc} +17 -5
- data/Rakefile +3 -0
- data/bin/rad +106 -1
- data/lib/examples/add_hysteresis.rb +13 -0
- data/lib/examples/basic_blink.rb +10 -0
- data/lib/examples/blink_m_address_assignment.rb +104 -0
- data/lib/examples/blink_m_hello.rb +14 -0
- data/lib/examples/blink_m_multi.rb +61 -0
- data/lib/examples/blink_with_serial.rb +16 -0
- data/lib/examples/configure_pa_lcd_boot.rb +91 -0
- data/lib/examples/debounce_methods.rb +49 -0
- data/lib/examples/external_variable_fu.rb +26 -0
- data/lib/examples/external_variables.rb +32 -0
- data/lib/examples/first_sound.rb +23 -0
- data/lib/examples/frequency_generator.rb +30 -0
- data/lib/examples/hello_array.rb +48 -0
- data/lib/examples/hello_array2.rb +79 -0
- data/lib/examples/hello_array_eeprom.rb +59 -0
- data/lib/examples/hello_clock.rb +84 -0
- data/lib/examples/hello_eeprom.rb +51 -0
- data/lib/examples/hello_eeprom_lcdpa.rb +81 -0
- data/lib/examples/hello_format_print.rb +94 -0
- data/lib/examples/hello_lcd_charset.rb +75 -0
- data/lib/examples/hello_pa_lcd.rb +59 -0
- data/lib/examples/hello_servos.rb +88 -0
- data/lib/examples/hello_spectra_sound.rb +38 -0
- data/lib/examples/hello_world.rb +11 -0
- data/lib/examples/hello_xbee.rb +12 -0
- data/lib/examples/hysteresis_duel.rb +39 -0
- data/lib/examples/i2c_with_clock_chip.rb +124 -0
- data/lib/examples/midi_beat_box.rb +86 -0
- data/lib/examples/midi_scales.rb +94 -0
- data/lib/examples/motor_knob.rb +30 -0
- data/lib/examples/servo_buttons.rb +23 -0
- data/lib/examples/servo_calibrate_continuous.rb +92 -0
- data/lib/examples/servo_throttle.rb +40 -0
- data/lib/examples/sparkfun_lcd.rb +48 -0
- data/lib/examples/spectra_soft_pot.rb +34 -0
- data/lib/examples/times_method.rb +8 -0
- data/lib/examples/toggle.rb +10 -0
- data/lib/examples/twitter.rb +57 -0
- data/lib/examples/two_wire.rb +14 -0
- data/lib/libraries/AFSoftSerial/AFSoftSerial.cpp +321 -0
- data/lib/libraries/AFSoftSerial/AFSoftSerial.h +61 -0
- data/lib/libraries/AFSoftSerial/keywords.txt +18 -0
- data/lib/libraries/AF_XPort/AF_XPort.cpp +166 -0
- data/lib/libraries/AF_XPort/AF_XPort.h +48 -0
- data/lib/libraries/DS1307/DS1307.cpp +162 -0
- data/lib/libraries/DS1307/DS1307.h +66 -0
- data/lib/libraries/{SWSerLCDpa → DS1307}/keywords.txt +1 -1
- data/lib/libraries/FrequencyTimer2/FrequencyTimer2.cpp +144 -0
- data/lib/libraries/FrequencyTimer2/FrequencyTimer2.h +42 -0
- data/lib/libraries/FrequencyTimer2/keywords.txt +22 -0
- data/lib/libraries/I2CEEPROM/I2CEEPROM.cpp +120 -0
- data/lib/libraries/I2CEEPROM/I2CEEPROM.h +70 -0
- data/lib/libraries/I2CEEPROM/keywords.txt +21 -0
- data/lib/libraries/LoopTimer/LoopTimer.cpp +35 -0
- data/lib/libraries/LoopTimer/LoopTimer.h +34 -0
- data/lib/libraries/LoopTimer/keywords.txt +27 -0
- data/lib/libraries/OneWire/OneWire.cpp +194 -0
- data/lib/libraries/OneWire/OneWire.h +63 -0
- data/lib/libraries/OneWire/keywords.txt +35 -0
- data/lib/libraries/OneWire/readme.txt +13 -0
- data/lib/libraries/SWSerLCDpa/SWSerLCDpa.cpp +93 -47
- data/lib/libraries/SWSerLCDpa/SWSerLCDpa.h +16 -9
- data/lib/libraries/SWSerLCDsf/SWSerLCDsf.cpp +311 -0
- data/lib/libraries/SWSerLCDsf/SWSerLCDsf.h +67 -0
- data/lib/libraries/Servo/Servo.cpp +192 -0
- data/lib/libraries/Servo/Servo.h +61 -0
- data/lib/libraries/Stepper/Stepper.cpp +220 -0
- data/lib/libraries/Stepper/Stepper.h +86 -0
- data/lib/libraries/Stepper/keywords.txt +28 -0
- data/lib/libraries/Wire/Wire.cpp +262 -0
- data/lib/libraries/Wire/Wire.h +67 -0
- data/lib/libraries/Wire/keywords.txt +31 -0
- data/lib/libraries/Wire/twi.h +57 -0
- data/lib/libraries/Wire/utility/twi.c +449 -0
- data/lib/libraries/Wire/utility/twi.h +57 -0
- data/lib/plugins/bitwise_ops.rb +54 -0
- data/lib/plugins/blink.rb +25 -0
- data/lib/plugins/blink_m.rb +356 -0
- data/lib/plugins/debounce.rb +138 -0
- data/lib/plugins/debug_output_to_lcd.rb +71 -0
- data/lib/plugins/hysteresis.rb +52 -0
- data/lib/plugins/input_output_state.rb +84 -0
- data/lib/plugins/lcd_padding.rb +58 -0
- data/lib/plugins/mem_test.rb +37 -0
- data/lib/plugins/midi.rb +60 -0
- data/lib/plugins/parallax_ping.rb +50 -0
- data/lib/plugins/servo_pulse.rb +31 -0
- data/lib/plugins/servo_setup.rb +86 -0
- data/lib/plugins/smoother.rb +54 -0
- data/lib/plugins/spark_fun_serial_lcd.rb +100 -0
- data/lib/plugins/spectra_symbol.rb +79 -0
- data/lib/plugins/twitter_connect.rb +145 -0
- data/lib/rad/README.rdoc +5 -0
- data/lib/rad/arduino_plugin.rb +246 -0
- data/lib/rad/arduino_sketch.rb +351 -257
- data/lib/rad/generators/makefile/makefile.erb +1 -1
- data/lib/rad/generators/makefile/makefile.rb +9 -10
- data/lib/rad/hardware_library.rb +813 -0
- data/lib/rad/init.rb +3 -1
- data/lib/rad/rad_processor.rb +128 -0
- data/lib/rad/rad_rewriter.rb +94 -0
- data/lib/rad/rad_type_checker.rb +26 -0
- data/lib/rad/sim/arduino_sketch.rb +57 -0
- data/lib/rad/sketch_compiler.rb +47 -0
- data/lib/rad/tasks/build_and_make.rake +146 -24
- data/lib/rad/variable_processing.rb +153 -0
- data/lib/rad/version.rb +1 -1
- data/spec/examples/hello_world.rb +11 -0
- data/spec/examples/serial_motor.rb +12 -0
- data/spec/models/sketch_compiler_spec.rb +96 -0
- data/spec/sim/hello_world_spec.rb +42 -0
- data/test/test_array_processing.rb +179 -0
- data/test/test_plugin_loading.rb +151 -0
- data/test/test_translation_post_processing.rb +185 -0
- data/test/test_variable_processing.rb +238 -0
- data/website/index.html +22 -7
- data/website/stylesheets/screen.css +32 -1
- metadata +130 -13
data/History.txt
CHANGED
@@ -1,3 +1,37 @@
|
|
1
|
+
== 0.2.5 2008-07-21
|
2
|
+
* 1ish large post Bastille Day update:
|
3
|
+
- added i2c capability
|
4
|
+
- added actual Wire library until workaround for os_x file caching is found
|
5
|
+
- added DS1307 and OneWire libraries
|
6
|
+
- added cool instance variable style global variables
|
7
|
+
- added array and define methods
|
8
|
+
- added def setup method, which added to setup
|
9
|
+
- added numerous examples
|
10
|
+
|
11
|
+
== 0.2.4 2008-07-12
|
12
|
+
* 1ish large update:
|
13
|
+
- added incredibly primitive tests
|
14
|
+
- added 11 sketch examples which are compiled or compiled/uploaded
|
15
|
+
- use rake test:compile or rake test:upload
|
16
|
+
- can also use the following to run an example (make:compile also works)
|
17
|
+
- make:upload sketch=examples/hello_servos
|
18
|
+
|
19
|
+
== 0.2.3 2008-07-10
|
20
|
+
* Manyish updates:
|
21
|
+
- updated servo library to support position parameter
|
22
|
+
- plus:
|
23
|
+
- addition of plugins
|
24
|
+
- latest and greatest lcd libraries for pa and sf
|
25
|
+
- multiple methods
|
26
|
+
- addition of rad_process and rad_rewrite methods methods
|
27
|
+
- options for :device => servo, button, lcd,
|
28
|
+
- and many more
|
29
|
+
|
30
|
+
== 0.2.2 2008-04-27
|
31
|
+
* 2ish updates:
|
32
|
+
- updated makefile template and cli to expect arduino-0011
|
33
|
+
- applied David Michael's patch for longs
|
34
|
+
|
1
35
|
== 0.2.1 2008-04-02
|
2
36
|
* 6ish updates:
|
3
37
|
- applied Brian Riley's SWSerLCDpa patch
|
data/Manifest.txt
CHANGED
@@ -1,26 +1,132 @@
|
|
1
1
|
History.txt
|
2
2
|
License.txt
|
3
3
|
Manifest.txt
|
4
|
-
README.
|
4
|
+
README.rdoc
|
5
5
|
Rakefile
|
6
6
|
bin/rad
|
7
|
-
lib/
|
7
|
+
lib/examples/add_hysteresis.rb
|
8
|
+
lib/examples/basic_blink.rb
|
9
|
+
lib/examples/blink_m_address_assignment.rb
|
10
|
+
lib/examples/blink_m_hello.rb
|
11
|
+
lib/examples/blink_m_multi.rb
|
12
|
+
lib/examples/blink_with_serial.rb
|
13
|
+
lib/examples/configure_pa_lcd_boot.rb
|
14
|
+
lib/examples/debounce_methods.rb
|
15
|
+
lib/examples/external_variable_fu.rb
|
16
|
+
lib/examples/external_variables.rb
|
17
|
+
lib/examples/first_sound.rb
|
18
|
+
lib/examples/frequency_generator.rb
|
19
|
+
lib/examples/hello_array.rb
|
20
|
+
lib/examples/hello_array2.rb
|
21
|
+
lib/examples/hello_array_eeprom.rb
|
22
|
+
lib/examples/hello_clock.rb
|
23
|
+
lib/examples/hello_eeprom.rb
|
24
|
+
lib/examples/hello_eeprom_lcdpa.rb
|
25
|
+
lib/examples/hello_format_print.rb
|
26
|
+
lib/examples/hello_lcd_charset.rb
|
27
|
+
lib/examples/hello_pa_lcd.rb
|
28
|
+
lib/examples/hello_servos.rb
|
29
|
+
lib/examples/hello_spectra_sound.rb
|
30
|
+
lib/examples/hello_world.rb
|
31
|
+
lib/examples/hello_xbee.rb
|
32
|
+
lib/examples/hysteresis_duel.rb
|
33
|
+
lib/examples/i2c_with_clock_chip.rb
|
34
|
+
lib/examples/midi_beat_box.rb
|
35
|
+
lib/examples/midi_scales.rb
|
36
|
+
lib/examples/motor_knob.rb
|
37
|
+
lib/examples/servo_buttons.rb
|
38
|
+
lib/examples/servo_calibrate_continuous.rb
|
39
|
+
lib/examples/servo_throttle.rb
|
40
|
+
lib/examples/sparkfun_lcd.rb
|
41
|
+
lib/examples/spectra_soft_pot.rb
|
42
|
+
lib/examples/times_method.rb
|
43
|
+
lib/examples/toggle.rb
|
44
|
+
lib/examples/twitter.rb
|
45
|
+
lib/examples/two_wire.rb
|
46
|
+
lib/libraries/AFSoftSerial/AFSoftSerial.cpp
|
47
|
+
lib/libraries/AFSoftSerial/AFSoftSerial.h
|
48
|
+
lib/libraries/AFSoftSerial/keywords.txt
|
49
|
+
lib/libraries/AF_XPort/AF_XPort.cpp
|
50
|
+
lib/libraries/AF_XPort/AF_XPort.h
|
51
|
+
lib/libraries/DS1307/DS1307.cpp
|
52
|
+
lib/libraries/DS1307/DS1307.h
|
53
|
+
lib/libraries/DS1307/keywords.txt
|
54
|
+
lib/libraries/FrequencyTimer2/FrequencyTimer2.cpp
|
55
|
+
lib/libraries/FrequencyTimer2/FrequencyTimer2.h
|
56
|
+
lib/libraries/FrequencyTimer2/keywords.txt
|
57
|
+
lib/libraries/I2CEEPROM/I2CEEPROM.cpp
|
58
|
+
lib/libraries/I2CEEPROM/I2CEEPROM.h
|
59
|
+
lib/libraries/I2CEEPROM/keywords.txt
|
60
|
+
lib/libraries/LoopTimer/LoopTimer.cpp
|
61
|
+
lib/libraries/LoopTimer/LoopTimer.h
|
62
|
+
lib/libraries/LoopTimer/keywords.txt
|
63
|
+
lib/libraries/OneWire/OneWire.cpp
|
64
|
+
lib/libraries/OneWire/OneWire.h
|
65
|
+
lib/libraries/OneWire/keywords.txt
|
66
|
+
lib/libraries/OneWire/readme.txt
|
8
67
|
lib/libraries/SWSerLCDpa/SWSerLCDpa.cpp
|
9
68
|
lib/libraries/SWSerLCDpa/SWSerLCDpa.h
|
69
|
+
lib/libraries/SWSerLCDsf/SWSerLCDsf.cpp
|
70
|
+
lib/libraries/SWSerLCDsf/SWSerLCDsf.h
|
71
|
+
lib/libraries/Servo/Servo.cpp
|
72
|
+
lib/libraries/Servo/Servo.h
|
73
|
+
lib/libraries/Stepper/Stepper.cpp
|
74
|
+
lib/libraries/Stepper/Stepper.h
|
75
|
+
lib/libraries/Stepper/keywords.txt
|
76
|
+
lib/libraries/Wire/Wire.cpp
|
77
|
+
lib/libraries/Wire/Wire.h
|
78
|
+
lib/libraries/Wire/keywords.txt
|
79
|
+
lib/libraries/Wire/twi.h
|
80
|
+
lib/libraries/Wire/utility/twi.c
|
81
|
+
lib/libraries/Wire/utility/twi.h
|
82
|
+
lib/plugins/bitwise_ops.rb
|
83
|
+
lib/plugins/blink.rb
|
84
|
+
lib/plugins/blink_m.rb
|
85
|
+
lib/plugins/debounce.rb
|
86
|
+
lib/plugins/debug_output_to_lcd.rb
|
87
|
+
lib/plugins/hysteresis.rb
|
88
|
+
lib/plugins/input_output_state.rb
|
89
|
+
lib/plugins/lcd_padding.rb
|
90
|
+
lib/plugins/mem_test.rb
|
91
|
+
lib/plugins/midi.rb
|
92
|
+
lib/plugins/parallax_ping.rb
|
93
|
+
lib/plugins/servo_pulse.rb
|
94
|
+
lib/plugins/servo_setup.rb
|
95
|
+
lib/plugins/smoother.rb
|
96
|
+
lib/plugins/spark_fun_serial_lcd.rb
|
97
|
+
lib/plugins/spectra_symbol.rb
|
98
|
+
lib/plugins/twitter_connect.rb
|
10
99
|
lib/rad.rb
|
100
|
+
lib/rad/README.rdoc
|
101
|
+
lib/rad/arduino_plugin.rb
|
11
102
|
lib/rad/arduino_sketch.rb
|
103
|
+
lib/rad/generators/makefile/makefile.erb
|
104
|
+
lib/rad/generators/makefile/makefile.rb
|
105
|
+
lib/rad/hardware_library.rb
|
12
106
|
lib/rad/init.rb
|
13
|
-
lib/rad/
|
107
|
+
lib/rad/rad_processor.rb
|
108
|
+
lib/rad/rad_rewriter.rb
|
109
|
+
lib/rad/rad_type_checker.rb
|
110
|
+
lib/rad/sim/arduino_sketch.rb
|
111
|
+
lib/rad/sketch_compiler.rb
|
14
112
|
lib/rad/tasks/build_and_make.rake
|
15
113
|
lib/rad/tasks/rad.rb
|
114
|
+
lib/rad/todo.txt
|
115
|
+
lib/rad/variable_processing.rb
|
16
116
|
lib/rad/version.rb
|
17
|
-
lib/rad/generators/makefile/makefile.erb
|
18
|
-
lib/rad/generators/makefile/makefile.rb
|
19
117
|
scripts/txt2html
|
20
118
|
setup.rb
|
21
|
-
spec/
|
119
|
+
spec/examples/hello_world.rb
|
120
|
+
spec/examples/serial_motor.rb
|
22
121
|
spec/models/arduino_sketch_spec.rb
|
122
|
+
spec/models/sketch_compiler_spec.rb
|
123
|
+
spec/models/spec_helper.rb
|
124
|
+
spec/sim/hello_world_spec.rb
|
23
125
|
spec/spec.opts
|
126
|
+
test/test_array_processing.rb
|
127
|
+
test/test_plugin_loading.rb
|
128
|
+
test/test_translation_post_processing.rb
|
129
|
+
test/test_variable_processing.rb
|
24
130
|
website/index.html
|
25
131
|
website/index.txt
|
26
132
|
website/javascripts/rounded_corners_lite.inc.js
|
@@ -29,4 +135,4 @@ website/template.rhtml
|
|
29
135
|
website/examples/assembler_test.rb.html
|
30
136
|
website/examples/gps_reader.rb.html
|
31
137
|
website/examples/hello_world.rb.html
|
32
|
-
website/examples/serial_motor.rb.html
|
138
|
+
website/examples/serial_motor.rb.html
|
data/{README.txt → README.rdoc}
RENAMED
@@ -12,17 +12,29 @@ See also the Arduino Software reference: http://www.arduino.cc/en/Reference/Home
|
|
12
12
|
|
13
13
|
==Examples
|
14
14
|
|
15
|
-
See the examples directory for lots of examples of RAD in action:
|
15
|
+
See the examples directory for lots of examples of RAD in action:
|
16
|
+
http://github.com/atduskgreg/rad/tree/master/lib/examples
|
17
|
+
|
18
|
+
The atduskgreg/rad wiki also contains a growing library of examples and hardware tutorials:
|
19
|
+
http://github.com/atduskgreg/rad/wikis
|
16
20
|
|
17
21
|
==Getting Started
|
18
22
|
|
19
|
-
|
23
|
+
To install the edge gem:
|
24
|
+
|
25
|
+
# Update to RubyGems 1.2.0 before proceeding!
|
26
|
+
$ gem sources -a http://gems.github.com (you only have to do this once)
|
27
|
+
$ sudo gem install atduskgreg-rad
|
28
|
+
|
29
|
+
A very old and feature poor (though slightly more 'stable' RAD) is available from RubyGems:
|
30
|
+
|
31
|
+
$ sudo gem install rad
|
20
32
|
|
21
|
-
|
33
|
+
We plan to push tagged releases to RubyGems at key points. The 0.3 release should be coming up soon.
|
22
34
|
|
23
35
|
Run the rad command to create a new project:
|
24
36
|
|
25
|
-
$ rad my_project
|
37
|
+
$ rad my_project
|
26
38
|
|
27
39
|
Write a sketch that will blink a single LED every 500ms:
|
28
40
|
|
@@ -36,7 +48,7 @@ Write a sketch that will blink a single LED every 500ms:
|
|
36
48
|
|
37
49
|
Attach your Arduino and use rake to complile and upload your sketch:
|
38
50
|
|
39
|
-
$ rake make:upload
|
51
|
+
$ rake make:upload
|
40
52
|
|
41
53
|
==Get Involved
|
42
54
|
|
data/Rakefile
CHANGED
data/bin/rad
CHANGED
@@ -10,7 +10,7 @@ require 'optparse'
|
|
10
10
|
require 'fileutils'
|
11
11
|
require 'yaml'
|
12
12
|
|
13
|
-
|
13
|
+
require File.expand_path(File.dirname(__FILE__)) + "/../lib/rad/version.rb"
|
14
14
|
|
15
15
|
class OptionParser #:nodoc:
|
16
16
|
|
@@ -60,6 +60,13 @@ Usage: #{File.basename($0)} <sketch_dir_name> <options for config>
|
|
60
60
|
" (default: #{options['software']['arduino_root']})") do |arduino|
|
61
61
|
options["software"]["arduino_root"] = arduino if arduino
|
62
62
|
end
|
63
|
+
|
64
|
+
opts.on("-v", "--version [VERSION]",
|
65
|
+
"RAD version number",
|
66
|
+
" (#{Rad::VERSION::STRING})") do
|
67
|
+
puts Rad::VERSION::STRING
|
68
|
+
exit
|
69
|
+
end
|
63
70
|
|
64
71
|
opts.on_tail("-h", "--help", "Show this message") do
|
65
72
|
puts opts
|
@@ -102,17 +109,115 @@ puts
|
|
102
109
|
|
103
110
|
FileUtils.mkdir_p "#{sketch_name}/vendor/libraries"
|
104
111
|
puts "Successfully created your libraries directory."
|
112
|
+
puts
|
113
|
+
|
114
|
+
FileUtils.cp_r "#{File.dirname(__FILE__)}/../lib/libraries/AF_XPort/.", "#{sketch_name}/vendor/libraries/AF_XPort"
|
115
|
+
puts "Installed AF_XPort into #{sketch_name}/vendor/libraries"
|
116
|
+
puts
|
117
|
+
|
118
|
+
FileUtils.cp_r "#{File.dirname(__FILE__)}/../lib/libraries/AFSoftSerial/.", "#{sketch_name}/vendor/libraries/AFSoftSerial"
|
119
|
+
puts "Installed AFSoftSerial into #{sketch_name}/vendor/libraries"
|
120
|
+
puts
|
121
|
+
|
122
|
+
FileUtils.cp_r "#{File.dirname(__FILE__)}/../lib/libraries/DS1307/.", "#{sketch_name}/vendor/libraries/DS1307"
|
123
|
+
puts "Installed DS1307 into #{sketch_name}/vendor/libraries"
|
124
|
+
puts
|
125
|
+
|
126
|
+
FileUtils.cp_r "#{File.dirname(__FILE__)}/../lib/libraries/FrequencyTimer2/.", "#{sketch_name}/vendor/libraries/FrequencyTimer2"
|
127
|
+
puts "Installed FrequencyTimer2 into #{sketch_name}/vendor/libraries"
|
128
|
+
puts
|
129
|
+
|
130
|
+
FileUtils.cp_r "#{File.dirname(__FILE__)}/../lib/libraries/I2CEEPROM/.", "#{sketch_name}/vendor/libraries/I2CEEPROM"
|
131
|
+
puts "Installed I2CEEPROM into #{sketch_name}/vendor/libraries"
|
132
|
+
puts
|
133
|
+
|
134
|
+
FileUtils.cp_r "#{File.dirname(__FILE__)}/../lib/libraries/LoopTimer/.", "#{sketch_name}/vendor/libraries/LoopTimer"
|
135
|
+
puts "Installed LoopTimer into #{sketch_name}/vendor/libraries"
|
136
|
+
puts
|
137
|
+
|
138
|
+
FileUtils.cp_r "#{File.dirname(__FILE__)}/../lib/libraries/OneWire/.", "#{sketch_name}/vendor/libraries/OneWire"
|
139
|
+
puts "Installed OneWire into #{sketch_name}/vendor/libraries"
|
140
|
+
puts
|
141
|
+
|
142
|
+
FileUtils.cp_r "#{File.dirname(__FILE__)}/../lib/libraries/Servo/.", "#{sketch_name}/vendor/libraries/Servo"
|
143
|
+
puts "Installed Servo into #{sketch_name}/vendor/libraries"
|
144
|
+
puts
|
145
|
+
|
146
|
+
FileUtils.cp_r "#{File.dirname(__FILE__)}/../lib/libraries/Stepper/.", "#{sketch_name}/vendor/libraries/Stepper"
|
147
|
+
puts "Installed Stepper into #{sketch_name}/vendor/libraries"
|
148
|
+
puts
|
105
149
|
|
106
150
|
FileUtils.cp_r "#{File.dirname(__FILE__)}/../lib/libraries/SWSerLCDpa/.", "#{sketch_name}/vendor/libraries/SWSerLCDpa"
|
107
151
|
puts "Installed SWSerLCDpa into #{sketch_name}/vendor/libraries"
|
108
152
|
puts
|
109
153
|
|
154
|
+
FileUtils.cp_r "#{File.dirname(__FILE__)}/../lib/libraries/SWSerLCDsf/.", "#{sketch_name}/vendor/libraries/SWSerLCDsf"
|
155
|
+
puts "Installed SWSerLCDsf into #{sketch_name}/vendor/libraries"
|
156
|
+
puts
|
157
|
+
|
158
|
+
FileUtils.cp_r "#{File.dirname(__FILE__)}/../lib/libraries/Wire/.", "#{sketch_name}/vendor/libraries/Wire"
|
159
|
+
puts "Installed Wire into #{sketch_name}/vendor/libraries"
|
160
|
+
puts
|
161
|
+
|
162
|
+
# Build examples -- used for basic testing
|
163
|
+
|
164
|
+
FileUtils.mkdir_p "#{sketch_name}/vendor/libraries"
|
165
|
+
puts "Successfully created your examples directory."
|
166
|
+
|
167
|
+
FileUtils.cp_r "#{File.dirname(__FILE__)}/../lib/examples/.", "#{sketch_name}/examples"
|
168
|
+
puts "Installed examples into #{sketch_name}/examples"
|
169
|
+
puts
|
170
|
+
|
171
|
+
# Build test -- used testing
|
172
|
+
|
173
|
+
# FIXME: this should put the tests into the vendor/tests directory instead.
|
174
|
+
|
175
|
+
# FileUtils.mkdir_p "#{sketch_name}/test"
|
176
|
+
# puts "Successfully created your test directory."
|
177
|
+
#
|
178
|
+
# FileUtils.cp_r "#{File.dirname(__FILE__)}/../lib/test/.", "#{sketch_name}/test"
|
179
|
+
# puts "Installed tests into #{sketch_name}/test"
|
180
|
+
# puts
|
181
|
+
|
182
|
+
# Build vendor/plugins:
|
183
|
+
|
184
|
+
FileUtils.mkdir_p "#{sketch_name}/vendor/plugins"
|
185
|
+
puts "Successfully created your plugins directory."
|
186
|
+
puts
|
187
|
+
|
188
|
+
FileUtils.cp_r "#{File.dirname(__FILE__)}/../lib/plugins/.", "#{sketch_name}/vendor/plugins"
|
189
|
+
puts "Installed Default plugins into #{sketch_name}/vendor/plugins"
|
190
|
+
puts
|
191
|
+
|
192
|
+
# Add an default sketch directory # needed to run test:compile
|
193
|
+
|
194
|
+
FileUtils.mkdir_p "#{sketch_name}/#{sketch_name}"
|
195
|
+
puts "Successfully created your default sketch directory."
|
196
|
+
puts
|
197
|
+
|
198
|
+
# Copy the README how_to to the sketch directory
|
199
|
+
|
200
|
+
FileUtils.cp_r "#{File.dirname(__FILE__)}/../lib/rad/README.rdoc", "#{sketch_name}"
|
201
|
+
puts "Copied README how_to into #{sketch_name}"
|
202
|
+
puts
|
203
|
+
|
204
|
+
|
110
205
|
# Build sketch files, etc.:
|
111
206
|
|
112
207
|
FileUtils.touch "#{sketch_name}/#{sketch_name}.rb"
|
113
208
|
File.open("#{sketch_name}/#{sketch_name}.rb", "w") do |file|
|
114
209
|
file << <<-EOS
|
115
210
|
class #{sketch_name.split("_").collect{|c| c.capitalize}.join("")} < ArduinoSketch
|
211
|
+
|
212
|
+
# looking for hints? check out the examples directory
|
213
|
+
# example sketches can be uploaded to your arduino with
|
214
|
+
# rake make:upload sketch=examples/hello_world
|
215
|
+
# just replace hello_world with other examples
|
216
|
+
|
217
|
+
def loop
|
218
|
+
# your code here
|
219
|
+
end
|
220
|
+
|
116
221
|
end
|
117
222
|
EOS
|
118
223
|
end
|
@@ -0,0 +1,104 @@
|
|
1
|
+
class BlinkMAddressAssignment < ArduinoSketch
|
2
|
+
|
3
|
+
# want to use more than one blink m?
|
4
|
+
# since each blink m arrives with the same address,
|
5
|
+
# we can't address each one individually
|
6
|
+
#
|
7
|
+
# so the first thing we need to do is give each one a new address
|
8
|
+
# that's the purpose of this sketch
|
9
|
+
#
|
10
|
+
# install one blinkm at a time
|
11
|
+
# a pa_lcd screen makes this easier
|
12
|
+
# the screen will start at address ten and increment approximately every
|
13
|
+
# four seconds. Pressing during the first four seconds sets the blnikm
|
14
|
+
# address to 10, during the next four seconds to 11 and so on
|
15
|
+
# difficult without a screen.
|
16
|
+
# if you need to, program an led to help with the timing
|
17
|
+
|
18
|
+
|
19
|
+
@blink_m_start_address = 10
|
20
|
+
@flag = false
|
21
|
+
@addr1 = "10, byte"
|
22
|
+
@addr2 = "11, byte"
|
23
|
+
@addr3 = "12, byte"
|
24
|
+
|
25
|
+
output_pin 19, :as => :wire, :device => :i2c, :enable => :true # reminder, true issues wire.begin
|
26
|
+
input_pin 7, :as => :button_one, :device => :button
|
27
|
+
input_pin 8, :as => :button_two, :device => :button
|
28
|
+
input_pin 9, :as => :button_three, :device => :button
|
29
|
+
|
30
|
+
output_pin 5, :as => :my_lcd, :device => :pa_lcd, :rate => 19200, :clear_screen => :true
|
31
|
+
|
32
|
+
def setup
|
33
|
+
delay 1000
|
34
|
+
my_lcd.setxy 0,0, "bienvenue"
|
35
|
+
delay 5000
|
36
|
+
end
|
37
|
+
|
38
|
+
def loop
|
39
|
+
|
40
|
+
if @flag == false
|
41
|
+
staging
|
42
|
+
else
|
43
|
+
test_address
|
44
|
+
end
|
45
|
+
delay 100
|
46
|
+
end
|
47
|
+
|
48
|
+
def staging
|
49
|
+
my_lcd.setxy 0,0, "press button one to"
|
50
|
+
my_lcd.setxy 0,1, "set address to "
|
51
|
+
my_lcd.print @blink_m_start_address
|
52
|
+
my_lcd.setxy 0,2, "or two for status"
|
53
|
+
delay 60
|
54
|
+
my_lcd.setxy 0,3, " "
|
55
|
+
my_lcd.setxy 0,3
|
56
|
+
800.times do |i|
|
57
|
+
return 0 if @flag == true
|
58
|
+
my_lcd.print "." if i % 50 == 0
|
59
|
+
delay 5
|
60
|
+
if button_one.read_input
|
61
|
+
assign_address
|
62
|
+
elsif button_two.read_input
|
63
|
+
test_address
|
64
|
+
end
|
65
|
+
end
|
66
|
+
@blink_m_start_address += 1
|
67
|
+
end
|
68
|
+
|
69
|
+
def assign_address
|
70
|
+
@flag = true
|
71
|
+
my_lcd.clearscr "setting to "
|
72
|
+
my_lcd.print @blink_m_start_address
|
73
|
+
delay 100
|
74
|
+
BlinkM_setAddress @blink_m_start_address
|
75
|
+
my_lcd.clearscr "done"
|
76
|
+
control_it
|
77
|
+
end
|
78
|
+
|
79
|
+
def control_it
|
80
|
+
delay 500
|
81
|
+
my_lcd.clearscr "stopping script"
|
82
|
+
BlinkM_stopScript @blink_m_start_address
|
83
|
+
my_lcd.clearscr "stopping script.."
|
84
|
+
delay 500
|
85
|
+
my_lcd.clearscr "fade to purple.."
|
86
|
+
BlinkM_fadeToRGB(@blink_m_start_address, 0xff,0x00,0xff)
|
87
|
+
my_lcd.clearscr "fade to purple"
|
88
|
+
delay 500
|
89
|
+
BlinkM_fadeToRGB(@blink_m_start_address, 0xff,0x00,0xff)
|
90
|
+
end
|
91
|
+
|
92
|
+
|
93
|
+
def test_address
|
94
|
+
my_lcd.clearscr
|
95
|
+
my_lcd.setxy 0,0, "testing address"
|
96
|
+
my_lcd.setxy 0,1
|
97
|
+
my_lcd.print blink_m_check_address_message @blink_m_start_address
|
98
|
+
delay 5000
|
99
|
+
end
|
100
|
+
|
101
|
+
|
102
|
+
|
103
|
+
|
104
|
+
end
|