**目次 [#s0f07771]
#contents
*ロボット [#a702964f]
**本体 [#d63eb15b]
[[課題2:http://yakushi.shinshu-u.ac.jp/robotics/?2015a%2FMember%2Fsansa%2FMission2]]を参照.
光センサーの位置を変えただけである.
**アーム [#k70e913e]
・モーターの横に光センサーを配置.~
・打ち出すためのガイドを設置.~
#ref(1.jpg)
*プログラム [#q4e6b98a]
回転させて光センサーの値が最大のところからタイマーをスタートさせる.~
一回転し終わったとこまでの時間ぶん反対に回転させる.~
光の方を向いたらボールを発射させる.~
~

 #define turnT_1 400 //回転する時間
 #define turn_search OnFwd(OUT_A); OnRev(OUT_C); Wait(1);//探す方向の回転
 #define turn_back OnFwd(OUT_C); OnRev(OUT_A); Wait(FastTimer(1));Off(OUT_AC);//逆回転
 
 task main() 
 {
 
 SetSensor(SENSOR_2,SENSOR_LIGHT);
 ClearTimer(0);//回転する時間
 ClearTimer(1);//探してから終わるまでの時間
 int count=0;
  while(FastTimer(0)<=turnT_1){
 
     while(FastTimer(0)<=turnT_1){
  
   if(SENSOR_2>count){//もしセンサーの値が今までの値より高ければ
   count=SENSOR_2;//countにセンサーの値を代入
   ClearTimer(1);//タイマーをリセット
     if(SENSOR_2>count){//もしセンサーの値が今までの値より高ければ
     count=SENSOR_2;//countにセンサーの値を代入
     ClearTimer(1);//タイマーをリセット
 }
 turn_search;//4秒間回る
     turn_search;//4秒間回る
 }
 
 turn_back;//タイマー(1)の分逆回転
 Off(OUT_AC);
 Wait(100);
 OnFwd(OUT_B);//ボールを発射
 Wait(5);
 Off(OUT_B);
     turn_back;//タイマー(1)の分逆回転
     Off(OUT_AC);
     Wait(100);
     OnFwd(OUT_B);//ボールを発射
     Wait(5);
     Off(OUT_B);
 }
*反省点と改善点 [#r57d5f30]
なかなかうまくいったと思う.~
もっと上手なアームにしたい.

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS