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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ec6a107067381290914885042336c01037c6fef0
4
- data.tar.gz: 4842514d256c5439e2ae92d4d94b5906c3ac2c4f
3
+ metadata.gz: ab59d720a1858ebc30ba93e44e746205947990fa
4
+ data.tar.gz: 0690c79c901e0d1fa23875f29f7c2b6c794566b0
5
5
  SHA512:
6
- metadata.gz: 4e648a0a9adfb24038e4c24006a5201aba155ada13c703f67be288643c262948b91fe978b0ee4efec685396f04d36d311bf8346a5a8a524906988e9381077adf
7
- data.tar.gz: d78a07a18293228d5cb6337df0b62bcbb2f2dba8b64388cb47fbfee3fa4cd5a5d50f12af7d1a86e7c9d5f4779a369d97e6d292e0b00d765720fbee4c23e4b161
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
- ENV['GEM_PLATFORM'] = 'x86-mingw32'
51
- Rake::Task['gem:build'].reenable
52
- Rake::Task['gem:build'].invoke
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('.')
@@ -411,6 +411,11 @@ module Smalruby
411
411
  Hardware.create_hardware(Hardware::SmalrubotV3)
412
412
  end
413
413
 
414
+ # create or get Hardware::Studuino instance
415
+ def studuino
416
+ Hardware.create_hardware(Hardware::Studuino)
417
+ end
418
+
414
419
  # @!endgroup
415
420
 
416
421
  def draw
@@ -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
@@ -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: 115_200,
38
+ baud: 19_200,
38
39
  }
39
40
  opt = Util.process_options(options, defaults)
40
41
 
@@ -1,5 +1,5 @@
1
1
  # -*- coding: utf-8 -*-
2
2
 
3
3
  module Smalruby
4
- VERSION = '0.1.1'
4
+ VERSION = '0.1.2'
5
5
  end
@@ -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
@@ -42,5 +42,5 @@ Gem::Specification.new do |spec|
42
42
  else
43
43
  spec.add_runtime_dependency 'dxruby_sdl', '~> 0.0.12'
44
44
  end
45
- spec.add_runtime_dependency 'smalrubot', '~> 0.0.1'
45
+ spec.add_runtime_dependency 'smalrubot', '~> 0.0.3'
46
46
  end
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.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-24 00:00:00.000000000 Z
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.1
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.1
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