robo8080のブログ

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

「うおーるぼっと」をjavascript(konashi.js)で動かしてみた。

2013年08月22日 | うおーるぼっと

javascriptでフィジカルコンピューティング、konashi/SBBLEでLチカばかりやっていてもつまらないので、

「うおーるぼっと」でも動かしてみるか...

ということで、「うおーるぼっと」で、流行りの「javascriptでコントロール」をやってみました。

 

流れはこんな感じ。(SBDBTは単純に”BLE-シリアル変換器”として使用)

 iPad3(konashi.js) ―BLE―> SBDBT(SBBLE) ―シリアル->  うおーるぼっと


使用したもの

 ・iPad3 + konashi.js

 ・うおーるぼっと

 ・mbed NXP LPC1768

 ・SBDBT + SBBLE (konashiでも多分できるはず。konashiは持っていないので試してない。)

この記事では、konashi.js や うおーるぼっと、SBBLE の詳細や使い方は省略します。

それぞれの開発元のサイトを参照してください。

・konashiの詳細はこちら

 http://konashi.ux-xu.com/

・うおーるぼっとの詳細はこちら

 http://jksoft.cocolog-nifty.com/blog/wllbot.html

・SBBLEの詳細はこちら

 http://sbble.micutil.com/


「うおーるぼっと」 と SBDBTの接続

SBDBTには事前にSBBLEのファームを書き込んでおきます。(詳細はSBBLEのサイトを参照ください。)

接続は簡単、線4本つなぐだけ。

 SBDBT                   うおーるぼっとバンパー拡張ポート

 pin2 3.3V ----- pin2 3.3V

 pin3 GND ----- pin1 GND

 pin7 TX   ----- pin14 RX

 pin8 RX   ----- pin15 TX

 


うおーるぼっと(mbed)側のプログラム

ここに置いておきます。

SBDBTとの通信速度は115200bpsです。

konashiで使う場合は、シリアルの通信速度を9600bpsに変更してください。(ただしkonashiでの動作未確認。)

コンパイルするには、TB6612FNG用のモータコントロールライブラリ をインポートする必要があります。

 

【ここで使用している「うおーるぼっとを」制御するシリアル通信コマンドについて】

コマンドは3種類、M(move):前進/後進、T(turn):旋回、S(speed):左右のモータの速度を指定して走行。

 ・モータ指令値の範囲は、―100~100。

 ・動作タイマの範囲は、1~1000ms。0にするとタイマは無効。(止まらない)

 ・コマンドとパラメータはカンマ( , )で区切ります。

 ・コマンドの最後は、CR(0x0d)、またはLF(0x0a)です。

 例1: 速度60、動作タイマ500msで前進

  コマンドは、 M,60,500 になります。

 例2: 速度-100、動作タイマ500msで反時計回りに旋回

  コマンドは、 T,-100,500 になります。

 例3: 左モータ速度50、右モータ速度―50で走行。(Sコマンドに動作タイマはありません。動き続けます。)

  コマンドは、 S,50,-50 になります。


konashi.js 側のプログラム

事前にiPadにkonashi.jsをインストールしておきます。(詳細はkonashiのサイトを参照ください。)

うおーるぼっと操縦javascriptは、jsdo.itに公開してあります。

konashi.jsで以下のプログラムを開いて実行します。

・iPadの加速度センサで操縦

 iPadを前後に傾けると、前進/後進、左右に傾けると旋回。

 http://jsdo.it/robo8080/7Eib

 

 

・ボタンバージョン(十字キーで操縦、”Cen”キーを押さないと止まらないので注意。)

 残念ながら応答性がイマイチ。

 http://jsdo.it/robo8080/1He0

 

 

―以上―


関連する記事

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

 


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

2013年03月24日 | うおーるぼっと

『techBASICというiOS上で動くBASICで、iPad3と『うおーるぼっと』をBluetooth Low Energyで接続して動かしました。

その手順を紹介したいと思います。

 

以下のものを使わせていただきました、ありがとうございます。

Ken Todotaniさんが公開してくださっている”BTstackLE

・miconoさんが公開してくださっているGamepad like UI

 miconoさんがtechBASIC不要の無料アプリ「RCBController1.0」を公開してくださいました。(2013.9.28 追記)

 

【必要なもの】

・うおーるぼっと + mbed NXP LPC1768

 うおーるぼっとの詳細については、ここを参照してください。

