2017a/Member/hiro/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
目次
#contents
*課題について [#v94a339a]
**課題3概要 [#oea354ee]
缶を積み上げるロボットをグループで作成せよ。詳しくは[[課...
*ロボットについて [#tcab134e]
今回のロボットは挟む部分を上げ下げすることで缶を積み上げ...
#ref(./image1.jpg,100%,ロボット 全体図)
↑ロボットの全体図
#ref(./gia.jpg,100%,ロボット 後ろから)
↑後ろから見た場合
#ref(./image3.jpg,100%,ロボット 挟む部分)
↑ロボットの缶を挟む部分
#ref(./image9.jpg,100%,ロボット 上げる部分)
↑缶を挟む部分をモーターを利用して上下に動かす
*工夫した点(改善すべき点) [#j7314d67]
上の全体図を見れば分かるが、今回のロボットは工夫した点と...
**工夫した点 [#ka2dc701]
?缶を挟む時、缶に負荷が掛からないよう白い歯車をかませた。
#ref(./image3.jpg,100%,ロボット 挟む部分)
**改善すべき点 [#gbcd1fde]
?ロボットの前部分と後部分の重さの差をできるだけ少なくすべ...
#ref(./image1.jpg,100%,ロボット 横から)
↑ロボットの前部分と後部分の重さがとても違うため、前部分の...
?缶を挟む部分を上下に動かすために利用したモーターのギアを...
#ref(./gia.jpg,100%,ロボット ギア)
↑モーターのギア(の半径)が大きいため、持ち上げる力が弱くな...
*プログラム紹介 [#cca6b7f4]
プログラムはグループのメンバーであるryoga君が作成した。...
今回は二つのロボットを結合して作成した。そのため、プロ...
ロボットの製作に苦労したので下の計画図のように簡単な順路...
私たちのプログラムを簡単に説明すると
?光センサーを利用して、光センサーの閾値が28(缶が目の前に...
?光センサーの閾値が28となった場合缶を掴む動作を行う
? ??をE地点、T地点で繰り返す
?ゴール地点に缶を置く
となる。この考えには斜めに缶があると掴むことができないと...
#ref(./IMG_0564.JPG,15%,計画図)
↑E地点の缶を取った後、右へ曲がり斜めに進みT地点の缶をゴー...
*台車側のプログラム [#db8c9710]
台車側のプログラムを理解する際の注意点として、台車自体後...
**定数について [#fe9f02e1]
#define signal_can 11 //積む側のプログラムに移行
#define signal_move 12 //台車側のプログラムに移行
#define signal_last 13 //最後、ゴールの円に置く指示
**マクロについて [#vbae04f9]
#define turn_right(t) OnFwd(OUT_C); OnRev(OUT_A); Wait(t...
#define turn_left(t) OnFwd(OUT_A); OnRev(OUT_C); Wait(t)...
#define back(t) OnFwd(OUT_AC); Wait(t); Off(OUT_AC); ...
**sub関数について [#t9a18759]
sub関数は二つある。
A地点(start地点)からE地点、E地点からT地点へ移動する際にこ...
sub move_can() //缶を積む前と積んでいる最中の動き
{
OnRev(OUT_AC);
until(Message() == signal_can); //缶を見つけるまで...
OnRev(OUT_AC); //缶との距離を詰める...
Wait(150);
Off(OUT_AC);
until(Message() == signal_move); //缶上げ終わるまで...
}
↑光センサーで缶を見つける際、毎回見つけるタイミングに誤差...
二つ目のsub関数はT地点の缶を入手した後に利用するsub関数で...
sub last() //最後に缶をゴールに置く部分の動き
{
turn_left(31); //左へ31/100秒回転
SendMessage(signal_last); //缶を持ち上げる側のプログ...
until(Message() == signal_move);
back(100); //缶を持ち上げる側のプログ...
}
**main関数について [#n6ccc4a8]
task main()
{
ClearMessage();
move_can(); //E地点の缶を掴む位置まで移動
turn_right(80); //80/100秒右回転
move_can(); //T地点の缶を掴む位置まで移動
last(); //缶をゴール中心まで運び、缶を置く
}
*缶を持ち上げる側のプログラム [#o967a6c9]
**定数について [#i4ebfba7]
#define signal_can 11 //積む側のプログラム...
#define signal_move 12 //台車側のプログラム...
#define signal_last 13 //最後缶をゴールに置...
#define close OnFwd(OUT_B); //アームを閉じる
#define can_find 28 //光センサーの閾値が2...
**マクロについて [#ba6860f3]
#define open(t) OnRev(OUT_B); Wait(t); Off(OUT_B); //...
#define can_up(t) OnRev(OUT_A); Wait(t); Off(OUT_A); //...
#define can_down(t) OnFwd(OUT_A); Wait(t); Off(OUT_A); /...
**sub関数について [#jd3e29e1]
sub関数は5つある。
一つ目のsub関数は缶が目の前にきた(光センサーの閾値が28と...
sub hazime() //動き始め(缶を見つけるまでは何もしな...
{
Off(OUT_AB);
until(SENSOR_2 < can_find);
SendMessage(signal_can);
Wait(150); //缶との距離を詰めている間少し待つ
}
二つ目のsub関数は缶を持ち上げるプログラムである。
sub ageru() //缶を持ち上げる
{
close;
can_up(200);
SendMessage(signal_move);
}
三つ目のsub関数は移動中缶が少しずつ下がってくるので定期的...
sub idoutyuu() //移動中缶を上げる(重さで少し下がってく...
{
while(SENSOR_2 < can_find){
can_up(10);
Wait(20);
}
}
四つ目のプログラムは缶を積む際に行うプログラムである。
sub tumu() //缶を積む
{
can_up(20); //上まで20/100秒上げる
SendMessage(signal_can);
can_down(100); //缶を合わせる
open(100); //開いて
can_down(100); //下まで下げて次の缶を持ち上げる準備
}
五つ目のプログラムは最後に缶をゴールに置く時に利用するプ...
sub last() //最後ゴールに缶を置く時
{
until(Message() == signal_last);
can_down(200);
SendMessage(signal_move);
}
**main関数について [#b8edbd69]
task main()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
hazime();
ageru();
idoutyuu();
tumu();
ageru();
last();
}
缶を下げたままにすると光センサーの邪魔になるため常に缶を...
*感想・反省 [#fea7cce8]
今回はグループで行う課題だった。グループで行い、それぞれ...
終了行:
目次
#contents
*課題について [#v94a339a]
**課題3概要 [#oea354ee]
缶を積み上げるロボットをグループで作成せよ。詳しくは[[課...
*ロボットについて [#tcab134e]
今回のロボットは挟む部分を上げ下げすることで缶を積み上げ...
#ref(./image1.jpg,100%,ロボット 全体図)
↑ロボットの全体図
#ref(./gia.jpg,100%,ロボット 後ろから)
↑後ろから見た場合
#ref(./image3.jpg,100%,ロボット 挟む部分)
↑ロボットの缶を挟む部分
#ref(./image9.jpg,100%,ロボット 上げる部分)
↑缶を挟む部分をモーターを利用して上下に動かす
*工夫した点(改善すべき点) [#j7314d67]
上の全体図を見れば分かるが、今回のロボットは工夫した点と...
**工夫した点 [#ka2dc701]
?缶を挟む時、缶に負荷が掛からないよう白い歯車をかませた。
#ref(./image3.jpg,100%,ロボット 挟む部分)
**改善すべき点 [#gbcd1fde]
?ロボットの前部分と後部分の重さの差をできるだけ少なくすべ...
#ref(./image1.jpg,100%,ロボット 横から)
↑ロボットの前部分と後部分の重さがとても違うため、前部分の...
?缶を挟む部分を上下に動かすために利用したモーターのギアを...
#ref(./gia.jpg,100%,ロボット ギア)
↑モーターのギア(の半径)が大きいため、持ち上げる力が弱くな...
*プログラム紹介 [#cca6b7f4]
プログラムはグループのメンバーであるryoga君が作成した。...
今回は二つのロボットを結合して作成した。そのため、プロ...
ロボットの製作に苦労したので下の計画図のように簡単な順路...
私たちのプログラムを簡単に説明すると
?光センサーを利用して、光センサーの閾値が28(缶が目の前に...
?光センサーの閾値が28となった場合缶を掴む動作を行う
? ??をE地点、T地点で繰り返す
?ゴール地点に缶を置く
となる。この考えには斜めに缶があると掴むことができないと...
#ref(./IMG_0564.JPG,15%,計画図)
↑E地点の缶を取った後、右へ曲がり斜めに進みT地点の缶をゴー...
*台車側のプログラム [#db8c9710]
台車側のプログラムを理解する際の注意点として、台車自体後...
**定数について [#fe9f02e1]
#define signal_can 11 //積む側のプログラムに移行
#define signal_move 12 //台車側のプログラムに移行
#define signal_last 13 //最後、ゴールの円に置く指示
**マクロについて [#vbae04f9]
#define turn_right(t) OnFwd(OUT_C); OnRev(OUT_A); Wait(t...
#define turn_left(t) OnFwd(OUT_A); OnRev(OUT_C); Wait(t)...
#define back(t) OnFwd(OUT_AC); Wait(t); Off(OUT_AC); ...
**sub関数について [#t9a18759]
sub関数は二つある。
A地点(start地点)からE地点、E地点からT地点へ移動する際にこ...
sub move_can() //缶を積む前と積んでいる最中の動き
{
OnRev(OUT_AC);
until(Message() == signal_can); //缶を見つけるまで...
OnRev(OUT_AC); //缶との距離を詰める...
Wait(150);
Off(OUT_AC);
until(Message() == signal_move); //缶上げ終わるまで...
}
↑光センサーで缶を見つける際、毎回見つけるタイミングに誤差...
二つ目のsub関数はT地点の缶を入手した後に利用するsub関数で...
sub last() //最後に缶をゴールに置く部分の動き
{
turn_left(31); //左へ31/100秒回転
SendMessage(signal_last); //缶を持ち上げる側のプログ...
until(Message() == signal_move);
back(100); //缶を持ち上げる側のプログ...
}
**main関数について [#n6ccc4a8]
task main()
{
ClearMessage();
move_can(); //E地点の缶を掴む位置まで移動
turn_right(80); //80/100秒右回転
move_can(); //T地点の缶を掴む位置まで移動
last(); //缶をゴール中心まで運び、缶を置く
}
*缶を持ち上げる側のプログラム [#o967a6c9]
**定数について [#i4ebfba7]
#define signal_can 11 //積む側のプログラム...
#define signal_move 12 //台車側のプログラム...
#define signal_last 13 //最後缶をゴールに置...
#define close OnFwd(OUT_B); //アームを閉じる
#define can_find 28 //光センサーの閾値が2...
**マクロについて [#ba6860f3]
#define open(t) OnRev(OUT_B); Wait(t); Off(OUT_B); //...
#define can_up(t) OnRev(OUT_A); Wait(t); Off(OUT_A); //...
#define can_down(t) OnFwd(OUT_A); Wait(t); Off(OUT_A); /...
**sub関数について [#jd3e29e1]
sub関数は5つある。
一つ目のsub関数は缶が目の前にきた(光センサーの閾値が28と...
sub hazime() //動き始め(缶を見つけるまでは何もしな...
{
Off(OUT_AB);
until(SENSOR_2 < can_find);
SendMessage(signal_can);
Wait(150); //缶との距離を詰めている間少し待つ
}
二つ目のsub関数は缶を持ち上げるプログラムである。
sub ageru() //缶を持ち上げる
{
close;
can_up(200);
SendMessage(signal_move);
}
三つ目のsub関数は移動中缶が少しずつ下がってくるので定期的...
sub idoutyuu() //移動中缶を上げる(重さで少し下がってく...
{
while(SENSOR_2 < can_find){
can_up(10);
Wait(20);
}
}
四つ目のプログラムは缶を積む際に行うプログラムである。
sub tumu() //缶を積む
{
can_up(20); //上まで20/100秒上げる
SendMessage(signal_can);
can_down(100); //缶を合わせる
open(100); //開いて
can_down(100); //下まで下げて次の缶を持ち上げる準備
}
五つ目のプログラムは最後に缶をゴールに置く時に利用するプ...
sub last() //最後ゴールに缶を置く時
{
until(Message() == signal_last);
can_down(200);
SendMessage(signal_move);
}
**main関数について [#b8edbd69]
task main()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
hazime();
ageru();
idoutyuu();
tumu();
ageru();
last();
}
缶を下げたままにすると光センサーの邪魔になるため常に缶を...
*感想・反省 [#fea7cce8]
今回はグループで行う課題だった。グループで行い、それぞれ...
ページ名: