robo8080のブログ

ロボット製作や電子工作など。

秋月のWebCamパンチルトサーボキットを使ってみた。

2014年01月22日 | mbed LPC1768

これ買った、が... 追加工が必要だから組み立てるの面倒そう。 

・秋月 : Web Cam 3-axis Servo Kit for Real Time Video for pcDuino

 

 


組み立てには追加工が必要だったり、はめ合わせが固かったりで結構手間取ってしまった。

 

加工が面倒なので、爪は切り取らずにカメラのクリップで止められるようにした。

  

 


動作チェックを兼ねてサーボのニュートラル調整をした。

使用したのはこれ。

・mbed LPC1768

mbed application board

mbed application board のRCサーボサンプルプログラム(サーボの電源は5Vを使用)

 

 


秋月のWebCamパンチルトサーボキット + mbed で、カラーボールのトラッキングしてみた。

画像処理はPC上のProcessing。画像処理結果をXBeeでmbedへ。

以前作ったこれを流用した。

Processingを使ったカラートラッキング

 

動画はこちら。

 

 

ー以上ー

 


画像処理はこちらを参考にさせていただいた。

Processing Webカメラ/カラートラッキング

画像処理の結果からサーボモータの角度を計算するのは、こちらを参考にさせていただいた。

GAINER Mini と OpenCV で遊んでみよう - フィジカル・コンピューティング

 


mbedで「MPU-6050三軸加速度三軸ジャイロセンサーモジュール」を動かしてみた。

2013年12月11日 | mbed LPC1768

「MPU-6050三軸加速度三軸ジャイロセンサーモジュール」がAmazonで安く入手できたので、mbedで動かしてみた。

MPU-6050モジュールの詳細はこちら。

MPU-6050三軸加速度三軸ジャイロセンサーモジュール

 

動作確認のプログラムにはこれを使わせてもらった。

mpu6050_test - a mercurial repository  mbed

 

配線はこんな感じ。

mbed         MPU-6050モジュール

 VU   ――― VCC

 GND ――― GND

 p27  ――― SCL

 p28  ――― SDA

・SCLとSDAはMPU-6050モジュール内でプルアップされているので外付けでプルアップ抵抗はつけていない。

・AD0はMPU-6050モジュール内でプルダウンされているので何も接続していない。(アドレスは0x68で使用)

 

一応rawデータが取れているようだが正しいかどうかはまだ未確認。

 

 

mbed版MPU-6050ライブラリは、Arduino版にあるDMP(Digital Motion Processor)サポート部分が移植されていないみたい。

 


 2013.12.23 追記

Shundo Kishi さんがmbedにDMPを移植してくださったようだ。

MPU6050-DMP

Arduino版と同じデモを動かしてみた。 

 

ー以上ー

 


関連する記事

Arduino + Processingで 「MPU-6050 3軸ジャイロ3軸加速度センサー モジュール」を使ってみた。

参考リンク

MPU-6050三軸加速度三軸ジャイロセンサーモジュール

Arduino用サンプルコード 

 


iPad/Android + mbed + Bluetooth + モータドライバ でタミヤギヤボックスを動かしてみた。

2013年05月06日 | mbed LPC1768

 iPad/Android + mbed + Bluetooth + モータドライバ でタミヤギヤボックスを動かしてみました。

・iPadの場合は通信にBluetooth LEを使用します。

・Androidの場合は通信にBluetooth SPPを使用します。

ブレッドボードに配線した様子。 回路はどちらも同じです。

 

 

◆使用したパーツ

 (1)mbed NXP LPC1768

  

(2)USBコネクタ(Aタイプ メス )

 

(3)USB Bluetoothドングル(iPadで使用するときはBluetooth LEに対応したもの)

 私が使用したのはこれ。

  iBUFFALO Bluetooth4.0+EDR/LE対応 USBアダプタ ブラック BSHSBD08BK

(4)モータドライバ

  デュアルモータードライバTB6612FNG (スイッチサイエンスで購入)

(5)電圧レギュレータ

  Pololu ステップアップ/ステップダウン 電圧レギュレータ S7VF5 (スイッチサイエンスで購入)

(6)その他 タミヤのギヤボックス、ユニバーサルプレートなど。

 

◆使用した回路

 

  注意:タミヤのギヤボックスのモータは3V用なので、PWMを100%近くで使うとモータが壊れるかもしれません。 

         この回路が元で何か不具合が起きても責任は負えませんので、マネする場合は自己責任でどうぞ。(^^;)

[ピン配置]

   TB6612FNG

  

 

◆実験に使用したソフトウェア

(1)iPad + Bluetooth LEの場合は、これと同じです。

  『iPad』 + 『techBASIC』で『うおーるぼっと』をBluetooth Low Energy接続して動かしてみた 

(2)Android + Bluetooth SPPの場合は、これと同じです。

  『BASIC!』でAndroid端末と『うおーるぼっと』をBluetooth SPP接続して動かす実験 

 

◆実験の様子

・モータドライバ単体テスト

 

・iPad + Bluetooth LEで動作確認

 

・回路を少し改良

 

・車輪タイプで動かしてみた

 

・クローラタイプで動かしてみた。

 

  ―以上―


 

 

 

 

 


Android端末のUSBホスト機能を使ってmbedで”RPC Over Serial”の実験

2012年12月09日 | mbed LPC1768

 Android端末とmbedをUSBシリアルで接続してRPC(remote procedure call)の実験をしましたので、その手順をまとめてみました。

 この記事は、ある程度Androidやmbedの開発経験がある方を対象にしていますので、ツール類の操作方法の細かい説明は省略しています。

1.必要なもの

 ・mbed側

(1)mbed NXP LPC1768

  mbedを初めて使う方はこちらをどうぞ。

  

(2)”RPC Over Serial

 mbedのUSBシリアル経由でRPCを使えるようにするプログラムです。

 mbed RPCの日本語解説はこちら

 ・Android端末側

(1)USBホスト機能が使えるAndroid端末

 私が動作確認したのは "Google Nexus7" です。

(2)USBホスト変換ケーブル

 私が使用したのはこれ。

 iBUFFALO USB(microB to A)変換アダプター ブラック BSMPC11C01BK

(3)”Android USB Serial Monitor Lite

 Android端末のUSBホスト機能でUSBシリアル通信をするアプリです

 

2.mbed側の準備

(1)”RPC Over Serial”のインポート

 ”RPC Over Serial”をコンパイラにインポートします。

 

(2)コンパイル&ダウンロード

 コンパイルしてmbedにダウンロードしておきます。

 

3.Android端末側の準備

  ”Android USB Serial Monitor Lite”を端末にダウンロード&インストールしておきます。

  

 

4.実験手順

(1)USBホスト変換ケーブルを使って、mbedをAndroid端末に接続します。

 

(2)”Android USB Serial Monitor Lite”を起動します。

(3)このように聞いてくるので”OK”を選択します。

 

(4)メニューから”Open Device”を選択します。

 

(5)RPCコマンドを送信します。

   /DigitalOut/new LED1 myled

   /myled/write 1

  と送信すると、mbedのLED1が点灯します。

 

 

  続けて

   /myled/write 0

 と送信すると、mbedのLED1が消灯します。

 / だけを送信すると、使用可能なオブジェクトの一覧が表示されます。

 

 

5.自分で作った処理をRPCで呼び出したいときは。

 ここが参考になります。

 

6.自分でUSBシリアルを使ったAndroidアプリを作りたいときは。

 ここが参考になります。

 

― 以上 -


参考にさせていただいたリンク

AndroidのUSBホスト機能でArduinoとシリアル通信する

 


Android端末とmbedをBluetooth SPPで接続する実験(BTstack編)

2012年12月06日 | mbed LPC1768

 Android端末とmbedをBluetooth SPPで接続する実験をしましたので、その手順をまとめてみました。

 以前使っていた”myBlueUSB”は、最近うまくコンパイルできなくなってしまったようなので、”Norimasa Okamoto”さんが公開してくださっている”BTstack”を使ってみました。

 この記事は、ある程度Androidやmbedの開発経験がある方を対象にしていますので、ツール類の操作方法の細かい説明は省略しています。

1.必要なもの

 ・mbed側

(1)mbed NXP LPC1768

  

(2)StarBoard Orange または、USBコネクタ(Aタイプ メス )

 StarBoard Orangeではなく、USBコネクタ(Aタイプ メス )だけでも良いです。こちらで詳細に解説されていますので参考にしてください。

   

    

(3)BTstack 

 mbedでBluetoothを使えるようにするライブラリです。

 詳細はこちら

(4)Windows serial port driver

 mbed側の動作確認をするのに便利です。

(5)USB Bluetoothドングル

 私が動作確認したのはこれです。

  iBUFFALO Bluetooth4.0+EDR/LE対応 USBアダプタ ブラック BSHSBD08BK

 ・Android端末側

(1)Android端末

 私が動作確認したのは以下の二つです。

  Google Nexus 7

  acer ICONIA TAB A500

(2)Android開発環境

  Android SDK

(3)GetBlue

 Android開発環境を作るのが面倒なときは、これの無料版でも実験できます。

 

2.mbed側の準備

(1)Windows serial port driverをインストールし、シリアル端末が使えるようにしておきます。

  mbedが出力するログが見れるので、あると便利です。ログの通信速度は921600bpsです。

(2)BTstackのインポート

 BTstackをコンパイラにインポートします。

  "spp_demo.cpp"を使用するので、以下の修正をします。(2014.03.12 追記)

 ”mouse_demo.cpp”の1行目  #if 1  ーーー> #if 0

   "spp_demo.cpp"の1行目      #if 0  ーーー> #if 1

(3)コンパイル&ダウンロード

 コンパイルしてmbedにダウンロードしておきます。

 

3.Android端末側の準備

 ・Android開発環境を使う場合。

 Android SDK付属のBluetoothChatを使用します。

 ここを参考に"BluetoothChatService.java"のUUIDを書き換えてから端末にダウンロードしておきます。

 私が使ったBluetoothChatはAndroid2.2用です。

 A500はAndroid3.0ですが、Android3.0用BluetoothChatは、UUIDの定義部分がちょっと異なっているのでAndroid2.2用を使いました。

 ・GetBlueを使う場合。

  GetBlueを端末にダウンロード&インストールしておきます。

 

4.接続実験

 ペアリング、SPP接続する前に、Android端末のBluetooth設定で”検出可能”にしておきます。

 ・Nexus 7のとき

 

 ・ICONIA TAB A500のとき

 

 

 ・Android開発環境を使う場合。

(1)まずAndroid端末とmbedをペアリングします。

 PINコードを聞かれてきたときは”0000”です。

(2)つぎにBluetoothChatを起動します。

(3)メニューボタンを押すと、”connect a device”と表示されるのでこれを選択し、先ほどペアリングしたmbedを指定します。これでmbedと接続できるはずです。

(4)mbedとの接続がうまくいっていれば、Android端末から送信したものがエコーバックされてきます。

 

 ・GetBlueを使う場合。

(1)まずAndroid端末とmbedをペアリングします。

 PINコードを聞かれてきたときは”0000”です。

(2)つぎにGetBlueを起動します。

(3)メニューボタン->settings->Datasource(Input)->Bluetoothを選択し、先ほどペアリングしたmbedを指定します。メニュー画面を抜けてスタートボタンを押すとmbedに接続できるはずです。

 注意:Datasink(Output)には何も設定しません。

(4)mbedとの接続がうまくいっていれば、Android端末から送信したものがエコーバックされてきます。

 

5.補足1

 Windows PCと接続したい場合。

 mbedとPCをペアリングするとPC側にCOMポートが割り当てられるので、あとはそれを普通にシリアルポートとして”Tera Term”等で開けは通信できます。

 

6.補足2 (2014.03.12 追記)

 Windows PCとのSPP接続について。

 Win7の時はうまく接続できていたのに、Win8にしてからうまくいかなくなってしまいました。

 ペアリングはできるのですが、TeraTermから接続しようとするとエラーになります。

 Bluetoothのドライバは、Win7の時はドングル付属の物、Win8ではWin8標準の物を使用してます。

  ドングル付属のWin7用ドライバをWin8で試したのですがドライバが正常に動作しませんでした。

 Win8でもドングル付属のWin8用ドライバがあればうまくいくのかもしれませんが試していません。

 Auduino + USBホストシールドでも試しましたがこれもNG。

 SBDBTのSPPはWin8でもうまくいきました。

 

― 以上 -


関連する記事

Android端末とmbedをBluetooth SPPで接続する実験(myBlueUSB編)