2004/C4/練習問題44
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
#contents
[[ロボティクス入門ゼミ]]
* 1. ハート形を描くロボット(必須) [#pbb1ca8a]
ロボットにペンを取り付けA3用紙にハート型を描くロボットを作成しなさい。
task main()
{
SetPower(OUT_A,7);SetPower(OUT_C,7);
OnFwd(OUT_A+OUT_C);Wait(150);
SetPower(OUT_A,1);OnRev(OUT_A);Wait(500);
SetPower(OUT_A,7);OnFwd(OUT_A);OnRev(OUT_C);Wait(100);
SetPower(OUT_A,1);OnRev(OUT_A);Wait(500);
SetPower(OUT_A,7);OnFwd(OUT_A);Wait(150);
Off(OUT_A+OUT_C);
}
* 2. 台から落ちないロボット(必須) [#cec6554a]
机の上で動き回るロボットを作成しなさい。 ただし方向変換は机の端に来たときに行うこと。
task main ()
{
SetSensor(SENSOR_1, SENSOR_LIGHT);
while(true){
if(SENSOR_1 < 40){
Off(OUT_A+OUT_C);
OnRev(OUT_A); //端に来たとき方向転換を行う。光センサーを用いて、一定光量以下になると実行する
OnFwd(OUT_C);
}
else{
Off(OUT_A+OUT_C);
OnFwd(OUT_A+OUT_C); //動き回るプログラム。今は前進だけ...
}
}
}
* 3. ライントレースをするロボット(必須) [#ia740a04]
できるだけ速いロボットを作成すること
#define THRESHOLD 40 // 閾値
task main ()
{
SetSensor(SENSOR_1, SENSOR_LIGHT);
while (true) {
if (SENSOR_1 < THRESHOLD) { // 黒線上にいるとき
OnFwd(OUT_A);
Off(OUT_C);
} else { // 黒線から外れたとき
Off(OUT_A);
OnFwd(OUT_C);
}
}
}
* 4. 光を追いかけるロボット(必須) [#j81b6000]
まず最初に一回転してもっとも明るい方向(懐中電灯の方向)を探し、次に懐中電灯の光を追いかけて進むようなロボットを作成しなさい。
task main ()
{
SetSensor(SENSOR_1, SENSOR_LIGHT);
OnRev(OUT_A); //回転を行う
OnFwd(OUT_C);
wait(1646); //一回転のウェイト時間
while(true){
if(SENSOR_1 > 40){
Off(OUT_A+OUT_C);
OnFwd(OUT_A+OUT_C); //センサーが一定以上の光量を感知すると、前進する
}
else{
Off(OUT_A+OUT_C);
OnRev(OUT_A); //光量を見失うと回転し、再び光を探す
OnFwd(OUT_C);
}
}
}
* 5. 演奏ロボット(必須) [#kbda0e4e]
インストラクション(説明書)の最後にある「Top Secret」を参考に、音楽を演奏しながら前進し障害物にぶつかったら(あるいは明るい光にあたったら)後退しながら方向を変えるロボットを作成しなさい。ただし移動のためのモータはひとつだけ使うものとし、また前進しているときと後進している時で違う音楽を演奏すること。
/*音を鳴らすプログラム*/
#define hikuiSo 392
#define Do 523
#define Re 587
#define Mi 659
#define Fa 698
#define So 784
task play_music(){
PlayTone(Mi,25);
Wait(30);
PlayTone(Mi,25);
Wait(30);
PlayTone(Mi,25);
Wait(60);
PlayTone(Do,25);
Wait(30);
PlayTone(Mi,25);
Wait(60);
PlayTone(So,25);
Wait(120);
PlayTone(hikuiSo,25);
Wait(120);
}
task main(){
SetSensor(SENSOR_1,SENSOR_TOUCH); //光センサーを用いるには(SENSOR_A,SENSOR_LIGHT)で宣言する
if(SENSOR_1==1){
start play_music;
OnRev(OUT_A); //タッチセンサーが押されると方向転換を行う
Wait(823);
}
else{
start play_music; //音楽を演奏する
Off(OUT_A);
OnFwd(OUT_A);
Wait(200)
}
}
* 6. 二足歩行ロボット(自由) [#mb03cd20]
* 7. その他(自由) [#x5a9dc86]
終了行:
#contents
[[ロボティクス入門ゼミ]]
* 1. ハート形を描くロボット(必須) [#pbb1ca8a]
ロボットにペンを取り付けA3用紙にハート型を描くロボットを作成しなさい。
task main()
{
SetPower(OUT_A,7);SetPower(OUT_C,7);
OnFwd(OUT_A+OUT_C);Wait(150);
SetPower(OUT_A,1);OnRev(OUT_A);Wait(500);
SetPower(OUT_A,7);OnFwd(OUT_A);OnRev(OUT_C);Wait(100);
SetPower(OUT_A,1);OnRev(OUT_A);Wait(500);
SetPower(OUT_A,7);OnFwd(OUT_A);Wait(150);
Off(OUT_A+OUT_C);
}
* 2. 台から落ちないロボット(必須) [#cec6554a]
机の上で動き回るロボットを作成しなさい。 ただし方向変換は机の端に来たときに行うこと。
task main ()
{
SetSensor(SENSOR_1, SENSOR_LIGHT);
while(true){
if(SENSOR_1 < 40){
Off(OUT_A+OUT_C);
OnRev(OUT_A); //端に来たとき方向転換を行う。光センサーを用いて、一定光量以下になると実行する
OnFwd(OUT_C);
}
else{
Off(OUT_A+OUT_C);
OnFwd(OUT_A+OUT_C); //動き回るプログラム。今は前進だけ...
}
}
}
* 3. ライントレースをするロボット(必須) [#ia740a04]
できるだけ速いロボットを作成すること
#define THRESHOLD 40 // 閾値
task main ()
{
SetSensor(SENSOR_1, SENSOR_LIGHT);
while (true) {
if (SENSOR_1 < THRESHOLD) { // 黒線上にいるとき
OnFwd(OUT_A);
Off(OUT_C);
} else { // 黒線から外れたとき
Off(OUT_A);
OnFwd(OUT_C);
}
}
}
* 4. 光を追いかけるロボット(必須) [#j81b6000]
まず最初に一回転してもっとも明るい方向(懐中電灯の方向)を探し、次に懐中電灯の光を追いかけて進むようなロボットを作成しなさい。
task main ()
{
SetSensor(SENSOR_1, SENSOR_LIGHT);
OnRev(OUT_A); //回転を行う
OnFwd(OUT_C);
wait(1646); //一回転のウェイト時間
while(true){
if(SENSOR_1 > 40){
Off(OUT_A+OUT_C);
OnFwd(OUT_A+OUT_C); //センサーが一定以上の光量を感知すると、前進する
}
else{
Off(OUT_A+OUT_C);
OnRev(OUT_A); //光量を見失うと回転し、再び光を探す
OnFwd(OUT_C);
}
}
}
* 5. 演奏ロボット(必須) [#kbda0e4e]
インストラクション(説明書)の最後にある「Top Secret」を参考に、音楽を演奏しながら前進し障害物にぶつかったら(あるいは明るい光にあたったら)後退しながら方向を変えるロボットを作成しなさい。ただし移動のためのモータはひとつだけ使うものとし、また前進しているときと後進している時で違う音楽を演奏すること。
/*音を鳴らすプログラム*/
#define hikuiSo 392
#define Do 523
#define Re 587
#define Mi 659
#define Fa 698
#define So 784
task play_music(){
PlayTone(Mi,25);
Wait(30);
PlayTone(Mi,25);
Wait(30);
PlayTone(Mi,25);
Wait(60);
PlayTone(Do,25);
Wait(30);
PlayTone(Mi,25);
Wait(60);
PlayTone(So,25);
Wait(120);
PlayTone(hikuiSo,25);
Wait(120);
}
task main(){
SetSensor(SENSOR_1,SENSOR_TOUCH); //光センサーを用いるには(SENSOR_A,SENSOR_LIGHT)で宣言する
if(SENSOR_1==1){
start play_music;
OnRev(OUT_A); //タッチセンサーが押されると方向転換を行う
Wait(823);
}
else{
start play_music; //音楽を演奏する
Off(OUT_A);
OnFwd(OUT_A);
Wait(200)
}
}
* 6. 二足歩行ロボット(自由) [#mb03cd20]
* 7. その他(自由) [#x5a9dc86]
ページ名: