2016a/Member/CharlieBrown/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2016a/Member]]
目次
#contents
*課題 [#b4f84422]
今回の課題はライントレースをするロボットを作ること。
**ミッション [#s4306ec7]
黒い線に沿って動くロボットを作成する。~
なるべく速く正確に動くロボットになるように工夫して、交差...
http://yakushi.shinshu-u.ac.jp/robotics/?plugin=attach&re...
**コース [#k032db63]
・B地点からC地点へ(二人目)~
◦B地点→R右折→Q直進→Q直進→P右折→S右折→C地点
*ロボット本体の説明 [#md02acf8]
左右二つのモーターを用いて本体の前後運動、回転運動、旋回...
#ref(2016a/Member/CharlieBrown/Mission2/ロボチ.png,30%)
本体の前方につけた光センサーを用いてライントレースを行う。
#ref(2016a/Member/CharlieBrown/Mission2/ロボチ1.png,40%)
*プログラムの説明 [#r68cfc8c]
**定義 [#g45158d9]
以下はサブルーチンを作る上での基本的な定義である。
#define TURN_TIME 5
#define BLACK 42
#define WHITE 50
#define RIGHT_H OnFwd(OUT_A); OnRev(OUT_C); Wait(TURN_TI...
#define RIGHT_L OnFwd(OUT_A); Off(OUT_C); Wait(TURN_TIME...
#define LEFT_H OnFwd(OUT_C); OnRev(OUT_A); Wait(TURN_TIM...
#define LEFT_L OnFwd(OUT_C); Off(OUT_A); Wait(TURN_TIME)...
#define GO_FORWARD(t) OnFwd(OUT_AC); Wait(t); Off(OUT_AC);
#define STEP 1
**サブルーチン [#y838f0b8]
黒い線上をたどるプログラムになっており、交差点で一時停止...
交差点の判断にはタイマーで、黒が0.35秒以上続いたときに判...
線上をたどるうえで、線の右側をたどるようになっている。黒...
sub LINE()
{
ClearTimer(0);
while(FastTimer(0) < 35) {
if (SENSOR_2 < BLACK) {
RIGHT_L;
} else
if (SENSOR_2 < BLACK+2){
RIGHT_H;
}
else if (SENSOR_2 > WHITE-2) {
LEFT_L;
ClearTimer(0);
} else if (SENSOR_2 >= WHITE) {
LEFT_H;
ClearTimer(0);
} else {
GO_FORWARD(50);
ClearTimer(0);
}
Wait(STEP);
}
Off(OUT_AC);
ClearTimer(0);
PlaySound(SOUND_UP);
Wait(100);
}
以下二つのサブルーチンは、交差点で傾いた機体を正しい向き...
sub CROSS_RIGHT()
{
while(FastTimer(0) < 100) {
RIGHT_L;
}
ClearTimer(0);
}
sub CROSS_LEFT()
{
while(FastTimer(0) < 160) {
LEFT_L;
}
ClearTimer(0);
}
下のサブルーチンは半円のような急な曲がり角を曲がるための...
sub WHOLE()
{
while(FastTimer(0) < 36) {
if(SENSOR_2 < BLACK+2){
RIGHT_L;
} else
if (SENSOR_2 > WHITE-2){
LEFT_L;
ClearTimer(0);
} else if (SENSOR_2 >= WHITE) {
LEFT_H;
ClearTimer(0);
} else {
GO_FORWARD(50);
ClearTimer(0);
}
Wait(STEP);
}
Off(OUT_AC);
ClearTimer(0);
}
**メイン [#rba2d0f2]
task main()
{
SetSensor(SENSOR_2, SENSOR_LIGHT);
GO_FORWARD(120);
LINE();
CROSS_RIGHT();
LINE();
WHOLE();
LINE();
GO_FORWARD(50);
LINE();
GO_FORWARD(50);
repeat(2);{
LINE();
CROSS_RIGHT();
}
LINE();
GO_FORWARD(50);
}
*反省点 [#tb346b1c]
今回はゴールに辿りつけなかった。作業スピードが遅くプログ...
*感想 [#q1dc0796]
今回の課題で新たに出てきたサブルーチンに初めのうちは戸惑...
終了行:
[[2016a/Member]]
目次
#contents
*課題 [#b4f84422]
今回の課題はライントレースをするロボットを作ること。
**ミッション [#s4306ec7]
黒い線に沿って動くロボットを作成する。~
なるべく速く正確に動くロボットになるように工夫して、交差...
http://yakushi.shinshu-u.ac.jp/robotics/?plugin=attach&re...
**コース [#k032db63]
・B地点からC地点へ(二人目)~
◦B地点→R右折→Q直進→Q直進→P右折→S右折→C地点
*ロボット本体の説明 [#md02acf8]
左右二つのモーターを用いて本体の前後運動、回転運動、旋回...
#ref(2016a/Member/CharlieBrown/Mission2/ロボチ.png,30%)
本体の前方につけた光センサーを用いてライントレースを行う。
#ref(2016a/Member/CharlieBrown/Mission2/ロボチ1.png,40%)
*プログラムの説明 [#r68cfc8c]
**定義 [#g45158d9]
以下はサブルーチンを作る上での基本的な定義である。
#define TURN_TIME 5
#define BLACK 42
#define WHITE 50
#define RIGHT_H OnFwd(OUT_A); OnRev(OUT_C); Wait(TURN_TI...
#define RIGHT_L OnFwd(OUT_A); Off(OUT_C); Wait(TURN_TIME...
#define LEFT_H OnFwd(OUT_C); OnRev(OUT_A); Wait(TURN_TIM...
#define LEFT_L OnFwd(OUT_C); Off(OUT_A); Wait(TURN_TIME)...
#define GO_FORWARD(t) OnFwd(OUT_AC); Wait(t); Off(OUT_AC);
#define STEP 1
**サブルーチン [#y838f0b8]
黒い線上をたどるプログラムになっており、交差点で一時停止...
交差点の判断にはタイマーで、黒が0.35秒以上続いたときに判...
線上をたどるうえで、線の右側をたどるようになっている。黒...
sub LINE()
{
ClearTimer(0);
while(FastTimer(0) < 35) {
if (SENSOR_2 < BLACK) {
RIGHT_L;
} else
if (SENSOR_2 < BLACK+2){
RIGHT_H;
}
else if (SENSOR_2 > WHITE-2) {
LEFT_L;
ClearTimer(0);
} else if (SENSOR_2 >= WHITE) {
LEFT_H;
ClearTimer(0);
} else {
GO_FORWARD(50);
ClearTimer(0);
}
Wait(STEP);
}
Off(OUT_AC);
ClearTimer(0);
PlaySound(SOUND_UP);
Wait(100);
}
以下二つのサブルーチンは、交差点で傾いた機体を正しい向き...
sub CROSS_RIGHT()
{
while(FastTimer(0) < 100) {
RIGHT_L;
}
ClearTimer(0);
}
sub CROSS_LEFT()
{
while(FastTimer(0) < 160) {
LEFT_L;
}
ClearTimer(0);
}
下のサブルーチンは半円のような急な曲がり角を曲がるための...
sub WHOLE()
{
while(FastTimer(0) < 36) {
if(SENSOR_2 < BLACK+2){
RIGHT_L;
} else
if (SENSOR_2 > WHITE-2){
LEFT_L;
ClearTimer(0);
} else if (SENSOR_2 >= WHITE) {
LEFT_H;
ClearTimer(0);
} else {
GO_FORWARD(50);
ClearTimer(0);
}
Wait(STEP);
}
Off(OUT_AC);
ClearTimer(0);
}
**メイン [#rba2d0f2]
task main()
{
SetSensor(SENSOR_2, SENSOR_LIGHT);
GO_FORWARD(120);
LINE();
CROSS_RIGHT();
LINE();
WHOLE();
LINE();
GO_FORWARD(50);
LINE();
GO_FORWARD(50);
repeat(2);{
LINE();
CROSS_RIGHT();
}
LINE();
GO_FORWARD(50);
}
*反省点 [#tb346b1c]
今回はゴールに辿りつけなかった。作業スピードが遅くプログ...
*感想 [#q1dc0796]
今回の課題で新たに出てきたサブルーチンに初めのうちは戸惑...
ページ名: