November 02, 2005

IMU with GPS

IMU_with_GPS.png

ようやく

これら全て実装が完了したので、システムとして組んでみました。
木材ブロックに組んだのですが、10^3[cm]のパイン材です。東急ハンズでゲットしました。

ハードはとりあえずこれで終わりです。あとはソフトで、PC側航法ソフトの整備に入る予定です。恐らく出てくる結果は凄いことになっているでしょう。アルゴリズムを相当工夫する必要があると思います。

23:59 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | コメント (0) | トラックバック
このエントリーのトラックバックURL: https://fenrir.naruoka.org/mt/mt-tb.cgi/439

November 08, 2005

吉野家のイメージカラーは?

色々とネタはあるのですが、最近多忙でなかなかブログを更新できずにいます。ということで今回は軽めのネタ、というか使っていて便利だと思ったフリーウェアの紹介をしたいと思います。

以前、友人A氏からいきなりメッセンジャーで『吉野家のイメージカラーを再現したいんだけど』と問い合わせを受けました。そう、あの言わずと知れたオレンジ色です。どうやら吉野家のファンサイトをつくる過程で、あの色をどうすれば表現できるかが知りたかったようです。

知ってのとおりコンピュータの色というのは多くの場合24bit表記のカラーコード(例えば0xFFFFFFは白とか)で表されているわけですが、画面に表示されている色とそのカラーコードを対応させることができる人はまずいないと思います。正解からいうと吉野家の色は0xFF8216で再現できますが、よほどの吉野家マニアでない限りそんなことは知らないでしょう。

そこで今回紹介するフリーウェアですが、画面に表示された色をカラーコードに変換してくれるというツールです。Colorsというのがそうで、使い方は簡単、画面色取得を選択して画面に表示されている中でカラーコードを知りたい部分をクリックすればカラーコードを教えてくれます。実際吉野家のコードもこれを使って吉野屋のWebサイトから求めました。気になる色がある人は是非お試しあれ。

23:59 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | コメント (0) | トラックバック
このエントリーのトラックバックURL: https://fenrir.naruoka.org/mt/mt-tb.cgi/440

November 13, 2005

1.8V → 3.3V レベルシフト

例の実験機材を積み込んで近々実験をすることになりました。4人乗りの軽飛行機です。楽しみですが、現在その実験の準備におわれています。

準備をしていると、思わぬところに落し穴があるのはよくあることで、今回も例外にもれず事はおこりました。
GPSのタイムパルス出力が1.8Vであることが今更わかりました。入力側のEZUSBは3.3Vなのでレベル変換しなければなりません。時間があるのならレベル変換IC(2電源タイプの74系が各社あります)を買って使うのが楽ちんなのですが、今回は時間がないので、また、片方向変換1回路と簡単なことなので、汎用トランジスタでレベルシフタを組んでみることにしました。

level_shifter.png
こんな感じです。

汎用トランジスタ2SC1815と抵抗3本+コンデンサ1本で作りました。今回のアプリケーションでは高速応答性は必要ないので実のところコンデンサはなくても良いのですが、なんとなく入れてみました(このあたりはなひたふさんの個別半導体の基礎知識2のスイッチングを参照すると詳しいことが書いてあります)。

いちおう動作確認できました。

23:59 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | コメント (6) | トラックバック
このエントリーのトラックバックURL: https://fenrir.naruoka.org/mt/mt-tb.cgi/441

November 18, 2005

上手い下手を見分ける方法

[Tips]

飛行機を使った実験ですが、とりあえず無事終了しました。そこでパイロットの方にいろいろとお話を聞くことができたのですが、操縦の上手い下手を見分ける方法があるとのこと。上手い下手だけではなく、これからパイロットを目指そうとしている人に適性があるかどうかもわかるそうです。
その方法とは『操縦桿の握り方』。力まずに肘を落として優しく握ると自然なコントロールができて上手く操縦できるそうです。力んで腕が伸びきっているとガクガクした動きになり、機械も素直に言うことを聞いてくれないのだとか。

僕も色々工作をするのですが、やはりその過程でまわりの人が器用かどうかが気になったりすることがあります。で、やっぱり自分なりに器用さを見分ける方法があります。それは『道具をどのように持っているか』です。しっかりと手の平の内側に届くくらいまで道具を握っている人は器用な人だと思います。逆に指先でコントロールしようとする人はあまり器用でない人。ドライバーを握ってもらうと一一目瞭然ですね。
この方法も操縦桿にあい通じるものがありますね。結局道具は手全体でコントロールしないと安定して適切な力が出せないと思います。指先だけだと、力はある程度でるかもしれないですが、その方向がまったくもって安定しないと思います。どうでしょう?

なんだかちょっとした共通点があって嬉しくなったのでこんな記事を書いてみました。

14:36 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | コメント (2) | トラックバック
このエントリーのトラックバックURL: https://fenrir.naruoka.org/mt/mt-tb.cgi/442

November 20, 2005

新たな無償コンパイラ

以前、マイクロソフトの無償コンパイラVisual C++ Toolkit 2003『コンパイラの入れ替え』という記事で紹介しましたが、今度はVisual Studioの無償版、Visual Studio Express Editionsが登場したようです(日本語版はまだベータ)。当然C++もあるので、早速インストールしてみました。

とりあえず使える状態にするため、Platform SDKにパスを通してWindowsのプログラムを作れるようにする(Microsoftのページ参照)のと、boostのコンパイルをしてみました。
boostのコンパイルについては『Microsoft Visual C++ Toolkit 2003 への Boost のインストール』を参考に、少し変更をするだけでうまくいきました。

> set PATH=d:¥Program Files¥Microsoft Visual Studio 8¥VC¥bin:d:¥Program Files¥Microsoft Visual Studio 8¥Common7¥IDE:c:¥Program Files¥Microsoft Platform SDK¥bin:%PATH%
> set LIB=d:¥Program Files¥Microsoft Visual Studio 8¥VC¥lib;C:¥Program Files¥Microsoft Platform SDK¥lib
> set INCLUDE=d:¥Program Files¥Microsoft Visual Studio 8¥VC¥include;C:¥Program Files¥Microsoft Platform SDK¥include
> bjam -sTOOLS=vc-8_0 -sVC80_ROOT="D:¥Program Files¥Microsoft Visual Studio 8¥VC" --prefix="D:¥Program Files¥Microsoft Visual Studio 8¥VC" install

今度の無償コンパイラはToolkit 2003のときのようにコンパイラだけというわけではなく、IDE(統合開発環境)もついてきます。IDEはコードの色づけやインサイト(候補を表示してくれる)をしてくれるなどなかなかいい感じです。
あとToolkit 2003のときにはなかったlibcmtd.libやlibcpmtd.lib(標準ライブラリのマルチスレッド対応デバックバージョン)がついているのもいいですね。

19:34 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | コメント (0) | トラックバック
このエントリーのトラックバックURL: https://fenrir.naruoka.org/mt/mt-tb.cgi/443

November 24, 2005

リアルタイム gnuplot

計算結果を結果が出次第、流れるようなグラフにしたい、そんなことがありました。そこでプログラムとグラフ描画ソフトのgnuplotをつないで、リアルタイムでグラフをかけないかということを考えてみました。

gnuplotへはパイプという方法で外部のプログラムからコマンドを流し込むことが可能です。
*NIXではpopen(プログラムパス、開くモード)、Windowsでは_popen(プログラムパス、開くモード)という関数を実行すると、指定したプログラムが起動し、かつそのプログラムへのパイプが開かれます。パイプといっても、関数の実行結果はファイルへのポインタ(FILE *)なので、あとはこれに対して指定したプログラムに送りたいデータをfprintfあたりで流し込んでやればOKです。終了したらpclose(*NIX)または_pclose(WIndows)でパイプを閉じましょう。
今回はプログラムパスがgnuplot、送り込むデータをgnuplotのコマンド、とすれば外部プログラムからgnuplotをコントロールすることが可能です。詳しくは『CのプログラムからGNUPLOTを動かす方法』を参考にしました。ありがとうございます。

流れるグラフですが、C++のアルゴリズムであるqueue(FIFO)と組み合わせれば簡単にできます。新しいデータが入ってくるたびに一番古いデータを追い出し、gnuplotを再描画すればいちおう流れるグラフを書くことが出来ました。あくまでもいちおうなので、データ量が多かったり、更新周期が早いと画面がちらつきます。gnuplotがそういうリアルタイム用途むけでないという話もあるのですが(笑)。

サンプルコードとしてgnuplot_test.cppをおいておきます。コンパイルには、C++からgnuplotのパイプを扱いやすくしたgnuplot.h、ならびにutil以下の一部のヘッダが必要だと思います。gnuplotへのパスは適宜変更してください。

17:33 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | コメント (0) | トラックバック
このエントリーのトラックバックURL: https://fenrir.naruoka.org/mt/mt-tb.cgi/444

November 28, 2005

USB-ADC DLL化

USB接続できるAD変換機USB-ADCですが、デモをするときにAD変換結果をリアルタイムでグラフに表示できれば何をしているのかわかりやすいと思い、色々と考えてみました。前の記事に『リアルタイム gnuplot』なんてタイトルの記事を書いたのはそのためなのですが、やはりgnuplotで100Hzでリアルタイムでグラフを流すにはちょっと重いようです。そこで今回は様々な計測機器をビジュアル化するためのソフト、LabViewに繋いで見ることにしました。

LabViewはDLLをインポートすることによって、独自に拡張機能を付け足すことができます。そこでUSB-ADCのドライバの一部をDLL化し、LabViewで読み込むようにしました。結果はこうなりました。

LabView.png
リアルタイムでグラフ描画。

DLLのソースですがこのあたりに散らかっています。テストに用いたLabViewのviファイルはこのあたりにあります。

※その後、EZ-USB(2131SC)が入手困難になったため、USB-ADC2を開発しました。

13:36 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | コメント (0) | トラックバック
このエントリーのトラックバックURL: https://fenrir.naruoka.org/mt/mt-tb.cgi/445