・Bluetooth LEに対応したUSB Bluetoothドングル

 私は、”iBUFFALO BSBT4D09BK”を使いました。

・Bleutooth LEに対応した、iPad/iPhone

 私は、iPad3を使いました。(iOS6で動作確認、iOS7だとmbed側を修正しないと動かない可能性あり)

techBASIC iPad/iPhoneで動くBASIC <- 「RCBController」を使うなら不要

 miconoさんがtechBASIC不要の無料アプリ「RCBController1.0」を公開してくださいました。(2013.9.28 追記)

 RCBControllerの詳細はこちら。(2014.05.06 追記)

RCBController関連ファーム ROBOMIC(ブログ)

◆mbed側の準備

(1)”BTstackLE”と、”TB6612FNG用のモータコントロールライブラリ”をインポートします。

(2)”profile.h”を次のように修正します。

  iOS7にも対応するために、下記 0x02 -> 0x0a になっているところを、0x02 -> 0x04 にしてください。(2013.09.30追記)

(3)”BLE_demo.cpp”を次のように修正し、コンパイル&ダウンロードします。

 RCBController 1.1.1対応の実行ファイルBIN(1.1.1対応修正済み”BLE_demo.cpp”同梱)は、ここからダウンロードできます。(2014.05.06 追記)

-------------- 途中省略 ----------------

-------------- 途中省略 ----------------

-------------- 以下省略 ----------------

 

参考:Gamepad UIのキーコード割り当てはこのようになっています。

  UP          0x0001
  DOWN        0x0002
  RIGHT       0x0004
  LEFT        0x0008
  TRIANGLE    0x0010
  CROSS       0x0020
  CIRCLE      0x0040
  RECTANGLE   0x0100
  L1          0x0200
  L2          0x0400
  R1          0x0800
  R2          0x1000
  START       0x0003
  SELECT      0x000C

◆iPad側の準備

RCBController」を使うのなら、以下の手順は不要です。(2013.9.28 追記)

ここから、”SBDBT_BLE_for_RCB_with_techBASIC”をダウンロードし解凍します。

解凍したら、まず下記ディレクトリ内にあるpngファイルをすべてiTunesでtechBASICアプリに入れます。

 ”SBDBT_BLE_for_RCB_with_techBASIC\techBASIC\Resource”

次に下記ディレクトリにあるプログラムソースをiPadのtechBASICに送ります。

 ”SBDBT_BLE_for_RCB_with_techBASIC\techBASIC\Source\SBDBT BLE for RCB v1.3.txt”

techBASICのマニュアルには、iPadにプログラムを送る方法が2つ書いてあります。

・iTunesを使う方法

 ソースプログラムの拡張子を”bas”に変更し、iTunesでtechBASICアプリに入れます。

 (私の環境ではなぜかうまく行きませんでした。)

・メールを使う方法

 PCなどからメールの本文にプログラムソースを張り付け、自分あてに送信します。

 iPadでそのメールを開き、techBASICで作成した空のファイルにコピペします。

 ただし、メールソフトによっては長い行に勝手に改行が入ってしまうので後で手直しが必要です。

マニュアルには載っていませんでしたが、Dropboxを使う方法が簡単でした。

 プログラムソースをPCのDropboxに入れます。

 iPadのDropboxでそのプログラムソースを開き、すべて選択しコピーします。

 techBASICを起動し、新規ファイルを作成、ペーストします。

 

◆動かしてみる

(1)うおーるぼっとにUSB Bluetoothドングルを挿し、電源を入れます。

(2)iPadのtechBASICでGamepad UIプログラムをRUNします。

(3)iPadとうおーるぼっとの接続が完了すると、Gamepad UI画面真ん中のインジケータが緑に変わります。 

 

(4)うおーるぼっとの操縦は、Gamepad UI左側の十字キーで行います。 

たまに、一番最初にキーを押したときにエラーが出ることがあります。

接続に失敗していますので、mbedをリセットして最初からやり直してください。 

 

動画はこちら。

「うおーるぼっと」をiPad + techBASIC + Bluetooh LEで操縦(1)

 

【応用例】

小型無線LANカメラAi-Ballを搭載してみました。

「うおーるぼっと」をiPad + techBASIC + Bluetooh LEで操縦(2)

 

―以上―


関連する記事

iPad3 + techBASIC + mbed + Bleutooth Low Energyの実験

『BASIC!』でAndroid端末とmbedをBluetooth SPPで接続する実験(その1)

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

関連するリンク

うおーるぼっとサポートページ

RCBController関連ファーム ROBOMIC(ブログ)

techBASICとSBDBTを使って、iPhoneやiPadでロボゼロやRCB-4HV (KMR-M6)を無線コントロールしてみました (Source編)

 


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

2013年01月09日 | うおーるぼっと

 『BASIC!』というAndroid端末上で動くBASICで、Android端末と『うおーるぼっと』をBluetooth SPP接続して動かす実験をしましたので、その手順をまとめてみました。

【必要なもの】

・うおーるぼっと

 うおーるぼっとの詳細については、ここを参照してください。

・mbed NXP LPC1768

・USB Bluetoothドングル

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

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

・anndoroido端末

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

  Google Nexus 7

【手順】

(1)まず、ここを参考にAndroid端末から送信したものを、うおーるぼっとがエコーバック出来ることを確認しておきます。

(2)”BTstack”と、”TB6612FNG用のモータコントロールライブラリ”をインポートします。

(3)”spp_demo.cpp”を次のように修正し、コンパイル&ダウンロードします。

   修正済み”spp_demo.cpp”をここに置いておきます。

-------------- 途中省略 ----------------

-------------- 以下省略 ---------------- 

(4)”f35_bluetooth.bas”(手順(1)参照)を使ってコマンドを送ると、うおーるぼっとが動くはずです。

 ・コマンドは3種類、M(move):前進/後進、T(turn):旋回、S(speed):左右のモータの速度を指定して走行。

 ・モータ指令値の範囲は、―100~100。

 ・動作タイマの範囲は、1~1000ms。0にするとタイマは無効。(止まらない)

 ・コマンドとパラメータはカンマ( , )で区切ります。

 ・コマンドの最後は、CR(0x0d)、またはLF(0x0a)です。

例1: 速度60、動作タイマ500msで前進

  コマンドは、 M,60,500 になります。(送信時にLFが付加されます。)

例2: 速度-100、動作タイマ500msで反時計回りに旋回

  コマンドは、 T,-100,500 になります。(送信時にLFが付加されます。)

例3: 左モータ速度50、右モータ速度―50で走行。(Sコマンドに動作タイマはありません。動き続けます。)

  コマンドは、 S,50,-50 になります。(送信時にLFが付加されます。)

 

 

【応用例】

◆BASIC! for Androidで、うおーるぼっとをBluetoothSPP接続で操縦

使用したソース(不具合があるかもしれません、使用する場合は自己責任でどうぞ。)

 

◆BASIC! for Androidを使い、うおーるぼっとをNexus7の加速度センサで操縦

使用したソース(不具合があるかもしれません、使用する場合は自己責任でどうぞ。)

 

―以上―


関連する記事

『BASIC!』でAndroid端末とmbedをBluetooth SPPで接続する実験(その1)

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

関連するリンク

うおーるぼっとサポートページ

 


うおーるぼっとをPS3コントローラで動かしてみた。

2012年12月20日 | うおーるぼっと

うおーるぼっとを、mbed + PS3コントローラ で動かしてみましたので、その手順を紹介します。

手順1

 ここの記事を参考に、まず mbed と PS3コントローラ が接続できるようにしておきます。

 (記事の”StarBoard Orange”を、”うおーるぼっと”に読み替えてください。)

注意:PS3コントローラの裏に書いてある”MODEL NO. CECHZC2J”の後ろに"A1"と付いている最近のタイプは、うまくBluetooth接続できないという情報があります。

手順2

 ここから、”TB6612FNG用のモータコントロールライブラリ”をインポートします。

手順3

 次の赤枠のように"TestShell.cpp"を修正します。

手順4

 ソースの修正が終わったらコンパイルして、実行ファイルをmbedにダウンロードします。

手順5

 まず、mbedからUSBケーブルをはずしておきます。

 次に、うおーるぼっとにUSB Bluetoothドングルを挿し、うおーるぼっとの電源を入れます。

 しばらくしてから、PS3コントローラの”PS”ボタン(中央のボタン)を押します。

 うまく接続出来ればPS3コントローラが振動し、アナログスティックで操縦できるようになります。

 動画はこちら。

 

―以上―


関連するリンク 

うおーるぼっとサポートページ

PS3_BlueUSBを使用して、mbedとPS3コントローラをBluetoothで接続する実験

壁を這うロボット