smalruby 0.1.1 → 0.1.2
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of smalruby might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/Rakefile +12 -8
- data/lib/smalruby/character.rb +5 -0
- data/lib/smalruby/hardware/studuino.rb +95 -0
- data/lib/smalruby/hardware.rb +2 -1
- data/lib/smalruby/version.rb +1 -1
- data/samples/check_hardware_studuino.rb +121 -0
- data/smalruby.gemspec +1 -1
- metadata +6 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ab59d720a1858ebc30ba93e44e746205947990fa
|
4
|
+
data.tar.gz: 0690c79c901e0d1fa23875f29f7c2b6c794566b0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fe48b0c30b9f51c697ca2da140c035e08f8bd511719698119f4695927a45509ca3d721440eea3ec5aadee29735e58baedfbc05412bb26d8386474a4dc71d9377
|
7
|
+
data.tar.gz: 136e4228c387e16c11518e45a6da60bef08c02b90da9fca6fa7c937f58cf7530429c24dff6d4a076939f951f3bbacc63736d747cef0113f93714f35a94d11e60
|
data/Rakefile
CHANGED
@@ -47,21 +47,25 @@ task :build do
|
|
47
47
|
ENV['GEM_PLATFORM'] = 'linux'
|
48
48
|
Rake::Task['gem:build'].invoke
|
49
49
|
|
50
|
-
|
51
|
-
|
52
|
-
|
50
|
+
require 'smalruby/version'
|
51
|
+
Bundler.with_clean_env do
|
52
|
+
ENV['GEM_PLATFORM'] = 'x86-mingw32'
|
53
|
+
dest = "smalruby-#{Smalruby::VERSION}-#{ENV['GEM_PLATFORM']}.gem"
|
54
|
+
sh "gem build smalruby.gemspec && mv #{dest} pkg/"
|
55
|
+
end
|
53
56
|
end
|
54
57
|
|
55
58
|
task :release do
|
56
59
|
ENV['GEM_PLATFORM'] = 'linux'
|
57
60
|
Rake::Task['gem:release'].invoke
|
58
61
|
|
59
|
-
ENV['GEM_PLATFORM'] = 'x86-mingw32'
|
60
|
-
Rake::Task['gem:release'].reenable
|
61
|
-
Rake::Task['gem:build'].reenable
|
62
|
-
Rake::Task['gem:release'].invoke
|
63
|
-
|
64
62
|
require 'smalruby/version'
|
63
|
+
Bundler.with_clean_env do
|
64
|
+
ENV['GEM_PLATFORM'] = 'x86-mingw32'
|
65
|
+
dest = "smalruby-#{Smalruby::VERSION}-#{ENV['GEM_PLATFORM']}.gem"
|
66
|
+
sh "gem build smalruby.gemspec && mv #{dest} pkg/ && gem push pkg/#{dest}"
|
67
|
+
end
|
68
|
+
|
65
69
|
next_version = Smalruby::VERSION.split('.').tap { |versions|
|
66
70
|
versions[-1] = (versions[-1].to_i + 1).to_s
|
67
71
|
}.join('.')
|
data/lib/smalruby/character.rb
CHANGED
@@ -0,0 +1,95 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
require 'smalruby/hardware'
|
3
|
+
|
4
|
+
module Smalruby
|
5
|
+
module Hardware
|
6
|
+
# Studuino class
|
7
|
+
class Studuino
|
8
|
+
include Smalrubot::Board::Studuino
|
9
|
+
|
10
|
+
def initialize(_)
|
11
|
+
world.board.init_dc_motor_port(PORT_M1, 0)
|
12
|
+
world.board.init_dc_motor_port(PORT_M2, 0)
|
13
|
+
|
14
|
+
world.board.init_sensor_port(PORT_A0, PIDIRPHOTOREFLECTOR)
|
15
|
+
end
|
16
|
+
|
17
|
+
# @!method forward(sec: nil)
|
18
|
+
# forward
|
19
|
+
#
|
20
|
+
# @param [Float] time of forwarding
|
21
|
+
|
22
|
+
# @!method backward(sec: nil)
|
23
|
+
# backward
|
24
|
+
#
|
25
|
+
# @param [Float] time of backwarding
|
26
|
+
|
27
|
+
# @!method turn_left(sec: nil)
|
28
|
+
# turn left
|
29
|
+
#
|
30
|
+
# @param [Float] time of turning left
|
31
|
+
|
32
|
+
# @!method turn_right(sec: nil)
|
33
|
+
# turn right
|
34
|
+
#
|
35
|
+
# @param [Float] time of turning right
|
36
|
+
|
37
|
+
# @!method stop(sec: nil)
|
38
|
+
# stop
|
39
|
+
#
|
40
|
+
# @param [Float] time of stopping
|
41
|
+
%i(forward backward turn_left turn_right stop).each do |direction|
|
42
|
+
define_method(direction) do |sec: nil|
|
43
|
+
run(direction, sec: sec)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
|
47
|
+
def ir_photoreflector_value
|
48
|
+
world.board.get_ir_photoreflector_value(0).to_i
|
49
|
+
end
|
50
|
+
|
51
|
+
private
|
52
|
+
|
53
|
+
def run(direction, sec: nil)
|
54
|
+
case direction
|
55
|
+
when :forward
|
56
|
+
world.board.dc_motor_power(PORT_M1, 255)
|
57
|
+
world.board.dc_motor_power(PORT_M2, 255)
|
58
|
+
world.board.dc_motor_control(PORT_M1, NORMAL)
|
59
|
+
world.board.dc_motor_control(PORT_M2, NORMAL)
|
60
|
+
when :backward
|
61
|
+
world.board.dc_motor_power(PORT_M1, 255)
|
62
|
+
world.board.dc_motor_power(PORT_M2, 255)
|
63
|
+
world.board.dc_motor_control(PORT_M1, REVERSE)
|
64
|
+
world.board.dc_motor_control(PORT_M2, REVERSE)
|
65
|
+
when :turn_left
|
66
|
+
world.board.dc_motor_power(PORT_M1, 255)
|
67
|
+
world.board.dc_motor_power(PORT_M2, 255)
|
68
|
+
world.board.dc_motor_control(PORT_M1, REVERSE)
|
69
|
+
world.board.dc_motor_control(PORT_M2, NORMAL)
|
70
|
+
when :turn_right
|
71
|
+
world.board.dc_motor_power(PORT_M1, 255)
|
72
|
+
world.board.dc_motor_power(PORT_M2, 255)
|
73
|
+
world.board.dc_motor_control(PORT_M1, NORMAL)
|
74
|
+
world.board.dc_motor_control(PORT_M2, REVERSE)
|
75
|
+
when :stop
|
76
|
+
_stop
|
77
|
+
end
|
78
|
+
|
79
|
+
if (sec = sec.to_f) > 0
|
80
|
+
sleep(sec)
|
81
|
+
if direction != :stop
|
82
|
+
_stop
|
83
|
+
end
|
84
|
+
end
|
85
|
+
end
|
86
|
+
|
87
|
+
def _stop
|
88
|
+
world.board.dc_motor_power(PORT_M1, 255)
|
89
|
+
world.board.dc_motor_power(PORT_M2, 255)
|
90
|
+
world.board.dc_motor_control(PORT_M1, COAST)
|
91
|
+
world.board.dc_motor_control(PORT_M2, COAST)
|
92
|
+
end
|
93
|
+
end
|
94
|
+
end
|
95
|
+
end
|
data/lib/smalruby/hardware.rb
CHANGED
@@ -21,6 +21,7 @@ module Smalruby
|
|
21
21
|
autoload :Sensor
|
22
22
|
|
23
23
|
autoload :SmalrubotV3
|
24
|
+
autoload :Studuino
|
24
25
|
|
25
26
|
module_function
|
26
27
|
|
@@ -34,7 +35,7 @@ module Smalruby
|
|
34
35
|
|
35
36
|
defaults = {
|
36
37
|
device: nil,
|
37
|
-
baud:
|
38
|
+
baud: 19_200,
|
38
39
|
}
|
39
40
|
opt = Util.process_options(options, defaults)
|
40
41
|
|
data/lib/smalruby/version.rb
CHANGED
@@ -0,0 +1,121 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
DESCRIPTION = <<EOS
|
4
|
+
Studuinoを操作します
|
5
|
+
EOS
|
6
|
+
|
7
|
+
require 'smalruby'
|
8
|
+
|
9
|
+
init_hardware
|
10
|
+
|
11
|
+
stage1 = Stage.new(color: 'white')
|
12
|
+
|
13
|
+
stage1.on(:start) do
|
14
|
+
fill(color: 'white')
|
15
|
+
draw_font(string: DESCRIPTION, color: 'black')
|
16
|
+
|
17
|
+
stage1.studuino
|
18
|
+
|
19
|
+
loop do
|
20
|
+
if Input.key_down?(K_UP)
|
21
|
+
fill(color: 'white')
|
22
|
+
draw_font(string: '進む', color: 'black')
|
23
|
+
|
24
|
+
studuino.forward
|
25
|
+
|
26
|
+
await until !Input.key_down?(K_UP)
|
27
|
+
|
28
|
+
fill(color: 'white')
|
29
|
+
|
30
|
+
studuino.stop
|
31
|
+
end
|
32
|
+
|
33
|
+
if Input.key_down?(K_DOWN)
|
34
|
+
fill(color: 'white')
|
35
|
+
draw_font(string: 'バックする', color: 'black')
|
36
|
+
|
37
|
+
studuino.backward
|
38
|
+
|
39
|
+
await until !Input.key_down?(K_DOWN)
|
40
|
+
|
41
|
+
fill(color: 'white')
|
42
|
+
|
43
|
+
studuino.stop
|
44
|
+
end
|
45
|
+
|
46
|
+
if Input.key_down?(K_LEFT)
|
47
|
+
fill(color: 'white')
|
48
|
+
draw_font(string: '左に旋回する', color: 'black')
|
49
|
+
|
50
|
+
studuino.turn_left
|
51
|
+
|
52
|
+
await until !Input.key_down?(K_LEFT)
|
53
|
+
|
54
|
+
fill(color: 'white')
|
55
|
+
|
56
|
+
studuino.stop
|
57
|
+
end
|
58
|
+
|
59
|
+
if Input.key_down?(K_RIGHT)
|
60
|
+
fill(color: 'white')
|
61
|
+
draw_font(string: '右に旋回する', color: 'black')
|
62
|
+
|
63
|
+
studuino.turn_right
|
64
|
+
|
65
|
+
await until !Input.key_down?(K_RIGHT)
|
66
|
+
|
67
|
+
fill(color: 'white')
|
68
|
+
|
69
|
+
studuino.stop
|
70
|
+
end
|
71
|
+
|
72
|
+
if Input.key_down?(K_B)
|
73
|
+
until !Input.key_down?(K_B)
|
74
|
+
fill(color: 'white')
|
75
|
+
draw_font(string: "ライントレーサーの情報: #{studuino.ir_photoreflector_value}",
|
76
|
+
color: 'black')
|
77
|
+
await
|
78
|
+
end
|
79
|
+
fill(color: 'white')
|
80
|
+
end
|
81
|
+
end
|
82
|
+
end
|
83
|
+
|
84
|
+
stage1.on(:key_push, K_A) do
|
85
|
+
loop do
|
86
|
+
fill(color: 'white')
|
87
|
+
draw_font(string: '自動運転', color: 'black')
|
88
|
+
|
89
|
+
studuino.forward
|
90
|
+
|
91
|
+
loop do
|
92
|
+
if studuino.ir_photoreflector_value < 500
|
93
|
+
fill(color: 'white')
|
94
|
+
draw_font(string: '前方障害物発見!', color: 'black')
|
95
|
+
|
96
|
+
studuino.backward
|
97
|
+
sleep(0.25)
|
98
|
+
if rand(2) == 1
|
99
|
+
studuino.turn_left
|
100
|
+
sleep(0.1)
|
101
|
+
else
|
102
|
+
studuino.turn_left
|
103
|
+
sleep(0.1)
|
104
|
+
end
|
105
|
+
break
|
106
|
+
end
|
107
|
+
|
108
|
+
if Input.key_down?(K_Y)
|
109
|
+
fill(color: 'white')
|
110
|
+
break
|
111
|
+
end
|
112
|
+
end
|
113
|
+
studuino.stop
|
114
|
+
sleep(0.1)
|
115
|
+
|
116
|
+
if Input.key_down?(K_Y)
|
117
|
+
fill(color: 'white')
|
118
|
+
break
|
119
|
+
end
|
120
|
+
end
|
121
|
+
end
|
data/smalruby.gemspec
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: smalruby
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kouji Takao
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-01-
|
11
|
+
date: 2015-01-27 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -198,14 +198,14 @@ dependencies:
|
|
198
198
|
requirements:
|
199
199
|
- - "~>"
|
200
200
|
- !ruby/object:Gem::Version
|
201
|
-
version: 0.0.
|
201
|
+
version: 0.0.3
|
202
202
|
type: :runtime
|
203
203
|
prerelease: false
|
204
204
|
version_requirements: !ruby/object:Gem::Requirement
|
205
205
|
requirements:
|
206
206
|
- - "~>"
|
207
207
|
- !ruby/object:Gem::Version
|
208
|
-
version: 0.0.
|
208
|
+
version: 0.0.3
|
209
209
|
description: smalruby is a 2D game development library. This is part of "Smalruby"
|
210
210
|
project that is a learning ruby programming environment for kids.
|
211
211
|
email:
|
@@ -266,6 +266,7 @@ files:
|
|
266
266
|
- lib/smalruby/hardware/sensor.rb
|
267
267
|
- lib/smalruby/hardware/servo.rb
|
268
268
|
- lib/smalruby/hardware/smalrubot_v3.rb
|
269
|
+
- lib/smalruby/hardware/studuino.rb
|
269
270
|
- lib/smalruby/hardware/two_wheel_drive_car.rb
|
270
271
|
- lib/smalruby/stage.rb
|
271
272
|
- lib/smalruby/util.rb
|
@@ -278,6 +279,7 @@ files:
|
|
278
279
|
- samples/cat.rb
|
279
280
|
- samples/check_hardware_motor_driver.rb
|
280
281
|
- samples/check_hardware_smalrubot_v3.rb
|
282
|
+
- samples/check_hardware_studuino.rb
|
281
283
|
- samples/console.rb
|
282
284
|
- samples/costume.rb
|
283
285
|
- samples/costumes.rb
|