2018年10月
  1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31      

カテゴリー

ブログパーツ

無料ブログはココログ

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

2011年6月

2011年6月27日 (月)

TRAKRのアプリを作る(続き)

管理人のページ:

前回の投稿に書いたように、なぜかダウンロードしたプライマーは不完全で、そのままでは使えません。また、プライマーのInstructionsフォルダにマニュアルらしきものがあるのですが、書き散らした未完成の文書をとりあえず入れときました、と言う体で、なんとも困ったシロモノです。メーカーのやる気が全く感じられません。開発中止になって放置されているのではないかとも思えます。

ナントカgccでコンパイルするところまでは進みましたが、参照エラーが出てオブジェクトの生成までたどり着きません。そこで検索を掛けてみると、このHPに解決方法がありました。これを試したところすべてがうまく行くようになりました。

以下に僕の作業手順を列記します。
1・TRAKR_APPS_PRIMER_v1.1.1.zipを解凍し、cドライブ直下へコピー。フォルダ名をtrakrに変更
2・DOS窓を開き、次のコマンドでgccやユーティリティにパスを通す
 set Path=c:¥trakr¥Tools¥bin;c:¥trakr¥Tools¥utils
3・DOS窓はそのままにして、テキストエディタでc:¥trakr¥Internals¥Makefileを開き22行目のOBJECTS = $(S_OBJECTS) $(O_OBJECTS)を下記に修正したうえ、上書き保存
 OBJECTS = $(S_OBJECTS) $(O_OBJECTS) $(O_IMAGES)
4・DOS窓でディレクトリをc:¥trakr¥Internalsに移動した上で、次のコマンドを実行
 make trakr.a
5・正常にmakeできれば修正完了

これで開発環境の構築が出来ました。ただし、DOS窓を開く度にパスの設定をし直す必要があります。

試しにサンプルプログラムEX00_templateをコンパイルしてみます。DOS窓で当該フォルダに移動し、makeするとSample.binが生成されます。めでたしめでたしですね。

オリジナルのプログラムを作るには、EX01フォルダをコピーして(これが空のプロジェクトです)プロジェクト名(myAppなど)に変更します。さらにMakefileのPRETTY_NAME = EX StuctureをPRETTY_NAME = MY GREAT APPのように任意の名前に変更しておけばカンペキです。app.cにテキストエディタでプログラムを書き込んでmakeすればPRETTY_NAME.binのオブジェクトファイルが生成されます。

オブジェクトファイルをインストールするには、TRAKRをUSBでパソコンに接続し、アプリが格納してあるフォルダにオブジェクトファイルをコピーすればOKです。リモコンから選択、実行が出来ます。

と、いろいろ書いてきましたが、はたして日本でこのオモチャをプログラミングしてみたいと思っている人はどれほど居るのでしょう? 大体コレを持っている人がほとんど居ないのではないでしょうか。


2011年6月26日 (日)

TRAKRのアプリを作る

管理人のページ:

今回は、TRAKRのアプリを作ってみます。

このHPではアイコンを並べるだけで簡単なアプリが作れるようですが、こちらのページにある、もっと本格的なプログラム開発をやってみます。

とはいえ、あまり詳しい情報はありません。なにはともあれ、当該ページのSTEP1「 Download ZIP file」をクリックして、TRAKR_APPS_PRIMER_v1.1.1.zipをダウンロードします。このプライマー(入門キット)には、設定済みのgcc開発環境やサンプルコード、セットアップガイドなどが含まれていますが、簡単にはセットアップできません。これはあとで説明します。

それからTRAKR Codebookというアプリの作り方のガイドが必要になるようですが… サイトには「もう少し待て」とあります。まだのようです。念のため検索をしてみると、ここに「ベータ版」があるのを見つけました。ただ、これはベータ版というより、「書きかけ」のドキュメントです。まあ、最初のほうはしっかりしているので、アプリの基本構造はよくわかります。それぞれのAPIの機能については、先ほどのページのSTEP3にあるリファレンスやスニペットやプライマーのサンプルコードから読み解くしかありません。

用意されているAPIの機能は、主にモーターの制御と画面への画像やテキストの表示です。
モーターのパワーは指定できますが、インタラプタなどで回転数を読み取る機能はありません。距離や旋回角度は時間で指定します。この写真は駆動部分を開けてみたところですが、駆動側にもアイドラー側にもインタラプタのようなものは見当たりません。

Dscn1721

その代わり、モーターの電流が読み取れます。写真ではわかり難いですが、モーターからは3本のコードが延びており、この1本が電流センス線らしいです。

画像関係のAPIを使うと、カメラ画像に重ねて、グラフィックやテキストを描画できます。描画するグラフィックの色や透明度は自在に設定できます。残念ながら、カメラ画像のビットマップにアクセスできるAPIは見つかりませんでした。画像バッファのアドレスを何らかの方法で取得できるのかどうかはわかりません。ビットマップを読めればカメラをセンサに使えるのですが…

CYBORG VISIONでは画面が赤っぽくなっていますが、これは画面いっぱいに赤い四角形を描画し、これの透明度を適度に設定することで、ああいった画面効果を出しているようです。

そのほか、バッテリー電圧の読み出し、赤外線投光機のON/OFF、リモコンのハンドリングなど基本的なAPIがあります。

さて、ダウンロードしたプライマーを試したいところですが、これはそのままでは使えません。これについては次回投稿します。

2011年6月20日 (月)

すごいオモチャSPY Video TRAKR

管理人のページ:

ここからカメラ付き偵察ロボットのオモチャ、SPY Video TRAKRを購入しました。なんと、送料が$142もかかってしまいましたが。

Dscn1710_2  Dscn1708_2

左側の写真手前にあるリモコンに小さな液晶画面があり、ロボットのカメラ画像が映し出されます。コレを見ながら左右のレバーでロボットを操縦するわけです。右の写真ではネットタンサーと比べています。カメラ位置は低く、ぐんと踏ん張ったデザインでキャタピラ走行、安定性は抜群に優れています。

使用周波数は無線LANや最近のラジコンと同じ2.4GHz帯です。ただし、このオモチャは日本の電波法をクリアしていないので、普通に使うわけには行きません。今回は鉄筋コンクリートのマンションの一室をシールドルーム代わりとして、室内実験にとどめることにします。アメリカの商品としては電波は弱めで、リモコンを玄関から外に持ち出すと通信できなくなります。これなら隣近所に強力な違法電波をばらまく心配はなさそうです。

遊び方はこの動画を見ていただければ一目瞭然だと思います。

カメラの写りはこんなもんです。画面をデジカメで撮ったのでいまいちな感じですが、実際はもっとまともです。右側の画面はCYBORG VISIONという「アプリ」を実行している場合で、ターミネーターの視界のような感じです。真ん中の計器はオドメトリを利用したらしいコンパスで、ヘディングの方向が大体わかります。なんかすごいですね。

Dscn1712_2  Dscn1716

このオモチャはスマートフォンのように「アプリ」をダウンロードすることで、機能を追加できるのが特徴です。しかも、ARM9コアのプロセッサを搭載し、gccでアプリを開発するという、見かけによらぬ本格派。この辺が気になっていた商品なので、円高を機に購入に踏み切りました。

このように本体にCFカードを挿入し、USBでパソコンに接続すると、ドライブとして認識されます。作成したアプリを指定のフォルダに格納すると、右側の写真のように、リモコンの画面でアプリが選択できるようになります。

Dscn1711_2  Dscn1719_2

アプリの選択はリモコンで簡単にできるので、まさにスマートフォン感覚です。ロボットを潜入させた部屋の明かりが消えたら、ナイトビジョンアプリを起動してスパイ活動開始! といった感じでしょうか。

次回はアプリ開発について投稿します。

2011年6月14日 (火)

HMC6352デジタルコンパスの使い方

花岡ちゃんのウィークエンド:デジタルコンパスの実験

前回の続きです。HMC6352の使い方を説明します。
このICはハネウェル製です。余談ですが、ハネウェルといえばアビオニクスの会社というイメージがあって、こんな本物を遊びに使えるとはさすが21世紀だなあという感慨がありますね。

インターフェイスはI2Cです。マイコンはPIC16F886、I2Cのインターフェイスを搭載していますから、下図のとおり、接続は簡単です。また、電源電圧は2.7V-5.2Vなので、5V系でも3.3V系でも問題なく使えます。今回の実験は3.3Vで行いました。

I2c


ソフトはCCS-Cで製作しました。実験ソフトは他のコードの改造のため可読性が悪いので、全部を公開するのではなく要所だけを解説します。

CCS-CでI2Cを利用するには、まず下記の擬似命令で設定します。CCS-CのIDEからウィザードでプロジェクトを生成すると、自動的にヘッダに入ります。

#use i2c(Master,Slow,sda=PIN_C4,scl=PIN_C3)

デフォルトの状態では電源投入時、HMC6352はコマンドで方位の読み出しができる「スタンバイモード」になります。ただし、デフォルトがスリープかどうかわからなかったので、念のためプログラムの初期化部分で次の処理を実行してウェィクアップしています。(多分この必要はないと思います)

//
// HM6352をウェィクアップ
//
i2c_start();
i2c_write(0x42); //I2Cアドレス
i2c_write('W'); //WakeUpコマンド
i2c_stop();

なお、HMC6352のデフォルトのI2Cアドレスは0x42です。

次に、方位データを読み出す関数です。

//
// HMC6352から方位を読み出す
//
unsigned long checkCompass(void){
unsigned long xx;
//読み出しコマンドの送信
i2c_start();
i2c_write(0x42);
i2c_write('A');
i2c_stop();
//2バイトの連続読み出し(有効部分12bit)
i2c_start();
i2c_write(0x43);
xx=i2c_read();
xx= (xx << 8) + i2c_read(0);
i2c_stop();
return(xx);
}

スタンバイモードではAコマンドで方位を読み出します。この関数はその読み出し結果、0-3599を返します。この数値は360度を分解能0.1度であらわしたものです。

試作ソフトでは定期的(100ms周期)にこの関数を呼び出して、進行したい方位との誤差をとり、左右のキャタピラを制御しています。

2011年6月13日 (月)

HMC6352デジタルコンパスを使ってみる

花岡ちゃんのウィークエンド:デジタルコンパスの実験

今回のウィークエンドは、今年の1月頃にやった実験のレポートです。

野外を移動するロボットのナビゲーションには、磁気コンパスが有効です。一度これをテストしてみようと思っていました。しかし、磁気センサの読み出し値から実際の方位を算出する演算は結構めんどうなので二の足を踏んでいました。方位をずばりデジタルで読み出したいものですね。

秋月で販売しているデジタルコンパスモジュールは分解能がわずか8方位なので、だいぶ物足りません。もうちょっと程度がよくて手に入れやすいモノはと探してみると、よさそうなものが見つかりました。

HMC6352というハネウェルのデジタルコンパスICで、これはI2Cでマイコンと接続でき、実方位を0〜3599、つまり0.1度刻みで取得できます。このボードを使えば実に簡単に利用することが出来ます。

今回の実験は、ロボタのハードを使って行いました。搭載したモーターからの漏洩磁界の影響を受けないよう、写真のように実装しました。

Dscn1395  Dscn1394_2

右の写真でクローズアップされている、赤い小さな基板がHMC6352モジュールです。マイコンはPIC16F886です。
テストの動画がコレです。

南→西→北→東と、順番に進路を変更して、四角形を描くように走行しています。直線距離は時間で決めているので、正確に同じ場所には戻ってきませんが、少なくとも方位は正確です。枯れ草でキャタピラが滑っても、進行方向はキープされています。

野外ではうまくいっていますが、室内ではダメでした。部屋の真ん中当たりの床下に、何か強力な磁石があるらしく、進路が乱れてしまいます。実際に方位磁石を持って室内を歩き回ると、そのあたりで磁針がくるりと180度まわります。なにがあるんでしょうね?

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