robo8080のブログ

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

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

2013年01月07日 | BASIC!

 (その1)ではAndroid端末から送信したものを、mbedがエコーバックするだけでしたので、今度はRCサーボモータを動かしてみます。

 RCサーボモータのつなぎ方はここを参考にしてください。この記事では回路の解説は省略します。

【手順】

(1)”BTStack”をインポートします。

(2)”Servo”ライブラリをインポートします。 

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

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

(4)”f35_bluetooth.bas”を使って(その1参照)コマンドを送ると、RCサーボモータが動くはずです。

 ・サーボモータ指令値の範囲は、0.0~1.0。

 ・サーボコマンド(S)と指令値はカンマ( , )で区切ります。

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

  例: サーボ1の指令値0.3 サーボ2の指令値0.7

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

 

―以上―


関連する記事 

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

 


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

2013年01月01日 | BASIC!

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

ちなみに、Android端末で使える『BASIC!』の機能はこんな感じ。


Graphics (with Multi-touch),
Build User Interfaces with HTML and JavaScript,
SQL,
GPS,
Device Sensors,
Music Play,
Text to Speech,
Voice Recognition,
Sound Pools,
Audio Recording,
Tone Generation,
Camera,
Data Structures such as:Array/List/Stack/Bundle
Internet Browsing,
Text and Byte file I/O,
Encryption,
User defined functions,
FTP Client,
TCP/IP Client and Server Sockets,
Bluetooth,
Send and Receive SMS Messages,
Send Emails,
Make a phone call,
Superuser access


 この記事は、ある程度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)『BASIC!

  Android端末上で動くBASICです。

  ここに解説記事があります。

 

2.mbed側の準備

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

  mbedが出力するログが見れるので、あると便利です。

(2)BTstackのインポート

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

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

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

 

3.Android端末側の準備

  『BASIC!』を端末にインストールしておきます。

 数多くの「アクセス許可」を求めてきますので、自己責任でどうぞ。

 

4.接続実験

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

 ・Nexus 7のとき

 

 ・ICONIA TAB A500のとき

 

 

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

 Bluetoothの設定で”デバイスの検索”を選択し、検出されたmbedを選択します。

 パスキーを聞かれてきたときは”0000”です。

(2)つぎに『BASIC!』を起動します。

 

(3)メニューボタンを押して”LOAD”を選択します。

 

(4)"Sample_Programs(d)"ディレクトリの中の、”f35_bluetooth.bas”を選択します。

 

(5)メニューから”RUN”を選択します。

(6)mbedをリセットし、少し待ちます。

(7)画面上の”Connect to listener”を選択すると、接続先を聞いてくるので、先ほどペアリングした”mbed”を指定します。

 

(8)パスキーを聞いてくるので”0000”を入力します。

 

(9)mbedとの接続がうまくいけば”Connected”という表示が出ます。

 

(10)続けて画面にタッチすると、この画面が表示されるので”Send”を選択します。

 

(11)キー入力のダイアログが出るので、何か入力してOKを選択します。

 

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

 

5.応用例

mbedのプログラムBTstackの"spp_demo.cpp"に手を加えて色々動かしてみました。

改造したのは、"packet_handler"関数の最後の方、このloopbackしている部分。

---------------------------------------------------------------------

        case RFCOMM_DATA_PACKET:
            // loopback
            if (rfcomm_channel_id) {
                err = rfcomm_send_internal(rfcomm_channel_id, packet, size);
                if (err) {
                    log_info("rfcomm_send_internal -> error %d", err);
                }
            }
            led3 = !led3;
            break;

---------------------------------------------------------------------

BASICの方は、”f35_bluetooth.bas”を改造。

 

(1)『BASIC!』で、mbed + RCサーボモータを動かしてみた。

動画はこちら。

BASIC! for Androidで、Android端末とmbedをBluetoothSPPで接続してみた

 

(2)『BASIC!』で、mbed + うおーるぼっと を動かしてみた。

動画はこちら。

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

  

その2)へ、つづく


関連する記事

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

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

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

アンドロイド端末用BASIC『BASIC!』の実験メモ

参考リンク

昔懐かしいBASICプログラミングがアンドロイドで!

BASIC! + SQLを使ってみる

BASIC! for Android (マニュアルはここからダウンロードできる)

 


アンドロイド端末用BASIC『BASIC!』の実験メモ

2012年12月23日 | BASIC!

この記事は、アンドロイド端末用BASICである『BASIC!』の実験について、Twitterでつぶやいたものをまとめたものです。 

内容にまとまりはありません。(^^;)

 


『BASIC!』おもしろそう。BluetoothやTCP/IPも使える。 

◆ 昔懐かしいBASICプログラミングがアンドロイドで! 『BASIC! + SQL』出来るのはデータベース処理だけじゃない http://www.tabroid.jp/app/business/2012/01/com.rfo.basic.ht...


Bluetoothのサンプルを動かしてみた。 サクッとPCとBluetooth通信できた。これはおもしろいかも。

こんどmbedかGR-SAKURAとBluetoothで通信させてみようかな。


アンドロイド端末用BASICの『BASIC!』でサンプルプログラムをいじってみる。touchパネルを使うのも簡単。 http://twitpic.com/bes3wz


アンドロイド端末用BASICの『BASIC!』の実験。Bluetoothでmbedとの接続できた。若干挙動がおかしいところがあるが... http://twitpic.com/bf1hbp


アンドロイド端末用BASICの『BASIC!』の実験。Bluetoothでmbedと接続。アンドロイドから送信したものをmbedがエコーバックするようにしてみた。Android SDKなしでアンドロイド用のプログラムが作れるのでお手軽。 http://twitpic.com/bfa1ej

BASIC! for Androidのマニュアルはここにある。 --- RFO BASIC! for Android http://laughton.com/basic/


BASIC! for Androidの実験。Android端末とmbedをBluetoothで接続。タッチパネルでRCサーボを動かすようにしてみた。タッチして画面の丸を上下に動かすとRCサーボが動く。プログラム簡単! http://twitpic.com/bg9z9g

BASIC! for Androidの実験動画。Android端末とmbedをBluetooth SPPで接続。タッチパネルでRCサーボを動かすようにしてみた。Android SDK不要で、プログラム簡単! http://www.youtube.com/watch?v=1PUhyP4Orcs&feature=plcp


BASIC! for Android の解説みつけた。 http://kyoro205.blog.fc2.com/blog-entry-35.html


BASIC! for Androidの実験。Trek2000の小型ワイヤレスカメラAi-Ballの画像を表示してみた。プログラムはこんなに簡単。 http://twitpic.com/bh2qas


BASIC! for Androidの実験。Android端末とランニングエレクトロニクスさんのSBXBTをBluetooth SPPで接続できた。http://runningele.cart.fc2.com/ http://twitpic.com/bhemtb


BASIC! for Androidの実験。TCPでPCと通信する実験うまくいった。今度はXBee WiFiと通信してみようかな。 


BASIC! for Androidの実験。BASIC! のユーザフォーラムで公開されていたGraphicControlライブラリを試してみた。昔懐かしいデザイン。(^^) ICONIA TAB A500使用。 http://twitpic.com/biloub

Nexus7でも動いた。


日経ソフトウエア 2013年 01月号を買ったら、Nexus7でBASIC!を使う記事が偶然載っていた。ちょうど良かった。あと、C4droidやAIDE(Android Java IDE)も面白そうだ。今度試してみよう。


BASIC! for Androidの実験。ICONIA TAB A500だとPCとUSB接続すれば内蔵ストレージの下に"rfo-basic"フォルダが見えて、直接ソースファイルを書き込めたのだが、Nexus7では見れないようだ。OSのバージョンのせいかな。


BASIC!のこれ面白い。UIはHtmlとJS。通信部分はBluetooth。--- http://rfobasic.freeforums.org - Remote Control with Bluetooth Html and JS http://rfobasic.freeforums.org/remote-control-with-bluetoot...


BASIC! for Androidの実験。UIはHtmlとJS。通信部分はBASICでBluetooth。mbedの”RPC over Bluetooth”と組み合わせると面白そう。 http://rfobasic.freeforums.org/remote-control-with-bluetoot... http://twitpic.com/bjpbad


BASIC! for AndroidでBluetooth接続実験。これとmbedの”RPC over Bluetooth”を組み合わせれば、Nexus7上のBASICからmbedを動かせそうだ。https://mbed.org/users/va009039/code/BTstack/wiki/rpc http://twitpic.com/bkdsy6


BASIC! for AndroidでTCP接続実験。Nexus7とGR-SAKURA+XBee WiFiで通信で来た。 http://twitpic.com/bmdxbe

 


BASIC! for Androidの実験。Nexus7から うおーるぼっと にBluetooth SPP接続してBASICで動かすのできた。 http://twitpic.com/bntyoi


BASIC! for Androidの実験。Nexus7から うおーるぼっと を動かせるようになったが、BASICだけでUIを作るのは大変。今度は"HTML+Javascript"でUIを、BASICでBT通信する様にしてみる。こういうことが出来るBASIC!は中々侮れない。


『BASIC!』の実験。Nexus7からBASICでうおーるぼっとを動かせるようになったが、BASICだけでUIを作るのは大変。今度は"HTML+Javascript"でUIを、BASICでBT通信する様にしてみた。 #mbed http://twitpic.com/bof1fp


BASIC! for Androidで、うおーるぼっとをBluetoothSPP接続で操縦出来るようにした。Android端末はNexus7を使用。うおーるぼっとの制御にはmbed使用。 http://www.youtube.com/watch?v=av3GsWPwt1Y


―以上―