smalruby-editor 0.1.24-x86-mingw32 → 0.2.0-x86-mingw32
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of smalruby-editor might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Guardfile +9 -0
- data/app/assets/javascripts/blocks/hardware.js.coffee.erb +147 -62
- data/app/assets/javascripts/blocks/sensing.js.coffee.erb +4 -0
- data/app/assets/javascripts/msg/en_us.js +34 -12
- data/app/assets/javascripts/msg/ja.js +35 -15
- data/app/helpers/editor_helper.rb +2 -1
- data/app/models/concerns/ruby_to_block/block/{hardware_button_down_or_up.rb → hardware_button_pressed_or_released.rb} +3 -3
- data/app/models/concerns/ruby_to_block/block/{hardware_led_on.rb → hardware_led_turn_off.rb} +2 -2
- data/app/models/concerns/ruby_to_block/block/{hardware_led_off.rb → hardware_led_turn_on.rb} +2 -2
- data/app/models/concerns/ruby_to_block/block/hardware_operation.rb +2 -0
- data/app/models/concerns/ruby_to_block/block/{hardware_rgb_led_on.rb → hardware_rgb_led_set_color.rb} +2 -2
- data/app/models/concerns/ruby_to_block/block/{hardware_rgb_led_off.rb → hardware_rgb_led_turn_off.rb} +2 -2
- data/app/models/concerns/ruby_to_block/block/hardware_smalrubot_v3_action.rb +22 -0
- data/app/models/concerns/ruby_to_block/block/hardware_smalrubot_v3_action_with_sec.rb +24 -0
- data/app/models/concerns/ruby_to_block/block/hardware_smalrubot_v3_led_turn_on_or_off.rb +22 -0
- data/app/models/concerns/ruby_to_block/block/hardware_smalrubot_v3_light_sensor_value.rb +28 -0
- data/app/models/concerns/ruby_to_block/block/hardware_smalrubot_v3_touch_sensor_pressed_or_released.rb +29 -0
- data/app/models/concerns/ruby_to_block/block/hardware_two_wheel_drive_car_commands.rb +3 -1
- data/app/views/editor/_toolbox.html.haml +30 -17
- data/app/views/layouts/application.html.erb +3 -1
- data/config/locales/en.yml +1 -0
- data/config/locales/ja.yml +1 -0
- data/lib/smalruby_editor/blockly_message_helper.rb +2 -1
- data/lib/smalruby_editor/version.rb +1 -1
- data/lib/tasks/release.rake +0 -0
- data/public/assets/{application-fda71a642d958ffbaf90185c471d6e51.js → application-b305a6ea9e7c045a8e170bbf6fb09dd1.js} +3 -3
- data/public/assets/{application-fda71a642d958ffbaf90185c471d6e51.js.gz → application-b305a6ea9e7c045a8e170bbf6fb09dd1.js.gz} +0 -0
- data/public/assets/{manifest-1a9856df207640ec658271db34b30dbb.json → manifest-ebd584fa603a378faf780f013e6a447d.json} +1 -1
- data/public/assets/msg/en_us-c6f8f0084f38560bf933b742ede64a52.js +1 -0
- data/public/assets/msg/en_us-c6f8f0084f38560bf933b742ede64a52.js.gz +0 -0
- data/public/assets/msg/ja-3703e6ceebd04ae1f08b0e871800539d.js +1 -0
- data/public/assets/msg/ja-3703e6ceebd04ae1f08b0e871800539d.js.gz +0 -0
- data/smalruby-editor.gemspec +1 -1
- data/spec/acceptance/block_mode/blocks/hardware/{button_down_or_up.feature → button_pressed_or_released.feature} +15 -15
- data/spec/acceptance/block_mode/blocks/hardware/led_turn_off.feature +67 -0
- data/spec/acceptance/block_mode/blocks/hardware/led_turn_on.feature +67 -0
- data/spec/acceptance/block_mode/blocks/hardware/rgb_led_set_color.feature +79 -0
- data/spec/acceptance/block_mode/blocks/hardware/{button_not_use_pullup.feature → rgb_led_turn_off.feature} +30 -18
- data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_action.feature +107 -0
- data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_action_with_sec.feature +151 -0
- data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_led_turn_on_or_off.feature +73 -0
- data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_light_sensor_value.feature +92 -0
- data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_motor_speed.feature +116 -0
- data/spec/acceptance/block_mode/blocks/hardware/smalrubot_v3_touch_sensor_pressed_or_released.feature +108 -0
- data/spec/models/concerns/ruby_to_block/block/hardware_spec.rb +359 -36
- data/spec/models/concerns/ruby_to_block_spec.rb +8 -8
- data/spec/steps/block_mode_steps.rb +8 -0
- metadata +43 -35
- data/app/models/concerns/ruby_to_block/block/hardware_button_not_use_pullup.rb +0 -18
- data/app/models/concerns/ruby_to_block/block/hardware_on_button_down_or_up.rb +0 -19
- data/app/models/concerns/ruby_to_block/block/hardware_on_sensor_change.rb +0 -17
- data/public/assets/msg/en_us-893d970ff8061fbe7459f009582c4df5.js +0 -1
- data/public/assets/msg/en_us-893d970ff8061fbe7459f009582c4df5.js.gz +0 -0
- data/public/assets/msg/ja-4d22bd0341f464f9d1b9f373121bce6d.js +0 -1
- data/public/assets/msg/ja-4d22bd0341f464f9d1b9f373121bce6d.js.gz +0 -0
- data/spec/acceptance/block_mode/blocks/hardware/led_off.feature +0 -75
- data/spec/acceptance/block_mode/blocks/hardware/led_on.feature +0 -75
- data/spec/acceptance/block_mode/blocks/hardware/on_button_down_or_up.feature +0 -87
- data/spec/acceptance/block_mode/blocks/hardware/on_sensor_change.feature +0 -81
- data/spec/acceptance/block_mode/blocks/hardware/rgb_led_off.feature +0 -81
- data/spec/acceptance/block_mode/blocks/hardware/rgb_led_on.feature +0 -87
@@ -8,6 +8,21 @@ goog.require('Blockly.Msg');
|
|
8
8
|
* to message files.
|
9
9
|
*/
|
10
10
|
|
11
|
+
// common
|
12
|
+
Blockly.Msg.COMMON_TURN_ON = 'オンにする';
|
13
|
+
Blockly.Msg.COMMON_TURN_OFF = 'オフにする';
|
14
|
+
Blockly.Msg.COMMON_FORWARD = '進める';
|
15
|
+
Blockly.Msg.COMMON_BACKWARD = 'バックさせる';
|
16
|
+
Blockly.Msg.COMMON_TURN_LEFT = '左に曲げる';
|
17
|
+
Blockly.Msg.COMMON_TURN_RIGHT = '右に曲げる';
|
18
|
+
Blockly.Msg.COMMON_STOP = '止める';
|
19
|
+
|
20
|
+
|
21
|
+
// colour name
|
22
|
+
Blockly.Msg.COLOUR_RED = '赤色';
|
23
|
+
Blockly.Msg.COLOUR_GREEN = '緑色';
|
24
|
+
|
25
|
+
|
11
26
|
// views/main_menu_view.js.coffee
|
12
27
|
Blockly.Msg.VIEWS_MAIN_MENU_VIEW_COMMON_LINES = '行';
|
13
28
|
Blockly.Msg.VIEWS_MAIN_MENU_VIEW_COMMON_LETTERS = '文字';
|
@@ -74,13 +89,16 @@ Blockly.Msg.BLOCKS_SENSING_K_DOWN = '↓';
|
|
74
89
|
Blockly.Msg.BLOCKS_SENSING_K_LEFT = '←';
|
75
90
|
Blockly.Msg.BLOCKS_SENSING_K_RIGHT = '→';
|
76
91
|
Blockly.Msg.BLOCKS_SENSING_K_SPACE = 'スペース';
|
77
|
-
Blockly.Msg.
|
78
|
-
Blockly.Msg.
|
79
|
-
Blockly.Msg.
|
92
|
+
Blockly.Msg.BLOCKS_SENSING_PRESSED = '押された';
|
93
|
+
Blockly.Msg.BLOCKS_SENSING_PUSH = Blockly.Msg.BLOCKS_SENSING_PRESSED;
|
94
|
+
Blockly.Msg.BLOCKS_SENSING_UP = Blockly.Msg.BLOCKS_SENSING_PRESSED;
|
95
|
+
Blockly.Msg.BLOCKS_SENSING_HOLD_PRESSED = '押され続けている';
|
96
|
+
Blockly.Msg.BLOCKS_SENSING_HOLD_DOWN = Blockly.Msg.BLOCKS_SENSING_HOLD_PRESSED;
|
80
97
|
Blockly.Msg.BLOCKS_SENSING_M_LBUTTON = '左ボタン';
|
81
98
|
Blockly.Msg.BLOCKS_SENSING_M_MBUTTON = '中ボタン';
|
82
99
|
Blockly.Msg.BLOCKS_SENSING_M_RBUTTON = '右ボタン';
|
83
|
-
Blockly.Msg.
|
100
|
+
Blockly.Msg.BLOCKS_SENSING_RELEASED = '離された';
|
101
|
+
Blockly.Msg.BLOCKS_SENSING_UP = Blockly.Msg.BLOCKS_SENSING_RELEASED;
|
84
102
|
Blockly.Msg.BLOCKS_SENSING_REACH_WALL = '端に触れた';
|
85
103
|
Blockly.Msg.BLOCKS_SENSING_INPUT_KEY_PUSH_OR_DOWN_PREFIX = 'キーボードの';
|
86
104
|
Blockly.Msg.BLOCKS_SENSING_INPUT_KEY_PUSH_OR_DOWN_MIDDLE = 'が';
|
@@ -153,17 +171,15 @@ Blockly.Msg.BLOCKS_LOOKS_HIDE = '隠す';
|
|
153
171
|
Blockly.Msg.BLOCKS_LOOKS_VANISH = '消滅する';
|
154
172
|
|
155
173
|
// blocks/hardware.js.coffee.erb
|
156
|
-
Blockly.Msg.
|
157
|
-
Blockly.Msg.
|
174
|
+
Blockly.Msg.BLOCKS_HARDWARE_LED_TURN_ON = 'LED%1をオンにする';
|
175
|
+
Blockly.Msg.BLOCKS_HARDWARE_LED_TURN_OFF = 'LED%1をオフにする';
|
158
176
|
Blockly.Msg.BLOCKS_HARDWARE_ANODE = 'アノード';
|
159
177
|
Blockly.Msg.BLOCKS_HARDWARE_CATHODE = 'カソード';
|
160
178
|
Blockly.Msg.BLOCKS_HARDWARE_LEFT = ' 左';
|
161
179
|
Blockly.Msg.BLOCKS_HARDWARE_RIGHT = '右';
|
162
180
|
Blockly.Msg.BLOCKS_HARDWARE_INIT_HARDWARE = 'ハードウェアを準備する';
|
163
|
-
Blockly.Msg.
|
164
|
-
|
165
|
-
Blockly.Msg.BLOCKS_HARDWARE_RGB_LED_ON = 'RGB LED%1コモン%2を%3にする';
|
166
|
-
Blockly.Msg.BLOCKS_HARDWARE_RGB_LED_OFF = 'RGB LED%1コモン%2をオフにする';
|
181
|
+
Blockly.Msg.BLOCKS_HARDWARE_RGB_LED_SET_COLOR = 'RGB LED%1コモン%2を%3にする';
|
182
|
+
Blockly.Msg.BLOCKS_HARDWARE_RGB_LED_TURN_OFF = 'RGB LED%1コモン%2をオフにする';
|
167
183
|
Blockly.Msg.BLOCKS_HARDWARE_SEVEN_SEGMENT_DISPLAY_SHOW = '7セグディスプレイに%1を表示する';
|
168
184
|
Blockly.Msg.BLOCKS_HARDWARE_SEVEN_SEGMENT_DISPLAY_OFF = '7セグディスプレイをオフにする';
|
169
185
|
Blockly.Msg.BLOCKS_HARDWARE_LCD_PUTS = 'LCDに%1を表示する';
|
@@ -188,11 +204,15 @@ Blockly.Msg.BLOCKS_HARDWARE_MOTOR_DRIVER_STOP = '止める';
|
|
188
204
|
Blockly.Msg.BLOCKS_HARDWARE_MOTOR_DRIVER = '(モータードライバ%1で)モーターを%2';
|
189
205
|
Blockly.Msg.BLOCKS_HARDWARE_MOTOR_DRIVER_SET_SPEED = '(モータードライバ%1の)モーターの速度を%2にする';
|
190
206
|
Blockly.Msg.BLOCKS_HARDWARE_MOTOR_DRIVER_SPEED = '(モータードライバ%1の)モーターの速度(%)';
|
191
|
-
Blockly.Msg.
|
192
|
-
Blockly.Msg.
|
193
|
-
Blockly.Msg.
|
194
|
-
Blockly.Msg.
|
195
|
-
Blockly.Msg.
|
207
|
+
Blockly.Msg.BLOCKS_HARDWARE_BUTTON_PRESSED_OR_RELEASED = 'ボタン %1 が %2 ?';
|
208
|
+
Blockly.Msg.BLOCKS_HARDWARE_SENSOR_VALUE = 'センサー %1';
|
209
|
+
Blockly.Msg.BLOCKS_HARDWARE_SMALRUBOT_V3_LED_TURN_ON_OR_OFF = 'スモウルボットV3の %1 LEDを %2';
|
210
|
+
Blockly.Msg.BLOCKS_HARDWARE_SMALRUBOT_V3_MOTOR_SPEED = 'スモウルボットV3の %1 モーターの速度(%)';
|
211
|
+
Blockly.Msg.BLOCKS_HARDWARE_SMALRUBOT_V3_MOTOR_SET_SPEED = 'スモウルボットV3の %1 モーターの速度を %2 (%) にする';
|
212
|
+
Blockly.Msg.BLOCKS_HARDWARE_SMALRUBOT_V3_ACTION = 'スモウルボットV3を %1';
|
213
|
+
Blockly.Msg.BLOCKS_HARDWARE_SMALRUBOT_V3_ACTION_WITH_SEC = 'スモウルボットV3を %2 秒 %1';
|
214
|
+
Blockly.Msg.BLOCKS_HARDWARE_SMALRUBOT_V3_TOUCH_SENSOR_PRESSED_OR_RELEASED = 'スモウルボットV3の %1 のタッチセンサーが %2 ?';
|
215
|
+
Blockly.Msg.BLOCKS_HARDWARE_SMALRUBOT_V3_LIGHT_SENSOR_VALUE = 'スモウルボットV3の光センサー';
|
196
216
|
|
197
217
|
|
198
218
|
// blocks/operators.js.coffee.erb
|
@@ -32,10 +32,11 @@ module EditorHelper
|
|
32
32
|
# @param [Numeric] value 数値
|
33
33
|
# @return [String] XML
|
34
34
|
def toolbox_number_value(name, value = 0)
|
35
|
+
value = value.to_i unless value.is_a?(Numeric)
|
35
36
|
<<-XML.strip_heredoc.html_safe
|
36
37
|
<value name="#{h name}">
|
37
38
|
<block type="math_number">
|
38
|
-
<field name="NUM">#{h value
|
39
|
+
<field name="NUM">#{h value}</field>
|
39
40
|
</block>
|
40
41
|
</value>
|
41
42
|
XML
|
@@ -1,11 +1,11 @@
|
|
1
1
|
module RubyToBlock
|
2
2
|
module Block
|
3
|
-
class
|
3
|
+
class HardwareButtonPressedOrReleased < Value
|
4
4
|
include CharacterOperation
|
5
5
|
include HardwareOperation
|
6
6
|
|
7
7
|
blocknize '^\s*' + CHAR_RE +
|
8
|
-
'button\(' + DIO_PIN_RE + '\)\.(
|
8
|
+
'button\(' + DIO_PIN_RE + '\)\.(pressed|released)\?\s*$',
|
9
9
|
value: true
|
10
10
|
|
11
11
|
def self.process_match_data(md, context)
|
@@ -14,7 +14,7 @@ module RubyToBlock
|
|
14
14
|
character = get_character(context, md2[1])
|
15
15
|
return false if context.receiver && context.receiver != character
|
16
16
|
|
17
|
-
block = new(fields: { PIN: md2[2],
|
17
|
+
block = new(fields: { PIN: md2[2], POR: md2[3] })
|
18
18
|
context.add_value(block)
|
19
19
|
block.character = character
|
20
20
|
|
data/app/models/concerns/ruby_to_block/block/{hardware_led_on.rb → hardware_led_turn_off.rb}
RENAMED
@@ -1,8 +1,8 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
module RubyToBlock
|
3
3
|
module Block
|
4
|
-
class
|
5
|
-
blocknize '^\s*' + CHAR_RE + 'led\("(D(?:[2-9]|1[0-3]))"\).
|
4
|
+
class HardwareLedTurnOff < CharacterMethodCall
|
5
|
+
blocknize '^\s*' + CHAR_RE + 'led\("(D(?:[2-9]|1[0-3]))"\).turn_off\s*$',
|
6
6
|
statement: true
|
7
7
|
|
8
8
|
def self.process_match_data(md, context)
|
data/app/models/concerns/ruby_to_block/block/{hardware_led_off.rb → hardware_led_turn_on.rb}
RENAMED
@@ -1,8 +1,8 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
module RubyToBlock
|
3
3
|
module Block
|
4
|
-
class
|
5
|
-
blocknize '^\s*' + CHAR_RE + 'led\("(D(?:[2-9]|1[0-3]))"\).
|
4
|
+
class HardwareLedTurnOn < CharacterMethodCall
|
5
|
+
blocknize '^\s*' + CHAR_RE + 'led\("(D(?:[2-9]|1[0-3]))"\).turn_on\s*$',
|
6
6
|
statement: true
|
7
7
|
|
8
8
|
def self.process_match_data(md, context)
|
@@ -1,9 +1,9 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
module RubyToBlock
|
3
3
|
module Block
|
4
|
-
class
|
4
|
+
class HardwareRgbLedSetColor < CharacterMethodCall
|
5
5
|
# rubocop:disable LineLength
|
6
|
-
blocknize '^\s*' + CHAR_RE + 'rgb_led_(anode|cathode)\("(D[39])"\).
|
6
|
+
blocknize '^\s*' + CHAR_RE + 'rgb_led_(anode|cathode)\("(D[39])"\).color\s*=\s*\[(\d+),\s*(\d+),\s*(\d+)\]\s*$',
|
7
7
|
statement: true
|
8
8
|
# rubocop:enable LineLength
|
9
9
|
|
@@ -1,9 +1,9 @@
|
|
1
1
|
# -*- coding: utf-8 -*-
|
2
2
|
module RubyToBlock
|
3
3
|
module Block
|
4
|
-
class
|
4
|
+
class HardwareRgbLedTurnOff < CharacterMethodCall
|
5
5
|
# rubocop:disable LineLength
|
6
|
-
blocknize '^\s*' + CHAR_RE + 'rgb_led_(anode|cathode)\("(D[39])"\)\.
|
6
|
+
blocknize '^\s*' + CHAR_RE + 'rgb_led_(anode|cathode)\("(D[39])"\)\.turn_off\s*$',
|
7
7
|
statement: true
|
8
8
|
# rubocop:enable LineLength
|
9
9
|
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
module RubyToBlock
|
3
|
+
module Block
|
4
|
+
class HardwareSmalrubotV3Action < CharacterMethodCall
|
5
|
+
include HardwareOperation
|
6
|
+
|
7
|
+
# rubocop:disable LineLength
|
8
|
+
blocknize '^\s*' + CHAR_RE +
|
9
|
+
'smalrubot_v3\.' + ACTION_RE +
|
10
|
+
'\s*$',
|
11
|
+
statement: true, inline: true
|
12
|
+
# rubocop:enable LineLength
|
13
|
+
|
14
|
+
def self.process_match_data(md, context)
|
15
|
+
md2 = regexp.match(md[type])
|
16
|
+
add_character_method_call_block(context, md2[1],
|
17
|
+
new(fields: { ACTION: md2[2] }))
|
18
|
+
true
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,24 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
module RubyToBlock
|
3
|
+
module Block
|
4
|
+
class HardwareSmalrubotV3ActionWithSec < CharacterMethodCall
|
5
|
+
include HardwareOperation
|
6
|
+
|
7
|
+
# rubocop:disable LineLength
|
8
|
+
blocknize '^\s*' + CHAR_RE +
|
9
|
+
'smalrubot_v3\.' + ACTION_RE +
|
10
|
+
'\(\s*sec:\s*(\d+(?:\.\d+)?)\)' +
|
11
|
+
'\s*$',
|
12
|
+
statement: true, inline: true
|
13
|
+
# rubocop:enable LineLength
|
14
|
+
|
15
|
+
def self.process_match_data(md, context)
|
16
|
+
md2 = regexp.match(md[type])
|
17
|
+
add_character_method_call_block(context, md2[1],
|
18
|
+
new(fields: { ACTION: md2[2] }),
|
19
|
+
SEC: md2[3])
|
20
|
+
true
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
module RubyToBlock
|
3
|
+
module Block
|
4
|
+
class HardwareSmalrubotV3LedTurnOnOrOff < CharacterMethodCall
|
5
|
+
include HardwareOperation
|
6
|
+
|
7
|
+
# rubocop:disable LineLength
|
8
|
+
blocknize '^\s*' + CHAR_RE +
|
9
|
+
'smalrubot_v3\.(red|green)_led.(turn_on|turn_off)' +
|
10
|
+
'\s*$',
|
11
|
+
statement: true, inline: true
|
12
|
+
# rubocop:enable LineLength
|
13
|
+
|
14
|
+
def self.process_match_data(md, context)
|
15
|
+
md2 = regexp.match(md[type])
|
16
|
+
block = new(fields: { COLOUR: md2[2], OOO: md2[3] })
|
17
|
+
add_character_method_call_block(context, md2[1], block)
|
18
|
+
true
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module RubyToBlock
|
2
|
+
module Block
|
3
|
+
class HardwareSmalrubotV3LightSensorValue < Value
|
4
|
+
include CharacterOperation
|
5
|
+
|
6
|
+
# rubocop:disable LineLength
|
7
|
+
blocknize '^\s*' + CHAR_RE +
|
8
|
+
'smalrubot_v3\.' +
|
9
|
+
'light_sensor\.value' +
|
10
|
+
'\s*$',
|
11
|
+
value: true
|
12
|
+
# rubocop:enable LineLength
|
13
|
+
|
14
|
+
def self.process_match_data(md, context)
|
15
|
+
md2 = regexp.match(md[type])
|
16
|
+
|
17
|
+
character = get_character(context, md2[1])
|
18
|
+
return false if context.receiver && context.receiver != character
|
19
|
+
|
20
|
+
block = new
|
21
|
+
context.add_value(block)
|
22
|
+
block.character = character
|
23
|
+
|
24
|
+
true
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
module RubyToBlock
|
2
|
+
module Block
|
3
|
+
class HardwareSmalrubotV3TouchSensorPressedOrReleased < Value
|
4
|
+
include CharacterOperation
|
5
|
+
include HardwareOperation
|
6
|
+
|
7
|
+
# rubocop:disable LineLength
|
8
|
+
blocknize '^\s*' + CHAR_RE +
|
9
|
+
'smalrubot_v3\.' +
|
10
|
+
LOR_RE + '_touch_sensor\.' + POR_RE + '\?' +
|
11
|
+
'\s*$',
|
12
|
+
value: true
|
13
|
+
# rubocop:enable LineLength
|
14
|
+
|
15
|
+
def self.process_match_data(md, context)
|
16
|
+
md2 = regexp.match(md[type])
|
17
|
+
|
18
|
+
character = get_character(context, md2[1])
|
19
|
+
return false if context.receiver && context.receiver != character
|
20
|
+
|
21
|
+
block = new(fields: { LOR: md2[2], POR: md2[3] })
|
22
|
+
context.add_value(block)
|
23
|
+
block.character = character
|
24
|
+
|
25
|
+
true
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
@@ -2,7 +2,9 @@
|
|
2
2
|
module RubyToBlock
|
3
3
|
module Block
|
4
4
|
class HardwareTwoWheelDriveCarCommands < Value
|
5
|
-
|
5
|
+
include HardwareOperation
|
6
|
+
|
7
|
+
blocknize '^\s*"' + ACTION_RE + '"\s*$',
|
6
8
|
value: true, priority: 1
|
7
9
|
|
8
10
|
def self.process_match_data(md, context)
|
@@ -140,6 +140,19 @@
|
|
140
140
|
= toolbox_pin_field('D6')
|
141
141
|
= toolbox_number_value('SPEED', 100)
|
142
142
|
|
143
|
+
- subcategory = 'smalrubot_v3'
|
144
|
+
%block{type: "#{category}_#{subcategory}_action"}
|
145
|
+
%field{name: 'ACTION'}<
|
146
|
+
forward
|
147
|
+
|
148
|
+
%block{type: "#{category}_#{subcategory}_action_with_sec"}
|
149
|
+
%field{name: 'ACTION'}<
|
150
|
+
forward
|
151
|
+
= toolbox_number_value('SEC', 0.5)
|
152
|
+
|
153
|
+
%block{type: "#{category}_#{subcategory}_motor_set_speed"}
|
154
|
+
= toolbox_number_value('SPEED', 100)
|
155
|
+
|
143
156
|
- category = 'looks'
|
144
157
|
%category{:name => t('.looks')}
|
145
158
|
-# [ ]と( )秒言う
|
@@ -187,17 +200,17 @@
|
|
187
200
|
- category = 'hardware'
|
188
201
|
- subcategory = 'led'
|
189
202
|
-# LED[▼PIN]をオンにする
|
190
|
-
%block{:type => "#{category}_#{subcategory}
|
203
|
+
%block{:type => "#{category}_#{subcategory}_turn_on"}
|
191
204
|
|
192
205
|
-# LED[▼PIN]をオフにする
|
193
|
-
%block{:type => "#{category}_#{subcategory}
|
206
|
+
%block{:type => "#{category}_#{subcategory}_turn_off"}
|
194
207
|
|
195
208
|
- subcategory = 'rgb_led'
|
196
209
|
-# RGB LED[▼アノード]コモン[▼PIN]を[カラー]にする
|
197
|
-
%block{:type => "#{category}_#{subcategory}
|
210
|
+
%block{:type => "#{category}_#{subcategory}_set_color"}
|
198
211
|
|
199
212
|
-# RGB LED[▼アノード]コモン[▼PIN]をオフにする
|
200
|
-
%block{:type => "#{category}_#{subcategory}
|
213
|
+
%block{:type => "#{category}_#{subcategory}_turn_off"}
|
201
214
|
|
202
215
|
- subcategory = 'seven_segment_display'
|
203
216
|
-# 7セグディスプレイに[▼0-9]を表示する
|
@@ -214,6 +227,13 @@
|
|
214
227
|
-# LCDをクリアする
|
215
228
|
%block{:type => "#{category}_#{subcategory}_clear"}
|
216
229
|
|
230
|
+
- subcategory = 'smalrubot_v3'
|
231
|
+
%block{type: "#{category}_#{subcategory}_led_turn_on_or_off"}
|
232
|
+
%field{name: 'COLOUR'}<
|
233
|
+
red
|
234
|
+
%field{name: 'OOO'}<
|
235
|
+
turn_on
|
236
|
+
|
217
237
|
- category = 'sound'
|
218
238
|
%category{:name => t('.sound')}
|
219
239
|
-# [▼プリセット音声]の音を鳴らす
|
@@ -257,14 +277,6 @@
|
|
257
277
|
-# [▼キャラクター]にぶつかったとき
|
258
278
|
%block{:type => "#{category}_on_hit"}
|
259
279
|
|
260
|
-
- if !raspberrypi?
|
261
|
-
- category = 'hardware'
|
262
|
-
-# センサー[▼PIN]が変化したとき
|
263
|
-
%block{:type => "#{category}_on_sensor_change"}
|
264
|
-
|
265
|
-
-# ボタン[▼PIN]が[▼押された]とき
|
266
|
-
%block{:type => "#{category}_on_button_down_or_up"}
|
267
|
-
|
268
280
|
- category = 'control'
|
269
281
|
%category{:name => t('.control')}
|
270
282
|
%category{:name => t('.control_loop')}
|
@@ -359,7 +371,7 @@
|
|
359
371
|
= toolbox_pin_field('A0')
|
360
372
|
|
361
373
|
-# 条件:ボタン[▼PIN]が[▼押された]
|
362
|
-
%block{:type => "#{category}
|
374
|
+
%block{:type => "#{category}_button_pressed_or_released"}
|
363
375
|
= toolbox_pin_field('D3')
|
364
376
|
|
365
377
|
-# 2WD車[▼PIN]の[▼LOR]の速度%
|
@@ -370,6 +382,11 @@
|
|
370
382
|
%block{:type => "#{category}_motor_driver_speed"}
|
371
383
|
= toolbox_pin_field('D6')
|
372
384
|
|
385
|
+
- subcategory = 'smalrubot_v3'
|
386
|
+
%block{type: "#{category}_#{subcategory}_touch_sensor_pressed_or_released"}
|
387
|
+
%block{type: "#{category}_#{subcategory}_light_sensor_value"}
|
388
|
+
%block{type: "#{category}_#{subcategory}_motor_speed"}
|
389
|
+
|
373
390
|
- category = 'operators'
|
374
391
|
%category{:name => t('.operators')}
|
375
392
|
%category{:name => t('.operators_calculate')}
|
@@ -477,7 +494,3 @@
|
|
477
494
|
%category{:name => t('.etc_hardware')}
|
478
495
|
-# ハードウェアを準備する
|
479
496
|
%block{:type => "#{category}_init_hardware"}
|
480
|
-
|
481
|
-
-# ボタン[▼PIN]のプルアップ抵抗を使わない
|
482
|
-
%block{:type => "#{category}_button_not_use_pullup"}
|
483
|
-
= toolbox_pin_field('D3')
|
@@ -1,7 +1,9 @@
|
|
1
1
|
<!DOCTYPE html>
|
2
2
|
<html>
|
3
3
|
<head>
|
4
|
-
<title>
|
4
|
+
<title>
|
5
|
+
<%= t('common.smalruby_editor', version: SmalrubyEditor::VERSION) %>
|
6
|
+
</title>
|
5
7
|
<%= favicon_link_tag %>
|
6
8
|
<link rel="apple-touch-icon" href="apple-touch-icon.png" />
|
7
9
|
<meta name="application-name" content="Smalruby" />
|