目次 #contents *はじめに [#e0681e35] 今回の課題はライントレースです。~ あらかじめ先生によって決められたコースを、自分たちで紙に描き、用意された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')