エントリー

カテゴリー「make:」の検索結果は以下のとおりです。

GPS時計 - 後日談

  • 2010/01/28 17:01
  • カテゴリー:make:

 先日,ここをご覧頂いているある方からメールを頂きました。

 内容は,GPS時計を作ったが動かない,なにか思いつくことはないか,ということでした。

 昨年末にAVRのtiny2313を使ってGPS時計を作り,その顛末をここに書いたのですが,私にしては珍しくソースも公開したので,自分も作ってみようと思って下さった方がいらっしゃったようです。

 最初に申し上げておかねばならないのですが,この日誌は自分のためのメモがわりなので,他の方が見て問題なく制作できるほどの情報を書いていません。今回のGPS時計にしても,実は回路図はどこにも書いていませんし,ソースの変更履歴もありません。さらに掲載した画面の写真は最新のソースのものではありません。

 ということで,誰もこんなの作ってみようと思わないだろうと,不親切きわまりない内容だったにもかかわらず,果敢にも実際に手を動かした方がいらっしゃるとは,ちょっと驚くと共に,申し訳ないなあという気がしました。

 頂いたメールは非常にシンプルで,「SATと20だけが表示されあとは何も出てこない」ということだけが書かれていました。

 うーん,正直なところ,これだけでは原因として思いつくことがあまりに多すぎて,ちょっと答えようがないなあ,と思っていたのですが,まず最初にピンと来たことを中心に答えることにしようと考えました。

 私のお返事は,

----
 その原因として,思いつくものを列挙します。
LCDに表示が出ているので,AVRとLCDは動作していると
仮定します。

 また,ソースは「GPS時計 - 完結編」にある
最新版(起動時にV1.33と出る)であるとします。

(1)GPSモジュールのボーレートを変更していない。
 購入直後の設定は9600bpsなので,これを
 19200bpsに設定する必要がある。(やりかたは
 ぐぐってください)

(2)AVRを外部発振で動かしていない。
 AVR側のボーレートは,内蔵発振では
 補正を入れないと正確にならず,受信出来ない。
 (最終版のV1.33では20MHzの外部発振でなくては
  動きません)

(3)書き込み時のヒューズビットの設定ミス。
 特に外部発振の設定はヒューズビットで行うため
 適切な設定を行う必要がある。

(4)配線ミス。
 GPSモジュールのピン配置は?
 GPSモジュールの信号レベルは?
 GPSモジュールは動作している?
 単純な配線ミスは?
----

 としました。

 ピンと来たというのは(1)もしくは(2)の話で,表示も出ていることからAVRは動作しているし,通信が出来ていない時にこの症状になることは私も経験しているので,この2つを確かめてもらおうということにしたのです。

 とりわけ(1)は,GPSモジュールに手を入れて,ボーレートをデフォルトの9600bpsから19200bpsにしないといけないことを詳しく書いていなかったので,可能性は低くないと思いました。

 (2)も実際に実験したのですが,内蔵発振器でクロックを用意する場合,その周波数は結構ずれるため,正確なボーレートになってくれません。それでAVRライタを使ってある領域に書き込まれている補正値を読み出し,その値を周波数補正レジスタに書き込んで8MHzを作る事が必要になります。

 私が実験したというのは,あるチップで有効な補正値を別のチップに書き込んだらどうなるかだったのですが,予想通りボーレートも狂ってしまい,受信が出来なくなりました。結構面倒な話なので,私はUARTを使う場合には外部に発振子を用意しようと,この時から考えるようになりました。

 (3)は今回の現象を直接引き起こすか確証はないのですが,私の思うAVRの欠点の1つだと思うことでもあるので,書いておきました。

 AVRもマイコンですから,ソースをコンパイルしバイナリを生成し,これをライタで書き込むことで動くようになります。ただ,AVRの場合それだけではだめで,書き込み時にライタによってヒューズビットを設定しなければなりません。

 私が嫌だなと思うのは,ヒューズビットの設定をファイルに保存しておけないことです。ソースもバイナリも保存できるので残しておけますが,ヒューズビットはメモで残すか,テキストファイルで残すかした上で,ライタにいちいち設定しないといけなかったりします。(なにかいい方法があるのかも知れませんが,ライタによらない共通のフォーマットで保存出来なければ意味がありません)

 しかも,ヒューズビットの設定をあやまって,外部発振子を使わずに外部発振モード設定にしてしまうと,ISPでの書き込みが出来なくなってしまいます。ごく普通に使われているライタはISPですので,それしか持っていない人にとって,復活の方法がないという恐ろしい状況がおこります。

 チップごとに設定が異なっていて,しかもマイコンが動作する前に設定をしないといけないような部分があって,そこをヒューズビットにするという考え方は普通だと思いますが,それならそれでAVRstudioでヒューズビットの設定を行う事にし,バイナリと一緒にヒューズビットの設定ファイルを生成して,ライタはそれらをただ書き込むだけ,と言うふうにしてくれた方がよかったと思います。

 まあ,そんなことを言っていても仕方がありませんが,とにかくヒューズビットは回路によっても変わってくるので,作った方に再確認をしてもらうしかありません。


 翌日,お返事を頂きました。

 無事に動いたという事です。よかったよかった。

 原因は,GPSモジュールのボーレートを変更していなかったことにあったとのこと。私の勘もなかなかのものです。

 一緒に,正常に動作した状態の写真も送って下さいました。LCDは秋月あたりでよく売られているものをお使いのようですが,私はデジットで買った大きめのものを使っているので,同じ画面が小さい液晶で表示されたものを見るのは当然初めてです。

 こうしてみると,自分が作った覚えのないものが,同じように動いているのを見るというのは,なんだか不思議な感覚になります。自分が手を動かして作ったものは,やっぱり強い記憶に残りますから,写真を見てもなんとも思わないのですが,自分が作っていないものが同じ動作をしているのをみると,「あれこんなのいつの間に作ったのかな」という感じになるのです。

 もしかすると,突然「あなたの子よ」と子供の写真を見せられたら,こんな気分になるのでしょうか。

 私は,自分の電子工作は,自分が楽しかったらそれでいいという動機でやっていることなので,積極的に他の方に作って頂こうなどと思ったことはありませんから,今回のことは意外だったなと思うのと,こんなものでも興味をもって作ってみようと思って下さった事が,素直にうれしいと思いました。

 余談ですが,エレキジャックのNo.16に,私も使ったGPSモジュールであるGT-720Fを使って,GPS時計を作った例が記事として出ているようです。

 なぜかある領域でブームになってるニキシー管を使っているのも売りのようですが,私が疑問なのは,GT-720Fのような1PPS出力がないモジュールを使っておきながら,正確とか原子時計レベルとかいっていいものなのかな,ということです。

 GT-720Fというモジュールは,1/10秒や1/100秒の桁がゼロになっている時刻にだけ,時刻情報を送信してくるというわけではありません。

 つまり,12時12分12秒00という時刻情報が送られて来るとは限らず,12時12分12秒99といった,1/10秒や1/100秒の桁が0以外の時刻情報を送ってくることがあるということです。

 だから,単純に受信データのうち,1秒から上の桁を表示するだけでは,最悪1秒近いズレを発生させてしまうことになります。

 そりゃそうですね,GT-720Fは,12時12分12秒99の時点で「12時12分12秒99ですよ」と時刻情報を送信しているに過ぎませんから,受けた側がそれを勝手に12時12分12秒と表示したら,約1秒ずれますわね。私はここで,随分苦労しました。

 エレキジャックには最近愛想を尽かしてしまっているので買っておらず詳細は分からないのですが,ちょっとだけ気になってサポートページにあるソースを見ると,特別な処理は行っておらず,1/10秒以下を単純に切り捨てて表示させ,結果的に最大1秒のズレを発生させる可能性があります。

 もちろん,私がやったような方法で1/10秒以下を考慮しても,1PPS出力がなければGPS衛星に搭載される原子時計に同期したパルスを手に入れられませんから,12時12分12秒00になってから12時12分12秒00と送信されたデータを受信して表示をしているようでは,どうしたって遅れが生じます。これはGT-720Fを使う限り避けようがありません。

 なのに,原子時計レベルの正確な時計だ,というのはかなり無理があるように思います。私がおかしいのかなあ?

 みんな,電波時計なんかと比較しないんでしょうか・・・作りっぱなしで比較もせず,GPSで得られる時刻情報は原子時計レベルなのだという知識だけで,盲目的に自分の作った時計も正確だと信じちゃうのでしょうか。

 さて,同じ電子回路の設計技術を持つ者でも,量産品を設計するプロと,アマチュアとの間には大きな差があります。プロは1000個や10000個を「同じように」「効率よく」作る事を前提として設計を行う事になります。アマチュアは1つ動けばそれでいいので,極端な話,全部の抵抗を可変抵抗にしても別に構いません。

 こうした差から生まれる決定的な違いは,プロは記録を残すことも仕事と考えていることです。自分がいなくなっても同じものが作れるようにするには,詳細な記録がなくてはなりません。それが回路図であり,ソースコードであり,履歴であり,各種のドキュメントです。

 アマチュアはこういったものをあまり積極的に残しません。プロは,残すだけではなく,誰が見ても同じ結果になるように,決まったフォーマットで残す事を求められます。

 仕事なんだから当たり前なのですが,何が言いたいかというと,アマチュアも,しっかりしたドキュメントを残すべきだということです。私もGPS時計について,自宅にはちゃんとした資料を残しています。

 最近,電子工作を楽しむ方が増えているようです。それはとてもよい事ですし,長年楽しんでいる私にとっても心強いものがありますが,設計,製作,測定,考察,というプロセスをきちんと踏んで,それらをきちんと記録して残しておくことを特におすすめしておきたいと思います。

 必ず次に繋がりますし,飛躍的にその人の技術力を高めます。なにより,後で読み返したら面白いですよ。

 とくにオーディオマニアでアンプなどを自作する人に言いたいのですが,地に響く低音とか伸びのある高域とか静寂が身を包むとか躍動感あふれるとか艶やかなボーカルとか,そんなことを「作った結果」として誇らしげに言ってるだけじゃ,ダメですよ。

GPS時計 - 完結編

  • 2009/12/11 14:31
  • カテゴリー:make:

 GPS時計ですが,その後も毎日のように検討を続けていました。

 GPSを使って時刻情報を得ていながら,1秒近くずれるというのはもはや言語道断といえて,何とかなるならしてみたいし,駄目な場合でも駄目な理由を理解してからあきらめたいと思ったからです。

 さて,前回,UARTのボーレートを38400ボーにするということと,使っていないセンテンスは送出させないようにしたこと,それと1秒に1回だったデータの送信周期を1秒に2回にしたことで対応を図ったが,あまり良い結果が得られなかったことを書きました。最大で1秒弱の遅れは解消されず,遅れる時間も長かったり短かったりとバラツキがみられます。

 そして,根本的にGPS本来の精度の時計を作るなら,GPSモジュールから1PPSの信号を得なければどうにもならない,ということもはっきりしました。ここまでが前回までのお話です。

 一般論としてですが,どうもGPSモジュールから出てくる時刻情報は,実際の時刻よりも少しだけ進んでいるのが普通のようです。少しだけ進んだ時刻をマイコンが取り込み,その後やってくる1PPSの信号で表示を更新することで,GPS本来の精度の時計が実現出来るというわけです。

 今回使っているGT-720Fというモジュールはこの1PPSの信号が出ていませんので,そもそもGPS時計を作るのに適していないモジュールを選んでいることになります。

 それに,これまでいじった結果として感じるのですが,少し進んだ時刻が出ているかどうかもあやしいです。

 ということで,1PPSがないと正確な時計を作る事が出来ないなら,GT-720Fから1PPSの信号を引っ張り出せないか,と考えました。

 幸いないことに,GT-720Fで使われているベースバンドチップは,Venus621LPというもので,1PPS信号の出力を持つLSIです。きっと,モジュールのどこかに1PPS信号が出ているに違いないと考えました。

 そこで背面のシールドケースをあけ,1PPS信号を探したのですが,結論からいうと見つかりませんでした。Venus621はBGAパッケージのLSIですから,端子から直接信号を取り出せません。基板上のどこかに出してくれていることを期待したのですが,スルーホールや抵抗などの部品をすべてあたっても,1PPSの出ている箇所を見つけることができませんでした。

 ならば,と衛星をつかまえたことを示すLEDはどうだろう,と考えました。GT-720Fは,衛星をつかまえていない時はLEDが点灯,つかまえると一定間隔で点滅します。

 このLEDの点滅が1PPSに同期しているなら,1PPS信号として使えるでしょう。いい所に気が付いたと思ったのですが,残念ながら全く同期しておらず,無関係でした。この段階で,GT-720Fから1PPS信号を得る事はあきらめ,外したシールドケースを元に戻しました。寂しいですね。


 ここに至って,1秒近く遅れる,という人間の感覚でもばれてしまうズレを,せめて意識しないで済む程度にする,という消極的な方法しかなくなってしまいました。

 そのためには,前回も書きましたが,何らかの理由でずれた時刻が送られて来ても,更新周期を早めて表示を頻繁に行うのが有利です。周期が短いほど,ずれた時刻の表示が正しい時刻になるまでの時間が短くなります。

 そこで,GT-720Fの設定ツールを使って,更新周期を設定可能な最大である1秒間に10回に設定しました。

 また,ボーレートを19200ボーに下げました。これは,38400ボーに上げたところで数msしか高速化されませんし,96バイトとバッファサイズを大きくしてまでこのボーレートで受け取るのは無駄で,64バイトのバッファで受信可能な19200ボーが最適という判断です。

 前回書きましたが,バッファを64バイトにすれば,リングバッファの実現が条件分岐ではなく,ANDによるマスクという処理だけで可能となります。これは処理速度にもコードサイズにも有利です。

 さらに,LCDへのデータ転送タイミングには十分すぎる時間を確保してあったのですが,これを大幅に切り詰めました。LCDへの転送クロック周期はスペックでは500nsから1000ns程度なのに,2msと2000倍も長くとってありました。動作は確実でしょうが,処理時間の大半はLCDへの転送にかかっていたことになります。

 試したところ,確かに見た目のズレはかなり軽減されています。しかし,そのズレ方は一定ではなく,1/10秒くらい遅れているときもあれば,ほとんどずれていない時もあります。

 この違いはなんだろう・・・はっきりしないと,時計として全く信用できません。

 この疑問は,GPSモジュールの吐き出すセンテンスを直接PCで見た時に氷解しました。

 実は,GPGGAにしてもGPRMCにしても,時刻情報として

133227.999

 というデータが,13時32分28秒の段階で送り出されていることがあるようなのです。

 27.999秒というのは,もうほとんど28秒なのですが,1/10秒以下を無視してしまうと,27秒と表示されてしまいます。

 もし,1秒間に1度の更新周期なら,次のデータは28.999秒となり,実際の時刻である29秒との表示のズレは,またしても1秒出てきてしまいます。こうして,GPSモジュールが何かのきっかけでxx.999ではなく,xx.000を出してくれるようになるまで,この1秒の遅れは続きます。

 もし1秒間に2回の更新を行う場合,送られて来るデータは

133227.999 133228.500 132228.999 133229.500

 という順番で出てくる事になり,ズレは0.5秒まで軽減されます。とはいえ,0.5秒のズレはばれてしまいますね。

 さらに,もしなんらかの理由で,

133228.000 133229.000

 という形で送られて来るようになると,.xxxを無視して表示すれば,ほとんどずれることなく表示が出来る事になります。

 さらに調べていくと,.xxxの部分は一定ではなくばらつくこと,バラツキの大きさによって遅れる時間が変わることも分かりました。

 これが,表示時刻が不規則に遅れる理由でした。

 少し実験をします。PCで.999というデータが出ていることを確認した上で,実機の表示を1/10秒まで表示させてみました。すると秒の桁が,

11.1 -> 11.2 -> 11.3 ... -> 11.8 -> 11.9 -> 11.9 -> 12.1 -> 12.2 ...

 という具合に変化します。1/10秒にゼロが表示されないことと,1秒の桁は11.9では変わらず12.1で変わるので,実際の時刻よりも1/10秒遅れているのがよくわかります。

 また,PCで.000で揃ったデータが出ている状態で同様に確認すると,ほとんど同時に表示も変化するようになります。これではっきりしました。

 そこで,暫定的に.999になったら秒のデータに1を加えるという簡易的な方法を試してみたところ,表示は概ねずれることなく更新されるようになったのですが,

18.8 -> 18.9 -> 19.0 -> 19.1 ... 19.8 -> 19.9 -> 1:.0 -> 20.1 ...

 という変則的な表示となり,見た目が非常に悪くなりました。キャラクタコードに1を加えただけの手抜きはダメで,やっぱり真面目にやるしかありません。

 そこで,さらに大幅な変更をします。日付はともかくとして,時刻だけはちゃんと処理する事にしましょう。日付は24時間に一度変化しますが,GPSからのデータの取得はは1秒おきですので,1秒だけ32日とか出てしまうことが考えられますが,まあいいでしょう。メモリも足りませんし。

 このため,これまで直接リングバッファの値を表示用の関数に渡していたものを,一度グローバル変数に取り込んで,文字列-から数値への変換,補正や表示を行う事にしました。

 あと,潜在的なバグとして日付の処理に問題があり,UTCで9日をJSTに変換するところでくだらないミスをしていたため,10日とならず,0:日と表示されていました。配列の宣言のミスで,暴走一歩手前だったことも白状します。お恥ずかしい。

 そうこうして出来た最終的なソースが,以下です。


続きを読む

楽しいAVRでGPS時計を作ってみる

  • 2009/12/08 14:09
  • カテゴリー:make:

ファイル 339-1.jpg

 先日,MakeTokyoMeeting04を見学し,Maker達の熱意にずいぶん影響を受けたのですが,ともあれGPS Laboさんでわけて頂いた,GPS時計プログラムを書き込んだATtiny2313を生かさねばなりません。

 とにかく簡単に試せるという事で,MTM04の直後にGPSモジュールを秋月電子に手配を済ませてあり,翌週の土日から検討に入っています。

 LCDは昨年の今頃,大阪のデジットで入手した大型のLCDモジュールを使う事としましたが,予想通りあっさり動いてしまいました。

 元々,PICをアセンブラで使い慣れている私としては,個性の強いMSP430やPSoCならまだしも,個性の弱いAVRを今さら使うのもどうかなあ,と感じて試す気にならずにいました。

 ところが,GCCが使える(つまり無制限で優秀なCコンパイラが使える)ことと,tiny2313であれば秋月価格で1つ100円と圧倒的に安いことが私にとっては強烈な個性に見えて,軽く遊んでみることにしました。幸いライタは昨年のデジット詣の際に購入済みです。

 GCCが使えるという事から,プロセッサのアーキテクチャが無個性であることがうかがい知れるわけですが,逆にPICでは個性が強すぎてGCCをインプリ出来なかったわけですね。先日も話していたのですが,PICは「クセの強さをアセンブラで味わうマイコン」です。

 開発環境であるAVRstudioも使いやすいですし,tiny2313はちょっとメモリが少ないですが,最大20MIPSという高速処理と,レジスタと内部メモリが1クロックアクセス出来る事もあり,プログラムを作る上で速度低下に気をつけながらコードを書かずに済むため,コンパイラ任せでも精神的に随分楽です。

 わずか100円で20MIPS,豊富なI/OポートをCでグリグリ動かせますから,もうPIC18F84とはおさらばです。ということで,すっかり私はAVRのファンになってしまいました。

 AVRを使うと決めた以上,いろいろ試しておきたくなるのが人情というもので,USIという原始的なシリアルインターフェースモジュールを使ってSPIを実現する(8MHzのクロックで4MHzの転送クロックが出せます)プログラムや,LCD関連のライブラリをひと通り準備しました。

 これは,MacBookPro上にSunのVirtualBoxという仮想マシンを入れて,Windows環境が実現出来たことが随分大きいです。後日書こうと思っていますが,このVirtualBox,かなり出来がよいです。無償ですが,有償の仮想マシンを買う必要を全く感じません。

 余談ですが,x86には仮想マシンを実装するにはやや問題があり,普通に仮想マシンを実装しようとしてもパフォーマンスががた落ちになり,うまくいきません。有償の仮想マシンとして有名なVMwareはこの問題をうまく解決したソフトとして知られていますが,Core2Duoなど仮想マシンを前提とした新しいx86であれば,あまりおかしな事をしなくても仮想マシンをちゃんと実装出来ます。だから,無償の仮想マシンでもなんら問題はないというのが,私の考えだったりします。

 実際の所,VirtualBoxがどうやっているかはわかりませんが,仮想マシンを支援するハードウェアを使うかどうかのオプションがあるので,少なくともパフォーマンスへの貢献はあるのでしょう。

 話が逸れてしまいましたが,開発関連ツールはWindowsが前提なだけに,自宅にまともなWindows環境が手に入ったことはとても大きなことで,今回のAVRを楽しむことだって,その恩恵だと思います。

 それで,GPSクロックですが,どうもうまくありません。

 GPS Laboさんは,処理などに時間がかかり,表示された時刻が正確な時刻ではない,という話をされており,これをきちんと表示させるには1PPSの信号のあるGPSモジュールを使うしかない,といわれていました。

 実際,平気な顔をして1秒くらい表示が遅れています。いかにGPSが原子時計の精度を持っているといっても,表示が1秒もずれたら,正確な時計としては存在価値がありません。

 GPS Laboさんのソフトは,時刻情報の含まれているGPGGAセンテンスを割り込みで一気に80バイトのバッファに取り込み,その後文字列から時刻情報を抽出し,JSTに変換してLCDに転送する仕組みです。初期設定が終わったらひたすら空ループを回すのが,main()の中身だったりします。

 それはそれでいいのですが,割り込みは出来るだけ軽く,という考えからすると,時刻情報の抽出やJSTへの変換,LCD表示などはやはりmain()で処理したいところです。ごく普通に,UARTからの割り込みで1バイトをバッファに取り込む,という処理だけを割り込みで行うと,1センテンスの取り込み完了を待たずに続きの処理が出来る事になるので,表示のアップデートにかかる時間が短縮されて,表示の遅れが小さくなりそうです。

 そこで,UARTの練習も兼ねて,プログラムの書き直しをしてみることにしました。センテンスの処理を行って時刻情報を抽出する部分は流用させて頂きますが,それ以外は他の方のコードを参考にするか,自分で作るかします。

 UARTから受信割り込みがきたら,割り込み処理の関数で1バイトをリングバッファに取り込み,ライトポインタを進め,割り込みから復帰させます。

 main()ではループのなかで$をリングバッファからサーチし,以下に続くGPGGAが見つかったら,続けて取得した文字列をデコード,時刻情報を取り出しJSTに変換,LCDへの転送を行います。

 リングバッファは1センテンス分というより処理が間に合うだけという感じですので,当初は64バイトを確保しました。

 また,ついでにGPRMCセンテンスから日付情報も取得するようにしてみました。

 ところが,これでもやっぱり遅れます。考えてみると,UARTから80バイトを取り込むのにかかる時間は多くても100ms程度ですから,これをゼロにしても,1秒の遅れが解消されるわけではありません。なにが原因なんだろう・・・やっぱり1PPS出力がないとダメなのでしょうか。

 GPSモジュールとしては,MNEA-0183で送り出す測位情報を外部のマイコンで記録してくれることを期待しているわけですから,必要なのはその測位を行った時刻が正確であることです。リアルタイムで正確な時刻を吐き出すことはしていなくても当然です。だからGT-720Fを使う限りは,もう無理なのかなあと思ったのですが,あきらめずにもう少しだけ頑張ってみることにします。

 GT-720Fには,ボーレートを変更するためのツールがあります。9600bpsではなく,これを38400bpsにすれば1センテンスの受信にかかる時間が1/4に短縮されます。

 ということでいろいろツールをいじっていると,別の端子から専用のパルスを出すのとは違いますが,UARTへの出力を1秒で正確に出すことで1PPSが可能になったり,測位を1秒に2回とか4回といったように,測位周期を変えるたり出来ます。また,送り出すセンテンス種類を制限したり,それぞれの送信頻度を調整できたりします。

 タイムゾーンの設定が出来るとJSTへの変換もいらなくなるのでいいなと思ったのですが,設定を行っても反映されないようなのであきらめました。

 これらの設定をいろいろ試行錯誤したところ,AVR側の処理速度と受信バッファの大きさから,38400ボーでは取りこぼしが起きています。64バイトの受信バッファでは,あと数バイトたりない感じです。

 悔しいので,96バイトまで増やすことにしました。

 64バイトだと,リングバッファを実現するのに,リードポインタもライトポインタも0x3fでANDするだけでサイクリックに回せるのですが,96では真面目に96になったかどうかを判定し,真ならゼロにリセットという処理をせねばなりません。せっかくボーレートを上げても,処理が増える事で速度低下が起きるようなら本末転倒ですが,まあやるだけやってみます。

 また測位周期は1秒に1度から1秒に2度にします。これまでは1秒に1度しかGPGGAセンテンスが飛んでこず,よって1秒に1度しか表示が更新されないことになるので,表示のズレが1秒くらい出てきてしまうことは避けられないように思いました。

 しかし,1秒に2回にすれば,500msごとにGGAセンテンスが送られてきて,表示も1秒に2回更新されることになりますから,GPSモジュールが本当に1秒未満のズレで時刻を送ってこなければ,表示のズレは500ms以内に収まるはずです。

 さらに,処理を軽くするために,GPGGAとGPRMC以外のセンテンスの送信を停止し,さらに日付情報が欲しいだけのGPRMCセンテンスの送信頻度を10秒に一度にします。こうすると,GPGGAが運んでくる時刻情報が他のセンテンスに邪魔されず,1PPSを守って送られてくると考えたのです。

 また,AVRの処理速度を根本的に向上させるため,これまで内蔵クロック8MHzだったものを,外部クリスタルによる20MHz駆動としました。UARTのボーレートも正確になり,一石二鳥です。

 そんなこんなで,こんなコードになりました。


続きを読む

Make: Tokyo Meeting 04 - 工作大好き人間のお祭り

  • 2009/11/24 20:13
  • カテゴリー:make:

ファイル 337-1.jpg

 さる11月22日,23日に,大岡山の東京工業大学で,Make: Tokyo Meeting 04(以下MTM04と略)が開催され,私も今回初めて見て来ました。一応工作好きで,Make:は日本語版が出る前から知っており,日本語版もずっと買っているということもあって,以前からいってみたいと思ってましたが,ようやく今回その夢が叶うことになりました。

 電子工作についていえば,アメリカやヨーロッパではそれなりに認知された大人も楽しめる趣味であるのに対し,残念な事に日本では工作=夏休みの宿題という刷り込みからか子供の遊び,と言う先入観が強く,大人が楽しむことは「特殊な例」として見られるようです。(模型や鉄道も同じような感じでしょうか)

 しかし,インターネットの普及によって,国境を越えた情報交換,部品の入手,そして作品の公開が可能となり,にわかに工作という趣味の裾野が広がって来たように感じます。

 一部の硬派なマニアの中には,回路設計も出来ないのになにが電子工作か,アセンブラも出来ないのになにがマイコンか,と眉をひそめる向きもあるようですが,逆に言うとそうした専門的な知識がなくとも電子工作を楽しむ事が出来る環境が整ったことは,もっとたくさんの創意工夫を見ることが出来るようになったと考えるべき事で,歓迎すべき事だと私は思っています。

 それこそいろいろなレベルの人が,ものづくりが楽しいという1点で集うMTM04,私も同じ趣味を持つ人間として,大いに触発されてきました。この居心地の良さは何だと思うほど,本当に楽しく過ごしてきました。

 Make:というよりむしろCraft:に興味のある友人に,友人の妹さん,そして妹さんの友人の清楚で賢そうなかわいらしい女子高生(!)の4人で見学しようという話になっていたわけですが,会場に入るや否や女性3人を放置してピューッと単独行動をしてしまった私は,真のMakerだと誇って良いと思います。

 まず,みんな優しいですね。会場はとても混雑していたのですが,例えば鞄がポンとぶつかったりすると,みんなちゃんと「すみません」といいます。朝の品川では考えられないことで,ここにいる人々が互いに関係のある人として意識し合っていることを感じました。一言で言うと仲間意識とでもいうのでしょうか。

 人が通るときにはさっとよけてあげたり,荷物が通るときには道を作ってあげたりと,みんなやさしいんですよ。物販ブースでもみんな我先にと争うこともなく,丁寧だし,マナーもよいし,こういう集団に自分が属していると思うと,とてもうれしくなります。

 展示をしている人は,自分の作品を公開する勇気のある人ですが,そのレベルは本当にまちまちです。しかしどの人も物怖じせず,気軽に見学者との意見交換を楽しんでいます。

 出展者は別に何かを買ってもらおうと思っているわけではないし,見学者も別に何かを買おうと思っているわけではありません。互いに金銭上の問題や損得勘定を外に置き,むしろ対等な立場で意見の交換を行って,お互いに触発されることを目指しているので,どのブースに行っても面白いお話が出来ます。いやほんと,時間の経つのを忘れてしまうほどです。

 多くの出展者にとって,自分の作品を見てもらうことが大きな目的になっていますから,ウソはつかない前提で「これは面白い」「これはxxxな可能性がありますね」というと,みな一様に喜びます。見学者は見学者で,口だけではなく実際の形にしてきたことに最大限の敬意を払いつつ,自分だったらどうするかなあと妄想し,それを口にしては,最後に互いに「ありがとうございました」でお別れするわけです。

 人混みが苦手の私も,このMakerたちとの接触と,会場の雰囲気の良さに疲れ知らずであちこち見て回っては,出展者の人と利害関係を越えてお話を楽しんできました。

 本当に楽しかったので,お礼も込めて,印象に残ったブースを紹介します。


・学研 / 大人の科学

 MTM04は別にアマチュアの祭典ではなく,アマチュアスピリットのある企業も参加しています。学研もその1つで,大人の科学というシリーズがMakerたちをどれだけ焚き付けてきたかわかりません。

 かくいう私も大人の科学は随分買っていて,その度にその創意工夫に感心します。つまり,電子工作はアマチュアでも出来るのですが,メカ設計やプラスチック成型というのはアマチュアには非現実だということを大人の科学はよく分かってらっしゃって,逆に自分達の得意なところはメカだといって,そこに注力されるところが,素晴らしいのです。

 来年春の予定ですが,前回の4ビットマイコンに続くマイコンシリーズとして8ビットマイコンというのがアナウンスされていました。実体としてはArduino互換のマイコンボードと,これに繋いで実験できるメカ部品のセットになっているものです。左手で持ち,右手でハンドルを釣り竿のリールのように回すと,LEDが8つ列んで付いている棒がワイパーのように左右に動くというものです。

 これでバーサライタが手軽に作れるというわけですが,なにせ付属している基板はArduino互換ですから,可能性は無限です。2回目以降は基板を付属せず,そこに取り付けて遊べるものでシリーズ化していこうと思っています,と言うお話でした。

 「だってこれが我々得意ですから」と,切削で試作されたメカ部分を指さしながら,そんな風におっしゃってるのを聞いて,これはなんと頼もしい話だと思いました。

 あくまで付録ですから,基板の欲しい人は何冊でも買って下さい,と笑ってらっしゃいましたが,前述の通り基板はどうにでもなるが,メカはどうにもなりません。メカを目当てに何冊も買うのもありでしょう。2作目3作目も期待大です。


・ISH / Arduino YM2151シールド

 なにやら聞き慣れた音とYM2151という文字,そして28ピンのDIPパッケージに思わず立ち止まったのですが,そう,4オペレータ・8音ポリのFM音源ICであるYM2151をArduinoのシールドとして基板をおこし,PCから往年のMDXデータを流し込んで,演奏出来るというものが展示されていました。

 その昔,私はYM2151電子オルゴールというのを作ろうと考えていた時期がありました。私の弟は,かつてはMDX作者としてちょっと知られた存在らしく,奴に音色とシーケンスデータの作成をお願いして,マッチ箱くらいの大きさでFM音源がなりまくる,というのを考えていましたが,なんだかんだで散りかかることなしに,お蔵入りとなりました。

 YM2151なんて手に入るんですかと問えば,流通在庫があるようですとのお返事。電源の逝ってしまったX68000から外すというのも手ですねと言えば,自分もそうした口ですとのお返事。

 エミュレータでは心許ないですね,やっぱ実物で音が鳴るから値打ちがあると言えば,満面の笑みでその通りとお返事。やっぱシリコンから出てくるFM音源には格別なものがあります。残念ながら基板の頒布などは部品の入手の問題もあり,考えていないとのこと。

 Arduinoの可能性は本当に無限ですね。YM2151とUSBが繋がってMDXが演奏出来るというのも,Arduinoのおかげでしょう。ただ,私はPC側のソフトは苦手なので,最終的にはPC側も自分で出来ないと,せっかくのArduinoも宝の持ち腐れになってしまいそうです。


・GPS Labo / パラナビ・GPSクロック

 GPSモジュールが安く手に入るようになり,シリアルインターフェースにレベルコンバータまで内蔵したものが普通になって,アマチュアにもGPSが手軽に利用出来るようになりました。

 パラナビはMake:08でも紹介済みのもので,GameboyAdvanceでパラグライダーのナビゲーションシステムを作ったというものですが,残念ながら私はパラグライダーはやりませんので,その隣にあったGPS時計に注目。

 GPSからの信号には時刻情報ものっていますが,これをただ単に表示させるだけのものです。GPSには原子時計が搭載されているので,精度は原子時計並みです。

 これがネットワークに繋がって,NTPサーバになるとすごいでしょうねという話をしますと,それは実はもう取りかかっています,fonの安いルータはLinuxベースで動いていて,ハックできることが分かっているので,これをベースにNTPサーバにする計画で,次のMTMには間に合わせますよ,といわれていました。

 雑誌の記事になったりしたそうですが,アメリカが国防を目的に膨大なお金をかけて打ち上げた測距システムであるGPSを,単純に時刻表示を行うだけに使ったということで,非難する声もあったとかなかったとか。

 しかし,私はそういうアマチュアイズムが大好きで,アメリカにしてやったりと実に痛快です。時間と時計に興味の深い私も,実はGPSを時計代わりに出来ないかと考えた事があったのですが,結局アイデア倒れになっていました。これは是非作ってみようと,そんな話をしていると,出展者の方が「では今動いているマイコンをそのまま1つ,実費の100円でおわけしましょう」と,ビックリするようなお申し出を頂きました。

 悪いですから,といったのですが,どうぞどうぞと言ってくださり,では書き込み代金としてもう100円というと,そんなものはいりません,あくまでTiny2313の代金だけで結構ですと。

 私はAVRのライタを一応持ってはいますが,一度も動かしたことがない体たらくで,自分で焼くのはちょっと面倒だなと思っていただけに,このお話は本当にありがたく,目の前で動いているAVRマイコンをそのまま頂いてきました。

 一緒に必要になるGPSモジュールは秋月電子に注文済み。届いたら早速追試です。


・Jinno / Rainbow Engine

 直接お話はしなかったのですが,電球の熱でスターリングエンジンを回し,偏光板を回転させ,様々な美しい色やパターンを見せるものです。

 これ,見る人によって注目する部分が違っていて,一緒にいた女性達は偏光板の織りなす色とパターンに感心していましたが,私はもっぱら電球の熱でゆっくり動くスターリングエンジンに興味がありました。残念な事にスターリングエンジンは箱に収まっていて動いているところを見ることが出来ませんでした。


・Hotproceed / CupCakeCNC

 3Dプリンタって,まだまだ先の話だと思っていたのですが,ここでは目の前に見ることが出来ます。MicrobotIndustoriesのキットで,USBでPCとつなぎ,3つのステッピングモータで3軸を制御,溶かしたABS樹脂をノズルから吹き出して,立体を印刷します。

 安価に仕上げるために骨格と外板は木製,アクリルで作ったギアなどはいかにもちゃちな印象ですが,出来上がった「印刷物」は,まさに成形品です。

 価格は約16万円だそうで,消耗品のABS樹脂はHotproceedさんが用意してくれるそうです。また,オリジナルとして,もう少し大きなステージを用意したキットも用意されるとのこと。

 結局の所,アマチュアの泣き所は,プラスチック成型です。回路や基板はどうにかなるとして,見た目の悪さが最大の弱点です。また,ギアなどのメカ部品が自分で作れないことも問題で,様々な足かせになっています。これらが3Dプリンタで一気に解決するなら,これはすごいことです。

 木で出来ていること,精度をそんなに追求しているわけではないこと,ノズルの径などから,そんなに精密な加工は出来ないようですが,日本の住宅事情では騒音がひどく切削加工を自宅で行うのは至難の業。音がほとんどでないこの3Dプリンタは,Makerの夢を叶えるものでしょう。


・エレピプロジェクト / DIY型電気ピアノ

 ギターの弦とピックアップを使い,電気ピアノを作ってしまった人がいました。残念ながらご本人ではなくお留守番の方としかお話出来なかったのですが,木の板を使ってピアノの本体,鍵盤,そしてアクションまで手作りされています。ちゃんと音が出ていて,その音は綺麗な澄んだ音でした。

 いわく,製作者の方はベースを弾く方で,その音でピアノを作ったら面白そうと言う,いかにもアマチュアイズムあふれる発想から,実際にアクションまで手作りしてしまうとは,脱帽です。ほんまよーやるわ。

 木工職人さんの協力を得て,きちんと木製パーツを作る目処も立ったそうで,さらに精度の良い,さらに見た目も良い,手作り電気ピアノが,次は見られるかも知れません。


・ごうだまりぽ / 手作りアンテナによる気象衛星受信の展示

 これも詳しい話は伺えませんでしたが,水道用の塩ビパイプをつかって,人の背丈ほどあるアンテナを作り,気象衛星の信号を受信して天気図をPCに表示するというシステムを展示されていました。

 知る人ぞ知る世界ですが,世の中には天気図をFAXで送信してくれるシステムというのがあり,市販のオールバンドレシーバをPCにつなぎ,天気図を表示するフリーウェアを使って音声信号になった天気図をデコードするというのは,今に始まった特別なことではありません。ただ,これを安価な塩ビパイプでやっちゃうところが面白いです。


・Nov-Co / 光るクラフト

 私はMake:だけではなく,Craft:も是非日本語版を出して欲しいと思っている人ですが,このブースはMake:の翻訳者としてもおなじみの金井哲夫さんと奥様の金井伸子さんのお二人が作った光り物クラフトを展示されていました。

 直径8mm程の円盤の縁に,長さ20mm程の4本の細い針金を取り付けます。鳥かごのような見た目になったところで,円盤の真ん中からおもりを付けたワイヤーを垂らします。こうすると振動でおもりが周囲の針金に接触し,導通がおこります。

 そうすると4つのLEDがアットランダムに点灯するようにできるわけで,これをクラフトに仕込むというお話です。このセンサは哲夫さんの発案だと伺いましたが,実に面白いのです。

 例えば,このセンサをマイコンに繋いだらどうだ,センサを複数用意し,それぞれのおもりの重さを変えたらどうだ,LEDを縦横のマトリクスに配置して,複数のセンサからの情報で光らせたらどうだ,など,いっぱい思いつきます。そんな話をしていると,「ここの来ている皆さんのレベルは本当に高くて,いろんな意見をたくさん頂きます」といってらっしゃいました。

 私は,実際にモノを作った方が一番偉いと思うのですが,技術者というのは作ったモノに意見されると,それが良い意見でも悪い意見でも,とりあえず「言い訳」をするものです。

 このブースに限らず,皆さんそうでしたが,言い訳は一切無し。私も彼らの作品にケチをつけるのではなく,私ならこうするかなと言う程度の話を気楽にしただけなので,警戒されずに済んだのかも知れませんが,仕事では出来ない理由ばかりを聞かされるうんざりな毎日を過ごしているだけに,発展的な意見交換が出来る楽しさを,再発見したのでした。


・綛田幸司さん / 藤井の素

 床のゴミを取る粘着ローラーってありますよね,あれにそっくりなものを前後に動かして,ぴぎゃーぴぎゃーいってるものがあったので見ていると,出展者の方に話しかけられました。

 これはなんですか,と聞くと,床の情報を読み取って音に変換する楽器です,とのお返事。確かに床に敷いた紙の上をなぞると,白と黒の文字の状態で音が変化します。

 私はてっきり金属探知機か何かかと思ったのですが,これが楽器になるためには音を止める仕組みが必要だなあと思ったので,音程に加えて,音を出したり止めたりする仕組みがあるといいですね,というと,その発想はありませんでしたとお返事。

 楽器というのはそういうものなのですか,とおっしゃるので,テルミンでもそうですね,音程と音量の調整ができる,多少難しくても演奏者というのは訓練でどうにかしてしまうものなので,音量の調整の仕組みについては,例えば棒を起こす角度で調整するとか,どうですかね,というと,なるほどーと言われていました。

 そうなのです。私にも経験がありますが,自分だけで作っていると,袋小路に入ってしまうのです。赤外線LEDとフォトトランジスタで反射率を捉えて,それを音程にするという所までは実に面白そうだと思う訳ですが,これが楽器になるためにはもう1ステップ進まないといけないわけで,そのためには実際になにか演奏してみようと思う人の意見が役に立ちます。とにかく人と話せば,話した分だけアイデアがわいて出てくるものです。


・Gaje / アナログ電子楽器

 ここもご本人のお話を聞けず,お留守番の方とお話をしたのですが,アナログシンセサイザーのキットを準備中とのことで,どういうものかを見せて頂いていました。

 実は,アナログシンセサイザーというのは,大規模な半導体も必要なく,大げさなプログラムを書くこともなく,根性さえあれば小規模な半導体を繋げて作る事が可能で,その割には表現力のある楽器として成立し,なによりいろんな音が出て面白い,上級者向け電子工作の花形です。

 しかし残念な事に,その小規模な半導体でさえも,入手の難しいものが最近増えてきています。国内ではほぼ枯渇,海外ではわずかに在庫が残っていて,それも争奪戦になっているという状況らしいです。

 というのも,ビンテージシンセサイザーの修理に必要な部品でもあるからですが,そんなこんなで,なかなかアナログシンセサイザーを作るのは難しいのです。

 ここでそんな話をすると,設計意図としてはそこら辺で買える普通の部品で作る,というのを狙っていますと。だから入手の難しい部品は使いませんということでした。

 そういえば,ここのサイトは私も見たことがあります。詳しい回路までは見ていませんが,実機の基板を見ていると,VCFもトランジスタが目に付いたので,Moogのようなラダー型なのかなーと思っています。


・通電未踏組 / オンライン珈琲メーカー「萌香たん」

 家電がネットワークに繋がるとどうなるか,についてなかなか答えの出せない頭の硬いエンジニアが多い中で,今回最も私が素晴らしいと思ったのが,オンライン珈琲メーカーです。

 え,そんなもの珍しくない?まあ,そう言わずに。

 これ,現在mixiでエンジニアとして活躍中の井上さんが作られたものなのですが,ご本人と楽しくお話することが出来ました。

 コーヒーメーカーはコーヒーが出来た時にパイロットランプが消えます。これをCdSで検出,マイコンでA/D変換し,コーヒーが出来たかどうかを判別します。そしてその結果をTwitterで送信。(なんとフォローしている人が少なくないとか)

 しかも,コーヒーが沸いたという通知にいくつものバリエーションがあり,ツンデレ風味のものもあるようです。

 感心したのは,コーヒーメーカーを分解して改造するような,長期信頼性を損なうような方法を採用していないということです。高温,水分,高電圧とこの手の改造には鬼門である要素を廃し,パイロットランプで検出とは,いやはや脱帽です。

 技術的にも面白いですし,ツンデレも結構なのですが,なにより素晴らしいのは,井上さんが,このコーヒーメーカーが「人を集めるトリガになっている」とおっしゃったことです。

 mixiさんではみんなヘッドフォンをして作業をしている人が多く,他の人とのコミュニケーションが取りにくいところがあるのだそうです。私の職場ではヘッドフォンなど出来ないので,文化の違いがあるなあと思っていたのですが,そういう希薄な人間関係の中,できたてが一番おいしいコーヒーが,今まさに出来上がったということをトリガにして,みんな一斉にコーヒーを飲むようになったのだそうです。

 そうしたきっかけで人が集まり,同じ目的のために同じ時間を過ごし,そして少しばかり話が弾むというのは,どんなに楽しいことでしょうか。

 一見すると「いつでもコーヒーがありますよ」の方が便利で気が利いていますよね。でもそうではなく,「今コーヒーが出来ました」に集う人々が,ある種の帰属意識を持つようになるという事実。

 家電がネットワークに繋がることで,新しいコミュニケーションのトリガとなる,こんな素晴らしい話があったかと,そう私は思いました。


・ニコニコ技術部

 私はあまりニコニコ技術部の活動を普段見ていないのですが,なんだかミクがネギを振ることばかりに熱中していて(もっともニコニコ技術部がミクのネギふりから始まったものなので当然ですが),今ひとつミクに夢中になれない私としては,すごいのかすごくないのかよく分からないところで,通り過ぎてしまいました。

 あと,リアル野尻先生もお見かけしました。ついでに,某アニメで知られるパンツ型の飛行機もありました。あれはやっぱり羽ばたいて飛んでいないと,値打ちがないですね。


・オライリー

 エンジニアでオライリーの世話にならない人などもぐりだと思うのですが,オライリーもエンジニアの世話をすることを至上命題にしてくれているらしく,物販にもそういう傾向が見て取れます。

 アメリカで売られているキットなどもありましたが,やっぱりお目当ては本。以前から欲しかった英語版のMake:を探したところ,初年にでた4冊をまとめたBOXが2000円と破格値で出ており,またMakers Notebookも1000円で売られていたので買いました。いや,これはいい買い物ですよ。

 ちなみに友人は,ガチャガチャをやったところ大当たりが出てしまい,どれでも1冊欲しい本を差し上げますというので,時間をかけて選んでいました。うらやましくなった私もガチャガチャをやったところ,普通の缶バッジだったので,無言で立ち去りました。
 

・そのほか

 テスタ棒をスライドさせて音を出す,大人の科学のアナログシンセサイザーをMIDI化すると言う触れ込みで,メカ的に接点をギアで動かし,その位置をMIDIで制御するというものがありました。見た目にインパクトありますね。

 鍵盤を弾くと「ぎょーぎょ」といいながらスライドします。なにが笑ったって,ピッチベンダーを動かすと,微妙にスライダーが左右に動くんですよね。ピッチベンドまで実装してあるとは!

 mini-ITXのATOMのマザーボードに小型の液晶ディスプレイを繋ぎ,スタンドアロンのミキサーを作った人もいました。アルミの筐体に仕込んであるのですが,いわく,Ethernetでオーディオ信号をやりとりするんだそうです。ソフトシンセが入ってくると面白いですねーといったら,それは確かにありですね,と言われていました。

 モノクロの128x64位の小型液晶モジュールを,Windowsから認識してディスプレイにする工作もありました。案外モノクロでもちゃんと見えるものです。WindowsではノートPCの表面に小型のディスプレイを置いて,ここにメールが来たとか,そういう情報を表示する仕組みをもってるそうですが,ほとんど例を見ません。でも,この展示を見たら考えが変わるかも知れません。


 とまあ,こんな感じで,随分楽しんできたのですが,つくづくMTMというのは,ものづくりを趣味とする,あるいはものを実際に作る事を尊敬できる人の,お祭りなんですね。

 見る側が受け手で,出す側が送り手という言い方は,MTMにおいてはちょっと当てはまらないかも知れません。確かにモノを実際に作った出す側がもっとも尊敬を受けることは間違いありませんが,モノを作った人が「自慢がてら」に,見る人とコミュニケーションを取ることの出来るような,そんなチャンスを狙って来られているうちは,やっぱり見る人も同じ目線で楽しむ事が許される,フラットなイベントであると思います。

 そしておそらく,出展者もヘビーな2日間を終えた後,強烈な連帯感で繋がり,出展者同士の繋がりが生まれていることでしょう。それは出展した人の特権ですが,ものづくりを楽しむ人が,縦と横で繋がって,作る側も見る側も,より面白く,より楽しい趣味として進化してくれると,同じ趣味を持つ私も本当にうれしいと思います。

 悲しいことに,私には面白いアイデアが浮かばないという致命的欠陥があります。技術力とて大したことはありませんが,技術と言うのは所詮は道具に過ぎません。面白い事を実現したいという動機がなければ何の意味もありません。

 私がやってることと言えば,カメラのシャッター制御を行う回路をPICマイコンで置き換えるとか,今時珍しい電源同期式の時計を作るとか,そんな程度の話で,実用一点張りです。本人はそれで十分に満足していますが,工夫も面白さも全くないので,つくづくMake:という世界は,技術ではなくアイデアだと痛感しますね。

 何か作ろうとおもって出来るものではない,おもろいことを思いついた時がまさに旬,そんな気分で,自分も本物のMakerになりたいものだと,考えながら大岡山を後にしました。

 次回も,ぜひ行こうと思います。

(追伸)かの清楚で賢そうなかわいらしい女子高生ですが,友人の妹さんと一緒に,とっとと先に帰られてしまいましたよ。そしてMTM04の感想として「イケメンが少ない」と宣っていたとのこと。出展者,見学者,いずれも次は頑張ろう!

PC-E500が動かなくなりました

  • 2009/03/30 14:36
  • カテゴリー:make:

 PC-E500関連のネタはもう昨年の秋で終わりになると思っていたのですが,昨日書かねばならないことが起こってしまいました。

 昨年10月に改造と環境構築が一区切り付いたPC-E500ですが,単4エネループ4本は搭載されたまま,ずっとメモリもバックアップされたままでした。思いついたときに動作試験を行い,電池が切れていないかを調べていたのですが,昨日調べると全く動作しません。

 電池切れはまあ来るべき時が来たか,という感じとして,心配なのはバックアップ電池の消耗によるメモリ内容の完全消去です。

 SRAMですから,電池が切れると苦労してインストールしたソフトや作った環境が全部消えてしまいます。再インストールの手間が大変なのでそれだけは避けたいと思っていましたから,気休めにメモリバックアップ電池をCR2016からCR2032に大型化してあります。しかしCR2032に変えたところで数日でバックアップ電池も消耗してしまいます。

 実はCR2032は切れていませんでしたから,今にして思えば,この時素直に新しい単4電池に入れ替えていればおそらくすべてはうまくいったのでしょうが,私のやることがすんなりうまくいくはずがありません。その時,やはり新しい電池は手元にありませんでした。

 仕方がないので,拡張コネクタの電源端子に安定化電源を突っ込むという荒技にでました。

 ・・・なにも表示されません。メモリ内容がこわれたのかも知れないですね。あきらめてリセット・・・なにも表示されません。壊れたのか!

 電源電圧が低いのかも知れないと思い,少しだけ電圧を上げてみました。勢い余って7V以上の電圧がかかってしまいました。一瞬表示が出てかと思うと,また画面が消えています。電流計を見ると,なんと500mAも流れています。普段の20倍です。

 これは深刻だと,別のマシンから単4電池を取り外して付けてみますが,やっぱり動きません。そうすると,ほんのり背面が暖かくなってきました。

 やばい・・・RAMカードのフタを外すと,私がS3:エリア用に2段重ねで増設したSRAMがむき出しになっているのですが,これを触るとやけどしそうなほど発熱しています。

 やっちゃいました。

 電圧を不意に上げたことで,SRAMがラッチアップして死んでしまったようです。

 これでは起動するはずもありません。私は事態の深刻さをようやく理解したのでした。

 とりあえず修理しなければなりません。発熱したSRAMは2段重ねの上段ですから,まずはこれをニッパーで足を切り取り外します。ここで動けば下段のSRAMは壊れていない可能性があります。(壊れていないとは言い切れませんし,壊れてなくてもストレスがかかっているわけですから,寿命は極端に短くなっていることでしょう)

 試したところ,幸いにも起動します。下段のSRAMも壊れているかも知れませんが,壊れていない可能性も高くなってきました。

 そこで同じSRAMの新品を1つ用意し,交換。うまく起動してくれました。動作電流もスタンバイ電流も問題はなさそうです。

 この2つのSRAMの全アドレスに55hとAAhを書き込み,メモリテストを行いましたが,無事に通りました。直ったようです。

 そして一番面倒なソフトのインストールと環境構築。日本語環境とエディタ,そしてファイラーの最低限の環境だけ整えて終了とします。この間3時間。いやー,時間の無駄とはこういう事をいうんでしょうね。

 ところで単4のエネループは750mAh程度の容量があるようです。この改造されたPC-E500では,スタンバイ電流が200uA程ありますから,ざっと3750時間となります。日数に直すと156日ですので約5ヶ月と言うことになります。

 今回のPC-E500では,メインの単4電池はすっからかんでしたが,メモリバックアップ用のCR-2032は2.7V程度でしたので,メインの電池が切れてそれほど時間は経っていないと思われます。

 それで,昨年10月に電池を入れ替えていましたので,電池が切れたのが最近とすれば約5ヶ月。恐ろしいほど正確です。実際,DC-DCコンバータの搭載とSRAMの増設でどれくらい電池が持つのか気になっていましたが,なんとか期待した通りになってくれていたことがわかり,安心しました。

 ということで,今後は4ヶ月くらいで電池を入れ替えた方が良さそうです。

 実は,前日の土曜日には,palmTXへの以降の総仕上げとして,課題として残っていたWristPDAの環境設定とデータの共有にチャレンジしていましたが,やはりはまりまくりました。ざっと6時間かかってようやく動くようになったのですが,これもまあ時間の無駄と言えば,その通りでしょう。

 友人が私にそそのかされてchumbyを買い,やはり土日に完全引きこもりで遊び倒したそうですが,どういうわけかこの手のガジェットというのは,我々の心をとらえて放さない何かを放っているような気がします。

ユーティリティ

2026年01月

- - - - 1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

検索

エントリー検索フォーム
キーワード

ユーザー

新着画像

過去ログ

Feed