2016b/Member/Mr.K/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
*目次 [#sc7504c1]
#contents
*はじめに [#o0dea537]
今回の課題内容は線の上をなぞって動くロボットのプログラミ...
詳細は、下図のB地点をスタートし、オレンジ色のラインを青の...
#ref(./2016b-mission2.png,50%,コース説明)
*ロボットについて [#j71911a9]
ロボットの全体像はこのようになった (見やすくするためコー...
#ref(./IMG_1907.JPG,50%,ロボット)
**工夫点その1 センサー [#u7aaf07a]
ライントレースをするにあたって駆動するタイヤとセンサの距...
具体的にはタイヤとの距離が近い方がラインに沿った動きがし...
そのため今回は可能な限りタイヤとセンサを近づけつつ、直上...
#ref(./IMG_1902.JPG,50%,センサ)
**工夫点その2 ボールキャッチ [#zf65f84f]
今回の課題のロボット製作において最も悩まされた部分である
最終的には今回モータの回転方向をそのままいかし、ボールを...
#ref(./IMG_1905.JPG,50%,アーム)
またこのモータを設置する場所としてNXT本体の反対側のタイヤ...
#ref(./IMG_1896.JPG,50%,積載)
*プログラミングについて [#b0cee196]
**プログラミングでの工夫 [#lf083f65]
今回のプログラミングを組むに当たってまず、交差点や、カー...
交差点の判断は黒と判断して旋回している時間が一定以上だっ...
ボールの捕獲に関してはQ地点を通過してからの経過時間に基づ...
また、シュートに関してはC地点を判断した段階でアームをあげ...
**プログラミングの解説 [#i8921d88]
#define TR OnFwd(OUT_C,45);//白寄りの灰色と判断した際の...
#define TL OnFwd(OUT_B,45);//黒寄りの灰色と判断した際の...
#define SR OnFwdSync(OUT_BC,45,-100);//白い場所での軌道...
#define SL OnFwdSync(OUT_BC,45,100);//黒い場所からライン...
#define GF OnFwdSync(OUT_BC,45,0);//ラインの境目をはしら...
#define XrdTR TR Wait(500);SL Wait(1400);Off(OUT_BC);Wai...
#define XrdST TR Wait(1000);n++;//交差点を判断した時、直...
#define UU OnFwd(OUT_A,25);Wait(700);Off(OUT_A);//アーム...
#define UD OnRev(OUT_A,25);Wait(700);Off(OUT_A);//アーム...
#define XX PlaySound(SOUND_CLICK);Wait(500);Wait(1000);/...
task main()
{
SetSensorLight(S1);
int n=0;
long t0 = CurrentTick();
UU//腕を上げてセットするより地面につけた決まった位置を...
while(n<7){
t0 = CurrentTick();
while(CurrentTick()-t0<600){
if(SENSOR_1>42){//白を判断した時
SL
t0 = CurrentTick();
}
else if(SENSOR_1>40){//白寄りの灰色を判断した時
TL
t0 = CurrentTick();
}
else if(SENSOR_1>38){//ラインの境界をまっすぐに進める...
GF
t0 = CurrentTick();
}
else if(SENSOR_1>37){//黒寄りの灰色を判断した時
TR
t0 = CurrentTick();
}
else{//黒を判断した時
SR
}
}//ここまでが基本のライントレースの動き。黒と判断した旋...
Off(OUT_BC);
while(n==6){
XrdST
Off(OUT_C);
UU
OnFwdSync(OUT_BC,45,0);
Wait(300);
n++;//全体のプログラム自体がN=7以下で動かすよう...
}
while(n==5){
XrdTR
}
while(n==4){
XX
XrdST
}
while(n==3){
XrdTR
}
while(n==2){
XX
XrdST
}
while(n==1){
XX
XrdST
PlaySound(SOUND_CLICK);
Wait(500);
t0 = CurrentTick();
while(CurrentTick()-t0<6000){
if(SENSOR_1>42){
SL
}
else if(SENSOR_1>40){
TL
}
else if(SENSOR_1>38){
GF
}
else if(SENSOR_1>37){
TR
}
else{
SR
}
}
Off(OUT_BC);
Wait(500);
UD
}
while(n==0){
XX
XrdTR
}//ここまでが交差点を判断した時の動きのプログラム...
}
}
*まとめ [#s8154335]
今回プログラミングをしている際、いくつかの問題点に当たった
一つは直進し続けてしまうというものだったがプログラムの中...
の私事を挟ませることでそれらの問題点はどこに問題があるの...
二つ目としてうまくライントレースができないというものだっ...
三つ目としては二つ目に付随することでもあるが、空回りによ...
以上のような問題点はあったものの無事課題をクリアすること...
終了行:
*目次 [#sc7504c1]
#contents
*はじめに [#o0dea537]
今回の課題内容は線の上をなぞって動くロボットのプログラミ...
詳細は、下図のB地点をスタートし、オレンジ色のラインを青の...
#ref(./2016b-mission2.png,50%,コース説明)
*ロボットについて [#j71911a9]
ロボットの全体像はこのようになった (見やすくするためコー...
#ref(./IMG_1907.JPG,50%,ロボット)
**工夫点その1 センサー [#u7aaf07a]
ライントレースをするにあたって駆動するタイヤとセンサの距...
具体的にはタイヤとの距離が近い方がラインに沿った動きがし...
そのため今回は可能な限りタイヤとセンサを近づけつつ、直上...
#ref(./IMG_1902.JPG,50%,センサ)
**工夫点その2 ボールキャッチ [#zf65f84f]
今回の課題のロボット製作において最も悩まされた部分である
最終的には今回モータの回転方向をそのままいかし、ボールを...
#ref(./IMG_1905.JPG,50%,アーム)
またこのモータを設置する場所としてNXT本体の反対側のタイヤ...
#ref(./IMG_1896.JPG,50%,積載)
*プログラミングについて [#b0cee196]
**プログラミングでの工夫 [#lf083f65]
今回のプログラミングを組むに当たってまず、交差点や、カー...
交差点の判断は黒と判断して旋回している時間が一定以上だっ...
ボールの捕獲に関してはQ地点を通過してからの経過時間に基づ...
また、シュートに関してはC地点を判断した段階でアームをあげ...
**プログラミングの解説 [#i8921d88]
#define TR OnFwd(OUT_C,45);//白寄りの灰色と判断した際の...
#define TL OnFwd(OUT_B,45);//黒寄りの灰色と判断した際の...
#define SR OnFwdSync(OUT_BC,45,-100);//白い場所での軌道...
#define SL OnFwdSync(OUT_BC,45,100);//黒い場所からライン...
#define GF OnFwdSync(OUT_BC,45,0);//ラインの境目をはしら...
#define XrdTR TR Wait(500);SL Wait(1400);Off(OUT_BC);Wai...
#define XrdST TR Wait(1000);n++;//交差点を判断した時、直...
#define UU OnFwd(OUT_A,25);Wait(700);Off(OUT_A);//アーム...
#define UD OnRev(OUT_A,25);Wait(700);Off(OUT_A);//アーム...
#define XX PlaySound(SOUND_CLICK);Wait(500);Wait(1000);/...
task main()
{
SetSensorLight(S1);
int n=0;
long t0 = CurrentTick();
UU//腕を上げてセットするより地面につけた決まった位置を...
while(n<7){
t0 = CurrentTick();
while(CurrentTick()-t0<600){
if(SENSOR_1>42){//白を判断した時
SL
t0 = CurrentTick();
}
else if(SENSOR_1>40){//白寄りの灰色を判断した時
TL
t0 = CurrentTick();
}
else if(SENSOR_1>38){//ラインの境界をまっすぐに進める...
GF
t0 = CurrentTick();
}
else if(SENSOR_1>37){//黒寄りの灰色を判断した時
TR
t0 = CurrentTick();
}
else{//黒を判断した時
SR
}
}//ここまでが基本のライントレースの動き。黒と判断した旋...
Off(OUT_BC);
while(n==6){
XrdST
Off(OUT_C);
UU
OnFwdSync(OUT_BC,45,0);
Wait(300);
n++;//全体のプログラム自体がN=7以下で動かすよう...
}
while(n==5){
XrdTR
}
while(n==4){
XX
XrdST
}
while(n==3){
XrdTR
}
while(n==2){
XX
XrdST
}
while(n==1){
XX
XrdST
PlaySound(SOUND_CLICK);
Wait(500);
t0 = CurrentTick();
while(CurrentTick()-t0<6000){
if(SENSOR_1>42){
SL
}
else if(SENSOR_1>40){
TL
}
else if(SENSOR_1>38){
GF
}
else if(SENSOR_1>37){
TR
}
else{
SR
}
}
Off(OUT_BC);
Wait(500);
UD
}
while(n==0){
XX
XrdTR
}//ここまでが交差点を判断した時の動きのプログラム...
}
}
*まとめ [#s8154335]
今回プログラミングをしている際、いくつかの問題点に当たった
一つは直進し続けてしまうというものだったがプログラムの中...
の私事を挟ませることでそれらの問題点はどこに問題があるの...
二つ目としてうまくライントレースができないというものだっ...
三つ目としては二つ目に付随することでもあるが、空回りによ...
以上のような問題点はあったものの無事課題をクリアすること...
ページ名: