2017a/Member/shiori/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#contents
*課題の内容 [#w675310e]
[[課題3>2017a/Mission3]]を参照。
*ロボットの説明 [#l7753cf6]
ロボットの全体像である。
#ref(2017a/Member/shiori/Mission3/全体前.jpg)
↑正面から見た写真
#ref(2017a/Member/shiori/Mission3/全体後ろ.jpg)
↑背面から見た写真
#ref(2017a/Member/shiori/Mission3/全体横.jpg)
↑真横から見た写真
ロボットは、初めはキャタピラで缶を持ち上げるロボットの予...
ロボットはコンピューター2つの赤外線送受信部を合わせ、缶を...
**台車の部分 [#n82b335b]
台車の部分は2つのモーターがそれぞれタイヤを回し
前進後退だけでなく、旋回もできるようにした。
**缶を挟み、つかむ部分 [#vf7bc1a3]
缶を挟む部分には1つのモーターを用い、歯車を上手く噛み合わ...
#ref(2017a/Member/shiori/Mission3/歯車.jpg)
**缶を持ち上げる部分 [#n1f67680]
#ref(2017a/Member/shiori/Mission3/ぎざぎざ.jpg)
缶をつかむ部分につけたギザギザの棒
#ref(2017a/Member/shiori/Mission3/持ち上げ.jpg)
コンピューターの部分につけたモーター
上の写真のようにギザギザの棒を、缶をつかんでいる部分につ...
*動きの説明・実際の動き [#d2cb0908]
#ref(2017a/Member/shiori/Mission3/動き計画.JPG)
青線で示したのは計画していた動きである。
#ref(2017a/Member/shiori/Mission3/実際の動き.JPG)
赤線で示しているのは実際の動き(記憶なので覚えている範囲で...
*プログラムの説明 [#rc5e5f1d]
ロボットを作る方にほとんどの時間を奪われ、プログラミング...
**台車側コンピューター [#na7142b3]
***定数・マクロ・サブルーチンの定義 [#c041b14c]
#define signal_can 11 //積む側のプログラムに移行...
#define signal_move 12 //台車側のプログラムに移行す...
#define signal_last 13 //最後ゴールの円に缶を離す指示
#define back(t) OnFwd(OUT_AC); Wait(t); Off(OUT_AC); ...
sub move_can() //缶を積む前と積んでいるときの台車の...
{
OnRev(OUT_AC);
until(Message() == signal_can); //缶を見つけるま...
OnRev(OUT_AC);
Wait(150);
Off(OUT_AC); //缶との距離を詰める
until(Message() == signal_move); //缶上げ終わるまで...
}
sub tyokkaku() //90度曲がるときの動き
{
OnFwd(OUT_C);
OnRev(OUT_A);
Wait(80);
Off(OUT_AC);
}
sub last() //最後に缶をゴールに置くときの動き
{
turn_left(31);
SendMessage(signal_last); //左に少し曲がり、...
until(Message() == signal_move);
back(100); //動けと指示が来た...
}
***タスクメイン[#dd0c8655]
task main()
{
ClearMessage();
move_can(); //1つ目の缶を...
tyokkaku(); //曲がる
move_can(); //2つ目の缶を...
last(); //缶をゴールに...
}
実際の動きで、直角に曲がり切れなかったのは、tyokkakuのサ...
**缶を感知・持ち上げる側のコンピューター [#j0dd7c72]
***定数・マクロ・サブルーチンの定義 [#z16f2020]
#define signal_can 11 //積む側のプログラム...
#define signal_move 12 //台車側のプログラム...
#define signal_last 13 //最後缶をゴールに置...
#define close OnFwd(OUT_B); //アームを閉じる
#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); ...
#define can_find 28 //缶判別の光セン...
sub hazime() //動き始め(缶を見つけるまでは何もし...
{
Off(OUT_AB);
until(SENSOR_2 < can_find);
SendMessage(signal_can); //光センサーの値が缶...
Wait(150); //缶との距離を詰めている間少し待つ
}
sub ageru() //缶を持ち上げる
{
close;
can_up(200);
SendMessage(signal_move); //持ち上げ終わったら台...
}
sub idoutyuu() //移動中缶を上げる(重さで少し下がってく...
{
while(SENSOR_2 < can_find){ //缶が下がって...
can_up(10);
Wait(20); //0.1秒アームを上げ、0.2秒...
}
}
sub tumu() //缶を積む
{
can_up(20); //上まで上げる
SendMessage(signal_can);
can_down(100); //缶を合わせる
open(100); //開いて
can_down(100); //下まで下げて次の缶を持ち上げる準備
}
sub last() //最後ゴールに缶を置く時
{
until(Message() == signal_last);
can_down(200);
SendMessage(signal_move);
}
***タスクメイン [#zf89abe4]
task main()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
hazime();
ageru();
idoutyuu();
tumu();
ageru();
last();
}
ちょうどいいcan_findの値を見つけるほどの時間がなかったの...
実際、1回目のageruのサブルーチンまでうまくいっていること...
*失敗点・うまくいかなかった原因 [#ycc22ad6]
上記の通り、ロボットがモーターにとても負荷をかけるしくみ...
プログラムにかけられる時間がとても少なかったため、不備が...
特に曲がる時間や缶を認識する光センサーの値の調節に十分な...
プログラムとロボットの両方に不備ができ、その結果上のよう...
*過去の取り組み [#k1f8dce7]
一度作ったが壊してしまったロボットについて書こうと思う。
#ref(2017a/Member/shiori/Mission3/失敗作歯車.jpg)
オレンジ色の矢印を回すことにより、壁をキャタピラのほうに...
#ref(2017a/Member/shiori/Mission3/失敗作全体.jpg)
オレンジの部分に缶が入り、キャタピラで持ち上げられていく...
一度持ち上げた缶は弁(上方向には缶を通すが下方向には缶を...
問題となったのは、弁のせいで一度持ち上げた缶が傾いてしま...
*感想・反省点 [#hc2bb957]
缶を普通に押せば3点はもらえることは分かってはいたが、どう...
終了行:
#contents
*課題の内容 [#w675310e]
[[課題3>2017a/Mission3]]を参照。
*ロボットの説明 [#l7753cf6]
ロボットの全体像である。
#ref(2017a/Member/shiori/Mission3/全体前.jpg)
↑正面から見た写真
#ref(2017a/Member/shiori/Mission3/全体後ろ.jpg)
↑背面から見た写真
#ref(2017a/Member/shiori/Mission3/全体横.jpg)
↑真横から見た写真
ロボットは、初めはキャタピラで缶を持ち上げるロボットの予...
ロボットはコンピューター2つの赤外線送受信部を合わせ、缶を...
**台車の部分 [#n82b335b]
台車の部分は2つのモーターがそれぞれタイヤを回し
前進後退だけでなく、旋回もできるようにした。
**缶を挟み、つかむ部分 [#vf7bc1a3]
缶を挟む部分には1つのモーターを用い、歯車を上手く噛み合わ...
#ref(2017a/Member/shiori/Mission3/歯車.jpg)
**缶を持ち上げる部分 [#n1f67680]
#ref(2017a/Member/shiori/Mission3/ぎざぎざ.jpg)
缶をつかむ部分につけたギザギザの棒
#ref(2017a/Member/shiori/Mission3/持ち上げ.jpg)
コンピューターの部分につけたモーター
上の写真のようにギザギザの棒を、缶をつかんでいる部分につ...
*動きの説明・実際の動き [#d2cb0908]
#ref(2017a/Member/shiori/Mission3/動き計画.JPG)
青線で示したのは計画していた動きである。
#ref(2017a/Member/shiori/Mission3/実際の動き.JPG)
赤線で示しているのは実際の動き(記憶なので覚えている範囲で...
*プログラムの説明 [#rc5e5f1d]
ロボットを作る方にほとんどの時間を奪われ、プログラミング...
**台車側コンピューター [#na7142b3]
***定数・マクロ・サブルーチンの定義 [#c041b14c]
#define signal_can 11 //積む側のプログラムに移行...
#define signal_move 12 //台車側のプログラムに移行す...
#define signal_last 13 //最後ゴールの円に缶を離す指示
#define back(t) OnFwd(OUT_AC); Wait(t); Off(OUT_AC); ...
sub move_can() //缶を積む前と積んでいるときの台車の...
{
OnRev(OUT_AC);
until(Message() == signal_can); //缶を見つけるま...
OnRev(OUT_AC);
Wait(150);
Off(OUT_AC); //缶との距離を詰める
until(Message() == signal_move); //缶上げ終わるまで...
}
sub tyokkaku() //90度曲がるときの動き
{
OnFwd(OUT_C);
OnRev(OUT_A);
Wait(80);
Off(OUT_AC);
}
sub last() //最後に缶をゴールに置くときの動き
{
turn_left(31);
SendMessage(signal_last); //左に少し曲がり、...
until(Message() == signal_move);
back(100); //動けと指示が来た...
}
***タスクメイン[#dd0c8655]
task main()
{
ClearMessage();
move_can(); //1つ目の缶を...
tyokkaku(); //曲がる
move_can(); //2つ目の缶を...
last(); //缶をゴールに...
}
実際の動きで、直角に曲がり切れなかったのは、tyokkakuのサ...
**缶を感知・持ち上げる側のコンピューター [#j0dd7c72]
***定数・マクロ・サブルーチンの定義 [#z16f2020]
#define signal_can 11 //積む側のプログラム...
#define signal_move 12 //台車側のプログラム...
#define signal_last 13 //最後缶をゴールに置...
#define close OnFwd(OUT_B); //アームを閉じる
#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); ...
#define can_find 28 //缶判別の光セン...
sub hazime() //動き始め(缶を見つけるまでは何もし...
{
Off(OUT_AB);
until(SENSOR_2 < can_find);
SendMessage(signal_can); //光センサーの値が缶...
Wait(150); //缶との距離を詰めている間少し待つ
}
sub ageru() //缶を持ち上げる
{
close;
can_up(200);
SendMessage(signal_move); //持ち上げ終わったら台...
}
sub idoutyuu() //移動中缶を上げる(重さで少し下がってく...
{
while(SENSOR_2 < can_find){ //缶が下がって...
can_up(10);
Wait(20); //0.1秒アームを上げ、0.2秒...
}
}
sub tumu() //缶を積む
{
can_up(20); //上まで上げる
SendMessage(signal_can);
can_down(100); //缶を合わせる
open(100); //開いて
can_down(100); //下まで下げて次の缶を持ち上げる準備
}
sub last() //最後ゴールに缶を置く時
{
until(Message() == signal_last);
can_down(200);
SendMessage(signal_move);
}
***タスクメイン [#zf89abe4]
task main()
{
SetSensor(SENSOR_2,SENSOR_LIGHT);
hazime();
ageru();
idoutyuu();
tumu();
ageru();
last();
}
ちょうどいいcan_findの値を見つけるほどの時間がなかったの...
実際、1回目のageruのサブルーチンまでうまくいっていること...
*失敗点・うまくいかなかった原因 [#ycc22ad6]
上記の通り、ロボットがモーターにとても負荷をかけるしくみ...
プログラムにかけられる時間がとても少なかったため、不備が...
特に曲がる時間や缶を認識する光センサーの値の調節に十分な...
プログラムとロボットの両方に不備ができ、その結果上のよう...
*過去の取り組み [#k1f8dce7]
一度作ったが壊してしまったロボットについて書こうと思う。
#ref(2017a/Member/shiori/Mission3/失敗作歯車.jpg)
オレンジ色の矢印を回すことにより、壁をキャタピラのほうに...
#ref(2017a/Member/shiori/Mission3/失敗作全体.jpg)
オレンジの部分に缶が入り、キャタピラで持ち上げられていく...
一度持ち上げた缶は弁(上方向には缶を通すが下方向には缶を...
問題となったのは、弁のせいで一度持ち上げた缶が傾いてしま...
*感想・反省点 [#hc2bb957]
缶を普通に押せば3点はもらえることは分かってはいたが、どう...
ページ名: