November 03, 2007GPSチップアンテナ 特性解析結果sparkfunから購入したGPSチップアンテナの基板をおこしたものの、うまく衛星を捉えることができない、という記事を書きましたが、Takeyasuさんという方がご助力を買ってでてくださり、問題のチップアンテナの特性解析を行ってくださいました。今回の記事はその結果報告です。 解析対象に用いたのは、これまでに作成した基板の中で、素のままアンテナ基板、マッチングキャパシタ付き基板の計2種です。
共振周波数がGPSの1.575GHzからずれていることが確認できます。実はsparkfunで売っているチップアンテナは150111という型番で、データシートをみると共振周波数が1.575GHzよりも低いことがわかります。 この結果と考察、ならびにこれまでの検討を踏まえて、以下の点を改善し再挑戦する予定です。
最後にTakeyasuさんに改めて謝辞を表したいと思います。 ※その後、アドバイスに従い、基板を作り直してみましたが… November 07, 20077bits エンコーダ/デコーダ最近、以前PC接続用基板を作ったXBeeを用いて、シリアル通信(より正確にはUART)をしていますが、少し困ったことがありました。当然やり取りされるデータは1byte単位なので、複数バイトで意味を持つような通信はちょっとした工夫をしないと、どこのバイトからどこのバイトが一つの意味単位を構成しているのかが不明になってしまいます。そこで今回はその工夫、題して7bits エンコーダ/デコーダについて記そうと思います。 複数バイトで一つの意味を表すための工夫としてはいくつかの方法が考えられますが、今回は各バイトの先頭1bitを情報開始フラグとして利用することにしました。つまり先頭のバイトではそのフラグを落とし残り7bitsで情報を表す、例えば2進表記で0b0XXXXXXXのようにします。以降のバイトについてはそのフラグを立てて0b1XXXXXXXとし、同じく残り7bitsで情報を表すことにします。これでどこから意味単位が始まるのか簡単に把握できます。 ここで問題になるのが7bitsで情報を表す、ということです。1byte=8bitsなのでどう考えても7bitsでは情報量が不足します。そこで7+1に分けて、7bitsについては先頭のバイトに格納し、残り1bitについては次のバイトと混ぜて7+2にし、その7bitsについては2番目のバイトに格納し、 これをC言語でサクッと実装してみました。bits7.cとbits7.hです。u8 = unsigned charなので必要に応じてtypedefしてください。またテストコードをつけてあります。実行するには#define BITS7_TEST_MODEしてコンパイルしてみてください。 ちなみにですが先ほどの先頭1bitをフラグにする通信方式を利用すると、XBeeでは非常にいいことがありまして、"+++"(+を3文字分)でコマンドモード(GPIOの操作やAD変換値の取得などXBeeがもつ機能へのアクセスモード)に移行してしまうことを抑制できます。ASCII文字で表されてしまうのは先頭の一文字だけですので、複数バイトでやり取りをしている限りは'+'の文字が3個続くことはありません。 November 13, 2007Super Sylphide 進捗状況(13) -- Time Keeper 完成研究開発中のオートパイロットシステム Super Sylphideの関係で、少し前にGPS受信機からくる時刻情報を中継するモジュール Time Keeperについて記事を書きましたが、この度ようやくファームウェアが完成し機能するようになりましたので、改めて紹介をしたいと思います。 まずはTime Keeperのファームウェアソースを公開したいと思います。このファームウェアは、前の記事で紹介したハードウェア上のF8051F410マイコン上で動作し、コンパイラはsdccを想定しています。実はコンパイル後に気づいたのですが、使用しているフラッシュ領域が8KBとかなり小さく済んだので、フラッシュ低容量バージョンのC8051F412でも動作します。F412の方がDigiKeyではF410よりも100円程度お得です。 ファームウェアの動作概略図をせっかくなので書いてみました(図では上記の事情により、搭載マイコンをC8051F412と表記してあります)。 GPS受信機が電波を捉えられているときは、GPS受信機から出力される時刻情報としての1pps信号、並びに測位データをそのまま後続の機器へ中継します。また電波が途切れたときに備えてTime Keeper自身の時刻情報も更新します。 テストケースとして、GPS受信機がはじめ利用可能で、途中数分間に利用不能となり、再度回復した場合(トンネルなど)、ならびに前回電源ON時はGPS受信が可能であったが、今回は電源ON時よりGPSが利用不能であった場合の2つのケースを実施してみましたが、両ケースとも正常に稼動していました。 November 19, 2007GPSロガー ファームウェア少し以前にGPSロガーを作っていまして、基板データを公開したりしましたが、そういえばファームウェアなどのソフトウェア要素を何ひとつ載せていなかったな、と思い今回の記事を書いています。また最近のアクセス履歴を見てみると、『GPSロガー』で検索される方がかなり多いようなので、自作GPSロガーを考えている方の参考に成なれば幸いです。 作ったファームウェアですが、以前の記事を見ていただければわかるようにSilicon LaboratoriesのC8051F340というマイコン上で動作するものです。コンパイラは、このデバイス向けで無償で使えるC言語コンパイラ、sdccを利用しました。デバッカはSilicon LaboratoriesのF340開発キット(直販で99ドル、DigiKeyでも購入可)に付属のUSB接続アダプタとIDE(統合開発環境)を利用しました。IDEは純正でない無償のsdccとも連携してフルソースコードデバックが行えるので、開発時には非常に重宝しました。 ファームウェアは下の図のような構造になっています。 基本的にu-blox製LEA-4T GPS受信機が出力してきた航法データ(位置や速度)や生データ(Carrier PhaseやPsuedo Range)をそのまま保存する、という機能をこのファームウェアで実現しています。LEA-4Tは比較的安い受信機ながら航法データを最大4Hz、生データを最大10Hzで出力できるので、とてもお勧めです。 SDカードへの書込みは標準的なFAT16フォーマットを利用して行っています。この部分はELMのChaNさんが開発・無償提供されている、汎用ファイルシステム・モジュール Tiny-FatFsをC8051マイコンに合うように取り込むことで解決しました。ChaNさんには感謝の意をここで表したいと思います。 さらにUSBの部分は記録したログがPCから直接みれるように、PCに接続した際にディスクとして見れるMass Storage Device(MSD)という規格に準拠させてあります。同時に、GPS受信機の出力をPCにダイレクトに転送するために、USB上に擬似シリアルポートでを作るCommunication Device Class(CDC)という規格にも準拠させてあるのですが、WindowsのCDCが思い通りの動作をしてくれないので、こちらの機能は不完全な状態にあります。 これらのファームウェアを公開することにします。ライセンスについてはreadme.txtにあるとおり、Creative Commonsの表示-非営利-継承に準拠するものとします。利用させていただいているTiny-FatFsは2007年11月現在、ChaNさんによって無制限での利用が認められていますが、再配布などする際はこちらのライセンスにも注意を払っていただきたく思います。 November 27, 2007完成済みPDFにヘッダを埋め込む
[Computer]
とある事情で40個くらいの完成済みPDF全ての1ページ目のみにヘッダを入れる必要がでてきました。このような編集機能を総称するとアノテーションというそうで、製品版のAdobe Acobat(無償のReaderではなく、作成や編集機能がついたもの)を持っているとGUI操作でできるようです。 トップページから読まれている方は続きをどうぞ。 続きを読む "完成済みPDFにヘッダを埋め込む" |
かれんだ~
スポンサード リンク
|