2023年4月
            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            

カテゴリー

ブログパーツ

無料ブログはココログ

« 2011年10月 | トップページ | 2011年12月 »

2011年11月

2011年11月29日 (火)

STM32F4 DISCOVERYの開発環境をインストールする

ロボット作ろう:シェーキー製作記

STM32F4 DISCOVERYの開発環境をインストールします。いろいろある中でTrueSTUDIO Liteを選びました。これは商用の開発環境の無償版で、デバッガの機能が貧弱だがコードの制限なしというものです。元が商用ですから、いろいろと使い易いのではないかと思い採用しました。それに、もし何かの間違いでSTM32の開発業をすることになっても、$500ほどで正規版にアップグレードできますからね。

インストールは結構厄介だったので手順をまとめます。

1・インストーラをダウンロード
上のリンクを開くと次のような画面になります。ここのピンクの○で囲んだ部分、"I Accept"にチェックを入れ、ボタンをクリックするとダウンロードを始めます。250MB程もありますので時間がかかります。

Ts_2

2・インストーラの起動
ダウンロードしたexeファイルを起動すると次の画面が表示されます。NEXTをクリック。

Ts_3

ここでもライセンスへの同意が求められます。ピンクの○で囲んだ部分にチェックを入れ、"I Accept"をクリック。

Ts_4

次にインストールするデバッグツールを選びます。DISCOVERYではST-LINKを使うのでこちらをチェック。デフォルトでは両方選ばれています。そのままでも問題ありません。

Ts_5

3・ライセンスの登録
デバックツールを決めると、次のような画面になると同時に、ブラウザで登録ページが開きます。(登録ページは後述)
上のフィールドにはアルファベットの羅列で使い捨ての暗号が表示されます。これをコピーしておきます。

Ts_6

次にブラウザで表示されている登録ページに必要事項を入力。まず、下のオレンジ色の枠で囲まれたボックスに、先ほどコピーした暗号をペーストします。

Ts_8

さらに基本情報を入力しますが、この入力例のように、メールアドレス以外は何でもいいようです。実際にこれで通りました。メールアドレスは重要です。ここに暗号のキーが送られてくるのです。最後にオレンジのボタンをクリックすると完了画面が表示されます。

すぐさま先ほど入力したメールアドレスにAtollic Automatic Serviceからメールが送られてきます。これにも先ほどの暗号に似たアルファベットの羅列があります。これが使い捨てのキーです。これをコピーしてインストーラの下側のボックスにペーストします。

Ts_7

これでInstallをクリックすれば、あとは普通にインストールが進行します。
ただし、インストールの進行中にSTLinkのインストーラが起動するので、そちらも同時に面倒を見る必要があります。

この使い捨て暗号による認証は、何かの理由で再インストールが必要な場合も、クリーンインストールと同じ手続きを踏まなければなりません。以前にメールで送られてきたキーはその時だけ有効なので、再インストールの時にそのキーを入力しても認証されません。
また、同じメールアドレスで何回認証しても問題ないようです。僕は再インストールが必要だったので、1回目は本名と正しい住所で、2回目はこの投稿にある内容で認証登録を行いましたが、同じようにキーが送られてきました。

さて、次回はこれを使ってみたいと思います。

2011年11月27日 (日)

シェーキー再開です

ロボット作ろう:シェーキー製作記

「塗装ができない」という理由でしばらく中断していたシェーキー製作記ですが、塗装作業の目処がついたので再開することにしました。
大きく重いのでオドメトリなどの実験は大変でしたが、考えてみれば、当初の目標の「室内をマップに基づいて移動し、(寝ている)猫の写真を撮る」ための機能は荒削りですがおおよそ実現できています。あとはモケイとしてまとめるだけです。(まあ、これが結構大変なんですけど)

現在、「花岡ちゃんに花束を」でシェーキーに使える技術(大げさですが)はこんなもんです。

1・無線LANを利用したリモートブレイン方式の基幹技術
2・車輪式移動ロボットの制御技術
3・単純なオドメトリによる自己位置推定技術
4・可動型センサでの環境計測技術

ほとんどブログに開発過程を公開してきたものです。4はブログに公開していませんが、カメロのセンサターレットで、周辺地図の作成をテストしています。
ただし、あくまでも実験室レベル、条件がよければうまくいくという程度のもの、実用には程遠いものです。
ただ、これらを組み合わせれば、室内の目的の場所に移動したり、猫の写真を撮ったりする「移動端末」ロボットはとりあえず実現できそうです。

ロボットの電気的な部分でこれから作らなければならないのは、シリアルバスにぶら下がる頭部のセンササーバと、全体を統合するロボットサーバです。このへんはこちらの投稿を参照してください。

頭部のセンササーバは、まだ搭載するセンサが決まってませんが、他のセンササーバとほぼ同じでいけるはずです。となると主に開発しなければならないのは、ロボットサーバと呼んでいるマイコンシステムになりますね。

以前の投稿では、H8を想定、その後SH-Tinyにと変更しましたが… ちょっと古い感じがしますし、グローバルな時代に国産に執着するのもどうかなという気持ちもあります。せっかくやるのだから、もっと新しいマイコンに挑戦したいと思います。

このマイコンでは、オドメトリの計算をやらせるつもりなので、浮動小数点演算ができなければなりません。もちろん、浮動小数点の演算アルゴリズムは記述可能ですから、チューリングマシンまで遡っても計算自体はできる訳です。しかし、実時間での処理となると話は別、PIC16あたりではおぼつきません。もっと速度の速いコンピュータが必要です。そういう訳でSH-Tinyに白羽の矢をたてていたのです。

PICでも16bitのPIC24シリーズという手もありますが… この際だから思い切ってみるのもいいかも、ということでSTM32を採用することにしました。

coronですでにSTM32は試しています。coronはよくできたボードで、自律ロボットに必要な機能は一通りそろっています。その反面、STM32のペリフェラルの使い回しには制限があります。そういうコンセプトのボードなので仕方ないですが、今回のシェーキーのように、シリアルポートを2チャンネル使いたい、というような場合は困ってしまいます。

そこで今回はSTMの評価ボードを使ってみることにしました。どうせならSTM32F4 DISCOVERY、「最新型」のF4シリーズをつかいましょう。情報はまだ乏しいみたいですが新しいことに挑戦するのもまた楽しからずやです。

Dscn1977

モノはストロベリーリナックスから購入しました。2種類のUSBケーブルが付いて2.1K円とはお買い得です。
開発環境の構築になどは次回以降に。

2011年11月23日 (水)

PICで走るTiny-BASICのまとめ

管理人のページ:

以前PIC16F886に乗せたTiny-BASICを作りましたが、バージョンが0.41と、かなり半端なところでとまっていましたので、このへんでまとめてしまいましょう。気分が悪いですからね。バージョン1.0をリリースしたいと思います。

以前の投稿は、今年の2月3月のアーカイブを見てください。製作の顛末がわかります。
実際のところ、このBASICはXBee経由でプログラムをダウンロードできるロボットの実験用として開発したものです。カメロという、WEBサイトからプログラムを送り込める「半自律型」リモートブレインロボットの実験に使用しました。
ブログにはあまり投稿していませんが、センサで周囲の障害物のマップを作るプログラムや、障害物から距離をとって安全に移動するプログラムなどを、WEBサイトから適切に送信・実行させてテストした結果、リアルタイム性の低いネットワークシステムでも移動ロボットの頭脳になりそう、というところまではこぎつけています。

今回は、そっち方向へ進化したHANA-BASICではなく、カンタンに作れるワンボードBASICコンピュータという切り口でまとめようと思います。そんなわけで、このようなボードコンピュータにまとめました。

Dscn1969

部品取付け領域が広い秋月のユニバーサル基板を使ってますが、ご覧の通り大陸的に(この言葉は電子工作のカリスマ、泉弘志先生がよく使っておられましたね)広々と組んでありますので、普通のユニバーサルでも十分に収まるでしょう。部品点数を減らすとともに、部品の種類も整理しました。抵抗2種類、コンデンサも2種類だけです。
USBシリアル変換モジュールは秋月のこれです。以前の回路同様、Xbeeにも対応しています。
回路図を含むマニュアルはこちらです。

「hanabasicv10.pdf」をダウンロード

Tiny-BASICでのプログラムがわかる方で、かつ本ブログを見た方でないとわかり難いですが。また、マニュアルを読めばお分かりのとおり、エラーチェックは未完成です。リポートされないエラーがあっても実行できてしまうので、おかしな結果を出すことがあります。万一使ってみたい方がいたら、そんなもんだと割り切って目視デバッグを心がけてください!

作例のハード面の特徴は、I/Oに電源とGNDが取れるピンソケットを付けたことです。ブレットボードを併用することでアナログ出力のセンサの実験などには重宝します。今回ナノスカウトで使ったガスセンサもこれでテストしています。TeraTermに読み出し値がカンタンに表示できるのは言うまでもありませんが、ガスセンサのようにシーケンシャルな制御が必要なものも、実に簡単にテストできるので意外と重宝します。

今回のバージョンではAUTO RUNモードを追加したのが最も大きな変更でしょう。
これはHANA-BASICボードをスタンドアロンで使うための機能で、BASICプログラムをロードした後、CTRL+Aキーをたたくと、それ以降、起動5秒後にそのBASICプログラムを自動的に実行するというものです。いちいちパソコンをつないでrunコマンドを打ち込む必要がなく、また、BASICプログラムは電源を切っても消えないEEPメモリに記憶されているので、電源投入ですぐ機能する組込みマイコンとして使うことが出来ます。
このモードを解除するには、パソコンを接続し、リセット後5秒以内にスペースバーを叩けばOKです。
また、細かい改良ですが、「RUNNING」LEDを常時点灯、プログラム実行時に点滅(それらしく)に変更しました。以前は電源が入っているかどうかわかり難かったのでパイロットランプをかねるようにしました。電流はその分くいますが。

こちらでccscを使ったMPLABプロジェクトファイルや回路図やPIC16F886に書き込むHEXファイル、それにBASICサンプルプログラムをおさめた、プロジェクト一式がダウンロードできます。

「HANA-BASIC_V10_PRJ.zip」をダウンロード

今回、これだけの内容で16F886のメモリ(8Kステップ)を90%も使用しています。昔のTiny-BASICと比べると、ちっともTinyな感じはしません。2Kとか4Kとかが相場でしたからね。
プログラムの設計が悪いせいもありますが、プログラムメモリやデータメモリのセグメントが小さいのもサイズ肥大の大きな要因になっています。アセンブラコードを見ると、別のページにある関数を呼び出すのにかなりステップ数を食っているのがわかります。ページ切り替えの処理ですね。今回のプログラムのように関数呼び出しが多いと、このオーバーヘッドは馬鹿になりません。
C言語でのPIC16の使用経験からすると、2Kステップまでは、結構入るなという感じですが、2Kを超えるあたりから堰を切ったようにプログラムメモリを消費するというイメージがあります。1ページのサイズが2kだからなんでしょうね。昔小さな組み込みマイコンでやったように、よく使うサブルーチンを呼ばれるページすべてにおいたりするようなセグメントを意識した作りにすれば、もっとコンパクトなコードになるでしょう。アセンブラで書けば、ですが。
ともあれ、本来のPICマイコンのアプリケーションとしては想定外のシロモノなのでしょう。

« 2011年10月 | トップページ | 2011年12月 »