2019a/Member/musc81/Mission2
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
[[2019a/Member]]
*課題2について [#dacdc656]
#ref(http://yakushi.shinshu-u.ac.jp/robotics/?plugin=atta...
A→M→K(一時停止の後,直進)→L(ピンポン玉をつかむ)→後退→K...
詳しくは,[[2019a/Mission2]]をご覧ください.
*ロボットについて [#n6fa3997]
#ref(hontai2.jpeg)
アームのところ以外はNQC本体の大きさに収まるぐらいの小柄な...
#ref(zentainoura.jpeg)
三輪にし,二輪駆動にすることで小回りが利くようにした.
#ref(haguruma2.jpeg)
一つのモーターで二つのアームが動くように歯車の配置を工夫...
*ライントレースの仕組み [#gff38ccc]
**ライントレースの仕方 [#j9a0356b]
ライントレースといっても線の太さが太いので線のふちの色の...
**交差点認識の方法 [#rbad0d28]
交差点はコースが直角に交わっている形状をしているのでそこ...
**交差点の渡り方. [#w2fe4b01]
sub follow lineとsub cross lineという関数を使って動作を実...
まずsub follow lineを実行していき,交差点を認識したら止ま...
*プログラムについて [#g414466b]
**定義 [#f300fe36]
まずはプログラム中で何度も行う動きのプログラムを定義する。
int black_time=30; /交差点の判断のときに使う、...
#define migisenkai OnFwd(OUT_A); OnFwd(OUT_C); //...
#define usetsu OnFwd(OUT_A); Off(OUT_C); //...
#define chokushin OnFwd(OUT_A); OnRev(OUT_C); //...
#define sasetsu Off(OUT_A); OnRev(OUT_C); //...
#define hidarisenkai OnRev(OUT_A); OnRev(OUT_C); //...
#define koutai OnRev(OUT_A); OnFwd(OUT_C); //...
**サブルーチン [#bd0634da]
次に主にライントレースのときに使うサブルーチンを設定する。
sub follow_line() /...
{
SetSensor(SENSOR_2,SENSOR_LIGHT); /...
while(FastTimer(0)<black_time){ /...
if(SENSOR_2>=47){ /...
migisenkai ClearTimer(0);
}else if((SENSOR_2>=43)&&(SENSOR_2<47)){ /...
usetsu ClearTimer(0);
}else if((SENSOR_2>=39)&&(SENSOR_2<43)){ /...
chokushin ClearTimer(0);
}else if((SENSOR_2>=36)&&(SENSOR_2<39)){ /...
sasetsu ClearTimer(0);
}else if(SENSOR_2<36){ /...
hidarisenkai
}
}
Off(OUT_AC);
Wait(100); /...
ClearTimer(0);
}
sub follow_line2() //...
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
while(FastTimer(0)<black_time){
if(SENSOR_2<36){
migisenkai
}else if((SENSOR_2>=36)&&(SENSOR_2<39)){
usetsu ClearTimer(0);
}else if((SENSOR_2>=39)&&(SENSOR_2<43)){
chokushin ClearTimer(0);
}else if((SENSOR_2>=43)&&(SENSOR_2<47)){
sasetsu ClearTimer(0);
}else if(SENSOR_2>=47){
hidarisenkai ClearTimer(0);
}
}
Off(OUT_AC);
Wait(100);
ClearTimer(0);
}
sub cross_line() //交差点をまっ...
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
while(SENSOR_2<47){ //センサーが読...
chokushin }
while(SENSOR_2>36){ //センサーが読...
usetsu }
Off(OUT_AC);
Wait(100);
ClearTimer(0);
}
**メインプログラム [#l6b27200]
***タスクメイン上で理解不能なこと [#y4ef1b31]
プログラム上ではfollow lineを入れているが,ロボットがfoll...
***メインプログラム [#mfee40c1]
task main(){
SetPower(OUT_B,1); ...
cross_line(); ...
follow_line(); ...
cross_line(); ...
OnRev(OUT_C); Wait(60); Off(OUT_C); Wait(100); ...
OnFwd(OUT_B); Wait(20);Off(OUT_B); Wait(100); ...
koutai Wait(150); Off(OUT_AC); Wait(100); ...
cross_line(); ...
follow_line(); ...
follow_line(); ...
black_time=20;follow_line(); ...
cross_line(); ...
black_time=20;follow_line(); ...
cross_line(); ...
follow_line(); ...
chokushin Wait(40); Off(OUT_AC); Wait(100); ...
follow_line2(); ...
cross_line(); ...
followline2(); ...
OnRev(OUT_B) Wait(20) Off(OUT_B); ...
hidarisenkai Wait(30) Off(OUT_AC); ...
}
*まとめ [#r75ab05a]
ロボットを作るのにはあまり時間がかからなかったが,プログ...
終了行:
[[2019a/Member]]
*課題2について [#dacdc656]
#ref(http://yakushi.shinshu-u.ac.jp/robotics/?plugin=atta...
A→M→K(一時停止の後,直進)→L(ピンポン玉をつかむ)→後退→K...
詳しくは,[[2019a/Mission2]]をご覧ください.
*ロボットについて [#n6fa3997]
#ref(hontai2.jpeg)
アームのところ以外はNQC本体の大きさに収まるぐらいの小柄な...
#ref(zentainoura.jpeg)
三輪にし,二輪駆動にすることで小回りが利くようにした.
#ref(haguruma2.jpeg)
一つのモーターで二つのアームが動くように歯車の配置を工夫...
*ライントレースの仕組み [#gff38ccc]
**ライントレースの仕方 [#j9a0356b]
ライントレースといっても線の太さが太いので線のふちの色の...
**交差点認識の方法 [#rbad0d28]
交差点はコースが直角に交わっている形状をしているのでそこ...
**交差点の渡り方. [#w2fe4b01]
sub follow lineとsub cross lineという関数を使って動作を実...
まずsub follow lineを実行していき,交差点を認識したら止ま...
*プログラムについて [#g414466b]
**定義 [#f300fe36]
まずはプログラム中で何度も行う動きのプログラムを定義する。
int black_time=30; /交差点の判断のときに使う、...
#define migisenkai OnFwd(OUT_A); OnFwd(OUT_C); //...
#define usetsu OnFwd(OUT_A); Off(OUT_C); //...
#define chokushin OnFwd(OUT_A); OnRev(OUT_C); //...
#define sasetsu Off(OUT_A); OnRev(OUT_C); //...
#define hidarisenkai OnRev(OUT_A); OnRev(OUT_C); //...
#define koutai OnRev(OUT_A); OnFwd(OUT_C); //...
**サブルーチン [#bd0634da]
次に主にライントレースのときに使うサブルーチンを設定する。
sub follow_line() /...
{
SetSensor(SENSOR_2,SENSOR_LIGHT); /...
while(FastTimer(0)<black_time){ /...
if(SENSOR_2>=47){ /...
migisenkai ClearTimer(0);
}else if((SENSOR_2>=43)&&(SENSOR_2<47)){ /...
usetsu ClearTimer(0);
}else if((SENSOR_2>=39)&&(SENSOR_2<43)){ /...
chokushin ClearTimer(0);
}else if((SENSOR_2>=36)&&(SENSOR_2<39)){ /...
sasetsu ClearTimer(0);
}else if(SENSOR_2<36){ /...
hidarisenkai
}
}
Off(OUT_AC);
Wait(100); /...
ClearTimer(0);
}
sub follow_line2() //...
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
while(FastTimer(0)<black_time){
if(SENSOR_2<36){
migisenkai
}else if((SENSOR_2>=36)&&(SENSOR_2<39)){
usetsu ClearTimer(0);
}else if((SENSOR_2>=39)&&(SENSOR_2<43)){
chokushin ClearTimer(0);
}else if((SENSOR_2>=43)&&(SENSOR_2<47)){
sasetsu ClearTimer(0);
}else if(SENSOR_2>=47){
hidarisenkai ClearTimer(0);
}
}
Off(OUT_AC);
Wait(100);
ClearTimer(0);
}
sub cross_line() //交差点をまっ...
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
while(SENSOR_2<47){ //センサーが読...
chokushin }
while(SENSOR_2>36){ //センサーが読...
usetsu }
Off(OUT_AC);
Wait(100);
ClearTimer(0);
}
**メインプログラム [#l6b27200]
***タスクメイン上で理解不能なこと [#y4ef1b31]
プログラム上ではfollow lineを入れているが,ロボットがfoll...
***メインプログラム [#mfee40c1]
task main(){
SetPower(OUT_B,1); ...
cross_line(); ...
follow_line(); ...
cross_line(); ...
OnRev(OUT_C); Wait(60); Off(OUT_C); Wait(100); ...
OnFwd(OUT_B); Wait(20);Off(OUT_B); Wait(100); ...
koutai Wait(150); Off(OUT_AC); Wait(100); ...
cross_line(); ...
follow_line(); ...
follow_line(); ...
black_time=20;follow_line(); ...
cross_line(); ...
black_time=20;follow_line(); ...
cross_line(); ...
follow_line(); ...
chokushin Wait(40); Off(OUT_AC); Wait(100); ...
follow_line2(); ...
cross_line(); ...
followline2(); ...
OnRev(OUT_B) Wait(20) Off(OUT_B); ...
hidarisenkai Wait(30) Off(OUT_AC); ...
}
*まとめ [#r75ab05a]
ロボットを作るのにはあまり時間がかからなかったが,プログ...
ページ名: