目次

課題の内容

http://yakushi.shinshu-u.ac.jp/robotics/?2015a%2FMission3 懐中電灯を捜しボールを当てる

ロボットの概観

IMG_5428.JPG
IMG_5431.JPG

ロボット本体の問題点と工夫

センサーについて

正面の光を認識するために光センサーを前向きに取り付けた。また横の範囲の光を取り込む必要はないので横から光が入らないようにした。

IMG_5429.JPG

アーム

モーターの力がそのまま伝わってしまうとアームが勢いよく回りすぎてしまうのでギア比を調節することでアームが早く上下しすぎてしまうのを抑えた。また、ピンポン玉を持ち上げて運ぶことで安定してゴールまで運ぶことを可能にした。アーム部分はピンポン玉の大きさに合うよう調節した。課題3では光センサーを正面に向けたためピンポン玉が光をさえぎらないようにピンポン玉を上に持ってこれるようなアームにした。

IMG_5430.JPG

基本的なロボットの作りは課題2と同じ

プログラムの説明

#define up  OnRev(OUT_B);Wait(60); //アームを上にあげる
#define down  OnFwd(OUT_B);Wait(60); //アームを下にさげる
#define go OnFwd(OUT_AC);Wait(80);Off(OUT_AC); //前に進みシュートする
task main()
 {
  SetSensor(SENSOR_2,SENSOR_LIGHT); //センサー2にライトセンサーをセット

 int lightmax=0;
 int timemax=0;
 int runtime=300;
 ClearTimer(0); //クリアタイマーを使い時間を測る
  
 up; //ピンポン玉を持ち上げる
 

ここから懐中電灯を探す

OnFwd(OUT_A);OnRev(OUT_C);
while (FastTimer(0)<=runtime){
if(SENSOR_2>lightmax) {
lightmax=SENSOR_2;
timemax=FastTimer(0);}}
 
Off(OUT_AC);Wait(100);

精度を上げるためもう一度探す。光の最大値まで逆に回転する

OnRev(OUT_A);OnFwd(OUT_C);
Wait(runtime-timemax);
Off(OUT_AC);Wait(100);      

ピンポン玉お下ろす

down;

ピンポン玉をシュートする

go;
}

もう一度最大値を調べることで正確に当てられるようにした。

今回の製作時間

感想

課題2に比べるとやりやすいプログラムだった。シュートが不安定なので少しむずかしかった。ロボット自体はほぼそのまま使ったので時間も短縮できた。


添付ファイル: fileIMG_5431.JPG 246件 [詳細] fileIMG_5430.JPG 200件 [詳細] fileIMG_5429.JPG 232件 [詳細] fileIMG_5428.JPG 261件 [詳細]

トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-07-26 (日) 21:23:48