« 2008年5月 | トップページ | 2008年7月 »

2008年6月

週刊『My Robot』のBluetoothを繋げてみる計画(7)

今回は、ETX/ERXのポートに繋いだ場合の通信テストをしてみました。
とは言っても、まだ、信号の電圧するパーツを買ってないので送信側のみのテストです。

one配線

MR-C3024のポートからの電圧は5Vです。まだパーツを買ってないので、3.3Vの電源は、とりあえず別から取りました。同様な意味合いで、MR-C3024のETXポートからの信号は、約3.5V〜5.5Vの値をとるようなので、直接RBT-001のRXポートに繋げることはできません。これも電圧を下げるパーツをまだ買ってないので、今回はMR-C3024(TX)からRBT-001(RX)の通信テストは行えませんでした。

Omnigraffle_proscreensnapz001

twoテストプログラム

RBT-001(TX)からMR-C3024(RX)の送信のみをテストできるコードを適当に作ってみました。

DIM A AS BYTE
MUSIC "CDE"

MAIN:
ERX 9600,A,MAIN
IF A="C" THEN
MUSIC "C"
ELSEIF A="D" THEN
MUSIC "D"
ELSEIF A="E" THEN
MUSIC "E"
ELSEIF A="F" THEN
MUSIC "F"
ELSEIF A="G" THEN
MUSIC "G"
ELSEIF A="A" THEN
MUSIC "A"
ELSEIF A="B" THEN
MUSIC "B"
ENDIF
A
=0
GOTO MAIN

以上

  • ERXコマンドで、データが送られてくるのを待ちます。
  • 送られてきた値は、変数Aに入り、条件検索します。
  • Binary入力できないターミナルでも扱える様に、ASCIIのAからGの値の場合、音を鳴らします。
  • 変数Aを0に戻して、またメインに戻ります。

というプログラムです。

three通信テスト
週刊『My Robot』のBluetoothを繋げてみる計画(5)」でペアリングのテストはしていますので、ターミナルソフトを使って、AからGの文字、または、0x41から0x47の対応するバイナリーを送信してみました。

Binary Terminalのスクリーンショット
このターミナルはバイナリも扱えます。AからGの文字入力、0x41から0x47のバイナリの入力、ともに、音が鳴りました。
Parallels_desktopscreensnapz017

RZ1Basic v0.3.6 のターミナル機能
ASCII文字の入力しかできませんが、テストプログラムの方で、ASCII文字に値を設定したので、AからGのキー入力で音が鳴りました。
Finderscreensnapz011

RZ1Basic v0.3.7 (次バージョン)
次バージョンでは、バイナリの入力に対応しました。、ASCII文字以外の値も扱うことができます。AからGの文字入力に加え、0x41から0x47のバイナリ値でも音が鳴りました。
Rz1basicdebugscreensnapz001

さらに、右下の「HEX」のボタンをオンにすると、HEX表示もできます。
Rz1basicdebugscreensnapz002

さらに、次々バージョン(v0.3.8以降)では、RBT-001のコマンドの送信/受信の為のユーティリティ機能を予定しています(図)。
Rz1basicdebugscreensnapz003

RBT-001は、兎に角、コマンドが多くて、90種類ぐらいあります。送受信両方の場合があるので、全部で160個くらいになります。マニュアルの中でコマンドリファレンス部分は、約50ページくらいあります。受送信時のバイナリー値から、その扱い方や、意味を、いちいちマニュアルから探しだすのもすごく大変なので、受送信したバイナリーデータを選択すると、その意味などを表示できるようになればいいなと、作っています。ま、完成までには、まだしばらく時間が掛かると思います。


週刊『My Robot』のBluetoothを繋げてみる計画(1) (6)、(7)、(8)

----------------
にほんブログ村 科学ブログ ロボットへ
にほんブログ村

| | コメント (0) | トラックバック (0)

週刊『My Robot』のBluetoothを繋げてみる計画(6)

前回、ペアリングまで確認しましたが、今回は、以前、BlueSMiRFを接続した時に作った(けどサイズの合わなくてロボザックに付けられなかった)、RS232Cレベル変換のモジュールを使って、MR-C3024のオーディオジャックと繋げて、通信ができるかを試してみました。

oneMR-C3024のオーディオジャックと繋ぐ
以前作ったRS232Cレベル変換のモジュールです。
Dsc00084

3-5Vに対応しているため、3Vを使えばRBT-001にも使えますので、繋いでみました。

Dsc10160

以下の図の様な配線になります。
Omnigraffle_proscreensnapz001

twoRBT-001の出荷時設定

RBT-001のマニュアルは、まだまだ全然理解できていないところばかりですが、だいぶ目を通しました。その中で、RBT-001の起動時に関して、15ページに、以下のように書いてあります。(※NVS (Non-Volatile Storage):不揮発性EEPROMメモリー)

Screensnapz008

NVSのマップに関しては、14ページから表にまとめてあり、Automatic Operationは出荷時設定は0x01で、Automatic Operationがオンです。従って、Automatic Operationがオンの時は、適当な訳ですが、NVSの設定されている条件に従って接続して、最初のペアリング後、Transparent Modeに切り替わるようです。Baud rate/Parity bit/Stop Bitの通信速度の出荷時設定も、同じなので、何も設定を変えなくても、ペアリングさえ確率してしまえば、プログラムの転送など通信速度が途中で変更する通信以外は、何も設定を変えなくてもできそうです。

three通信してみる(コントローラーの情報を表示)

Rz1basicscreensnapz004

スクリーンショットを載せても、RBT-001で通信したものという証拠にはならないのですが、一応、付けておきます。 ちなみに、通信速度が途中で変更しない/できない状態では、以前、BlueSMiRFの場合できることとできないことを書いたんですが、RBT-001でも同じでしょうね。


週刊『My Robot』のBluetoothを繋げてみる計画(1) (5)(6)(7)

----------------
にほんブログ村 科学ブログ ロボットへ
にほんブログ村

| | コメント (0) | トラックバック (0)

週刊『My Robot』のBluetoothを繋げてみる計画(5)

週刊『My Robot』のBluetoothモジュールが無事届いたので、認識だけさせてみました。

one電源を入れる
写真の左が週刊『My Robot』のBluetoothモジュールのRBT-001です。コネクタは中央下にあり、6本のピンがあります。

Dsc10158
Screensnapz001
パソコンとペアリングさせるだけなので、両端のVcc(電源)とGND(グランド)だけ繋げればオッケーかな。RBT-001のVccは、3Vなので、MR-C3024から直接取る訳にはいきませんし、今、手元にあるものということで、電源の為だけという意味で、MR-C3024から5Vの電源をひっぱって、写真右側のFT232RLに繋げ、FT232RLから3.3Vの電源を得られる様に配線しました。

MR-C3024のスイッチを入れたら、RBT-001のコネクタの右上のLEDが緑に光りました。

twoマックと接続してみる

私のマックにはBluetoothが内蔵されているので、

  1. 環境設定の中の、Bluetoothを選択
    Screensnapz001_2
  2. プラスボタンをクリックして、新しいドライブを設定します。
    Screensnapz002
  3. Bluetooth設定アシスタントが起動しますので、「続ける」をクリックします。
  4. デバイスの種類は「任意のデバイス」を選択します。
    Bluetooth_screensnapz002
  5. デバイスを検出で、I-Droid01が検出されれば、それがRBT-001です。それを選択して、「続ける」をクリック
    Bluetooth_screensnapz001_2
  6. パスキーが聞かれるので、週刊『My Robot』に書いてあるように、「0000」を入力して完了
    Bluetooth_screensnapz004
  7. モジュールの設定も何もしてないし、TX/RXも繋げた訳じゃないのでレスポンスする分けないのですが、接続できるかだけを確認する為に、RZ1Basicを起動して、「コントローラーの情報取得」のボタンをクリックすると、接続中になり、ちゃんとモジュールの情報表示されましたhappy01paper
    Photoshopscreensnapz001_2_2

threeWindowsと接続してみる
あまりスクリーンショットを取らなかったので、簡単に。

  1. Windowsは、私は、PTM-UBT4という、プリンストンテクノロジーの出力クラス Class1対応のBluetooth USBアダプタです。
  2. デバイスを検出してみました。「I-Droid01」が検出されました。
    Parallels_desktopscreensnapz001_2
  3. 接続させてみました。いちおうPTM-UBT4(Class1)で、接続確認できました。
    Parallels_desktopscreensnapz002_2_2

ま、ここまで、繋がるのは当たり前かぁsweat01
この後が大変そうだ。設定方法など、まだ全然わかってないから、マニュアルを熟読せねばsweat01
RZ1Basicのターミナルの機能も、バイナリー送信できるようにしなきゃいけないしねsweat01


週刊『My Robot』のBluetoothを繋げてみる計画(1)(4)(5)(6)

----------------
にほんブログ村 科学ブログ ロボットへ
にほんブログ村

| | コメント (0) | トラックバック (0)

続々・これを使おうか考えてます...

これを使おうか考えてます...」のエディタエンジン(Custom EditField)ですが、インライン入力ができないのですが、日本語の入力もできるように改良してもらえました。

あまり日本語を入力する時は、少ないと思いますが、Windowsの場合、変換フィールドが、エディタのいちばん上に表示されてしまうので、入力位置が下の方だと、結構使いづらいかもしれません。
Wp1

とりあえず、Alexさんに、なんとかならないかお願いはしておきました。

このエンジンを使って、ROBOBASICのシンタックスに対応させたテストエディタの第2弾を作ってみました。

テストエディタ(Mac版、Win版)

また前回と同様に、ソフトウエアのご利用は、あくまでも個人の責任においてご利用下さい(※拡張子が.appとなっている方がMac用、.exeとなっている方がWin用です)。起動テストして頂ければと思います。いろいろ意見お聞かせ願います。


続・これを使おうか考えてます...
これを使おうか考えてます.

----------------
にほんブログ村 科学ブログ ロボットへ
にほんブログ村

| | コメント (2) | トラックバック (0)

週刊『My Robot』のBluetoothを繋げてみる計画(4)

yonekenさんに、「簡易レベルシフタ」のことを教えて頂いたので、この方法でうまくいくのか回路の勉強がてら考えてみました。あと、TTLレベルとCMOSレベルって何が違うの?も参考にしました。

RBT−001は、
お勧めの電圧は、3.0Vと書いてあります。
Screensnapz006

信号レベルは、TTLレベルと書いてあります。
Screensnapz003_2

信号がオン(H)であることを認識する最低の「入力ハイレベル電圧」は、入力電圧を3.0Vとすると、表から約2V〜3.2Vです。最大値は、入力電圧を最大の3.3Vにしたとして、3.3+0.2=3.5Vということになります。
Screensnapz004

●いっぽう、MR-C3024は、
信号は、TTLレベル(かな?)で、「入力ハイレベル電圧」は、入力電圧を5.0Vとすると、約3.5V〜5.5Vのようでです(Min: 0.7*5=3.5V, Max: 5+0.5=5.5V)。
Screensnapz002
この時点で、2つの抵抗を用いる方法では、「入力ハイレベル電圧」が満たされていないのでダメっぽいが、

●「簡易レベルシフタ」のページを参考に配線図を書いてみると
Omnigraffle_proscreensnapz001

抵抗の値は(5V,3.3V)の場合、(Ra,Rb) = (4.7kΩ,8.2kΩ) または (3.9kΩ,6.8kΩ) または (3.3kΩ,5.6kΩ)と書いてある。抵抗の分圧の式に5V,3,3Vを当てはめてみたが、 微妙に同じ値にならないsweat01

3.3/5=0.66, 8.2/(4.7+8.2)=0.63

なぜだぁ??と良く読んでみたら、3.15Vになるようにしているので、3.15/5=0.63となるんですね!?

MR-C3024(TX)からRBT-001(RX)からの信号は、この方法で、「入力ハイレベル電圧」になるようにしれやればオッケーですねhappy01

けど、RBT-001(TX)からのMR-C3024(RX)の場合、

「この回路の場合、低電圧側の出力がHになったときに高電圧側の入力にかかる電圧は、低電圧側のH電圧と同じになる」と書いてある。

RBT-001の電圧は、3.3Vの電源を使ったとしても、「入力ハイレベル電圧」の最大値が3.5Vである。これはMR-C3024の最低の「入力ハイレベル電圧」の3.5Vと同じである。なので、RBT-001(TX)からの信号は、MR-C3024(RX)で「入力ハイレベル電圧」を上回っているとは言い難いので、この方法を使わない方がいいということになりますよね!?

 


週刊『My Robot』のBluetoothを繋げてみる計画(1)(2)(3)(4)(5)

----------------
にほんブログ村 科学ブログ ロボットへ
にほんブログ村

| | コメント (7) | トラックバック (0)

RZ1Action v0.4.5 公開

Icn_rz1action_128RZ1Action v0.4.5を公開しました。

ロボザック73号から股関節拡張に入りました。この拡張では、股関節のヨー軸の回転(股関節の回旋)ができるようになります。今回のバージョンアップで、この股関節の回旋機能に対応いたしました。ただ、まだロボザックの股関節の回旋が完成していないので、今後仕様が変わるかもしれませんので、ご了承下さい。

Rz1actionscreensnapz005

最新版は、ここからダウンロードできます。

  • 股関節の回旋のON/OFFは環境設定で行います。
    「Hip Yaw Motor」にチェックを入れて「OK」をクリックして閉じて下さい。
    ※なお、すでに開いているウインドウのロボットには適応されませんので、設定変更後は、RZ1Actionを再起動するか、ウインドウを開き直すかして下さい。
    Rz1actionscreensnapz003
     
  • 股関節の回旋のためのモータ番号は、左下肢が5番、右下肢が23番になります。これに伴い、頭の回旋のためのモータの割当において、5番と23番に割り当てられなくなりました。5番、23番などのスライダーは、ウインドウ右上の「M」のボタンをクリックすることで、表示されます。
    Rz1actionscreensnapz004

----------------
にほんブログ村 科学ブログ ロボットへ
にほんブログ村

| | コメント (0) | トラックバック (0)

勝手にグッズ(1)

単なる自己満でやってるだけで、特別、何かしようって訳じゃないけど、あれこれロボザックのグッズを作っていこうかと思ってまして、その第一弾!

COLLECTION #1: ZIPPO RZ1Action
Rz1actionzippo

純銀製のZIPPOライタに、あのRZ1Actonの刻印sign01
職人が丁寧に手作りで1週間かけて仕上げたMicono Utilities限定作品note

気になるお値段は〜〜なんとsign03
moneybag2000000円

限定数10品ですので、お早めに、お電話telephone、パソコンpcからsign01sign03本気でお申し込みしないで下さいhappy01paper


作り方はこちら

----------------
にほんブログ村 科学ブログ ロボットへ
にほんブログ村

| | コメント (0) | トラックバック (0)

週刊『My Robot』のBluetoothを繋げてみる計画(3)

ETX/ERXに繋げる場合の3.3Vと5Vの変換ですが、いろいろ調べていたら、
Tomtia's WebPageの、
http://tomtia.plala.jp/diary/mt/archives/cat_33.asp
の、2006年09月07日のやり方が使えそうと思い、近所のパーツ屋(タック電子)へ行ってきましたが、同じものも、代わりになるものはないと言われましたdown

あと、よく考えれば、ZIG100Bが3.3Vなんですよね。

avalonさんが作っていたのを思い出して見てみましたが、どう作ったかのページは見つけていませんが、一応、一カ所、覚え書き「ROBOZAK/MANOI用統合I/Fボードを作る(10)・・・ZigBee通信用ボード(3)」。写真を見ると、5V->3.3V電圧レギュレータと双方向レベルシフターが付いてるのかな??あと、「ROBOZAK/MANOI用統合I/Fボードを作る(11)・・・ZigBee通信用ボード(4)」で、USB/PS2コントローラ+FT232RL+ZIG100Bで通信できてるみたいだから、先日買ったFT232RLもパソと繋げるだけでなく、活用できそうだhappy01

あと、「“PLASSON”自作二足歩行ロボット」さんが、「無線ZigBee化回路」で紹介されています。が、最後の方のコメントに、自己レスとして、「自己レス:受信側の回路は、このままではダメー(^^;。」と書いてありました。

で、とりあえず、回路のわかっているTomtia's WebPageさんの2006年09月07日のやり方で使っているものを、秋月電子で検索してみましたが、
●5V->3.3Vの電圧レギュレータは、まったく同じものはないので、
3端子レギュレータ(低ドロップタイプ) 3.3V 500mAのセットになったやつの購入を考えています。
●信号のレベルシフターは、同じものはないし、代用できるものはない?というか、今の所、どれが代用できるかわからないやsweat01

ところで、Tomtia's WebPageさんが使っている、BluetoothモジュールはSMK製のBluetoothシリアルポートアダプタBT201という製品らしいのですが、おいくらくらいなんでしょうね?一応、BT201は電波法(日本)認証を取得済みと書いてありますね。


週刊『My Robot』のBluetoothを繋げてみる計画(1)(2)(3)(4)(5)

----------------
にほんブログ村 科学ブログ ロボットへ
にほんブログ村

| | コメント (3) | トラックバック (0)

週刊『My Robot』のBluetoothを繋げてみる計画(2)

RBT-001のマニュアルを見ていたら、TX/RXの3.3Vと5Vに変換する為の回路図がありました。
Screensnapz005_2

これを見ると、GTL2002-SO8というICを使っているようなんです。ネットで検索したんですが、このICがうまく引っかからないし、代わりになるようなICも見つかりません。どこかで買えないかなぁ??

話は、違うのですが、ロボザックの70号に付いてきた音声認識ボードの裏には、RBT-001と同じ、RoboTechのロゴが入ってますね。
Screensnapz006_4

認識できる音声を書き換えられる様なソフトがないかなぁ?と思って、RoboTechのページを見てみたのですが、見つかりませんでしたdown

 


週刊『My Robot』のBluetoothを繋げてみる計画(1)(2)(3)(4)(5)

----------------
にほんブログ村 科学ブログ ロボットへ
にほんブログ村

 

| | コメント (2) | トラックバック (0)

加速度センサーの値

前に書いた「加速度チューリップ」と話が前後してしまいましたが、RZ1Basic/RZ1Peekを使って、70号に付いてきた加速度センサーの値を取得してみました。

AD5
Rz1basicscreensnapz001
MR-C3024を垂直に立てた状態で、左右方向で反応します。

  • 左に倒す:53
  • 立てる:68
  • 右に倒す:83

でした。

AD6
Rz1basicscreensnapz003
MR-C3024を垂直に立てた状態で、前後方向で反応します。

  • 前に倒す:50
  • 立てる:65
  • 後ろに倒す:80

となりました。

----------------
にほんブログ村 科学ブログ ロボットへ
にほんブログ村

| | コメント (1) | トラックバック (0)

加速度チューリップ

MR-C3024を予備で持っているんですが、これをロボザックのコントローラーとして使うことはできないかと。。。

70号に付いてきた加速度センサーでWiiリモコンのように〜〜

というか、今回は楽器代わりに遊んでみました。

one以下のコードをMR-C3024に転送

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

Dim a As Byte
Dim
b As Byte

Main:
a
=AD(5)
b
=AD(6)
if a<60 then
MUSIC "4C"
elseif
a>75 then
 MUSIC "4E"
elseif
b<55 then
 MUSIC "4D"
elseif b>80 then
MUSIC "4A"
elseif b>75 then
MUSIC "4G"
endif
Delay 200
goto main

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

twoMR-C3024を持って、あちこち傾けて下さいhappy01

パジャマ姿で失礼しま〜〜すsweat01

----------------
にほんブログ村 科学ブログ ロボットへ
にほんブログ村

| | コメント (0) | トラックバック (0)

ヨージくん対応!

Rz1actiondebugscreensnapz001Goru

3D画像はそのままなんですが、動く様にしてみました。やっぱり、5番、23番を使うんですかねsign02第75号にならないとわからないかなぁ??週末にはリリースできるかなぁ〜〜

fullmoonが奇麗だよ@横浜...

----------------
にほんブログ村 科学ブログ ロボットへ
にほんブログ村

| | コメント (0) | トラックバック (0)

週刊『My Robot』のBluetoothを繋げてみる計画(1)

この前、「浅草ギ研から、Bluetooth無線モジュール」で、週刊『My Robot』のBluetoothを使ってみたいけど、完売だったと書きましたが、今日(6/18)見てみたら、「好評につき増刊決定!期間限定で増刊分の購入受付いたします!」とのことで、42号も在庫があると書いてあったので早速注文しました。けど、まだ発送状態になってないので、結局在庫切れになってしまって届かなかったら、今後、この話が続きませんが、Bluetooth化を考えていらっしゃると思いますので紹介ということも含めて、週刊『My Robot』のBluetoothモジュールの購入から実際ロボザックに繋げてコントロールする所まで、少しづつ書いていこうと思っています。が、ちゃんと上手く動くものが作れるのかは未知なので、やっぱり動かなかったという結果になっても恨みっこなしでお願いします。

なぜ週刊『My Robot』のBluetoothモジュールなのかsign01

  • Bluetooth Special Interest Group (SIG)の認証済みLogo
  • TELEC(技術基準適合証明)済みTelec:日本でどうどうと使えるsign01

それなのに安く手に入る(かもしれない):週刊『My Robot』42号の在庫があれば、定価: 1390円で手に入れることができます。兎に角、安いsign01浅草ギ研から、Bluetooth無線モジュール」でいくつかのモジュールを紹介しましたが、日本で認証済みのものは結構お高くてなかなか手がでません。

週刊『My Robot』のBluetoothモジュールは、これだsign01

週刊『My Robot』Bluetoothモジュールは、「TIGALのRBT-001」と同じもののようです。お値段は29ユーロとなってますので、1ユーロ=170円だとすると、約5000円です。日本からもカードで購入することが可能なようですが、送料が別途かかるので、Fedexで 70ユーロ、エアメールで 30ユーロくらいだそうです。エアメールでも、5000円+5000円=約1万円になってしまうようです。(つれづれ日記 2008年2月分のページの2008.2.22(金)の文章より)

いちおう、「Radio Type Approved for Europe and Japan.」と書いてありますし、TELECのマークも入ってますので、輸入しても、日本で使っていいということですが、1万円かかってしまうとなると、やっぱ考えてしまいますね。。。

これを扱っている代理店が日本にないか検索してみましたが、今のところ引っかかっていません。私は、BlueSMiRFを買ってしまってますし、週刊『My Robot』の在庫がなければ、輸入してまでも買うことはないと思います。

週刊『My Robot』を購読してなくても、使い方はわかるsign01

まだ、細かな所まで読んではいませんが、一般のターミナルソフトでは、ロボザックを快適にコントロールするということまでは無理だと思いますので、RZ1Basicのゲームパッド機能の既存の機能だけで、コントロールが可能なのかも、まだ実際にやってみるまではわかりません。兎に角、なんらかのコントロールの為のソフトウエアが必要になると考えられます。

週刊『My Robot』は、ここで注文したsign01

もうみなさんご存知、ロボザックのバックナンバーの注文でもお世話になっている方も大勢いらっしゃると思いますが、「Fujisan.co.jp」で、週刊『My Robot』バックナンバーが注文できます。

Bluetoothモジュールが付いてくるのは、
週刊マイロボット 2006/12/12発売号 (第42号)
です。

週刊『My Robot』のBluetoothモジュールの他に、これが必要sign01

いちおう、このモジュールをロボザックにしょわせて、パソコンで、ロボザックをコントロールすることを考えています。このモジュールは3.3Vで可動しますので、MR-C3024の5Vだと壊れてしまいますので、これを変換する必要があります。

  • ETX/ERXに接続する場合:FT232RL USBシリアル変換モジュールを購入しました。3.3Vと5Vの変換ができます。 FT232RLが届きました(2008/6/20)。MR-C3024から5V外部電源を取って、3.3Vの出力を得ることはできるのですが、信号はUSBでしか取れないみたいsweat01パソコンとRBT-001を繋いでセッティングする時には使えますが、ETX/ERXとの接続は、他の方法を考える必要があるかもしれません。電圧変換だけだったら3端子レギュレータでいいんですよね???
  • オーディオプラグに接続する場合:上記変換モジュールは、RS232Cレベル(9V?)にはなりませんので、以前、BlueSMiRFを繋げた時に作ったADM3202AN RS232CインターフェースICを使ったモジュールが、3.3Vでも動くハズなので、それをそのまま使ってみようと考えています。このモジュールの作り方に関しては、「BlueSMiRF関連(オーディオプラグに繋ぐには)」に関連するブログを参考にして下さい。
  • パソコンにBluetoothが付いていない場合:Bluetooth USBアダプタを繋げる※週刊『My Robot』のBluetoothモジュールは、Class2です。Class1が上位互換があり、Class2と繋がるのかどうかわかりません。私は、プリンストンテクノロジーのPTM-UBT4というClass1のものを持っています。同社のClass2のものは、PTM-UBT3Sというものがあります。

あと、どこで見たのか忘れましたが、週刊『My Robot』のBluetoothモジュールが、Wiiリモコンで接続できたみたいなことが書いてありました。Wiiリモコンは4000円弱ですし、もしかするとPSのBluetooth対応のコントローラー(4000円強)でも認識するのかもしれません。ハードが得意な方は、これらのゲームコントローラーを改造して使うということも可能なのかもしれませんが、私はハードウエアは苦手ですので、こちらに関しては誰かがやってくれることを期待することにしますhappy01



週刊『My Robot』のBluetoothを繋げてみる計画(1)(2)(3)(4)(5)

----------------
にほんブログ村 科学ブログ 
ロボットへ
にほんブログ村

| | コメント (7) | トラックバック (0)

続・これを使おうか考えてます...

これを使おうか考えてます...」のエディタエンジン(Custom EditField)ですが、作者と コンタクトしてみました。で、日本語の表示する方法があることがわかりましたが、私の環境では日本語を使えるようにすると、文字を入力すると落ちてしまいます。う まく動く様になればいいんだけど。。あと、Windowsの場合、選択した時のハイライトが暗すぎて字が読めなくなる件も伝えたんですが、うまく伝わって ないかもsweat01

話は違いますが、今日、72号、73号が届きました。
音声認識って、9種類の決められた言葉だけで、自分でカスタマイズできる訳じゃないんですね???あと、これETX/ERXポートに繋ぐんじゃんsign01このポート、この音声認識の為に使うにはもったいない。

50号以降のパーツで、今の所、役立っているものは、足の強化ブラケットと、スタンドと、加速度センサーだけだぁ。。。ここんところ全然ワクワクしない。。。なんだかなぁ〜〜って感じ。

これまた話は違うんですけど、

さっき、「あいくるしい」の再放送がやってた。
その中の、おじいちゃんの台詞に、こんなのがあった。

「人は、愛することを止めたら、人間じゃなくなる。怪物になる。だから、どんなに愛されなくても、愛することを止めてはいけないんだ。」って。

一瞬、「怪物」って?と思ったけど、先日の秋葉原の事件を思い出して、納得しました。。。

----------------
にほんブログ村 科学ブログ 
ロボットへ
にほんブログ村

| | コメント (3) | トラックバック (0)

これを使おうか考えてます...

RZ1Basicのエディタですが、シンタックスの色付けで、変な挙動を示すので、それをなんとかごまかしている状態なんですが、ひとつエディタのエンジンを見つけました。

このエンジンは結構高機能で行番号も表示されられますし、オートコンプリート(文字の候補を表示してくれる)、折りたたみもできます(今回ダウンロードできるようにしたものは折りたたみに対応させていません)。

このエンジンを使って、ROBOBASICのシンタックスに対応させたエディタを作ってみました。

テストエディタ(Mac版、Win版)

RZ1Basicのエディタで、このエンジンを使うか迷ってます。もしご興味のある方は、ご意見聞かせて頂ければと思います。なお例のごとくですが、ソフトウエアのご利用は、あくまでも個人の責任においてご利用下さい。(※拡張子が.appとなっている方がMac用、.exeとなっている方がWin用です)

現行のものより良い所は沢山ありますが、とりあえず、私の気になったところは以下かな。。

  • 日本語が使えない。日本語部分だけの文字化け程度ならまだいいんだけど、それ以外の文字まで変になる。コメントを英語などで書かなくてはいけなくなる。
  • 選択した時のハイライトが、Mac版はいいんだけど、Win版はコンパネの画面で設定を変えないと見にくい。
  • スクロールが、Win版は快適なんだけど、Mac版はもたつく。

Editortest_for_robobasicscreensnapz

----------------
にほんブログ村 科学ブログ 
ロボットへ
にほんブログ村

| | コメント (2) | トラックバック (0)

携帯でコントロール(12)

人にお見せできるようなコードではないのですが、RZ1Infrared Type2の方のソースコードをダウンロードできるようにしました。

ダウンロードはこちらからできますpaper

DoJaを使ってやってみたいという方は、携帯でコントロール(10)で書いた必要なものをインストールして、やってみて下さい。

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

----------------
にほんブログ村 科学ブログ 
ロボットへ
にほんブログ村

| | コメント (0) | トラックバック (0)

携帯でコントロール(11)

Rz1infared02_48ロボザック用の赤外線リモコンを携帯電話でコントロールするiアプリのタイプ2をダウンロードできるようにしました。バージョン2という訳でなく、先日公開したタイプ1とはインターフェイスが異なっています。

RZ1Infrared Type2

ダウンロード
Rz1infrared2qr

使い方

  • 左上のボタンで以下のように画像が変更します。
    ボタンの番号は、オリジナルのリモコンと同じ番号なります。
  • 右上のボタンでID番号を変更できます。
  • ボタンを押すと、送信されます。

Parallels_desktopscreensnapz011
Parallels_desktopscreensnapz012

キャリアは持ってないのですが、auやSoftbankのものも作ってみようかと思い、少しやってみてますが、DoJaが使いやすいわけではないのですが、DoJaが使いやすく感じるくらい使い難いdown資料もほとんどひっかからないし、簡単ではなさそう。。。

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

----------------
にほんブログ村 科学ブログ 
ロボットへ
にほんブログ村

| | コメント (0) | トラックバック (0)

携帯でコントロール(10)

人にお見せする様な奇麗なコーディングではないのですが、いちおうRZ1Infrared Type1のソースコードをダウンロードできるようにしました。

ダウンロードはこちらから

必要なもの


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

----------------
にほんブログ村 科学ブログ 
ロボットへ
にほんブログ村

| | コメント (0) | トラックバック (0)

携帯でコントロール(9)

日曜日(8日)に、まる一日かけて、これまで進めてきた赤外線リモコンのiアプリの、ロボザック用のものを作りました。やっと完成して、起動させてみたら、ピクリともしなくてsweat01sweat01

この前、アップロードした「IRTest」を再度試してみたら、げぇ〜〜、こっちも全然動かね〜じゃんsign01sweat01

何故だsign02アクオスは反応するけど、ロボザックは反応しないdown
訳判らなくて、考え込んでたら寝てしまいました。。。

で、今日(9日)仕事から帰って、IRTestで、もう一度いろいろやってみて、どうにか動くようになりましたので、そのロボザック用赤外線リモコン対応iアプリをダウンロードできるようにしました。

ソフト名は、「RZ1Infrared Type1」としました(別のタイプのものも作る予定なので、タイプ1)。

●アイコンは、こんな感じ。。
Rz1infared1_48

●ダウンロード先は、以下
Rz1infrared1
●使い方は、

  1. RZ1Infrared1を(ダウンロードして)起動する。
  2. 数値を入力する。
    間違えた場合は「DEL」ボタン(左の一番上のボタン)で戻せます。
  3. 「SEND」ボタン(右の一番上のボタン)、または、選択ボタン(十字キーの中央のボタン)で、赤外線が送信されます。

※アプリケーションを終了する場合は、電話を切る時のボタンを押して下さい。
※正しくない数値の動きをしてしまう場合があります。予期せぬ動きをするかもしれませんので、十分気をつけて下さい。
※このアプリケーションを利用は、各自の責任においてご利用下さい。

Parallels_desktopscreensnapz004

話は違いますが、もうすぐ、WWDC2008の基調講演が始まるぞ!生中継サイトを探そーっと!
Macに興味はなくても、iPhone興味あるWindowsユーザーさんもいらっしゃいますよね???今回は絶対iPhoneの話があると思いますから、是非!!

追記:基調講演、ムービーで見られるようになってます。WWDC2008 基調講演
iPhoneの話しかなかったですねsweat017月11日発売、欲しい〜 アップルのiPhoneのページ

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

----------------
にほんブログ村 科学ブログ 
ロボットへ
にほんブログ村

 

| | コメント (0) | トラックバック (0)

携帯でコントロール(8)

昨日の加速度センサー関連のプログラミングですが、昨日からあれこれプログラミングしてたんですが、私の携帯では、しょっぱなのAvailableデータを検知する段階からデータが得られてないことがわかりまして、変だなぁ〜と思って、

組込みプレスVol.10のサポートページにあるKM10_IrCarとか、G Logging Systemを動かしてみたら、やっぱり動きませんでしたsweat01

で、Docomoの技術資料ダウンロードのページの「iアプリコンテンツ開発ガイド for DoJa-5.x 各機種オプションAPI・拡張API実装状況」で見つけました。

Screensnapz003

加速度センサー対応アプリを作れるのは、「D」だけなんじゃん!
加速度センサー持っている携帯なら当然アプリ作れるもんだと思ってたdown

残念だけど、実機を持ってないので、テストできないから、加速度センサー対応は断念するしかないやbearing

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

----------------
にほんブログ村 科学ブログ 
ロボットへ
にほんブログ村

| | コメント (0) | トラックバック (0)

携帯でコントロール(7)

今日は加速度センサー対応部分を作ってみました。
実際にどう動かすとどんな値になるかを表示するだけのソフトです。けど、まだ上手く動いてないようで、ゼロのままですsweat01

Screensnapz012

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

----------------
にほんブログ村 科学ブログ 
ロボットへ
にほんブログ村

| | コメント (0) | トラックバック (0)

携帯でコントロール(6)

昨日紹介したテスト用iアプリで、ロボザックをコントロールできることを確認しました。これでやっとロボザック用のリモコンが作れるぞsign01

いちおう、そのテスト用iアプリをダウンロードできるようにしましたので、ご興味のある方は、お試し下さい。なお、私の携帯は、SO905iCSです。他の携帯での起動は確認していませんので、各自の責任においてご利用下さい。

IRTest ダウンロードQR
http://micono.hp.infoseek.co.jp/iappli/irtest/Download.html
Irtestdl
あと、アイコンも作っちゃいましたhappy01
Irtest
iアプリは、48x48, 96x96, 160x160のアイコンが付けられるんだけど、600x600で描いたのを縮小して、48x48のアイコンだけ付けてあります。というか大きいサイズのを保存しておくのを忘れてしまったsweat01

《IRTestの使い方》
Parallels_desktopscreensnapz002_2

まず、こちらのページを見て下さい。

アプリケーションを起動すると、図の様に数値が入っているかと思います。この数値は、そのページのデータを参考に入力したシャープのアクオスのリモコンの電源のデータになります。

  • すべて半角で入力して下さい。全角は対応していません。
  • Leader Hi/Lo:リーダー信号の点灯時間と消灯時間。
  • Code 0 Hi/Lo:データ0の点灯時間と消灯時間。
  • Code 1 Hi/Lo:データ1の点灯時間と消灯時間。
  • Ptn=0は、High->Low、Ptn=1は、Low->Highの順に点灯消灯します。
  • Stop Hi:ストップ信号の点灯時間に相当します。
  • Repeat:データ送信の繰り返し回数
  • Frq:点減の周波数:20〜40KHzくらいの値をとれるハズです。
  • Data:16進数の場合は、頭に必ず0xを付けて下さい。バイナリーの場合は、そのまま0と1を入力して下さい。
  • Len:送信するデータのビット数です。図のデータの場合、6バイトなので、6 x 8=48ビットになります。

さて、ロボザックの場合は、どんな値を入れればいいのか

実は、ロボザックの場合もこの設定で動いたのです。だから、「Data」の所と、「Len」の所をロボザック用のものに書き換えればokなのですsign03

zero 追記(2008/6/10)
  Leader Hi/Lo:5000/100
  Code 0 Hi/Lo:500/500
  Code 1 Hi/Lo:500/1000
  Stop Hi:500
  に設定

oneロボザックのリモコンのデータの長さは13です。Lenには13と入力して下さい。

twoDataは、ROBONOVA改造記さんの、対応表 の値を参考にしながら入力してください。

この対応表は、バイナリーと16進が混ざっていますので、どちらかに統一させないといけません。おまけにメーカーコードが4ビットなら楽だったんですが、5ビットなので、単純に繋げる訳にいかないんですよね〜

例えば、ID=1のKEY-02は、0x03になっていますので、バイナリーに直すと00000011です。従って、コードの10101と、00000011を繋げた「1010100000011」という値をDataの部分に入力すればOKです。以下の様になります。

Screensnapz002

もし16進数で書きたい場合は、あと3つ後ろに0を付けて「1010100000011000」すると16ビットになりますので、「0xA818」と書いて下さい。

以前、「ROBOBASIC講座(DIM...AS, CONST)」の《進数と桁数》のところに、2進数と16進数の対応表を書いたので、そちらを使って頂くと、便利かと思います。

例えば、KEY-11のID=4は、0xD4なので、表から、D=1101, 4=0100であることが分ります。コードの10101と繋げるて、「1010111010100」となります。ついでに、これを16進数で表したい時は、後ろに3つ0を付けて、1010111010100000となるので、4つづつに分けて、表から、0xAEA0として下さい。

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

----------------
にほんブログ村 科学ブログ 
ロボットへ
にほんブログ村

| | コメント (10) | トラックバック (0)

iPhoneは

ソフトバンクになったみたいですねhappy01
http://www.softbankmobile.co.jp/ja/news/press/2008/20080604_01/

| | コメント (0) | トラックバック (0)

携帯でコントロール(5)

こんな内容のブログばかりでいいのだろうかsweat01

設定を変えたのを作って、アップロードして、試して、ってやってたら、手間もかかるし、パケ代もかかるので、携帯上で、設定を変えられる様なソフトに仕上げましたhappy01

Finderscreensnapz005

我が家のテレビは、シャープのアクオスなので、ここのデータを参考にさせて頂いて、うまく動くようならば、ロボザックでテストだsign03

けど、今日は、もう眠くて限界だぁ。。
テレビでテストは明日にしようっと。。

追記:といいつつ、寝ようと思ったけど、気になって仕様がないので、「電源」のだけ、やってみました。

しったら、シャープのアクオス君、ちゃんと反応してくれました。
やりぃscissors

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

----------------
にほんブログ村 科学ブログ 
ロボットへ
にほんブログ村

| | コメント (0) | トラックバック (0)

携帯でコントロール(4)

今日(6/2)も、いろいろ数値を変えてやってみましたが、まだうまく動いてくれませんbearing
完成するまででもパケホにしないとパケ代がヤバいかなぁ。。

赤外線がうまくいかないので、発展させられる状況ではないのですが、以前、Wiiリモコンをコントローラーにできないかと書いたことがありますが(まだ思案中)、携帯の加速度センサーを利用したロボットのコントロールはどうだろうかと、携帯の加速度センサーのサンプルコードをネットで探していたら、組込みプレスVol.10に、「Qステアを加速度センサ搭載携帯電話でコントロールの巻」というのがあったので、買おうかと思ったのですが、サポートページ があって、ここでソースコードをダウンロードできました。ソースを見てみましたが、対応させられそうなので、赤外線がうまくいったら加速度センサー対応もやってみたいなぁ〜。

話は、違うのですが、先日、100均で、LEDライトをいくつか買ってきました。

Dsc00137
Wiiリモコン関連で、赤外線LEDを買ったのですが、LEDを赤外線LEDに付け替えて使うのが目的です。
Dsc00142
上が赤外線LED、下がもともと付いてたLED

Dsc00143
付け替えて、デジカメで光るのを確認しました。

で、まだWiiリモコンを活用したロボット関連のソフトは作ってないのですが、赤外線LEDライトを使って、WiimoteWhiteboardというソフトでちょっと遊んでみました。

これ、少しコツがありまして、キャリブレーションの時、ライトの向きは、モニター(もしくはスクリーン)の方に向けて持つのでなく、Wiiリモコンが置いてある方を向けて持つ。実際に描く時も、ライトの向きはWiiリモコンの方を向けて持って描かないと上手く描けません。

Wiimotewhiteboardscreensnapz001

あと、これこそ全然話は違うのですが、横浜は開港記念日で、昨日と今日、みなとみらいで、花火が上がっていました。

Dsc00141_2

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

----------------
にほんブログ村 科学ブログ 
ロボットへ
にほんブログ村

| | コメント (0) | トラックバック (0)

携帯でコントロール(3)

今日は、実際にiアプリのテスト版を作ってみました。

《赤外線に関するAPI》

赤外線関連のクラスに関して、すべてではありませんが、覚え書き

  • public class IrRemoteControl
    • setCarrier(int highDuration, int lowDuration)
      キャリア情報を設定します。
    • setCode0(int pattern, int highDuration, int lowDuration)
      論理0パルス情報を設定します。
    • setCode1(int pattern, int highDuration, int lowDuration)
      論理1パルス情報を設定します。
  • public class IrRemoteControlFrame
    • setFrameData(byte[] data, int bitLength)
      フレームのデータ部を設定します。
    • setFrameDuration(int duration)
      フレームのリピート時間(0.1m sec)を設定します。
    • setRepeatCount(int count)
      フレームの繰り返し送信回数を設定します。
    • setStartHighDuration(int duration)
      フレームのスタート部のHigh時間(usec)を設定します。
    • setStartLowDuration(int duration)
      フレームのスタート部のLow時間(usec)を設定します。
    • setStopHighDuration(int duration)
      フレームのストップ部のHigh時間(usec)を設定します。

《テストiアプリを作ってみる》

とりあえず、「ハニービー(HoneyBee)を携帯電話のアプリで操作する」にあるソースコードを参考にロボザックのリモコンのID=1のボタン1の場合で、動くものを作ろうとあれこれやってみました。

  • int freq = 38; // KHz
    赤外線の点減の周波数:赤外線はHighの際、つきっぱなしでなく、38〜40KHzの周波数で点減させているらしい。
  • int base = 500; // usec
    ロボザックのリモコンは0.5msかな。
  • irc.setCarrier(10000/freq/2, 10000/freq/2);
    点減時の、発光時間と無発光時間を設定するみたい。一回の点減で光ってる時と消えてる時のそれぞれ時間が同じなら、上記のようになる。例えば、4対1とかだったら、
    (4*10000/freq/5, 10000/freq/5)にすればいいのかな。
  • irc.setCode0(IrRemoteControl.PATTERN_HL, base * 1, base * 1);
    irc.setCode1(IrRemoteControl.PATTERN_HL, base * 2, base * 1);
    「理論0」と「理論1」のパターンを設定します。
    第1引数は、PATTERN_HLとPATTERN_LHとがあり、それぞれ、High->Lowとなるのか、Low->Highとなるのかを選択。第2引数は、Highの時間、第3引数は、Lowの時間
  • frame.setFrameData(data, data.length * 8);
    送信するデータと、そのビットでの長さをセット
  • frame.setStartHighDuration(0);
    リーダーのHighの長さをセットすればいいのかな?
  • frame.setStartLowDuration(0);
    リーターのLowの長さをセットすればいいのかな?リーダ部分は5msなので、5000とすればいいのかな?
  • frame.setStopHighDuration(0);
  • frame.setFrameDuration(data.length * 8 * base * 4 / 100 + 60 + 85);
    なぜ、4倍して100で割っているのか?
    なぜ60と85を足しているのか?
    わからないsweat01

送信するデータは
String source = "001101111000000000100000"
の部分です。ロボザックの赤外線リモコンは、ID=1, ボタン1の場合、コードが10101で、データが0x00なので、

  1. String source = "1010100000000000"
    irc.setCode0(IrRemoteControl.PATTERN_HL, base * 1, base * 1);
    irc.setCode1(IrRemoteControl.PATTERN_HL, base * 2, base * 1);
    frame.setStartHighDuration(0);
    frame.setStartLowDuration(0);
  2. String source = "0101011111111000"
    irc.setCode0(IrRemoteControl.PATTERN_LH, base * 1, base * 1);
    irc.setCode1(IrRemoteControl.PATTERN_LH, base * 1, base * 2);
    frame.setStartHighDuration(5000);
    frame.setStartLowDuration(0);

と書き換え、試してみましたが、ダメでしたdown

ロボザック君は、なんの反応もしてくれないのですが、2の方のURLは以下です。
Rz1test

作ったアプリがどんな値を送信しているのか知りたいです。。。
観念して、PC-OP-RS1を買って、調べるしかないかなぁ〜〜

《今回新たに参考にした資料》


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

----------------
にほんブログ村 科学ブログ 
ロボットへ
にほんブログ村

| | コメント (0) | トラックバック (0)

携帯でコントロール(2)

今日は久々にロボットのことをやれまして、前回悩んでいた赤外線リモコンのデータのパターンを知る為には、PC-OP-RS1が必要だ!と思い、ヨドバシカメラへ行ってきました。でも、店員さんには聞かなかったのですが、見つからなくて、仕方なく、今日もあれこれネットを調べたりしてました。

で、やっとsweat01少し見えてきましたよ〜happy01scissorsscissorsscissors

《今回新たに参考にした資料》

《ロボザック赤外線リモコンの解析2》

ROBONOVA改造記さんの、対応表から、PPM方式で、

  • Base:T=0.5ms
  • 1:1ms/0.5ms =  2T/T 
  • 0:0.5ms/0.5ms = T/T
  • Leader:5ms

であることがわかります。

次に、avalonさんのPC-OP-RS1を用いた解析されたID=1のボタン1を例に見てみると、
ff ff ff ff ff ff 07 e0 83 0f c0 07 1f 80 0f 3e f8 e0 83 0f 3e f8 e0 83 0f
で、これを2進数で書き表すと、
11111111 11111111 11111111 11111111
11111111 11111111 00000111 11100000
10000011 00001111 11000000 00000111
00011111 10000000 00001111 00111110
11111000 11100000 10000011 00001111
00111110 11111000 11100000 10000011
00001111

となります。最初に1が並んでいる部分がリーダーなんですが、とりあえず、リーダーが1なので、反転させると以下のようになります。
00000000 00000000 00000000 00000000
00000000 00000000 11111000 00011111
01111100 11110000 00111111 11111000
11100000 01111111 11110000 11000001
00000111 00011111 01111100 11110000
11000001 00000111 00011111 01111100
11110000

しかし、データらしき部分の0と1の並びのパターンが、2T/T や T/T に並んでいません。

データの並びは、MSB(Most Significant Bit):最上位ビットの場合と、LSB(Least Significant Bit):最下位ビットの場合があるというので、ビットをバイトごとに反転してみました。
00000000 00000000 00000000 00000000
00000000 00000000 00011111 11111000
00111110 00001111 11111100 00011111
00000111 11111110 00001111 10000011
11100000 11111000 00111110 00001111
10000011 11100000 11111000 00111110
00001111

すると、最初の0の並びが、51個になりまして、Leader:5msとのことなので、サンプリングレートが5/50=約0.1msと推測。その後のデータの並びも、1が10個並ぶ場合と5個並ぶ場合と、0が5個並ぶ場合となり、2T/T と T/Tの並びになりましたhappy01上のデータ部分を区切って並べ直すと
111111111100000=1
1111100000=0
111111111100000=1
1111100000=0
111111111100000=1
1111100000=0
1111100000=0
1111100000=0
1111100000=0
1111100000=0
1111100000=0
1111100000=0
1111100000=0
1111=残りのビットを0で埋めたもの?

となり、ROBONOVA改造記さんの、対応表のID=1のボタン1が

  • コード番号:10101
  • ID=1のボタン1:0x00

なので、これでやっと、ROBONOVA改造記さんのデータと、avalonさんのデータを関連づけることができました。。

とりあえず、今回のバイナリへの変換は、いちいち手作業で、バイナリにしたり、反転したりしてたら、大変なので、簡単に2進数に変換できる様に、簡単なソフトを作ってやりました。ちなみに一番上が、データで、一番下が、0と1を反転させ、かつ、LBSとMBSを反転させた結果です。
My_applicationdebugscreensnapz001

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

----------------
にほんブログ村 科学ブログ 
ロボットへ
にほんブログ村

| | コメント (0) | トラックバック (0)

« 2008年5月 | トップページ | 2008年7月 »