目次
#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')



トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS