[[2018b/Member]] #contents *課題3の内容 [#z8284252] *ロボットの紹介 [#m31fda23] 前回のロボットを改良して、カラーセンサーと超音波センサーが真ん中に来るようにした。 ボールを掴むのではなくベルトコンベアを使って掬い上げるようにした。こうすることによって、ボールを2つ保持することができるので、s字カーブを通らなくて済むようになった。 また、ベルトコンベアにすることによってボールを掴む動作に使用するモーターを一つだけにすることができた。 ベルトコンベアのプロセスは以下の画像の通りである。 **このロボットに至った経緯 [#w113020a] 最初はUFOキャッチャーのようにボールを掴むロボットを考えていたが、課題一の反省からモーターによってモーターを動かすと車体のバランスが悪くなったり、ケーブルに引っ張る力が加わって正確に動かないと思ったので、ベルトコンベア式にした。 *プログラム [#ce923e86] **ライントレース [#mff91215] 基本的に課題2と変化は無い def linetrace_rin(): c1=cs.value() while c1>13: c1=cs.value() x=(abs(c1-10)/70)*100 if x>100: x=100 l=(x/100)*210-30 r=150-l ml.run_forever(speed_sp=l,stop_action='brake') mr.run_forever(speed_sp=r,stop_action='brake') stop() def linetrace_lin(): c1=cs.value() while c1>13: c1=cs.value() x=abs((c1-10)/70)*100 if x>100: x=100 r=(x/100)*210-30 l=150-r ml.run_forever(speed_sp=l,stop_action='brake') mr.run_forever(speed_sp=r,stop_action='brake') stop() def linetrace_rout(): c1=cs.value() while c1<40: c1=cs.value() x=(abs(c1-10)/70)*100 if x>100: x=100 l=(x/100)*120-40 r=40-l ml.run_forever(speed_sp=l,stop_action='brake') mr.run_forever(speed_sp=r,stop_action='brake') stop() def linetrace_lout(): c1=cs.value() while c1<40: c1=cs.value() x=(abs(c1-10)/70)*100 if x>100: x=100 r=(x/100)*120-40 l=40-r ml.run_forever(speed_sp=l,stop_action='brake') mr.run_forever(speed_sp=r,stop_action='brake') stop()