メカナムロボットのLesson2で使っている超音波センサーを動かしてみました。

OSOYOOさんのメカナムロボットのLesson2では超音波センサーとサーボーモーターを使ったプログラムになっています。

こちらもGitHubにまとめ始めていますが、まだ途中です。

超音波センサーを試してみる

ちょうど同じ超音波センサーを持っていたので、Lesson2のソースコードを参考にしてArduinoに接続してみました。

HC-SR04_test.jpeg

メカナムロボットのLesson1(モーター制御)のソースコードを読んでみました。

OSOYOOさんのメカナムロボットでは5つのLessonがあり、それぞれにArduinoのプログラムが用意されています。

まずはLesson1のプログラムを読んでみますが、このプログラムのライセンスがどうなっているのかが気になりました。おおたFabの「素人でもロボットをつくりたい」に参加されているかたとGitHubで共有しながら必要に応じてソースコードを改変して実験してみたかったのです。

OSOYOOさんではGitHubにソースコードを登録しているのですが、今回のメカナムロボットのソースコードは登録されていないようです。また、GitHubにおいても、ライセンスは明記されていません。マニュアルにはオープンソースと書かれていますが、念の為OSOYOOさんに、プログラムのライセンスを確認してみました。

メールをだしたところ、すぐ返事をいただけました。

  • GitHubに登録しているソースコードはApacheライセンスに基づくOSSです。
  • メカナムロボットのソースコードはGitHubに登録していませんが、Apacheライセンスに基づくOSSです。
  • コンテンツにOSOYOOの名前が記載されている限り、ブログまたはGitHubを使用して公開できます。

ライセンスがはっきりしたことで、メカナムロボットのサンプルプログラムをGitHubに登録することができました。

まずはLesson1のソースを読んで基本的なモーター制御の部分をGitHubにまとめました。

ここまでは非常にシンプルな構造なので理解は容易です。

次はLesson2のソースを読んでみます。

メカナムロボットに超音波センサーを取り付けました(おおたFab 第35回 素人でもロボットをつくりたい)

前回でメカナムロボットのLesson 1が終わりました。今回はLesson 2として超音波距離センサーを取り付けて障害物を回避して動くようにします。

超音波距離センサーを組み立てます。まず、ネコの顔の形をしたプラスチックに固定します。

hcsr04_neko1.jpeg

この超音波距離センサーはよく見かけるもので秋月電子でも販売されています。

メカナムロボットの試運転を行いました(おおたFab 第34回 素人でもロボットをつくりたい)

前回はメカナムロボットのシャーシ部分の組み立てを行いました。今回はシャーシにモータードライバやマイコンボードを取り付けて実際に動かしてみます。OSOYOOのマニュアルのLesson 1の後半になります。

まずベースとなる透明なアクリル板にマイコン基板(Arduino Mega)やモータードライバ基板を取り付けます。モータードライバ基板は2枚あり、1枚は左側の2つのモーターに、もう1枚は右側の2つのモーターに接続します。3桁の7セグメントLEDが見えますが、これは電圧計でした。搭載するバッテリーの電圧を常に表示しています。

mecanum_robot_part2_001.jpeg

アクリル板の取り付け穴の位置を確認したところ、基板とアクリル版の穴位置は合っていても、付属のプラスチックネジやプラスチックナットが大きすぎて、基板のコネクタにあたって取り付けられないところがいくつかありました。他のネジで固定されているので問題はなかったのですが、やや不安がある設計だと感じました。

メカナムロボットを組み立ててみました(おおたFab 第33回 素人でもロボットをつくりたい)

おおたFabさんで、「素人でもロボットを作りたい」というセミナーが行われています。

今回、新しい素材としてOSOYOOさんのメカナムロボットをいじってみることになりました。

このロボットの特徴はメカナムホイールといわれる車輪です。車輪の表面に斜め45度の小さい樽のようなローラーが取り付けられています。4つのメカナムホイールには4つのモーターが取り付けられていて、4つのモーターの駆動力をうまく調整することで、様々な方向に動かすことができます。通常の車ですと直接車輪の向きを変更することで方向を変えていますが、このメカナムホイールは車輪の向きは変えずにヌルヌルと動くようなイメージです。

もちろんこのような制御をおこなうためにはマイコンが必要になります。このキットにはArduino Megaやモータードライバ、センサーなどが同梱されているので、Arduinoをプログラミングしてロボットの動きを制御することになります。

商品のパッケージは2つの段ボールに分かれていました。

mecanum_robot1.jpg

部品がぎっしりです。制御用のArduino Megaやセンサーなども入っていますが、今回は基本シャーシまで組み立てます。

MBeeDuinoでタミヤの模型を制御してみた

  •  
  •  
  • Category:

@naka_at_kureさんが、MBeeDuinoというArduino互換で3chモータードライバとXBeeが搭載できる生基板を配布されていたので分けていただきました。
タミヤの模型に実装できるように穴の位置やサイズなどよく考えられており、我が家にあるタミヤのレスキュークローラーに載せられないかなと思ったのです。
部品を集めて完成したMBeeDuinoはこんな感じです。サイズも小さいです。

mbeeduino1.jpg

タミヤのレスキュークローラーはこんな感じです。かっこいいでしょ〜。

rescue_crawler1.jpg

モーターが3つ搭載されていて、2つはキャタピラの回転制御、もう1つは前方のキャタピラを上下することができます。
MBeeDuinoはモーターを3つ制御できるのでまさに最適です。
どこに取り付けようかと考えましたが、一番広いスペースである本体の裏側に目をつけました。

rescue_crawler2.jpg

試しにここにMBeeDuinoを取り付けたところピッタリです。

rescue_crawler3.jpg

この状態でモーターと配線して、MBeeDuinoで制御してみました。
キャタピラを1秒間隔で正転、逆転を交互に繰り返すようにプログラムしました。

問題なく動いているようです。
ただ、残念なことにこのままでは肝心のキャタピラを固定するスペースがないので走らせることができません。
そこでタミヤの楽しい工作シリーズの「ユニバーサルプレートセット」と「トラック&ホイールセット」を利用することで、プレートを広くしたあとに、キャタピラを固定できないかと考えました。

交換するプレートを並べてみました。狭いですがキャタピラを固定できる程度のスペースは確保できそうです。

rescue_crawler4.jpg

新しいプレートに取り替えたところ、MBeeDuinoの取り付けスペースとキャタピラの取り付けスペースが確保できました。

rescue_crawler5.jpg

トラック&ホイールセットのキャタピラを使って長さを調整し、モーターの位置も少し動かすことで、大きなたるみもなくキャタピラを取り付けることができました。

rescue_crawler6.jpg

あとは電池をどうやって実装するかを考えなければなりません。また次回に続きます。

mbed NXP LPC11U24でm3piを動かしてみました。

  •  
  •  
  • Category:

mbed NXP LPC11U24でm3piを動かしてみました。
最初にプログラムがコンパイルできなくてびっくりしましたが、mbedのライブラリを最新版にしたら問題なくコンパイルできました。
早速バイナリを転送して動かしてみましたが、黄mbedでも青mbedと同じように動きました。

ただし、黄mbedにはUSBホストの機能はなく、1つしかないシリアルも3piとの通信で使ってしまいますのでその点は青mbedに見劣りします。
でも消費電力は黄mbedが有利なので、このようなバッテリで動かすものには適しているのではと思います。

mbed robot (m3pi)に距離センサーをつけてみました

  •  
  •  
  • Category:

m3piに秋月電子で売っている赤外線距離センサーユニット(GP2Y0A21)を搭載してみました。

m3pi_distance_sensor.jpg

このセンサーユニットは電源が4.5V-5.5Vですので、m3piのVccがそのまま使えます。データシートにVcc-GND間で10μFのコンデンサをいれるように書いてあったのでそれも追加しました。
センサーからの出力はmbedのAnaloginで読んでいますが、3.3Vまでとのことなので、10KΩの抵抗を間にいれて大体範囲内に収まるようにしてmbedに接続しています。
センサーユニットは両面テープで基板に固定していますが、重心が前に寄ってしまったので、後ろにクリップでおもりをつけています。
前方にある障害物との距離を計測し、距離が近づく­につれて、mbedの4つのLEDの点灯数を増やしています。
10cm未満になったら後退して、方向転換を行い再び前進するようにプログラムしました。
プログラムはまだ荒削りですが、こちらにあります。本当に簡単で短時間で動作確認ができました。

mbed robot (m3pi)をBluetooth keyboardでコントロールしてみました

  •  
  •  
  • Category:

mbed robot (m3pi)をBluetooth keyboardでコントロールするようにしてみました。
ベースのプログラムはmbedCookbookにリンクされていたPeter Barrett さんのBlueUSBです。
このプログラムではUSBに接続したBluetoothドングルを使って、キーボードやマウスやWiiリモコンなどのデータを受信して表示することができます。
すでに手持ちのBluetoothキーボードでの動作は確認していましたので、あとはm3piのライブラリを組み込むだけです。
BlueUSBの中のTestShell.cppを改造して、m3piのクラスライブラリを組み込んで、キーボードの値によって、m3piに与えるコマンドを決めました。
まずはスピードは控えめに0.1ぐらいにしてみました。
動画はYouTubeにアップしましたが、キーボードで思ったようにコントロールできます。

コントローラがキーボードですので、他にもいろんな機能や動きを組み込むことができそうです。
詳しくはmbed.orgのNotebookにまとめましたので、そちらをご覧ください。

m3piにUSBコネクタを取り付けました

  •  
  •  
  • Category:

m3piにUSBコネクタを取り付けてみました。といってもmbedにUSBコネクタを接続するだけですが。
ついでにmbedから直接信号が取れるように1列×20Pのピンソケットもハンダ付けしました。
3piの拡張基板ですが、mbedを実装するとそんなに空きスペースはありません。
とりあえずこのあたりかなということで、手持ちのUSB Aコネクタをハンダ付けしてmbedに接続しました。
もし縦型のUSB Aコネクタが手に入るようであれば、それに付け替えたいと思います。

m3pi_Bluetooth_1.jpg

まずは手持ちのPLANEX(PCI) Bluetooth USBアダプタ BT-MicroEDR2Xを接続してみました。
Vccは3piから取っているので、3piの電源をいれるとBluetoothアダプタのLEDが点灯しました。ここまでは問題ないようです。
次に BluetoothのテストプログラムがCookbookにありましたので、まずはそれを書き込んでみました。
手持ちのBluetoothキーボードとの通信も無事できているようです。

あとはBluetoothの情報で、m3piが動くようにプログラムを書けばリモコン制御できそうです。