- 追加された行はこの色です。
- 削除された行はこの色です。
目次
#contents
*はじめに [#e0681e35]
今回の課題はライントレースです。~
あらかじめ先生によって決められたコースを、自分たちで紙に描き、用意された3つのミッションを班のメンバーで1つずつ担当して、そのミッションにしたがってライントレースをするロボットを作る、というのが今回の課題の詳細です。
あらかじめ先生によって決められたコースを、自分たちで紙に描き、用意された3つのミッションを班のメンバーで1つずつ担当して、そのミッションにしたがってライントレースをするロボットを作る、というのが今回の課題の詳細です。~
また、交差点では一秒間停止しなければならないという条件もあります。
*コース紹介 [#s5b7007c]
#ref(ロボティクス課題2.png)
僕が担当したミッションは~
C地点からA地点~
C地点 → S左折 → P左折 → Q直進 → Q直進 → R右折 → P左折 → A地点
というコースです。~
用意された3つのミッションの中で最も長く、右左折も多いミッションです。
*ロボット本体の説明 [#i361967b]
*プログラムの紹介 [#if87891f]
**プログラム全体の概要 [#a01c955e]
#!/usr/bin/python
import ev3dev.ev3 as ev3
import time
mr=ev3.LargeMotor('outA')
ml=ev3.LargeMotor('outB')
cs=ev3.ColorSensor('in1')
def line():
t0=time.time()
while time.time()-t0 < 0.35:
if cs.value() > 50:
mr.run_forever(duty_cycle_sp=60)
ml.run_forever(duty_cycle_sp=-30)
t0=time.time()
else:
mr.run_forever(duty_cycle_sp=-30)
ml.run_forever(duty_cycle_sp=60)
def cross(t,dl,dr):
mr.run_forever(duty_cycle_sp=dr)
ml.run_forever(duty_cycle_sp=dl)
time.sleep(t/1000)
ml.stop()
mr.stop()
mr.stop()
ml.stop()
line()
cross(1000,0,0)
cross(1000,17,-17)
cross(800,30,-30)
cross(1000,10,10)
line()
cross(1000,0,0)
cross(1000,17,-17)
cross(900,30,-30)
cross(1000,10,10)
line()
cross(1000,0,0)
cross(1100,-20,20)
cross(1000,13,13)
line()
cross(1000,0,0)
cross(1100,-17,17)
cross(1000,13,13)
line()
cross(1000,0,0)
cross(1000,17,-17)
cross(1400,-40,40)
cross(1400,10,10)
line()
cross(1000,0,0)
cross(1000,17,-17)
cross(1000,10,-10)
cross(1000,10,10)
line()
cross(1000,0,0)
cross(1000,-17,17)
cross(1000,13,13)
**プログラム詳細 [#g605eef2]
mr=ev3.LargeMotor('outA')
ml=ev3.LargeMotor('outB')
cs=ev3.ColorSensor('in1')