[[2018a/Member]] 目次 #contents *課題1 [#o322c2f3] これまで住んだことのある都道府県名、市町村名、地区名などの中から&br; 2文字以上のものを選び、それをA4の紙を書くロボットを製作せよ。 **選んだ文字 [#tb0eedf8] 長野にある&color(#32cd32){「村山」};という地名を選びました。 *ロボットの説明 [#na9486b6] **作戦 [#ld0382e4] 以下のようにX軸,Y軸を取って,XY座標系で制御をしようと考えた.&br; なぜこのように制御したのかは,動き回る系はプログラムがめんどそうだったから... #ref(./文字の説明.png,50%,XY座標系) **ロボットの機構 [#nf6a3ec5] どのようにXY座標を制御しているかを説明します.&br; &br; と,その前に全体像がどのようになっているのか見てみましょう. #ref(./全体像.png,70%,全体像) 上のように&br; X軸はタイヤを使って制御し&br; Y軸はギザギザの機構を使ってアームのように制御しました.&br; Z軸(ペンの上げ下げ)は緑で囲ったような機構で制御しました.&br; &br; それぞれの機構について詳しく解説していきます. ***X軸 [#y4bcbf9d] X軸は1つのモーターでタイヤを正転・後転させることで制御をしています.そのため,本体は回転運動はできず,1直線上にしか進めません.&br; この機構の工夫点として,ギアのかみ合わせがあります.モーターの回転を直で接続すると回転が速く制御しずらいため,いくつかのギアをかませて回転を遅めています.&br; また,モーターの回転を90度回転させるギアを使ってうまく動力を伝えました.下の図が噛み合わせの機構です. #ref(./タイヤの歯車のかみ合わせ.png,60%,ギア噛み合わせ) ちなみに前のタイヤはモーターと接続されていません ***Y軸 [#lfe2efe3] ラックという部品を使って,歯車の回転運動を直線運動に変える機構を使いました. #ref(./ラック.png,80%,ラック) 実物で見るとこんな感じです.&br; #ref(./ラック実物.jpg,80%,ラック実物) この機構の利点は,比較的コンパクトにまとめられるという点です.&br; また,欠点としてかみ合いの遊びの分,制御が難しくなることです.&br; #ref(./あそび.png,80%,あそび) ***Z軸 [#p9dd1731] 過去の作品を参考にして作りました.詳細は[[こちら>http://yakushi.shinshu-u.ac.jp/robotics/?2006a%2FD7%2F%B2%DD%C2%EA%A3%B1%B1%A6]]&br; 機構を簡単に説明すると以下の図のようになります. #ref(./Z機構.png,40%,Z軸)&br; 詳しく見ていくと,まず下の小さいVプーリーとモーターとは下の写真のように接続されています. #ref(./vプーリー.png,60%,Vプーリー小)&br; 次に,モーター部分はこのようになっています.&br; #ref(./モーター.png,60%,モーター)&br; また,ペンの接続は下の写真のようにゴムを使ってやっています. #ref(./ペンの接続.png,60%,ペン)&br; **制御する [#g8233f9d] #define straight OnRev(OUT_A); //X方向の前移動 #define back OnFwd(OUT_A); //X方向の後ろ移動 #define stopA Off(OUT_A); //モーターAの停止 #define stopB Off(OUT_B); //モーターBの停止 #define right OnFwd(OUT_B); //Y方向の右移動 #define left OnRev(OUT_B); //Y方向の左移動 #define up OnFwd(OUT_C);Wait(50);Off(OUT_C); //ペンを上げる #define down OnRev(OUT_C);Wait(50);Off(OUT_C); //ペンを下げる #define freez Wait(15); //一時停止 task main() { down; //1角目 straight; Wait(40); //a stopA; freez; up; straight; Wait(10); //b stopA; freez; down; //2角目 straight; Wait(40); //c stopA; freez; up; back; Wait(70); //d stopA; freez; left; Wait(30); //e stopB; freez; down; //3角目 right; Wait(100); //f stopB; freez; up; left; Wait(40); //g stopB; back; Wait(15); //h stopA; freez; down; //4角目 left; straight; Wait(20); //h stopA; stopB; freez; right; straight; Wait(10); //i stopA; stopB; freez; up; left; Wait(55); //j stopB; straight; Wait(50); //k stopA; freez; down; //5角目 right; Wait(100); //l stopB; freez; left; back; Wait(10); //m stopA; stopB; freez; up; left; Wait(30); //n stopB; back; Wait(20); //o stopA; freez; down; //6角目 right; straight; Wait(10); //p stopA; stopB; freez; up; left; Wait(50); //r stopB; straight; Wait(90); //q stopA; freez; down; //7角目 right; Wait(80); //s stopB; freez; up; left; Wait(40); //t stopB; back; Wait(30); //u stopA; freez; down; //8角目 right; Wait(30); //u stopB; freez; straight; Wait(80); //v stopA; freez; left; Wait(30); //w stopB; freez; up; } *完成した文字 [#oaef5485]