-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathapp_ruby2.rb
executable file
·74 lines (52 loc) · 1.79 KB
/
app_ruby2.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
# coding: utf-8
TAIL_ANGLE_DOWN = 93 # 尻尾を下げた状態のときの角度[度]
#TAIL_ANGLE_DOWN = 80 # 尻尾を下げた状態のときの角度[度]
TAIL_ANGLE_UP = 3 # 尻尾を上げた状態のときの角度[度]
GYRO_OFFSET = 0 # ジャイロセンサオフセット値(角速度0[deg/sec]時)
LIGHT_WHITE = 40 # 白色の光センサ値
LIGHT_BLACK = 0 # 黒色の光センサ値
P_GAIN = 2.5 # 完全停止用モータ制御比例係数
PWM_ABS_MAX = 60 # 完全停止用モータ制御PWM絶対最大値
def log(logger, msg)
value = logger.write(msg)
if !value
EV3RT::LCD.print("log error!!")
else
EV3RT::LCD.print("log ok")
end
end
touchSensor = EV3RT::TouchSensor.new(EV3RT::PORT_1)
colorSensor = EV3RT::ColorSensor.new(EV3RT::PORT_3)
sonarSensor = EV3RT::SonarSensor.new(EV3RT::PORT_2)
gyroSensor = EV3RT::GyroSensor.new(EV3RT::PORT_4)
leftMotor = EV3RT::Motor.new(EV3RT::PORT_C, EV3RT::LARGE_MOTOR)
rightMotor = EV3RT::Motor.new(EV3RT::PORT_B, EV3RT::LARGE_MOTOR)
tailMotor = EV3RT::TailMotor.new(EV3RT::PORT_A, EV3RT::LARGE_MOTOR)
tailMotor.p_gain = P_GAIN
tailMotor.pwm_abs_max = PWM_ABS_MAX
clock = EV3RT::Clock.new()
#for log
logger = EV3RT::Serial.new(EV3RT::SIO_PORT_BT)
# LCD
led = EV3RT::LED.new()
led.on(EV3RT::LED_ORANGE)
# 初期処理だけして寝かす
EV3RT::Task.active(EV3RT::BALANCE_TASK_ID)
EV3RT::LCD.print("EV3way 2018 sample mruby cyclick ver!!!.")
# スタート待機
#loop do
while true
# tailMotor.control(TAIL_ANGLE_DOWN)
if touchSensor.pressed?
break
else
end
clock.sleep(10)
end # loop end
EV3RT::Task.start_cyclic(EV3RT::BALANCE_CYC_ID)
EV3RT::LCD.print("sleep main task.")
# back ボタンで終了指示があるまでおやすみ
EV3RT::Task.sleep
leftMotor.stop
rightMotor.stop
led.on(EV3RT::LED_RED)