August 03, 2007Super Sylphide 進捗状況(7) -- 圧力センサの較正オートパイロットシステム Super Sylphideには、2種類の圧力センサが搭載されています。1つは穴が2つ空いていて、その2つの圧力差を測るためのゲージ圧センサ、1つは大気圧を測るための絶対圧センサです。今回は前者のゲージ圧センサについて、最近行った較正作業の紹介をしようと思います。 このゲージ圧センサを何に使うかというと、飛行機の速度を出すのに利用できます。簡単に原理を紹介しておくと、航空関係の方なら誰でも知っていると思われる、ベルヌーイの式という有名な方程式があります。 ということで本題の較正作業ですが、差圧をとる為に2つ穴が空いているゲージ圧センサの片方の穴に速度がある気体を、もう片方の穴に静止した気体を入力して、どのような電圧がセンサから出力されるか確認しました。
ベルヌーイの式のとおり、気体の速度の2乗に支配された電圧が出力されました。模型飛行機が飛行する20m/s以下といった低速域でも、十分使用可能なことが確認できました。 ※その後、DSPとマイコンでSPI通信ができるようになりました。 August 06, 2007August 08, 2007ビープ音で『カエルの歌』 (Windows版)
[Computer]
最近『どう書く.org』を見るのが面白いです。 そこで目にとまったのがビープ音で、カエルの歌を演奏するというもの。皆さん、様々な言語で挑戦されています。Rubyで音をどう鳴らしているのか興味があったのでコードを見てみたところ、残念ながら*NIXにしかないビープ音を鳴らすコマンドbeepを利用していました。 これではM$のWindowsでは実行でできません。仕方がないので、Windowsでも実行できるようにビープ音を鳴らすWin32APIのBeep関数(引数として周波数と時間)を呼び出してみることにしました。こんな感じでいけます。 require 'Win32API'
$beep = Win32API::new('kernel32', 'Beep', ['i', 'i'], 'i') FREQ_TABLE={ ?c=>262, ?d=>294, ?e=>330, ?f=>349, ?g=>392, ?a=>440, ?b=>494, ?r=>39999} ちなみにマイコン関係をいじっていると、たまに音声処理をしたくなることがあります。そんなときに一定周波数の音声波形が欲しくなることがあるのですが、そんなときはRuby経由でWin32APIのBeep関数を呼び出すのが手ごろそうですね。 August 14, 2007GPSチップアンテナ電子工作をしていると、何か面白い部品がないか、部品漁りを定常的にしているのですが、最近sparkfunで面白いものを見つけたので、購入してみました。それが今回のお題のGPSチップアンテナです。 このアンテナ、非常に小さいです。商品のページにもあるとおり硬貨よりも小さいので、模型飛行機などでGPSを利用するときに重宝しそうです。しかしながら、このままでは受信機にとりつけることが難しいので、SMAのRFコネクタを接続した基板を作ってみることにしました。 基板ですが、Olimexで製作することにします。高周波基板なので、本当ならばインピーダンスコントロールがされたまじめな基板屋を使うべきなのでしょうが、お手軽レベルで基板屋は妥協することにしました。設計自体は、いちおうマイクロストリップラインの計算をして設計しました(FR-4(ε=4.8) 1.6mm厚 2層基板 copper:0.035mmで線幅2.8mm、Z=50.1 ohm)が、基板の製作品質を追求していないのでどの程度効果があるのか謎なところです。
毎度おなじみのEagleの回路図とレイアウトも置いておきます。コンデンサが2つ入っていますが、これはリターンロスを改善するためのもので、値はデータシートのリファレンスをそのまま利用しています。 ※その後、基板の実装をしました。 August 20, 2007Super Sylphide 進捗状況(8) -- DSP/BIOSを利用した割込みMcBSP(SPI Slave)オートパイロットシステム Super Sylphideには、高速な計算をサポートするためにメインCPUとしてDSP(Digital Signal Processor)のTI TMS320C6713Bが、そして周辺への接続や基本的なログ機能のためのマイコンSilicon Laboratories C8051F340が搭載されています。両者の間ではA/D変換データや外部からの指令値をやりとりする必要があり、物理的にSPIならびにI2Cの2つのインターフェイスで接続されています。今回はそのうち、より高速にデータを転送できるSPIに関する話です。 SPIは3本または4本の線によって接続される簡易的、汎用的なインターフェイスで、馴染みがあるところですとSDカードにも使われています。お手軽ながら、ある程度のデータ転送速度を確保することができる(現在、最大24Mbpsで利用中)ので、マイコン野郎ご用達インターフェイスであると思っています。以前、SDカードとマイコン間のSPI信号を計測した記事があるので、物理的にどのような信号が流れているか興味があるようでしたら、そちらを参考にどうぞ。マイコミジャーナルのバス記事も、参考にあげておきます。 このSPIですが、お手軽ということもあり多くのマイコンに採用されています。実際Super Sylphideのマイコンにも、まさにSPIの機能が搭載されているので、こちらの実装は非常に簡単でした。 そんなこんなで、本家TIのドキュメントやComp.DSPを彷徨ったあげく、ようやく完成しました。
同じようなことをしたいという奇特な方がどれだけいるかは知りませんが、参考になればと、現時点でのソースコードを散らかしておきます。実装形態の要約としては、タイトルの通り『McBSPをSPI Slaveで利用し、割り込み制御はDSP/BIOSのセマフォを活用』(まさに呪文(笑))です。 ※その後、このDSPのSPIでデータの塊を通信する方法について記事を書きました。 August 24, 2007XBeeはじめました無線環境が必要になってきたのでZigBeeを導入しようとしています。小型であること、調達が容易であること、国内で認証を取っていることが決めてとなり、XBee / XBee Proというmaxstreamの製品を利用することにしました。調達のし易さについては、Digi-KeyやRSコンポーネンツで買えます。認証についても多少触れておくと、出力が大きく遠距離まで届くProの方は、国内ではフルパワーでは使わないよう注意書きがある少し面白い状況です。 まだZigBeeの何たるかを習得していないのですが、とりあえずPCと接続して実験しようと考えています。購入した開発キットにはPCと接続して動作を確認するための開発ボードが2枚ついてくるのですが、片方がUSB接続なのにもう片方がシリアルポート接続と、いけていない状況です。ノートPCで利用しようと思うと、USBシリアル変換ケーブルを別途用意する必要があり面倒なので、オリジナルXBee USB接続ボードを作ることにしました。また、せっかくなので、郊外での実験の際はできる限り荷物を減らしたいということもあり、接続の機能のみを実現したできるだけ小さなものを作ってみることにしました。 できあがりはこのような感じになりました。いちおう公開されている本家の開発ボードの回路図(PDF)を元におこした図面なので動作はすると思いますが、まだ基板の発注すら行っていないので動くかどうかはわかりません(笑)。なお、部品の調達には配慮して、秋月と千石で売っているもののみで組み立てられるようにしました。
※その後、バグが発見されました(2007/10/25)。申し訳ありません。 修正方法ですが、物理的にジャンパでCBUS3とCBUS4を入れ替えても良いのですが、CBUSnの機能は内部EEPROMによって定義され、FTDIの無償ユーティリティMProgによって書き換えが可能なので、そちらでソフトウェア的に修正しました。MProgに書き込む内容は以下のとおりです。 CBUS3とCBUS4の機能を入れ替えました。これで無事動作しています。 なお、できあがりはこのような感じです。 コンパクトで給電もUSBからされるので重宝しています。 August 31, 20072007 槍ヶ岳
[Mountain]
遅いながらようやく夏休みにすることができたので、ここ数日で友人と槍ヶ岳に行って来ました。ルートは上高地~槍沢~槍ヶ岳~飛騨乗越~槍平山荘~新穂高温泉の2泊3日の行程です。友人は日本ではまだ富士山を登っただけなので、少々厳しかったかもしれませんが時には強引さも必要なのです(笑)。 残念な天候でしたが、その分山での出会いに恵まれました。今回はパーティが2人だったので、色々な方とお話する機会があり面白かったです。特に帰りをご一緒させていただいたWさんには色々とよくしていただきました。松本城の観光まで付き合わせてしまって申し訳なかったです。また次回も素敵な出会いがあるといいなぁ。 |
かれんだ~
スポンサード リンク
|