設立して二か月が経ち、やっとホームページとブログを始めることとなりました。
どうぞよろしくお願いいたします。
設立して二か月が経ち、やっとホームページとブログを始めることとなりました。
どうぞよろしくお願いいたします。
Arduinoのプログラムを開発するには、Arduino IDEを以下のサイトよりパソコンにインストールします。
https://www.arduino.cc/en/Main/Software
上のサイトからDownload the Arduino IDEを選択しwindows installerをダウンロードします。あとは指示に従えば簡単にインストールできました。
IDEを起動し、マイコンとパソコンをUSBケーブルで接続します。まずシリアルポートの設定が必要です。このポートを通してプログラムをマイコンボードに書き込みます。
次にボードがArduino/Genuini Unoになっていることを確認します。これで開発環境は整いました。
これからプログラミングを行いますが、マイコンのプログラムを書くにあたって入出力を行わないことはありえないので、まず入出力が簡単にできるボードを手に入れます。
Amazonで価格200円のArduino senser shieldを見つけました。自分でユニバーサルボードを買ってはんだするよりはるかに安く簡単です。
PSD距離センサーを接続しアナログデータを読む準備をします。
写真のようにアナログチャンネル0にPSDセンサーを接続します。GND,5Vも接続します。間違いのないように。
AmazonではSHARP 距離センサー GP2Y0A021YKF6 が 1,372円で販売しています。
その他いろいろなスペックの距離センサーがあります。以下をご参照下さい。
PSD距離センサーからアナログデータを読みます。
Aeduinoではプログラムをスケッチと言います。IDEでスケッチ例を開くとサンプルプログラムがいろいろと揃っています。
これを参考にすれば簡単にプログラムは完成します。
エディターを使って図のようにC言語でプログラミングします。
スケッチが完成したら、検証ボタンを押してください。コンパイルするということです。エラーがなければマイコンへの書き込みを行います。
続いてツールからシリアルモニターを開きます。ここでシリアルポート番号とボーレイトを確認します。9600ボーにプログラムで設定してありますので、画面左下のボーレイトを設定します。
以上で下の画面が出てくると成功です。
PSDにものを近づけるとClose、遠くなるとDistantとそしてその時の電圧と距離がモニターに出力されていればOKです。
距離の精度を上げるには補正が必要です。
Arduino Nano(\330.-)を入手したので早速使ってみます。
サーボMG996R(\1,630.-)を動かしてみましょう。
サーボモータのコネクターは
茶色 GND
赤 Vcc(+電源)
オレンジ 信号線
です。
サーボモータの使用電圧範囲は4.8V~7.2Vです。サーボモータには大きな電流が流れますので、電源はかならずマイコンとは別電源とします。
配線には普通のブレッドボード (\160.-)を使いました。接続は写真のようになります。
サーボモータをサイン波で動かしてみます。IDEのメニュー/ツール/ボードからArduino Nanoを選択すれば後はUNOの場合と同じです。つづく
6/30がROBO-剣の参加申し込み締め切りということですが、しっかりとサーボモータの特性を理解していれば7/16の大会に向けて製作は十分に間に合います。
最近の低価格のサーボモータの特性はどうなっているのか調べるために下記サーボを購入しました。
TOWER PRO MG996R 回転角180°(\1,630.-)
Quimat LDX-218 回転角180°(\2,200.-)
Kuman KY72-1 回転角270°(\2,199.-)
これらに合うメタルホーンも販売されています。
ANBE製のメタルホーンブラケットセット(¥699.-)
サーボモータが多関節ロボットに使えるかどうかは実際にサーボモータを組み合わせて使ってみるのが一番です。
まず多軸で使うには電源ラインと信号ラインをしっかりと配線しておく必要があります。
次の写真は電源をサーボモータに供給するためのインターフェイスボードです。Arduinoでは6チャンネルのPWM出力端子があります。これをすべてコネクターに取り出しました。
次の写真は3軸のロボットアームをありあわせの部品で作成したものです。このロボットアームに加えて転がっていたサーボモータを追加して全部で6個のサーボモータを同時にサインカーブで加減速しました。12V5Aの電源では3個のサーボを駆動するのが限界でそれ以上接続するとサーボモータのCPUがリセットされました。11.1V 2000mAh 20Cのリポを使えば6個でも問題なく動作しました。計測していませんが大きな電流が流れて電圧降下が大きいのだと思われます。
ROBO-剣では最大6軸もあれば充分でArduinoボード上のPWM出力で対応できます。しかしROBO-ONEに参加する二足歩行ロボットを作るには16~24軸が必要です。
写真は16チャンネル 12-ビット PWM Servo モーター ドライバー IIC モジュールボードの写真です、I2CでArduinoボードと接続し、PWMを16軸分出力できます。2個つなげば32軸分の出力が可能となります。
以下よりライブラリーをダウンロードすれば簡単に動作します。
https://github.com/adafruit/Adafruit-PWM-Servo-Driver-Library
このサンプルプログラムの中にサーボを一個づつのこぎり波で駆動するプログラムがあったので、それを16軸同時に動かせるようにしてテストを試みました。が、サーボモータの手持ちが9個しかなかったので、9個を同時期駆動で、サーボモータへの影響を確認しました。耐乱用試験を実施することで、過酷なROBO-ONEの試合中のトラブルを予知できます。最近の中国産のサーボの品質は高くなっていることが確認できました。
TOF(Time Of Flight)方式の距離センサーが流行り始めました。これは光が反射して帰ってくるまでの時間を計測して距離を知るもので最近アマゾンでもセンサー部分は5000円程度で販売されています。精度の良い測定となるとしっかりしたプログラムを書かないと安定した距離データは得られません。
㈱ベストテクノロジーがソフトを含めた距離センサーを開発したので、これを使ってみました。
Dynanixelと同様にシリアル通信でデータを得ることができます。またAnalog出力もあるのでArduinoでも簡単に使用できます。
今回は写真上ように小型サーボ(SG90)を2個組み合わせて、このセンサーをスキャンしながらデータを取ってみました。
センサーからの距離1mまでを10分割し、0から9までの数字でモニターに表示しました。また1m以上を'*'で表示しました。'C'はスキャンの行きの終わり'e'は1工程の終わりを示します。行きと帰りが一行であらわされています。サーボのスピードを早くするとサーボが追いつけなくなり左右が対象ではなります。
このモニター画面ではほぼ対象な状況ですが、90度を往復するのに2秒ほどかかってしまいます。ROBO-ONE autoで使用するためにはスキャンスピードを上げる必要があります。その場合はサーボの角度データを読み、角度と距離の関係をキッチリ求めるなど複雑になります。
PWMサーボを使ってきましたがロボット用途には限界があるようです。やはりROBO-ONEで主流であるシリアルサーボを使うのが今後の方向でしょう。
第6回大会より、競技規則の改定がありました。
早速その規則に沿ってロボットを作ってみました。
1.竹ひごを使った竹刀の製作
競技規則「竹刀:直径3(mm)の竹ひごで作成し、鍔面より長さ300(mm)以下で、安全に留意すること」に沿ったものを製作します。
Amazonで竹ひごを購入します。
竹ヒゴは3mm×360mm(10本入) が557円でした。加工も楽でしなるのでサーボへのダメージも少なく良い選定と思います。
これに安全に留意して、ビニールキャップとチューブで先端の保護と固定し写真となります。
小手の部分は軽いブナの木の30mm×60mmの円柱を使います。島忠で見つけました。また鍔の部分はアルミのφ50の円板を同様に島忠で購入、穴加工し使用しました。
ブナ円柱にはφ12の穴が開いており、竹刀はゴムリングと一緒に差し込み支えることでさらに衝撃を緩和できます。
3.ロボットとのつなぎを通信ケーブルのみにする方法
競技規則「電源はロボットに搭載し、USB/LANケーブルなど通信に必要なもののみ接続できる。」とあり、PCでUSB経由でロボットをコントロールする場合は、以下のように接続すると良いでしょう。
バッテリー、USB-RS485(orTTL)変換器、USBカメラ、USBハブ、USB延長ケーブルを準備します。写真の様に接続し、これらをすべてロボット側に搭載すれば、USB延長ケーブルをPCに接続するだけで、画像処理やロボットのコントロールをすることが出来ます。
MATLABを使ったサンプルプログラムなどは二足歩行ロボット協会のデータベースサイトROBO-剣講習会資料(2016.04.16)をご参照下さい。
近藤科学の場合 USB-TTLシリアル変換
ROBOTISの場合 USB-RS485/TTLシリアル変換
出来るだけ簡単にロボットを設置接続し、試合が開始できると良いでしょう。また将来移動型のロボットに搭載することを想定して開発を進めましょう。
4.アセンブルして完成へ
写真はRobotisのサーボで5軸のロボットアームを構成しスタンドと小手、竹刀を装着したところです。後は色付きのテープなどを巻いて、規定どうりに着色します。またバッテリーやUSB-TTLシリアル変換器などはケースに入れ、ケーブルは相手の竹刀が引っ掛からないよう配線を処理します。
ロボットアーム部分はサーボモーターのメーカーがブラケットなども販売していますので適切なものを選定して作成してください。また近藤科学などからロボットアームアッセンブリーとして販売されています。
画像処理においてはカメラの取り付け位置が重要となります。
再度の掲載になりますが、プログラムは以下をご参照下さい。(二足歩行ロボット協会への入会せずに閲覧できます。)
MATLABを使ったROBO-剣サンプルプログラム(二足歩行ロボット協会データベース)
ROBO-剣講習会資料(2016.04.16)
技術情報(以下の3点が参考になります。)
講演2_roboone_serverについて_20160403.pdf
講演5_6_7_Simulink関連.zip
講演QA_GUIDE_sample.zip