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

July 26, 2016

Super Sylphide 進捗状況(86) -- ちょっとすごいロガーのバイナリ自動生成

生存報告がてら、ちょっとすごいロガーGitHubで公開していることの関連話を記録しておこうと思います。

ソースコードや基板設計データは、作ったものをそのままGitHubにpushすればよいので、手間はないのですが、附随するファームウェアやツールのバイナリは、これまで手動生成して登録していたため、それなりに時間を取られてきました。ならば、ということで全部自動化してみました。生成しているものとその仕組みです。

ファームウェア
実機で動く8051バイナリ。Travis-CIでコンパイラであるsdccをスクリプトで野良ビルドし、さらにファームウェア自体をビルドしている。タグ付きの場合に限り、GitHubのReleaseにDeployしている。
ツールバイナリ(Linux)
Travis-CIでmake,g++でビルド。常にmasterの最新版をBintrayにDeployするようにした。
ツールバイナリ(Raspberry Pi)
Travis-CIでmake,g++-arm-linux-gnueabihfでクロスビルド。g++-arm-linux-gnueabihfはaptで拾ってきている。常にmasterの最新版をBintrayにDeployするようにした。
ツールバイナリ(Windows)
AppVeyor上のVisual Studio 2015でslnをビルドしている。常にmasterの最新版をBintrayにDeployするようにした。

.travis.yml.travis.bintray.jsonあたりに上記手順が集約されています。またAppVeyorはGUIで設定してしまっているのですが、Yamlで書き出すとこんな感じになっています。

最も嵌ったのがTravis-CIのBintrayへのJSONの書き方でincludePattern等が純粋な正規表現ではないところです。JSONを駆動しているprovide付近にある通り、正規表現の丸括弧前でどこかしらのパスに一致している必要がありました。

こんな感じでGitHubにpushするだけでいろいろと回るようになっています。

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

March 26, 2016

Super Sylphide 進捗状況(85) -- ちょっとすごいロガーとesp8266を連携

ちょっとすごいロガーに対して、無線LANモジュールのesp8266で無線化してみました。以下の動画では秋月電子のesp8266 DIP化キットを使っています。

詳細は随時追記予定です。またgithubでは近いうちにこれらのことができるコードをv1.1+Firmwareとしてリリース予定ですしました。リリースノートにはesp8266用のスクリプトが置いてあります。

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

February 24, 2016

Super Sylphide 進捗状況(84) -- Travis-CIでsdccを回す

ちょっとすごいロガーgithubでソースなどを公開していますが、それと組み合わせてビルドテストなどを行うことができるTravis-CIが便利です。Travis-CIはPC系のものにはだいたい対応していますが、カスタムビルド環境を整備することで、ちょっとすごいロガーが依存しているコンパイラのsdccにも対応することができました。

キーとなるのは下に示した.travis.ymlです。ここにビルドやビルド後にバイナリを公開するデプロイの動作を記述しています。

上記にある通り、boostなどの標準的なツールはaptで入れることができるのですが、さすがにsdccには対応していない(リクエストが出されているようなので、そのうち対応されるかも?)ので、カスタム野良ビルドスクリプトbuild-sdcc.shを指定しています。

こんな感じで、この記事を書いている時点でのちょっとすごいロガー最新ファームウェアをv1.0+Firmwareとタグ付けしてリリースしました。最近機能を追加等していますので、その話はまたgithubの中のWikiで公開したいと思います。

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

February 13, 2016

MacOSX 10.5.8 に clamav

かなり古いMac mini (2007年のCore 2 Duo)のメンテをして、ウイルス対策をほどこすことにしました。といってもMac mini自体のウイルス対策をするというよりは、プロキシと組み合わせてウイルススキャンゲートウェイとし、他のPCのインターネットアクセスを保護しようという使い方をしています。プロキシにはsquid-3.4.13、ウイルススキャンにはclamav-0.99、間をつなぐのはc_icap-0.4.2 + c_icap_module-0.4.2 で構成しました。『icap連携をしてみる』『ウイルス対策の組込み(ClamAV)』を参考にしつつ、全てセルフビルドで構成してみました。

中でも古いMacOSX 10.5.8にclamavの導入には苦労したので、備忘録をここに残しておこうと思います。必要なライブラリ(最低限zlib)が揃っていれば configure && make && make install まで通るのですが、いざ動かしてみようとすると、例えばウイルス定義データベースを更新するfreshclamを実行すると

WARNING: [LibClamAV] cli_cvdload: Corrupted CVD header
ERROR: Verification: Malformed database

となって死んでしまいます。これは結局のところ、MacOSX 10.5.8に入っているzlibが古くzlib-1.2.3であることが原因でした。以下、対処方法を書いておきます。

続きを読む "MacOSX 10.5.8 に clamav"
21:37 fenrir が投稿 : 固定リンク | | このエントリーを含むはてなブックマーク | この記事をdelicious.comでブックマーク | コメント ←ここから投稿できます!! | トラックバック (0)
このエントリーのトラックバックURL: http://fenrir.naruoka.org/mt/mt-tb.cgi/936

January 23, 2016

ThinkPad X40 BIOS電池の交換

軽いデモをするときに使っているノートPC ThinkPad X40のBIOSの電池(FRU 92P1004)が切れてしまったので、交換しました。ネットを探ると、コネクタがついていて差し替えるだけで交換が完了できる部品があるのですが、せっかくなので電池だけの交換をしてみることにしました。

分解をしてみるとこんな感じになっています。

x40_battery_orig.jpg
被覆をはがすと

3本線がでているのですが、そのうち2本(白と黒)はGND側でした。残りの赤は+側です。電池はCR2025でした。

電池への直接半田付けはかなり危険が伴う(YouTubeで検索すると、爆発という不穏な単語がでてきます)ので、金属タブが既にスポット溶接されている電池に電線とコネクタを半田付けで移植しました。なお入手性の都合でCR2016に変更しました。

移植するとこんな感じです。

x40_battery_mod.jpg

あと熱収縮チューブを被覆としてかぶせて完成です。実機に搭載してみましたが、問題なく使えました。

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

January 16, 2016

謹賀新年 2016

[Timely]

本年もよろしくお願いいたします。

2016.png
バナナ!

なかなか更新できていませんが…

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

October 03, 2015

require 'win32ole' で終了コードが0xc0000005 (対処療法)

前回の記事でE-MailRelayを使ったメールアドレスの送信直前チェック方法を書きましたが、一部の環境でエラーがでることがわかりました。チェックするRubyスクリプトの終了コードがアドレスチェックにあたって重要なのですが、終了コードが常に-1073741819 (0xc0000005)になってしまうのです。調べたところこの値はAccess Violationで、権限に関する問題だと思われます。

require 'win32ole'をするだけの短いスクリプトを実行後、$? (cygwin) あるいは %ERRORLEVEL% (Windows cmd.exe)を見てみると、その値になっていたことから、OLE絡みであることは確かでした。WIN32OLE#ole_freeを実行してみましたが、改善しませんでした。

そこで対処療法をしました。win32oleを使う部分を別プロセスに閉じ込めることにしました。スクリプトは現在下記のようになっています(前のリビジョンへのリンク)。

forkで別プロセスを起動し、プロセス間通信はPipeを利用して、オブジェクトはMarshalでやり取りをしています。根本的解決にはなりませんが、取り急ぎ終了コードが正しいものになり、アドレスをチェックする目的が達成できるようになりました。

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