投稿

3輪の試作について(ソフト編)

イメージ
3輪を試してみたい人が、最初から先輩と同じレベルを求めて始めると挫折すると思うので、できるだけ適当にとりあえず動かしたい、という人向けの記事です。 ハード編は こちら 。 まずは後輪の速度制御をしない場合です。 オムニホイールをそれぞれの動かしたい方向に対するモーターの出力は以下の通りです。 前進と後退で、値が少数になっていますが、両方100%など同じ値で大丈夫です。 横移動のとき、後輪は100%または -100%で動かすだけなので、OUTPUT制御のモータードライバを接続した場合でも、特に速度を制御する必要はありません。 あと、ロボットを回転させたい場合、後輪を停止したまま、左右のタイヤを逆回転させれば、回転させることができます。 ここまで来るのもそれなりに大変だと思いますが、まずはここまでこれば、思った方向に動かすことはできるかと思います。 あとは、①常に前を向きながら、②センサーの値によって動く方向を決めて動くプログラムを作っていきます。 試行錯誤すれば、それなりに動く3輪を作ることができます。 大会で常連が、楽に行っている(ように見える)ボールを正面にとらえる、という動きをさせるのは、思ったより難しいです。少しずつ動くようになるのは楽しいですよ。頑張ってみてください。

令和4年度前期 ロボットプログラミング入門講座が終了しました

イメージ
  7/2(土)に第5回のロボットプログラミング講座が行われました。 選挙のため、1週繰り上げて行われました、第5回の講座をもって、入門講座は終了です。 ロボットを組み立て、パソコンを使って動かす方法を学びました。 センサーの仕組み、センサーを使って、状況に応じてロボットが判断して動くプログラミングにも取り組みました。 これでサッカーをやらせて遊ぼうというのがロボカップジュニアのサッカー競技です。 遊びだけれど、そのためには知らないと分からないことがたくさんあります。 今回の参加者は6人ですが、みんなボールを追いかけてサッカーができるようになりました。 ただ、反応しないことがあったり、変な方に行ってしまったりとまだほっとけないロボットたちです。 このロボットたちをいかに自分たちの手で改良し、より強いロボットにしていくのか、そこにはモノづくりの楽しさがあり、その試行錯誤の過程は、理科の実験そのものです。 興味を持ったならぜひ、冬の大会にもチャレンジしてみてほしいと思います。 最後に経験者も含めたメンバーと一緒に試合をしました。とても面白かったです。またやりたいですね。

3輪の試作について(ハード編)

イメージ
TJ3Bでロボカップを初めて試合に出ると、3輪のオムニホイールにしたくなると思います。 その場合、結構な金額がかかるので、戸惑う選手も多いようです。 2輪のTJ3Bから3輪にするために必要なのは、 ・ギヤードモーター 3つ ・オムニホイール 3つ ・モータードライバー の三つです。 今回は試作として、できるだけ低コストでお試し3輪マシンを作る方法です。 1.ギヤードモーター コストを抑えるのであれば、当然、元からあるもので試してみます。だめなら後から適切なものを買い替えればよい。 2輪で2つのギヤボックスを使っているはずですので、もう一つギヤボックスを追加します。 購入するのは、ダイセンのTTモーター48:1です。 2.オムニホイール これは低コストでそろえるためには市販品では難しいです。安いオムニホイールはあってもホイールとモーターを接続する方法が用意されていなかったりするので、ジョイントを自作する必要があります。 ジョイントを作成できるならオムニホイールもCADで設計してアクリル板で作ると最も安上がりです。 それらが自力では難しい場合は、ダイセンのプラスチックオムニホイール(ロボカッパーには見た目から枝豆オムニと呼ばれている)を購入しましょう。TTモーターとつなげるようにセットになっているので助かります。 3.モータードライバー ダイセンの6CHモータードライバーが第一候補ですが、高額のため、まず勉強もかねてHブリッジのモータードライバを試してみましょう。 おすすめ1 Maker Drive https://akizukidenshi.com/catalog/g/gM-16281/ ボタンでモーターを回すテストができるので、電源やモーターが正しくつながっているか確認が簡単です。最大1Aなのが気になりますが、モーターを変更しなければ大丈夫と思います。 2CHなので2つモーターを回すことができます。最近のおすすめです。 スイッチサイエンスでは同じCytron製の3A版も売っています。値段は少し高くなります。 おすすめ2 DRV8835使用DCモータードライブキット https://akizukidenshi.com/catalog/g/gK-10346/ テスト機能はありませんが安価で3Aまで流すことができます。大きさも小さいので慣れてきたらこちらもよいでしょう。

