2016a/Member/takutaka11/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#contents
*はじめに [#s5e738e0]
今回の課題は光センサーを使ってロボをある地点からある地点...
移動させるものでした。&br;
僕は下の写真のAからBへ移動するロボを作成しました。
#ref(2016a-mission2.png)
*ロボの説明 [#a4ef3e83]
1枚目の写真がロボの本体で2枚目の写真が光センサーです。&br;
この光センサーから光が照射され跳ね返ってくる光の加減によ...
黒い線と白い所を見分けさせています。
#ref(IMG_1111.jpg)
#ref(IMG_1112.jpg)
さらに下の写真がセンサーでここから光を照射していて、また...
#ref(IMG_1113.jpg)
*プログラミングの説明 [#s2c4c487]
***定義について [#d2d1b32d]
#define BLACK 34 //光の強さ
#define WHITE 70 //光の強さ
#define LEFT OnFwd(OUT_B,40);OnRev(OUT_C,20); //左回転
#define RIGHT OnFwd(OUT_C,40);OnRev(OUT_B,20); //右回転
#define nMAX 210
#define short_break Off(OUT_BC);PlaySound(SOUND_CLICK);W...
#define STEP 1
#define GO OnFwd(OUT_BC,40);Wait(200);Off(OUT_BC); //直進
#define GO1 OnFwd(OUT_BC,40);Wait(1000);Off(OUT_BC);//直進
#define GO2 OnFwd(OUT_BC,40);Wait(1100);//直進
#define LEFT2 OnFwd(OUT_B,40);OnRev(OUT_C,20);Wait(500);...
#define RIGHT2 OnFwd(OUT_C,40);OnRev(OUT_B,20);Wait(500)...
#define TURN OnFwd(OUT_C,40);OnRev(OUT_B,40);Wait(650);O...
#define TURN2 OnFwd(OUT_C,40);OnRev(OUT_B,20);Wait(200);...
***サブルーチンについて [#b3ebd0f6]
sub normal()
{
SetSensorLight(S2); //光センサーを2に
int nOnline=0;
int k=0;
while(k==0){
while(nOnline < nMAX){
if (SENSOR_2<BLACK) { //センサーが定義した(BLACK 34)...
RIGHT;
nOnline++; //カウントを増やす
} else
if (SENSOR_2<WHITE) { //センサーが定義した(WHITE 70)...
LEFT;
nOnline=0; //カウントをリセット
}
Wait(STEP);
}
short_break; //止まるまた、音を鳴らす
k++; //カウントを増やす
nOnline=0; //カウントをリセット
}
}
sub normal2()
{
SetSensorLight(S2);
int nOnline=0;
int k=0;
while(k==0){
while(nOnline < nMAX){
if (SENSOR_2<BLACK) { //センサーが定義した(BLACK 3...
LEFT;
nOnline++; //カウントを増やす
} else
if (SENSOR_2<WHITE) { //センサーが定義した(WHITE 7...
RIGHT;
nOnline=0; //カウントをリセット
}
Wait(STEP);
}
short_break; //止まるまた、音を鳴らす
k++; //カウントを増やす
nOnline=0; //カウントをリセット
}
}
***プログラム [#x87caf9e]
task main()
{
normal2(); //交差点を識別
GO1; //直進
normal(); //交差点を識別
GO; //直進
normal();//交差点を識別
GO;//直進
normal (); //交差点を識別
TURN; //右に回転
TURN2; //普通よりも小さく右に回転
GO; //直進
normal(); //交差点を識別
LEFT2; //左に回転
normal(); //交差点を識別
GO2; //直進
Off(OUT_BC);
}
*交差点の識別 [#j2cb07a6]
黒い線にのって200回黒を判断したら交差点と認識
*まとめ [#ef68ce69]
今回は課題1では使わなかったサブルーチンなども出てきて&br;
難しい点もあったが、なんとか期限に終わらせることもできた...
また、前回指摘された画像の大きさなども、今回は早めに対処...
見やすいページを作ることができたと思う。&br;
しかし、まだまだ改善点があるかもしれないので、今回の課題...
次に活かしていきたいと思う。
終了行:
#contents
*はじめに [#s5e738e0]
今回の課題は光センサーを使ってロボをある地点からある地点...
移動させるものでした。&br;
僕は下の写真のAからBへ移動するロボを作成しました。
#ref(2016a-mission2.png)
*ロボの説明 [#a4ef3e83]
1枚目の写真がロボの本体で2枚目の写真が光センサーです。&br;
この光センサーから光が照射され跳ね返ってくる光の加減によ...
黒い線と白い所を見分けさせています。
#ref(IMG_1111.jpg)
#ref(IMG_1112.jpg)
さらに下の写真がセンサーでここから光を照射していて、また...
#ref(IMG_1113.jpg)
*プログラミングの説明 [#s2c4c487]
***定義について [#d2d1b32d]
#define BLACK 34 //光の強さ
#define WHITE 70 //光の強さ
#define LEFT OnFwd(OUT_B,40);OnRev(OUT_C,20); //左回転
#define RIGHT OnFwd(OUT_C,40);OnRev(OUT_B,20); //右回転
#define nMAX 210
#define short_break Off(OUT_BC);PlaySound(SOUND_CLICK);W...
#define STEP 1
#define GO OnFwd(OUT_BC,40);Wait(200);Off(OUT_BC); //直進
#define GO1 OnFwd(OUT_BC,40);Wait(1000);Off(OUT_BC);//直進
#define GO2 OnFwd(OUT_BC,40);Wait(1100);//直進
#define LEFT2 OnFwd(OUT_B,40);OnRev(OUT_C,20);Wait(500);...
#define RIGHT2 OnFwd(OUT_C,40);OnRev(OUT_B,20);Wait(500)...
#define TURN OnFwd(OUT_C,40);OnRev(OUT_B,40);Wait(650);O...
#define TURN2 OnFwd(OUT_C,40);OnRev(OUT_B,20);Wait(200);...
***サブルーチンについて [#b3ebd0f6]
sub normal()
{
SetSensorLight(S2); //光センサーを2に
int nOnline=0;
int k=0;
while(k==0){
while(nOnline < nMAX){
if (SENSOR_2<BLACK) { //センサーが定義した(BLACK 34)...
RIGHT;
nOnline++; //カウントを増やす
} else
if (SENSOR_2<WHITE) { //センサーが定義した(WHITE 70)...
LEFT;
nOnline=0; //カウントをリセット
}
Wait(STEP);
}
short_break; //止まるまた、音を鳴らす
k++; //カウントを増やす
nOnline=0; //カウントをリセット
}
}
sub normal2()
{
SetSensorLight(S2);
int nOnline=0;
int k=0;
while(k==0){
while(nOnline < nMAX){
if (SENSOR_2<BLACK) { //センサーが定義した(BLACK 3...
LEFT;
nOnline++; //カウントを増やす
} else
if (SENSOR_2<WHITE) { //センサーが定義した(WHITE 7...
RIGHT;
nOnline=0; //カウントをリセット
}
Wait(STEP);
}
short_break; //止まるまた、音を鳴らす
k++; //カウントを増やす
nOnline=0; //カウントをリセット
}
}
***プログラム [#x87caf9e]
task main()
{
normal2(); //交差点を識別
GO1; //直進
normal(); //交差点を識別
GO; //直進
normal();//交差点を識別
GO;//直進
normal (); //交差点を識別
TURN; //右に回転
TURN2; //普通よりも小さく右に回転
GO; //直進
normal(); //交差点を識別
LEFT2; //左に回転
normal(); //交差点を識別
GO2; //直進
Off(OUT_BC);
}
*交差点の識別 [#j2cb07a6]
黒い線にのって200回黒を判断したら交差点と認識
*まとめ [#ef68ce69]
今回は課題1では使わなかったサブルーチンなども出てきて&br;
難しい点もあったが、なんとか期限に終わらせることもできた...
また、前回指摘された画像の大きさなども、今回は早めに対処...
見やすいページを作ることができたと思う。&br;
しかし、まだまだ改善点があるかもしれないので、今回の課題...
次に活かしていきたいと思う。
ページ名: