About this site
このサイトは、航空・宇宙コンピュータ電子工作といった時代の最先端のことから、登山といった文明生活から遥かにかけ離れたことまで、思うがままに書いてあります。写真も大好きです。
興味がある方にしかおもしろくないと思いますが、どうぞ楽しんでいってください。あと、MovableTypeのカスタマイズ情報を提供しています。

If you are interested in "Super Sylphide", an autopilot system for small UAVs, please visit this page.

Super Sylphide猫カメラGPSロガーXBee電力計


最後に、はてなアンテナやRSSリーダーで読む場合はこちらからどうぞ。
Entries @ recently

February 03, 2010

Super Sylphide 進捗状況(28) -- DSPのROMブートでmain()前にPLLを有効に

オートパイロットシステム Super Sylphideですが、ちょっとした佳境を迎えつつあります。そのデバック作業中において遭遇した問題について、今回は記事にしてみようと思います。内容はタイトルのとおり、ブートコードでPLLの設定を完了しなければせならなかったという話です。

Super Sylphideで利用しているDSPはTIのTMS320C6713Bという浮動小数点DSPです。このDSPはROMからブートする場合、以下の2段階の過程を経て行われます。

  1. まず、ROMの先頭1K Bytesが内蔵RAMに自動的にコピーされます。その1KBには、基本的なレジスタの設定、例えば外部に接続されたSDRAMのバス幅やリフレッシュレートなどを書くとともに、プログラムコードやデータを適切な配置となるようコピーするコード、そしてmainに飛ぶコードを埋め込んでおきます。
  2. その1KBのコードが実行されます。つまり基本的なレジスタ設定が完了するとともに、コードやデータが適切なメモリ番地に配置されます。最後にmain()が実行され、晴れてブートプロセスが完了します。

この1KBのブートコードは、なんといってもレジスタ設定やコード配置に関することですから非常に重要です。ということでTIのDSKに付属していたブートコードをベースに、RAMのリフレッシュレートの定数などを少し変更しただけのブートコードをこれまで使ってきました。

しかしながら時たまブートしなくなるという、不安定な症状が発生しました。原因を色々と探ってみたのですが、コードのサイズが少しばかり大きくなると問題が発生するということがわかりました。どうやら外部RAMであるSDRAM上に配置したプログラムコードが時たま予期しないものに書き換わってしまっているようでした。

色々考えてみた結果、タイトルの通りのこと、つまりPLLの初期化をmain()ではなくブートコード上で行うと不安定な状態が解消されることがわかりました。SDRAMのリフレッシュが不足し、データの一部が改変されていたようです。
これまではDSKのサンプルコードに従って、ブートコードが終了しmain()に飛んだ時点でPLLの初期化を行っていたのですが、この状態では本来の速度よりも遅い速度で外部バスが駆動されているので、main()でPLLが設定されるまでリフレッシュのタイミングが予期したものよりも遅くなります。一方、main()が呼ばれる前にブートコードでPLLの初期化を行うと、CPUや外部バスのクロックがコードを配置する以前に本来の速度となり、main()が呼ばれる前のコード配置中においても適切なタイミングでSDRAMのリフレッシュがかかるようになりました。

元にしたDSKのサンプルコードですが、これはこれで正当な方法でブートが行われている、と見ることができることもわかりました。というのも、DSPは高速な演算をさせるために、プログラムコードは外部RAMにおかず、内部RAMにおくというのが有る意味作法となっているからです。内蔵RAMはSRAMでありリフレッシュは必要ないので、PLLによってクロックが変化しようが問題ない、つまりPLLの設定はどこで行っても問題がないということなのでしょう。

最後に現在のブートコード(boot6713.asm)と、PLL初期化がない古いブートコード(boot6713.asm.r3660)を置いておきます。直接参考になるコードがなかった(C672xのブートに関する資料(jaja100.pdf)は参考になった)ので、ニーモニックを調べたりCコンパイラが吐くアセンブラを見ながら、なんとかハンドコーディングできました。

00:07 fenrir が投稿 : 固定リンク | このエントリーを含むはてなブックマーク | この記事をLivedoorでクリップ! | この記事をdelicious.comでブックマーク | この記事をドリコムRSSにクリップ | コメント ←ここから投稿できます!! | トラックバック (0)
このエントリーのトラックバックURL: http://fenrir.naruoka.org/mt/mt-tb.cgi/737

January 27, 2010

実体配線図を綺麗に書くと路線図みたいだ

ブログの更新をさぼっていてスイマセン。生存報告ができる程度の仕事量に最近落ち着きつつあります(まだ脱出したわけではないのです)ので、生存報告がてら息抜きとしてやっていたことを少し記事にしようと思いました。といっても画像を一枚ペタリとはるだけですが。

arege_2010_01.png
イラレで書いていました。

とあるものの動作原理が知りたくて、所謂リバースエンジニアリングをしていました。従って何かは聞かれても絶対にお答えいたしません(笑)。

09:27 fenrir が投稿 : 固定リンク | このエントリーを含むはてなブックマーク | この記事をLivedoorでクリップ! | この記事をdelicious.comでブックマーク | この記事をドリコムRSSにクリップ | コメント(2) | トラックバック (0)
このエントリーのトラックバックURL: http://fenrir.naruoka.org/mt/mt-tb.cgi/736

January 01, 2010

年末年始? そんなの関係ない!!

[Timely]

世間一般では年末年始というらしいですが、僕は自己責任の諸事情で年末年始がなくなりました。どうもありがとうございます。

200913.png
クリックでExcelが落とせます。

そのような方のために、ご用意いたしました、2009年13月のカレンダーです(実は僕のトモダチのJorg氏から戴きました)。何らかの事情を周囲に察知してもらうためにそっと使うもよし、年をまたいでしまった残念なデスマプロジェクトで同僚に圧力をかけるに使うもよし、各自ご活用ください。

※なお、このエントリーは僕の時間がとれ次第、2010 謹賀新年というタイトルに変わる予定です。事情をお察しください。また年賀状も鋭意遅延中(送っていただいた方には絶対お返しいたします)です。申し訳ありません。

続きを読む "年末年始? そんなの関係ない!!"
22:36 fenrir が投稿 : 固定リンク | このエントリーを含むはてなブックマーク | この記事をLivedoorでクリップ! | この記事をdelicious.comでブックマーク | この記事をドリコムRSSにクリップ | コメント ←ここから投稿できます!! | トラックバック (0)
このエントリーのトラックバックURL: http://fenrir.naruoka.org/mt/mt-tb.cgi/735

December 22, 2009

『あかつき』に初音ミクを載せよう -- 10000人署名達成

僕の周りのTwitterではかなりつぶやかれていたので、ご存知の方が多いのではないかと思いますが、JAXAの金星探査衛星『あかつき』初音ミク(の絵)を載せようという計画が、超電磁Pこと森岡澄夫さんによって運営されています(署名締切:2010/1/6)。これは『あかつき』の金属プレートに応援メッセージが載せられるというJAXAの企画に便乗したものです。

当初はミクの名前を載せる程度の話だったのですが、署名が集まっていくごとに、各所の協力が得られて計画がどんどん大きくなり、10000人のメッセージを集めると金属プレートまるまる一枚にミク絵を載せられるというプロジェクトに発展しました。そしてとうとう本日、署名10000人を達成したことで、ミク絵が『あかつき』に載ることはほぼ確定したと思います。

超電磁Pが10000人署名達成への感謝ということで、コメントを掲載しています。全文はリンクを参照していただくとして、特筆すべきは以下の点です。

(前略) 二つ目は,「人と人とのつながりからブレークスルーを起こす」ということです.上記のとおり,本件は私一人が成し遂げたものなどではありません.私一人が何をしても大した結果を生み出せるはずがありません.初音ミクの世界で最高に素晴らしい点は,ミクを媒体に魅力的な方達が自発的につながり,それによって驚愕するような飛躍的成果が出ることです.今回の活動の一連の経過が,それを何よりも雄弁に物語っています. (後略)

今回のような計画から『オリコンでアニメの主題歌を1位に』のような軽い感じを受ける方も勿論いらっしゃるでしょう。また堅い話をするならば、税金を使ってやっている宇宙の探査が注目を集めることはいいことだ、というあたりなのでしょう。しかし本音のところで言えば、とんとん拍子に話が大きくなっていったことこそ今回の計画の最大の見所だと思います。その開発や運営に直接関わっていなくとも『俺らの衛星』としてこれだけ楽しみ方を増やすことができた、そしてそれを可能にしたのは初音ミクを介した人的ネットワークであったと。

実は、これだけでは終わりません。『あかつき』の署名後も、リアル初音ミクを搭載した人工衛星を趣味な人たちが自作、軌道にのせよう、というSOMESATプロジェクトが進行中です。これも人的ネットワークを介してどこまで実現できるかが勝負どころでしょうが、結集している英知をみる限り、かなりの確度で軌道投入できると踏んでいます。

最後に余談になりますが、知合いのJAXA職員某氏は、『ほんとやめてください。企画、つぶしてやりますよー』なんてニヤニヤしながら先日言っていましたが、たぶん大丈夫だと思います。彼の力はそこまで及ぶまい(笑)

22:55 fenrir が投稿 : 固定リンク | このエントリーを含むはてなブックマーク | この記事をLivedoorでクリップ! | この記事をdelicious.comでブックマーク | この記事をドリコムRSSにクリップ | コメント ←ここから投稿できます!! | トラックバック (0)
このエントリーのトラックバックURL: http://fenrir.naruoka.org/mt/mt-tb.cgi/734

December 16, 2009

TeXで綺麗なアスペクト比の記号

TeXで飛行機関係の文章を書く最近なのですが、飛行機の大きさや重さといった緒元を表にしようと思っていました。そこで遭遇したのが、翼の細長さを表現するアスペクト比(Aspect Ratio)です。アスペクト比は航空関係だとローマ字の大文字AとRをくっつけた特別な記号(画像参照)で書かれるのですが、流石はTeX、外部パッケージながらar.styというフォントが用意されています。

TeX_AR.png
赤丸をつけたのがAR記号。

しかしながらこのar.styはMETAFONTというフォーマットでしか提供されていないので、このままだとPDFにした際にビットマップフォント(Type3)として埋め込まれ、拡大すると汚くなってしまいます。確認方法としては、dvipdfmxなどでARの記号が入ったPDFを作り拡大してみてください。ガタカタしていると思います。

そこで一念発起してPDFでも綺麗に表示可能なベクタフォント(Type1)をMETAFONTから作ることにしました。そして上記の画像の品質を得ることができました。
過程を簡単に紹介しますと、Linux上でTeX環境とar.styを導入、ビットマップからアウトラインを抽出するpotraceを用いたベクタフォント作成ツールであるmftraceを使って、ar.mfからar.pfaを作成、そしてt1binaryで目的のTYpe1フォントar.pfbに変換。最後にfontmapを作ってar.pfbとともにtexmfツリーにmktexlsrとupdmap --addでWindowsのTeX環境に登録しました。

Windowsではなぜかmftraceが動かなかったり、Adobe Readerで『フォントが抽出できないエラー』が発生した(fontforgeを使ってar.pfbの文字コードマップが0から全て埋まるようコピペして回避)ので苦労しました。しかし結果的に綺麗なAR記号を作れて満足しています。成果物として、上記過程で処理したものをまとめたar_type1.zipを公開します。使いたい方はar_type1.zipをTeXをインストールしたディレクトリ(フォルダとしてbinとかshareがあるはずです)の下に展開、mktexlsrとupdmap --add ar.mapをして(mktexlsrがうまくいっていればkpsewhich ar7.pfbでar7.pfbがあるパスが表示される)、あとはTeX上でar.styをusepackageすると\ARで綺麗な記号がでてくるはずです。

08:50 fenrir が投稿 : 固定リンク | このエントリーを含むはてなブックマーク | この記事をLivedoorでクリップ! | この記事をdelicious.comでブックマーク | この記事をドリコムRSSにクリップ | コメント ←ここから投稿できます!! | トラックバック (0)
このエントリーのトラックバックURL: http://fenrir.naruoka.org/mt/mt-tb.cgi/733

December 05, 2009

Twitterでつぶやくと数式の画像のURLが返ってくる

Twitterでぶつぶつ言っていると急に数式を書きたくなりませんか? 僕は勿論のこと、皆さんもそうなりますよね(笑)。そこでTwitter上でTeXの数式をつぶやくと、画像のURLを返してくれるサービスを作りました。

使い方は簡単、@TeX_Eqに対してTeXの数式をつぶやいてみてください。
例えば @TeX_Eq E = mc^{2} とつぶやくと、しばらくして http://is.gd/5cg3AというURLがつぶやき返しされるはずです。これはアクセスすると以下のような画像がゲットできます。



Rubyで書いたソースコードを公開しておきますが、仕組みは至極簡単です。

  1. TeX_Eq向けのつぶやきをcronで監視
  2. つぶやきがあったら、それを数式と解釈してGoogle chart APIを使って数式の画像を取得するためのURLを内部的に生成
  3. そのままだとTwitterの140文字制限に引っかかってしまうので、is.gdを使って、短縮URLに変換
  4. それをつぶやき元に@で返信

これだけです。途中is.gdのAPIの仕様に躓いたり(ソースでgsub!をしているあたりが原因)したのですが、賞味3時間くらいでなんとか様になりました。前にTwitterで遊んでいた経験も大きいのですが、マッシュアップのおかげには違いありません。

続きはギャラリー。

※その後、透過機能と指定サイズ機能をつけました。背景を透明にするには@TeX_Eqの前にTという単語(スペースで区切られたT)をつけてください。指定サイズで数式を得るには(縦のピクセル数)x(横のピクセル数)という単語(x(横のサイズ)を省略することもできます)をつけてください。例えば T 200x200 @TeX_Eq E=mc^{2} は背景透明の200x200の画像を得ます。

※※(2009/12/19)結城浩さんの日記で紹介していただけたようです。もしバグや改善点などありましたら、コメントとして残していただけると幸いです。

続きを読む "Twitterでつぶやくと数式の画像のURLが返ってくる"
00:51 fenrir が投稿 : 固定リンク | このエントリーを含むはてなブックマーク | この記事をLivedoorでクリップ! | この記事をdelicious.comでブックマーク | この記事をドリコムRSSにクリップ | コメント(3) | トラックバック (0)
このエントリーのトラックバックURL: http://fenrir.naruoka.org/mt/mt-tb.cgi/732

November 28, 2009

TeXlipseとdvioutの連携

最近、大型の文章作業をしているのですが、統合開発環境eclipse上でtexの文章をやりくりしたいと考えるようになりました。今まではTeXの作業をするにあたっては、WinShellというエディタと、dvioutというビューワを組み合わせていたのですが、参考とする資料がeclipse上で管理されていることが多く、いちいちeclipseとWinshellで行き来をするのが面倒くさくなったためです。加えてWinShellは全角入力をしている際のF10キー(キーボードを押したとおりの半角小文字に変換)が2度押ししないと利かないことがあり、かなタイパーの僕が英単語を入力するのにかなりの苦労をさせられる(F10が利かないと、いちいちIMEを切る必要あり)という問題がありました。

そこでまず、eclipseでTeXを扱うことができるようにしました。まさに目的にふさわしいプラグインTeXlipseを見つけることができました。このプラグインの導入によってキーワードのハイライトやワードカウント、dviやpdfへのコンパイル、およびdvioutやAcrobatといったビューワの起動など、WinShellが持っていた機能はほぼカバーすることができました。

しかしながら、ここでようやく表題に関わるのですが、WinShellで便利だった、dviout(dviビューワ)で現在編集している箇所がすぐ見れる機能(forward serach)と、dviout上で指定した位置にWinShellのカーソルを移動する機能(Invert search)、これら2つの設定方法が簡単には見つかりませんでした。

色々試行錯誤した結果、これらの機能を実現できるようになったので、TeXlipseを使っている/みようと思っている方は是非試してみてください。以下の3つのステップを踏みます。続きをどうぞ。
なお、以降の情報はTeXlipseのマニュアルとdvioutに付属のヘルプを参考にし、現時点での最新版 TeXlipse 1.3を対象にしています。

続きを読む "TeXlipseとdvioutの連携"
01:16 fenrir が投稿 : 固定リンク | このエントリーを含むはてなブックマーク | この記事をLivedoorでクリップ! | この記事をdelicious.comでブックマーク | この記事をドリコムRSSにクリップ | コメント ←ここから投稿できます!! | トラックバック (0)
このエントリーのトラックバックURL: http://fenrir.naruoka.org/mt/mt-tb.cgi/731