TJ3Bで三角関数を使う

イメージ
TJ3Bでの三角関数の使い方を紹介します。 先輩のポスターなどで見て、三角関数を使ってみたい、という選手向けです。 なぜ三角関数を使うかの例はこちらの記事を読んでください。 センサの値からボールのある角度を求める(理論編) おそらく、辺の長さから角度を求めたいと思います。 変数X、変数Y にそれぞれ、横の長さ、縦の長さが代入されていたとして、 C-CODEで、このように書くと使えます。 gV[VAR_B] = atan2( gV[VAR_Y] , gV[VAR_X] )/3.14*180; atan2(Y,X) という関数を使います。この行を書くだけで辺の長さから角度を求めることができます。 縦の長さのYが先に来るのに気を付けてください。 これで変数Bに角度(単位は°)が代入されます。 図にするとこんな感じです。 最後に3.14で割って、180をかけていますが、これは式で求められる角度が0~360度ではなく、単位がラジアンという0~6.28の値(半径1の円周の長さで角度を表す)を使うので変換しています。 この式が本当に正しく動くのかの検証のために、実際に値を代入して、得られる結果を実験してみました。 以下のプログラムをC-STYLEで作成しました。 先ほどの文は12行目に入っています。 C-CODE 001|//-------------------------------------------------------------------------------- 002|#include "D_Main.h" 003|#include "D_I2C.h" 004|#include "D_SIO.h" 005|#include "D_EIO.h" 006|//-------------------------------------------------------------------------------- 007|// Program Name : atna2ループ.C 008|//-------------------------------------------------------------------------------- 009|void

ロボットプログラミング入門講座 R4前期 開催中

イメージ
 5月21日(土)より、ロボットプログラミング入門講座講座を開催中です。 入門講座は、5/21, 28, 6/11, 25, 7/9の5回の講座で、小学4年生から中学生までが参加できる講座です。5月からと10月からの年2回開催しています。 初めてロボットを扱う子のための講座で、プログラミングでどのようにロボットを動かすかを学びます。 入門用のソフトウェアでブロックを並べるようにプログラミングがおこなえますので、初心者でも大丈夫です。プログラミングでロボットを動かせるようになったら、サッカーを行うプログラミングにチャレンジします。 初回はロボットの組み立てです。 部品を一度組み立てた後にも改造のために分解できるように、ねじとナットが使われているんですが、慣れない子どもたちにはナット回しも一苦労です。正しく組み立てられるとロボットが正しく動き出しますが、ナットがゆるんでいたり、取り付け方法が逆だったりするとロボットが変な動きをしたりします。 2回目からいよいよプログラミングを開始します。 まずは前進してみるプログラムから。ロボットに命令を与え、その通り動くという経験は楽しいもののようです。その過程は驚くほど簡単で、そこで戸惑う子はいません。 適当な命令で適当な動きをするのはすぐできますが、思い通りに動くような命令を作るとなると、難しくなってきます。あーでもない、こーでもないと試行錯誤が必要です。 3回目はセンサーを使ったプログラミングを行います。 命令をただ実行するだけのロボットは、前進の命令を出すと壁があっても突っ込んでいきます。いくら命令されても人間はそんなことはしませんね。目で見ることができ、危ないと思ったらやらないという判断をしているからです。ロボットにもセンサーという「目」がついているので、これを使って、「前進するけどもし壁があったら止まる」というプログラムを組んでみます。 4回目になるとサッカーのプログラムをします。 目の前にボールがあると反応する「赤外線センサー」を使って、前にボールがあるときは・・・、ないときは・・・というプログラムを組んでいくと、ボールを追いかけるプログラムができます。ほぼ3回目にやった内容で試合までできてしまうんですが、もっと強くするにはどうすればいいのか? これを考えていきます。 5回目 サッカー大会 出来上がったプログラムでサッカ

センサの値からボールのある角度を求める(理論編)

イメージ
IF文のプログラムの限界  IF センサの値に反応したら  ・・・ Else 反応しなかったら  ・・・ というプログラムをまずは書いていると思います。ですがこれで制御するうちはどうしても「ガタガタ」動く、という状況ができると思います。 センサーのしきい値の境界で、ロボットが二つの命令を交互に行うような状態になるからです。 これは、制御で言えば、もっとも原始的なON/OFF制御です。 ある程度、思い通りにロボットが動くようになってきたら次の段階に進みましょう。 まずはセンサーの値ですが、IF/ELSEの判定では、どうやっても境界ができるので多少は改善できても根本的なガタガタは治りません。 ではどうしたらいいのでしょうか? ・・・思いつきますか? 隣り合ったボールセンサーの値を比較して、その差からだいたいの位置を割り出し、それを使うという方法が考えられます。 ただ、人間であればなんとなく位置の想像がつきますが、ロボットにどのように位置を伝えたらいいでしょうか。 実はそれを求めることができるとっても便利な「計算式」があります。 それが「三角関数」です。 ※関数というのは何かを求める計算式のことです。 三角関数とは何か 三角関数とは何か、調べてみましょう。 三角関数とは、直角三角形の辺の長さが決まれば、角度が決まる、角度が決まれば辺の長さが決まる、だからそれを求める式を作っておこう、というものです。 例えば、この図でいえば、一番長い辺の長さを1に決めて、一つの角の角度をきめてやれば、横と縦の長さはひとつに決まります。 逆に、縦と横の辺の長さが決まれば、角度がひとつ決まります。 ここまでは分かると思います。分からない人はもう一度読み直してみて下さい。それほど難しいことは何も言っていません。 ここまで理解したとして、ここからが重要なのですが、 記憶しておく必要などなにもなく、30度の時に、それぞれの長さってどうなるんだっけ?覚えておくのは面倒だから記号で書いておいて後で計算しよう、というものが三角関数です。 そして、それぞれ 横の長さ=cos(角度)  ※コサインと読みます。 縦の長さ=sin(角度)  ※サインと読みます。 と書きます。 30度の時の横の長さは 「cos(30度)」です。 昔は三角関数表というものを誰かが作っておいて、それを見ながら値を出していたみたいです。

【2022年版】練習用赤外線発光ボール作成

イメージ
練習用赤外線発光装置の内部基板 ロボカップジュニアでは公式ボールとしてイーケイジャパンの赤外線発光ボールを使います。 RoboCupJunior公式赤外線発光ボール [ RCJ-05 ] ボールとはいえ、ロボットがボールを認識するため赤外線を発光する回路が入っている機械のためけっこう高いです。 ボールは数個ありますが、新しく始めたメンバーが、ロボットがボールに反応するか、回り込みができるかのトライ&エラーをすると、行列待ちになってしまいます。 当然始めたばかりの生徒も持ってません。これがないから家でも試したいけどできない、という子もいます。なら買うしかないね、というのは正論ですが正直ここの部分はなんとかしてあげたいというのが本音です。どうせなら、ロボカップジュニアの大会を経験して、これにならお金をかけていいかな、と思えてから気持ちよく購入してほしいものです。