ブログ一覧

ブログをはじめました。

設立して二か月が経ち、やっとホームページとブログを始めることとなりました。

どうぞよろしくお願いいたします。

2017年06月04日

Arduino UNO購入

プログラミング用教育教材としてArduinoを使ってみることにしました。

Amazonで調べると399円から3240円まで幅広い価格で販売しているボードでした。開発環境もフリーで使えるということで教育教材としては適しているのではと思いました。

早速購入したArduino UNOです。届くのに時間がかかりましたが470円と驚きの価格でした。

今後少しずつプログラムを公開していきます。


2017年06月07日

IDEのインストール

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円で販売しています。

その他いろいろなスペックの距離センサーがあります。以下をご参照下さい。

 

2017年06月12日

PSD距離センサーで距離を読む

PSD距離センサーからアナログデータを読みます。

Aeduinoではプログラムをスケッチと言います。IDEでスケッチ例を開くとサンプルプログラムがいろいろと揃っています。
これを参考にすれば簡単にプログラムは完成します。
エディターを使って図のようにC言語でプログラミングします。

スケッチが完成したら、検証ボタンを押してください。コンパイルするということです。エラーがなければマイコンへの書き込みを行います。
続いてツールからシリアルモニターを開きます。ここでシリアルポート番号とボーレイトを確認します。9600ボーにプログラムで設定してありますので、画面左下のボーレイトを設定します。

以上で下の画面が出てくると成功です。
PSDにものを近づけるとClose、遠くなるとDistantとそしてその時の電圧と距離がモニターに出力されていればOKです。
距離の精度を上げるには補正が必要です。

2017年06月18日

Nanoでサーボモータを動かす。

Arduino Nano(\330.-)を入手したので早速使ってみます。
サーボMG996R(\1,630.-)を動かしてみましょう。

サーボモータのコネクターは
茶色 GND
赤  Vcc(+電源)
オレンジ 信号線
です。
サーボモータの使用電圧範囲は4.8V~7.2Vです。サーボモータには大きな電流が流れますので、電源はかならずマイコンとは別電源とします。
配線には普通のブレッドボード (\160.-)を使いました。接続は写真のようになります。

 

サーボモータをサイン波で動かしてみます。IDEのメニュー/ツール/ボードからArduino Nanoを選択すれば後はUNOの場合と同じです。つづく


2017年06月22日

サーボモータをサイン波で動かす。

サーボモータをサイン波で動かしてみます。
ROBO-剣のようにロボットアームをすばやく振り回す競技においては、動き始めや停止させる時にサーボモータに大きな負荷がかかります。ここで加減速を使うとこの負荷は減りサーボモーターがガタガタ振動することはありません。この加速、減速にサイン波を使います。

写真がプログラムです。モニターにはサーボへの指令角度が表示されます。
サーボモータは0度から180度までを加減速しながら往復します。

2017年06月27日

ROBO-剣用3軸ロボットアーム

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個でも問題なく動作しました。計測していませんが大きな電流が流れて電圧降下が大きいのだと思われます。

2017年06月28日

ROBO-剣はおもしろい。

ROBO-剣が7月16日に神奈川青少年センターで行われました。

画像処理は当然ながら人工知能搭載ロボットも出てきました。カメラで相手の動きを見て攻撃ができるようになるにはもう少し時間がかかると思っていましたが、人が戦っているように見えるから面白い。現在はパソコンを使用していますが、ラズパイ程度でも十分に使えそうになってきました。来年の競技規則がどう変わるか楽しみです。

 

2017年07月19日

16チャンネルPWMサーボモータドライバー

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の試合中のトラブルを予知できます。最近の中国産のサーボの品質は高くなっていることが確認できました。


2017年07月26日

TOF距離センサー

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で主流であるシリアルサーボを使うのが今後の方向でしょう。

2017年09月08日

ROBO-剣に参加するために(1/4)

第6回大会より、競技規則の改定がありました。
早速その規則に沿ってロボットを作ってみました。
1.竹ひごを使った竹刀の製作
競技規則「竹刀:直径3(mm)の竹ひごで作成し、鍔面より長さ300(mm)以下で、安全に留意すること」に沿ったものを製作します。

Amazonで竹ひごを購入します。
竹ヒゴは3mm×360mm(10本入) が557円でした。加工も楽でしなるのでサーボへのダメージも少なく良い選定と思います。
これに安全に留意して、ビニールキャップとチューブで先端の保護と固定し写真となります。

小手の部分は軽いブナの木の30mm×60mmの円柱を使います。島忠で見つけました。また鍔の部分はアルミのφ50の円板を同様に島忠で購入、穴加工し使用しました。
ブナ円柱にはφ12の穴が開いており、竹刀はゴムリングと一緒に差し込み支えることでさらに衝撃を緩和できます。


2017年10月12日

ROBO-剣に参加するために(2/4)

2.吸盤により固定するスタンドの製作

競技規則「台は最大300mm×300mmの正方形に入ること。吸盤により固定するものとする。」と今大会より、吸盤により固定する台とすることが義務付けられました。これら従い簡単に台を作成してみました。

パイプと台等(写真)と6mmの硬質アルミパイプとφ60mmの吸盤などを島忠で調達しました。


台の部分に6mmの貫通穴をドリルであけハイプを通し、吸盤を取り付ければロボットアーム固定スタンドの完成(写真)です。

2017年10月12日

ROBO-剣に参加するために(3/4)

3.ロボットとのつなぎを通信ケーブルのみにする方法
競技規則「電源はロボットに搭載し、USB/LANケーブルなど通信に必要なもののみ接続できる。」とあり、PCでUSB経由でロボットをコントロールする場合は、以下のように接続すると良いでしょう。
バッテリー、USB-RS485(orTTL)変換器、USBカメラ、USBハブ、USB延長ケーブルを準備します。写真の様に接続し、これらをすべてロボット側に搭載すれば、USB延長ケーブルをPCに接続するだけで、画像処理やロボットのコントロールをすることが出来ます。

MATLABを使ったサンプルプログラムなどは二足歩行ロボット協会のデータベースサイトROBO-剣講習会資料(2016.04.16)をご参照下さい。

 

近藤科学の場合  USB-TTLシリアル変換

 

ROBOTISの場合 USB-RS485/TTLシリアル変換

 

出来るだけ簡単にロボットを設置接続し、試合が開始できると良いでしょう。また将来移動型のロボットに搭載することを想定して開発を進めましょう。

2017年10月13日

ROBO-剣に参加するために(4/4)

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 


2017年10月13日