*文字書きロボット [#ee66374f] このロボットは前後の移動とアームさらにはペンの上げ下げという3つの機能を使い文字を書いています。始めは僕たちの班はいちいちペンをマシンを移動させて持って行こうとしましたが、マシンが曲がろうとすると紙がグチャグチャになるし、口などの字を書く時に角がずれたりしてうまくいかないと思いました。特にnqcの場合後ろタイヤの回転だけで曲がっているので余計に紙がグチャグチャになります。そこで、アームを使って書く方法をおもいつきました。まず、自分たちの力だけでは、うまくやるのが難しいと考えて図書館にnqcに関する本を借りに行きました。本があると便利なことは自分たちのアイディアを形にしやすいことです。 **ペンの上げ下げ [#x22c7505] ペンの上げ下げを考えている時に始めは回転を利用してペンを紙につけようとしていましたが、ペンが思うように紙に接触してくれず悩んでいました。そこで本を開いてみると、上下移動をさせる方法が書いていました。どうやったかというと、ネジネジの歯車を丸い歯車に絡まさせて上下させました。実際に試してみるとうまくいきました。ただ1つ悩んだのが上下移動させるには支柱を固定してはダメなことでした。そこで脇に壁を作り安定させました。また短かい時間でもすごく動くので、回り過ぎるとモーターが回らなくなる特殊な歯車を使いました。 http://yakushi.shinshu-u.ac.jp/robotics/?plugin=attach&refer=2015a%2FMember%2Fmorinokumasan%2FMission1&openfile=S__9723911.jpg **前後移動 [#i1e518d1] 前後のだけの移動なのでモーターを1つで移動しています。ただこの時のポイントは2つのタイヤを1つのモーターで回すように設計することです。そうしないと、曲がってしまうからです。 **アーム [#y5cae258] アームでは下に平たい歯を敷きそれをモーターに噛ませて移動させています。この時に歯が滑るレールを滑りやすいパーツで組み立てることです。 http://yakushi.shinshu-u.ac.jp/robotics/?plugin=attach&refer=2015a%2FMember%2Fmorinokumasan%2FMission1&openfile=S__9723908.jpg *定義 [#yd6721ad] #define naname(t) OnFwd(OUT_AB);Wait(t);Off(OUT_AB); #define naname2(t) OnRev(OUT_A);Wait(t);Off(OUT_A);OnRev(OUT_B);Wait(t);Off(OUT_B); #define naname3 OnFwd(OUT_A);Wait(25);Off(OUT_A);OnRev(OUT_B);Wait(25);Off(OUT_B); #define mae(t) OnFwd(OUT_A);Wait(t);Off(OUT_A); #define usiro(t) OnRev(OUT_A);Wait(t);Off(OUT_A); #define migi(t) OnFwd(OUT_B);Wait(t);Off(OUT_B); #define hidari(t) OnRev(OUT_B);Wait(t);Off(OUT_B); #define kaku OnFwd(OUT_C);Wait(7);Off(OUT_C); #define ageru OnRev(OUT_C);Wait(7);Off(OUT_C); 定義についてはnanameというのはアームとタイヤを同時に動かすことで実現しました。この良いところはwaitタイムを自由に設定できるところです。1、2、3があるのは左斜めや右斜めがあるからです。maeやusiroというのはそのままでタイヤを前や後ろに動かして移動します。これも移動時間を自由に設定できるので使い勝手がいいです。migiやhidariもそのままでアームを伸ばしたり、引っ込めたりしてペンを移動させます。kakuやageruもそのままでペンを上げたり降ろしたりします。 *プログラミング [#p9005ab5] task main () { migi(32);//エの下の部分 ageru; hidari(64); kaku; mae(32);//人偏下棒 ageru; naname2(22); kaku; naname(44);人偏上棒 ageru; usiro(16); kaku; migi(48);左1番上 ageru; usiro(16); kaku; hidari(32);左2番目 ageru; migi(16); kaku; usiro(32);//左縦棒 ageru; naname3; kaku; naname(45);左斜め棒 ageru; } 今回僕が書いた文字は「佐」という文字です。書き順は上のコメントの通りです。工夫した点はなるべく移動距離を短くしようとしたところです。しかし、実際のところ正しい書き順で書くのが一番書きやすいのかもしれないと思いました。少し難しかったのは、人偏の重なっているところを合わせるところや、左のクロスささっているところです。コツとしては、とにかく一回やってみて少しずつ直していけばいいと思います。 *感想 [#w7c3b39f] 始めはいきなり文字を書くロボットを作れと言われて正直少しびっくりしました。実際にやってみると始めはやはりしどろもどろになりましたが、友達と相談して色々と意見を出し合い、最後には立派なロボットができたので、よかったです。悩んだ過程もどうやったらうまくいくかを話し合いとても楽しかったです。僕たちのメンバーは3人でしたが、他の2人がとても一生懸命考えてくれて、アイディアを形にすることができました。アーム方式にして良かったところはプログラミングが複雑にならずに済んだところです。なぜなら、移動の方法に斜めというものがあるからです。また、前後の移動だけなので紙もグチャグチャにならずに済みました。