2011a/A6/課題3左
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2011a]]
*課題3:ランタンに向かってテニスボールを転がす(または運ぶ)ロボット [#la052561]
ランタンに向かってテニスボールを転がす(または運ぶ)ロボット (作製:イーノック keisuke)
**目次 [#qbfbb9b8]
#contents
*マシンの説明 [#e571448a]
まずはじめに、今回のマシンは、サリーという突拍子もないような名前になりました。
当初の予定では、スリムで高さのあるロボットになるはずでした。そのロボットのバランス安定とデザインの保持ため手としてのアームを付けるつもりでした。しかし、現在の写真のよう厳かで、高圧的なものとなってしまいました。サリーというよりもゴジュ◎スです。まあ、僕の希望では、ZO●DSを目指したかったのですが、著作権的に画像のアップが危なすぎるということで自粛していたので結果としてよかったのではないでしょうか。
&ref(SA380024.JPG);&ref(SA380025.JPG);
ちなみに、光探索用のセンサーの上の角はおしゃれです。
最後にキャタピラ型にして、全体の質量にも耐えられる安定した走りを紹介しようかと思いましたが、そもそも全体のあまりに重すぎる質量の原因であるパーツの数について話していなかったので、そちらを紹介してしめたいと思います。
サリーの高圧的な姿はあまりにも多すぎるパーツの数にあります。ランタンの設置台(光探索用センサーの高すぎるための精一杯の背伸び)に使ったパーツも含めて、大きなパーツは全部使いました。贅沢かつ大胆にをコンセプトにしていたサリーにとっての隠れた特徴と言えるでしょう。
*設計 [#m5590047]
**本体 [#uc90c9ec]
背の高いロボットがいいと言う相方のために
出来るだけ高くしました。
(アームをつけるためには高くしないとつけられなかったのでと言う理由も...)
脚部はあえてキャタピラーにしてみました。
**アーム [#m5ab0e74]
初めはUFOキャッチャーのようなもの作ろうとしましたが断念しました...
次にクレーンのような感じのものを作ろうとしましたがこれも断念...
そして今の上下式の囲に至りました。
またボールが囲に入りやすい工夫もしました。
&ref(SA380026.JPG);
上下させる部分をなるべく安定させるためいろいろなものを使って固定しました。
またトルクギアを使い回り過ぎても大丈夫なように作りました。
&ref(SA380029.JPG);
**センサー [#j87361d3]
ライントレース用のセンサーは後方に
#ref(SA380030.JPG);
ランタンを見つける用のセンサーはちょっと格好良く(笑)
#ref(SA380028.JPG);
タッチセンサーはむき出しで
#ref(SA380031.JPG);
*プログラミング [#g6ec686b]
**イーノック作 [#ia149761]
#define T 40 // 閾値
#define T_L OnFwd(OUT_C);//左に回転
#define T_R OnFwd(OUT_A); //右に回転
#define Up OnFwd(OUT_B); //アームを上げる
#define Down OnRev(OUT_B);Wait(100);Off(OUT_B); //アームを下げる
#define BC(t) OnRev(OUT_A);OnRev(OUT_C);
int lmax=0; //光の最大値を記憶
int tmax=0; //光の最大値をとる時間の記憶
task main()
{
SetSensor(SENSOR_1, SENSOR_LIGHT);
SetSensor(SENSOR_2, SENSOR_LIGHT);
SetSensor(SENSOR_3, SENSOR_TOUCH);
repeat(3){ Up //アームを上げる
while (SENSOR_3 == 0){
if(SENSOR_1 < T){
T_L} //Cのモーターを滑らかに停止
else{
T_R} //Aのモーターを滑らかに停止
if(SENSOR_3 == 1){
Off(OUT_A+OUT_C);
Down //アームを下げる
ClearTimer(0);
while(FastTimer(0)<=600){ //ランタンの位置を捜索
OnFwd(OUT_A);
OnRev(OUT_C);
if(SENSOR_2>lmax){{
lmax=SENSOR_2;
tmax=FastTimer(0);}
OnFwd(OUT_C);
OnRev(OUT_A);
Wait(600-tmax);
Off(OUT_A+OUT_C);} //ランタンの方を向く
if(SENSOR_2<49){
OnFwd(OUT_A+OUT_C);}
else{
Off(OUT_A+OUT_C);}
Up}
}}}}
**keisuke作 [#ifc3be50]
#define THRESHOLD 40 // 閾値
#define left OnFwd(OUT_C);
#define right OnFwd(OUT_A);
#define up OnRev(OUT_B);Wait(100); //アームを上げる
#define down OnFwd(OUT_B);Wait(100);Off(OUT_B); //アームを下げる
int lmax=0; //ランタンの明るさの最高値を記憶
int tmax=0; //ランタンの最高値に至までの時間
task main()
{
SetSensor(SENSOR_1, SENSOR_LIGHT);
SetSensor(SENSOR_2, SENSOR_LIGHT);
SetSensor(SENSOR_3, SENSOR_TOUCH);
repeat(3)
{
up //アームを上げる
while (SENSOR_3 == 0)
{
if(SENSOR_1 < THRESHOLD) //黒線上
{ left }
else
{ right }
if(SENSOR_3 == 1) //ボールが当たったとき
{ Off(OUT_A+OUT_C);
down //アームを下げる
ClearTimer(0);
while(FastTimer(0)<=600)//ランタンの位置を捜索
{
OnFwd(OUT_A);
OnRev(OUT_C);
if(SENSOR_2>lmax)
{lmax=SENSOR_2;
tmax=FastTimer(0);}
}
OnFwd(OUT_C);
OnRev(OUT_A);
Wait(600-tmax);
Off(OUT_A+OUT_C); //ランタンの方を向く
up
OnRev(OUT_A+OUT_C);
Wait(100);
down
OnFwd(OUT_A+OUT_C);
Wait(120); //ボールを蹴る
OnRev(OUT_A+OUT_C);
Wait(20);
}
}
}
Off(OUT_A+OUT_C);
}
*感想 [#xf50a42b]
***イーノック [#qe5ac16c]
今回のサリーを製作するに当たって、いくつもの試練を乗り越えました。実際、のりこえていない気もしますが...
まぁ、その辺はご愛嬌と言うことで。(笑)
さて、本題に入りたいと思います。
今回のプログラミングについて、正直に述べるべきことは一つ。相棒に感謝ということです。
彼が難しい方をやってくれました。僕は単純な動作をするだけなのでほとんど(defineをコピーとライトへのめざし方)努力をしたことが無いような気もしてくるくらいです。
唯一誇れることは、適当な調べと適当なプログラミングの一部を克服したことですね。
***keisuke [#hbb67f12]
今回のプログラムは光センサー一個でライントレースをしなければいけなかったことと、
ボールをどうやって掴もうかに悩みましたが何とかなってよかったです。
後今回のプログラムは割と短いプログラムにすることができました。
今回マシンは相方と試行錯誤を繰り返しながら頑張って作りました。
一番頑張ったのはアームの部分ですがマシンが少し大きくなりすぎました...
今回の課題も大変でしたが少しずつですがプログラムを作ることにもなれてきまので
最後のロボコンも頑張りたいです。
*コメント [#tfcc2dcd]
コメントどうぞ
終了行:
[[2011a]]
*課題3:ランタンに向かってテニスボールを転がす(または運ぶ)ロボット [#la052561]
ランタンに向かってテニスボールを転がす(または運ぶ)ロボット (作製:イーノック keisuke)
**目次 [#qbfbb9b8]
#contents
*マシンの説明 [#e571448a]
まずはじめに、今回のマシンは、サリーという突拍子もないような名前になりました。
当初の予定では、スリムで高さのあるロボットになるはずでした。そのロボットのバランス安定とデザインの保持ため手としてのアームを付けるつもりでした。しかし、現在の写真のよう厳かで、高圧的なものとなってしまいました。サリーというよりもゴジュ◎スです。まあ、僕の希望では、ZO●DSを目指したかったのですが、著作権的に画像のアップが危なすぎるということで自粛していたので結果としてよかったのではないでしょうか。
&ref(SA380024.JPG);&ref(SA380025.JPG);
ちなみに、光探索用のセンサーの上の角はおしゃれです。
最後にキャタピラ型にして、全体の質量にも耐えられる安定した走りを紹介しようかと思いましたが、そもそも全体のあまりに重すぎる質量の原因であるパーツの数について話していなかったので、そちらを紹介してしめたいと思います。
サリーの高圧的な姿はあまりにも多すぎるパーツの数にあります。ランタンの設置台(光探索用センサーの高すぎるための精一杯の背伸び)に使ったパーツも含めて、大きなパーツは全部使いました。贅沢かつ大胆にをコンセプトにしていたサリーにとっての隠れた特徴と言えるでしょう。
*設計 [#m5590047]
**本体 [#uc90c9ec]
背の高いロボットがいいと言う相方のために
出来るだけ高くしました。
(アームをつけるためには高くしないとつけられなかったのでと言う理由も...)
脚部はあえてキャタピラーにしてみました。
**アーム [#m5ab0e74]
初めはUFOキャッチャーのようなもの作ろうとしましたが断念しました...
次にクレーンのような感じのものを作ろうとしましたがこれも断念...
そして今の上下式の囲に至りました。
またボールが囲に入りやすい工夫もしました。
&ref(SA380026.JPG);
上下させる部分をなるべく安定させるためいろいろなものを使って固定しました。
またトルクギアを使い回り過ぎても大丈夫なように作りました。
&ref(SA380029.JPG);
**センサー [#j87361d3]
ライントレース用のセンサーは後方に
#ref(SA380030.JPG);
ランタンを見つける用のセンサーはちょっと格好良く(笑)
#ref(SA380028.JPG);
タッチセンサーはむき出しで
#ref(SA380031.JPG);
*プログラミング [#g6ec686b]
**イーノック作 [#ia149761]
#define T 40 // 閾値
#define T_L OnFwd(OUT_C);//左に回転
#define T_R OnFwd(OUT_A); //右に回転
#define Up OnFwd(OUT_B); //アームを上げる
#define Down OnRev(OUT_B);Wait(100);Off(OUT_B); //アームを下げる
#define BC(t) OnRev(OUT_A);OnRev(OUT_C);
int lmax=0; //光の最大値を記憶
int tmax=0; //光の最大値をとる時間の記憶
task main()
{
SetSensor(SENSOR_1, SENSOR_LIGHT);
SetSensor(SENSOR_2, SENSOR_LIGHT);
SetSensor(SENSOR_3, SENSOR_TOUCH);
repeat(3){ Up //アームを上げる
while (SENSOR_3 == 0){
if(SENSOR_1 < T){
T_L} //Cのモーターを滑らかに停止
else{
T_R} //Aのモーターを滑らかに停止
if(SENSOR_3 == 1){
Off(OUT_A+OUT_C);
Down //アームを下げる
ClearTimer(0);
while(FastTimer(0)<=600){ //ランタンの位置を捜索
OnFwd(OUT_A);
OnRev(OUT_C);
if(SENSOR_2>lmax){{
lmax=SENSOR_2;
tmax=FastTimer(0);}
OnFwd(OUT_C);
OnRev(OUT_A);
Wait(600-tmax);
Off(OUT_A+OUT_C);} //ランタンの方を向く
if(SENSOR_2<49){
OnFwd(OUT_A+OUT_C);}
else{
Off(OUT_A+OUT_C);}
Up}
}}}}
**keisuke作 [#ifc3be50]
#define THRESHOLD 40 // 閾値
#define left OnFwd(OUT_C);
#define right OnFwd(OUT_A);
#define up OnRev(OUT_B);Wait(100); //アームを上げる
#define down OnFwd(OUT_B);Wait(100);Off(OUT_B); //アームを下げる
int lmax=0; //ランタンの明るさの最高値を記憶
int tmax=0; //ランタンの最高値に至までの時間
task main()
{
SetSensor(SENSOR_1, SENSOR_LIGHT);
SetSensor(SENSOR_2, SENSOR_LIGHT);
SetSensor(SENSOR_3, SENSOR_TOUCH);
repeat(3)
{
up //アームを上げる
while (SENSOR_3 == 0)
{
if(SENSOR_1 < THRESHOLD) //黒線上
{ left }
else
{ right }
if(SENSOR_3 == 1) //ボールが当たったとき
{ Off(OUT_A+OUT_C);
down //アームを下げる
ClearTimer(0);
while(FastTimer(0)<=600)//ランタンの位置を捜索
{
OnFwd(OUT_A);
OnRev(OUT_C);
if(SENSOR_2>lmax)
{lmax=SENSOR_2;
tmax=FastTimer(0);}
}
OnFwd(OUT_C);
OnRev(OUT_A);
Wait(600-tmax);
Off(OUT_A+OUT_C); //ランタンの方を向く
up
OnRev(OUT_A+OUT_C);
Wait(100);
down
OnFwd(OUT_A+OUT_C);
Wait(120); //ボールを蹴る
OnRev(OUT_A+OUT_C);
Wait(20);
}
}
}
Off(OUT_A+OUT_C);
}
*感想 [#xf50a42b]
***イーノック [#qe5ac16c]
今回のサリーを製作するに当たって、いくつもの試練を乗り越えました。実際、のりこえていない気もしますが...
まぁ、その辺はご愛嬌と言うことで。(笑)
さて、本題に入りたいと思います。
今回のプログラミングについて、正直に述べるべきことは一つ。相棒に感謝ということです。
彼が難しい方をやってくれました。僕は単純な動作をするだけなのでほとんど(defineをコピーとライトへのめざし方)努力をしたことが無いような気もしてくるくらいです。
唯一誇れることは、適当な調べと適当なプログラミングの一部を克服したことですね。
***keisuke [#hbb67f12]
今回のプログラムは光センサー一個でライントレースをしなければいけなかったことと、
ボールをどうやって掴もうかに悩みましたが何とかなってよかったです。
後今回のプログラムは割と短いプログラムにすることができました。
今回マシンは相方と試行錯誤を繰り返しながら頑張って作りました。
一番頑張ったのはアームの部分ですがマシンが少し大きくなりすぎました...
今回の課題も大変でしたが少しずつですがプログラムを作ることにもなれてきまので
最後のロボコンも頑張りたいです。
*コメント [#tfcc2dcd]
コメントどうぞ
ページ名: