ブログ一覧

ブログをはじめました。

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

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

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日