2014b/Member/edaeda/Mission3
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
|
ログイン
]
開始行:
目次
#contents
*Mission3の説明 [#offcc809]
今回の課題は、課題2で用いたライントレース用の紙を貼り合...
http://yakushi.shinshu-u.ac.jp/robotics/?2014b%2FMission3
*当日までの流れ [#y4dba375]
**〜2月4日 [#qe3f457c]
まずはロボットを1台にするか2台にするかで悩みました。話...
ただ今思い返してみると1台の場合は、本体が重すぎて動作が...
次にどのようなロボットにするか構想を練りました。始めは...
しかしそれでは空の紙コップも使わなければならず、移動距...
本体の組み立ては途中までは順調に進んだのですが、インテ...
左右に取り付けることにしました。
しかし左右に取り付けたことによって重心が傾いてしまいま...
**2月4日 [#db46c338]
テストも終わり、集まれるようになったので、本格的にプロ...
アームの問題点は、動作の途中で紙コップや床などに、変に...
***アームの動き [#o10993a9]
#define SPEED1 45
#define SPEED2 60
#define SPEED3 10
#define SPEED4 30
#define SPEED5 50
#define SPEED6 25
float GetAngle(float d)
{
const float diameter=5.45;
const float pi=3.1415;
float ang = d/(diameter*pi)*360.0;
return ang;
}
#define DOWN RotateMotor(OUT_A,SPEED3,105);
#define UP RotateMotor(OUT_A,-SPEED5,105);
#define LDown RotateMotor(OUT_A,SPEED3,25);
#define LUp RotateMotor(OUT_A,-SPEED2,25);
#define Catch RotateMotor(OUT_B,-SPEED4,105);
#define Separate RotateMotor(OUT_B,SPEED4,105); //アー...
task main ()
{
OnFwd(OUT_A,10);
Wait(1500);
Catch; //アーム全体を下げ、...
OnRev(OUT_A,50);
Wait(3500); //アーム全体を上げ、...
Wait(2000);
OnFwd(OUT_A,10);
Wait(3500); //アーム全体を下げ、...
Separate;
OnRev(OUT_A,35);
Wait(2000); //アーム全体を上げる(...
Wait(500);
}
移動の問題点は、超音波センサーを使った移動に毎回ずれが...
&ref(2014b/Member/edaeda/Mission3/image7.JPG,50%,画像の説...
ロボット本体から紙コップの位置を修正するパーツを作り取...
**2月5日 [#q97bb4f6]
この日は超音波センサーのプログラムの修正、超音波センサ...
***超音波センサーを使った移動 [#x475c1ac]
#define SPEED 50
#define SPEED_SLOW 40
#define turn_right_here OnFwd(OUT_B,SPEED_SLOW);OnFwd(OU...
float GetAngle(float d) { //進む距離...
const float diameter=5.45; //タイヤの...
const float pi=3.1415; //円周率
float ang = d/(diameter*pi)*360.0; return ang; //角度を...
}
const float diameter = 5.45;
const float track = 15; //タイヤの...
const float pi = 3.1415;
void fwdDist(float d) { //距離 d ?...
long angle;
angle = d/(diameter*pi)*360.0;
RotateMotorEx(OUT_BC,SPEED_SLOW,angle,0,true,true);
}
void turnAng(long ang) { //角度 ang ...
long angle;
angle = track/diameter * ang;
RotateMotorEx(OUT_BC,SPEED_SLOW,angle,100,true,true);
}
intsearchDirection(long ang) { //現在の方向...
long angle,tacho_min=0,tacho_corr;
int d_min;
d_min=300; //仮の最小値
angle = (track/diameter)*ang; //旋回角度か...
turnAng(ang/2); //指定された...
ResetTachoCount(OUT_BC); //角度計測をリ...
OnFwdSync(OUT_BC,SPEED_SLOW,-100); //反時計回りに...
while(MotorTachoCount(OUT_B)<=angle){
if(SensorUS(S1)<d_min){
d_min=SensorUS(S1); //仮の最小値を...
PlaySound(SOUND_UP);
tacho_min=MotorTachoCount(OUT_B);
}
}
OnFwdSyncEx(OUT_BC,SPEED_SLOW,100,RESET_NONE);
until(MotorTachoCount(OUT_B)<=tacho_min||SensorUS(S1)<=d...
Wait(14); //微調整
Off(OUT_BC);Wait(500);
return d_min;
}
task main()
{
int d = searchDirection(120);
if(d > 15){
fwdDist(d-15.0);}
else {fwdDist(d-15);} //紙コップ...
PlaySound(SOUND_UP);
}
***超音波センサーを使わない移動 [#e89fcd1d]
float GetAngle(float d)
{
const float diameter = 5.45;
const float pi=3.1415;
float ang =d/(diameter*pi)*360.0;
return ang;
}
#define SPEED 50
task main()
{
int angle = GetAngle(20);
RotateMotor(OUT_BC,-SPEED,angle);//下がって
OnFwd(OUT_B,-SPEED);
OnFwd(OUT_C,SPEED);
Wait(1500);//180度旋回して
angle += GetAngle(30);
RotateMotor(OUT_BC,SPEED,angle);//対角線上の紙コップに...
}
***レール [#f5aef65c]
#define SPEED1 45
#define SPEED2 60
#define SPEED3 10
#define SPEED4 30
#define SPEED5 50
float GetAngle(float d)
{
const float diameter=5.45;
const float pi=3.1415;
float ang = d/(diameter*pi)*360.0;
return ang;
}
#define Into1 RotateMotor(OUT_C,SPEED3,20); //ボールを...
#define Return1 RotateMotor(OUT_C,-SPEED3,25);
#define Into2 RotateMotor(OUT_C,SPEED4,30);
#define Return2 RotateMotor(OUT_C,-SPEED4,15);
task main(){
OnFwd(OUT_C,15);
Wait(1000);
Wait(3000); //レールを傾け、4つの内2...
OnRev(OUT_C,30);
Wait(500);
Wait(5000);
OnFwd(OUT_C,25);
Wait(1000);
Wait(3000); //レールを傾け、レールに...
OnRev(OUT_C,30);
Wait(2500);
}
**2月6日〜授業直前 [#o9ab4d2e]
午前中はプログラムの細かい修正をしていました。
そして問題は午後に起こりました。
最初はこのように↓
最初にどちらのnxcがマスターかスレイブかを設定する。
***マスター側のプログラム(Aとする) [#i81fb155]
#define CONN 1 // スレーブの接続番号
task main()
{
until (BluetoothStatus(CONN) == NO_ERR);
//プログラム
RemoteStartProgram(CONN, "B.rxe");
}
***スレーブ側のプログラム(Bとする) [#g99879f3]
#define CONN 0 // スレーブの接続番号
task main()
{
until (BluetoothStatus(CONN) == NO_ERR);
//プログラム
RemoteStartProgram(CONN, "C.rxe");
}//これでマスター側のCというプログラムが実行される
と、スレイブ側のプログラムからもマスター側のプログラムを...
その時は授業まであと2時間となっていたので焦ってしまい、...
?説明書に書いてあったメッセージのやり取りをするプログラム...
?「アームの動作が完了した=ボールがレールの上を通る」とい...
というものでした。
ですが実際?は、今までそのプログラムを使ったこともなかっ...
***?のプログラム [#ldc5802b]
#define SPEED 50
#define SPEED_SLOW 30
#define count 3
#define sound PlaySound(SOUND_CLICK);
task main()
{
int nOnline=0;
//最初のプログラム
if(nOnline=0){
if(SensorUS(S3)<count){//ボールが通る=アームの作業終わり
sound;
Wait(10000);
nOnline++;
//超音波センサーを使わない移動するプログ...
}
}
else if(nOnline=1){
if(SensorUS(S3)<count){ボールが通る=アームの作業終わり...
sound;
nOnline++;
}
}
else if(nOnline=2){
//この行に超音波センサーを使わない移動するプログラム...
if(SensorUS(S3)<count){
sound;
Wait(10000);
nOnline++;
}
}
else if(nOnline=3)
//超音波センサーを使わない移動するプログラムを入力
}//超音波センサーを使わない移動プログラムには、スレイブ...
というものを作ることが出来たのですが、超音波センサーが反...
ここで授業開始の20分前になっていました。このままでは超...
ここで、マスター側のプログラムをすべてつなげて、毎回スレ...
そしてこのプログラムを急いで作り、授業の時間になってし...
***その時のプログラム [#o8d234b7]
task main() {
SetSensorLowspeed(S1);
until (BluetoothStatus(CONN) == NO_ERR);
OnFwd(OUT_BC,50);
Wait(5500);
turn_right_here;
Wait(2500);
RemoteStartProgram(CONN, "arm time.rxe");
Off(OUT_BC);
Wait(10000);
Wait(10000);
Wait(10000);
int angle1 = GetAngle(20);
RotateMotor(OUT_BC,-SPEED,angle1);
OnFwd(OUT_B,-SPEED);
OnFwd(OUT_C,SPEED);
Wait(1500);
angle1 += GetAngle(60);
RotateMotor(OUT_BC,SPEED,angle1);
int d2 = searchDirection(120);
if(d2 > 15){
fwdDist(d2-15.0);}
else {fwdDist(d2-15);}
PlaySound(SOUND_UP);
turn_right_here;
Wait(200);
RemoteStartProgram(CONN, "arm time.rxe");
Off(OUT_BC);
Wait(10000);
Wait(10000);
Wait(10000);
int angle2 = GetAngle(20);
RotateMotor(OUT_BC,-SPEED,angle2);
OnFwd(OUT_B,-SPEED);
OnFwd(OUT_C,SPEED);
Wait(1500);
angle2 += GetAngle(60);
RotateMotor(OUT_BC,SPEED,angle2);
int d3 = searchDirection(120);
turn_right_here;
Wait(600);
if(d3 > 15){
fwdDist(d3);}
else {fwdDist(d3);}
PlaySound(SOUND_UP);
RemoteStartProgram(CONN, "rail1.rxe");
Off(OUT_BC);
Wait(10000);
Wait(10000);
Wait(10000);
int angle3 = GetAngle(20);
RotateMotor(OUT_BC,-SPEED,angle3);
OnFwd(OUT_B,-SPEED);
OnFwd(OUT_C,SPEED);
Wait(1500);
angle3 += GetAngle(60);
RotateMotor(OUT_BC,SPEED,angle3);
int d4 = searchDirection(120);
turn_right_here;
Wait(600);
if(d4 > 15){
fwdDist(d4);}
else {fwdDist(d4);}
PlaySound(SOUND_UP);
RemoteStartProgram(CONN, "rail2.rxe");
}
**授業中 [#j11ae266]
何とかプログラムを連携させることはできたのですが、超音...
案の定本番では、ロボットが満足に紙コップのところまで移...
***最終的なプログラム [#w7bf2987]
task main() {
SetSensorLowspeed(S1);
until (BluetoothStatus(CONN) == NO_ERR);
OnFwd(OUT_BC,50);
Wait(5500);
turn_right_here;
Wait(2000);
RemoteStartProgram(CONN, "arm time.rxe");
Off(OUT_BC);
Wait(10000);
Wait(10000);
OnFwd(OUT_B,-SPEED);
OnFwd(OUT_C,SPEED);
Wait(700);
OnFwd(OUT_BC,50);
Wait(4000);
RemoteStartProgram(CONN, "rail.rxe");
Off(OUT_BC);
}
このようにすべての動作を最初から時間で管理するプログラム...
これにより、超音波センサーは使うことはできませんでしたが...
ここまでで紹介しきれなかったプログラムはB班のarisykaさん...
*ロボットの紹介 [#h0b240db]
どのようにしてロボットが動く予定だったかを紹介したいと思...
**1.紙コップの15cm手前まで、超音波センサーを使い進む。 [#...
&ref(2014b/Member/edaeda/Mission3/image8.JPG,50%,画像の説...
**2.本体を旋回させ、アームの位置に紙コップを持ってくる。 ...
&ref(2014b/Member/edaeda/Mission3/image7.JPG,50%,画像の説...
**3.アームで紙コップを持ち上げて、レールの上にボールを乗...
&ref(2014b/Member/edaeda/Mission3/image9.JPG,50%,画像の説...
&ref(2014b/Member/edaeda/Mission3/image10.jpg,50%,画像の...
**4.空の紙コップのところまで、超音波センサーを使い進む。 ...
&ref(2014b/Member/edaeda/Mission3/image11.JPG,50%,画像の...
**5.レールを傾けて、空の紙コップにボールを入れる。 [#e625...
&ref(2014b/Member/edaeda/Mission3/image12.JPG,50%,画像の...
これが一連の動作になります。
*反省と感想 [#o13d5ed0]
最後までなぜ超音波センサーが誤作動を起こしてしまったの...
終了行:
目次
#contents
*Mission3の説明 [#offcc809]
今回の課題は、課題2で用いたライントレース用の紙を貼り合...
http://yakushi.shinshu-u.ac.jp/robotics/?2014b%2FMission3
*当日までの流れ [#y4dba375]
**〜2月4日 [#qe3f457c]
まずはロボットを1台にするか2台にするかで悩みました。話...
ただ今思い返してみると1台の場合は、本体が重すぎて動作が...
次にどのようなロボットにするか構想を練りました。始めは...
しかしそれでは空の紙コップも使わなければならず、移動距...
本体の組み立ては途中までは順調に進んだのですが、インテ...
左右に取り付けることにしました。
しかし左右に取り付けたことによって重心が傾いてしまいま...
**2月4日 [#db46c338]
テストも終わり、集まれるようになったので、本格的にプロ...
アームの問題点は、動作の途中で紙コップや床などに、変に...
***アームの動き [#o10993a9]
#define SPEED1 45
#define SPEED2 60
#define SPEED3 10
#define SPEED4 30
#define SPEED5 50
#define SPEED6 25
float GetAngle(float d)
{
const float diameter=5.45;
const float pi=3.1415;
float ang = d/(diameter*pi)*360.0;
return ang;
}
#define DOWN RotateMotor(OUT_A,SPEED3,105);
#define UP RotateMotor(OUT_A,-SPEED5,105);
#define LDown RotateMotor(OUT_A,SPEED3,25);
#define LUp RotateMotor(OUT_A,-SPEED2,25);
#define Catch RotateMotor(OUT_B,-SPEED4,105);
#define Separate RotateMotor(OUT_B,SPEED4,105); //アー...
task main ()
{
OnFwd(OUT_A,10);
Wait(1500);
Catch; //アーム全体を下げ、...
OnRev(OUT_A,50);
Wait(3500); //アーム全体を上げ、...
Wait(2000);
OnFwd(OUT_A,10);
Wait(3500); //アーム全体を下げ、...
Separate;
OnRev(OUT_A,35);
Wait(2000); //アーム全体を上げる(...
Wait(500);
}
移動の問題点は、超音波センサーを使った移動に毎回ずれが...
&ref(2014b/Member/edaeda/Mission3/image7.JPG,50%,画像の説...
ロボット本体から紙コップの位置を修正するパーツを作り取...
**2月5日 [#q97bb4f6]
この日は超音波センサーのプログラムの修正、超音波センサ...
***超音波センサーを使った移動 [#x475c1ac]
#define SPEED 50
#define SPEED_SLOW 40
#define turn_right_here OnFwd(OUT_B,SPEED_SLOW);OnFwd(OU...
float GetAngle(float d) { //進む距離...
const float diameter=5.45; //タイヤの...
const float pi=3.1415; //円周率
float ang = d/(diameter*pi)*360.0; return ang; //角度を...
}
const float diameter = 5.45;
const float track = 15; //タイヤの...
const float pi = 3.1415;
void fwdDist(float d) { //距離 d ?...
long angle;
angle = d/(diameter*pi)*360.0;
RotateMotorEx(OUT_BC,SPEED_SLOW,angle,0,true,true);
}
void turnAng(long ang) { //角度 ang ...
long angle;
angle = track/diameter * ang;
RotateMotorEx(OUT_BC,SPEED_SLOW,angle,100,true,true);
}
intsearchDirection(long ang) { //現在の方向...
long angle,tacho_min=0,tacho_corr;
int d_min;
d_min=300; //仮の最小値
angle = (track/diameter)*ang; //旋回角度か...
turnAng(ang/2); //指定された...
ResetTachoCount(OUT_BC); //角度計測をリ...
OnFwdSync(OUT_BC,SPEED_SLOW,-100); //反時計回りに...
while(MotorTachoCount(OUT_B)<=angle){
if(SensorUS(S1)<d_min){
d_min=SensorUS(S1); //仮の最小値を...
PlaySound(SOUND_UP);
tacho_min=MotorTachoCount(OUT_B);
}
}
OnFwdSyncEx(OUT_BC,SPEED_SLOW,100,RESET_NONE);
until(MotorTachoCount(OUT_B)<=tacho_min||SensorUS(S1)<=d...
Wait(14); //微調整
Off(OUT_BC);Wait(500);
return d_min;
}
task main()
{
int d = searchDirection(120);
if(d > 15){
fwdDist(d-15.0);}
else {fwdDist(d-15);} //紙コップ...
PlaySound(SOUND_UP);
}
***超音波センサーを使わない移動 [#e89fcd1d]
float GetAngle(float d)
{
const float diameter = 5.45;
const float pi=3.1415;
float ang =d/(diameter*pi)*360.0;
return ang;
}
#define SPEED 50
task main()
{
int angle = GetAngle(20);
RotateMotor(OUT_BC,-SPEED,angle);//下がって
OnFwd(OUT_B,-SPEED);
OnFwd(OUT_C,SPEED);
Wait(1500);//180度旋回して
angle += GetAngle(30);
RotateMotor(OUT_BC,SPEED,angle);//対角線上の紙コップに...
}
***レール [#f5aef65c]
#define SPEED1 45
#define SPEED2 60
#define SPEED3 10
#define SPEED4 30
#define SPEED5 50
float GetAngle(float d)
{
const float diameter=5.45;
const float pi=3.1415;
float ang = d/(diameter*pi)*360.0;
return ang;
}
#define Into1 RotateMotor(OUT_C,SPEED3,20); //ボールを...
#define Return1 RotateMotor(OUT_C,-SPEED3,25);
#define Into2 RotateMotor(OUT_C,SPEED4,30);
#define Return2 RotateMotor(OUT_C,-SPEED4,15);
task main(){
OnFwd(OUT_C,15);
Wait(1000);
Wait(3000); //レールを傾け、4つの内2...
OnRev(OUT_C,30);
Wait(500);
Wait(5000);
OnFwd(OUT_C,25);
Wait(1000);
Wait(3000); //レールを傾け、レールに...
OnRev(OUT_C,30);
Wait(2500);
}
**2月6日〜授業直前 [#o9ab4d2e]
午前中はプログラムの細かい修正をしていました。
そして問題は午後に起こりました。
最初はこのように↓
最初にどちらのnxcがマスターかスレイブかを設定する。
***マスター側のプログラム(Aとする) [#i81fb155]
#define CONN 1 // スレーブの接続番号
task main()
{
until (BluetoothStatus(CONN) == NO_ERR);
//プログラム
RemoteStartProgram(CONN, "B.rxe");
}
***スレーブ側のプログラム(Bとする) [#g99879f3]
#define CONN 0 // スレーブの接続番号
task main()
{
until (BluetoothStatus(CONN) == NO_ERR);
//プログラム
RemoteStartProgram(CONN, "C.rxe");
}//これでマスター側のCというプログラムが実行される
と、スレイブ側のプログラムからもマスター側のプログラムを...
その時は授業まであと2時間となっていたので焦ってしまい、...
?説明書に書いてあったメッセージのやり取りをするプログラム...
?「アームの動作が完了した=ボールがレールの上を通る」とい...
というものでした。
ですが実際?は、今までそのプログラムを使ったこともなかっ...
***?のプログラム [#ldc5802b]
#define SPEED 50
#define SPEED_SLOW 30
#define count 3
#define sound PlaySound(SOUND_CLICK);
task main()
{
int nOnline=0;
//最初のプログラム
if(nOnline=0){
if(SensorUS(S3)<count){//ボールが通る=アームの作業終わり
sound;
Wait(10000);
nOnline++;
//超音波センサーを使わない移動するプログ...
}
}
else if(nOnline=1){
if(SensorUS(S3)<count){ボールが通る=アームの作業終わり...
sound;
nOnline++;
}
}
else if(nOnline=2){
//この行に超音波センサーを使わない移動するプログラム...
if(SensorUS(S3)<count){
sound;
Wait(10000);
nOnline++;
}
}
else if(nOnline=3)
//超音波センサーを使わない移動するプログラムを入力
}//超音波センサーを使わない移動プログラムには、スレイブ...
というものを作ることが出来たのですが、超音波センサーが反...
ここで授業開始の20分前になっていました。このままでは超...
ここで、マスター側のプログラムをすべてつなげて、毎回スレ...
そしてこのプログラムを急いで作り、授業の時間になってし...
***その時のプログラム [#o8d234b7]
task main() {
SetSensorLowspeed(S1);
until (BluetoothStatus(CONN) == NO_ERR);
OnFwd(OUT_BC,50);
Wait(5500);
turn_right_here;
Wait(2500);
RemoteStartProgram(CONN, "arm time.rxe");
Off(OUT_BC);
Wait(10000);
Wait(10000);
Wait(10000);
int angle1 = GetAngle(20);
RotateMotor(OUT_BC,-SPEED,angle1);
OnFwd(OUT_B,-SPEED);
OnFwd(OUT_C,SPEED);
Wait(1500);
angle1 += GetAngle(60);
RotateMotor(OUT_BC,SPEED,angle1);
int d2 = searchDirection(120);
if(d2 > 15){
fwdDist(d2-15.0);}
else {fwdDist(d2-15);}
PlaySound(SOUND_UP);
turn_right_here;
Wait(200);
RemoteStartProgram(CONN, "arm time.rxe");
Off(OUT_BC);
Wait(10000);
Wait(10000);
Wait(10000);
int angle2 = GetAngle(20);
RotateMotor(OUT_BC,-SPEED,angle2);
OnFwd(OUT_B,-SPEED);
OnFwd(OUT_C,SPEED);
Wait(1500);
angle2 += GetAngle(60);
RotateMotor(OUT_BC,SPEED,angle2);
int d3 = searchDirection(120);
turn_right_here;
Wait(600);
if(d3 > 15){
fwdDist(d3);}
else {fwdDist(d3);}
PlaySound(SOUND_UP);
RemoteStartProgram(CONN, "rail1.rxe");
Off(OUT_BC);
Wait(10000);
Wait(10000);
Wait(10000);
int angle3 = GetAngle(20);
RotateMotor(OUT_BC,-SPEED,angle3);
OnFwd(OUT_B,-SPEED);
OnFwd(OUT_C,SPEED);
Wait(1500);
angle3 += GetAngle(60);
RotateMotor(OUT_BC,SPEED,angle3);
int d4 = searchDirection(120);
turn_right_here;
Wait(600);
if(d4 > 15){
fwdDist(d4);}
else {fwdDist(d4);}
PlaySound(SOUND_UP);
RemoteStartProgram(CONN, "rail2.rxe");
}
**授業中 [#j11ae266]
何とかプログラムを連携させることはできたのですが、超音...
案の定本番では、ロボットが満足に紙コップのところまで移...
***最終的なプログラム [#w7bf2987]
task main() {
SetSensorLowspeed(S1);
until (BluetoothStatus(CONN) == NO_ERR);
OnFwd(OUT_BC,50);
Wait(5500);
turn_right_here;
Wait(2000);
RemoteStartProgram(CONN, "arm time.rxe");
Off(OUT_BC);
Wait(10000);
Wait(10000);
OnFwd(OUT_B,-SPEED);
OnFwd(OUT_C,SPEED);
Wait(700);
OnFwd(OUT_BC,50);
Wait(4000);
RemoteStartProgram(CONN, "rail.rxe");
Off(OUT_BC);
}
このようにすべての動作を最初から時間で管理するプログラム...
これにより、超音波センサーは使うことはできませんでしたが...
ここまでで紹介しきれなかったプログラムはB班のarisykaさん...
*ロボットの紹介 [#h0b240db]
どのようにしてロボットが動く予定だったかを紹介したいと思...
**1.紙コップの15cm手前まで、超音波センサーを使い進む。 [#...
&ref(2014b/Member/edaeda/Mission3/image8.JPG,50%,画像の説...
**2.本体を旋回させ、アームの位置に紙コップを持ってくる。 ...
&ref(2014b/Member/edaeda/Mission3/image7.JPG,50%,画像の説...
**3.アームで紙コップを持ち上げて、レールの上にボールを乗...
&ref(2014b/Member/edaeda/Mission3/image9.JPG,50%,画像の説...
&ref(2014b/Member/edaeda/Mission3/image10.jpg,50%,画像の...
**4.空の紙コップのところまで、超音波センサーを使い進む。 ...
&ref(2014b/Member/edaeda/Mission3/image11.JPG,50%,画像の...
**5.レールを傾けて、空の紙コップにボールを入れる。 [#e625...
&ref(2014b/Member/edaeda/Mission3/image12.JPG,50%,画像の...
これが一連の動作になります。
*反省と感想 [#o13d5ed0]
最後までなぜ超音波センサーが誤作動を起こしてしまったの...
ページ名: