SVX日記

2004|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|12|
2025|01|02|03|04|05|06|07|08|

2005-04-03(Sun) わーい、プロッタがプロッた!!

  がばっ!! と、起き抜けに工作開始である。実は夢の中である事実に気づいてしまったのだ。コレはもしかすると祝氏からのお告げだったのであろうか? それは「PICのクロックの精度は大丈夫なのかいな?」というコトである。

  オイラは新たにPICで開発を始める際、手始めにてきとーなポートを利用してLEDをチカチカさせるコードを動かすトコロから始める。その中でチカチカする間隔を作り出すのが、オイラがPICでプログラムを始めた頃にあみだした「秘伝の0.1秒×n-αループルーチン」だ。このルーチンは実に簡単にキリのいい時間を作り出すスグれモノなのであるが、今回nに10を指定して1秒間隔でチカチカしたにもかかわらず、微妙に速かった……いや、微妙でなく明らかに速かったのを思い出したのだ。デジタル時計の秒きざみとLEDの点滅が、ズンズンとズレていくのである。

  PICにはオシレータ内蔵のタイプが多く存在し、この機能の利用を選択すると外部に水晶を取り付ける必要がなくなる。PICの種類によって選択できるクロック速度は異なるが、今回のPIC16F648Aは4MHzの内蔵オシレータ搭載だ。これを使うと、水晶が取り付けられるハズだった2つのピンはその呪縛から解き放たれ、I/Oポートとして使えるようになるのだ。特別な理由がない限り、これを利用しないテはないのである。

  しかしながら問題もある。内蔵オシレータはいわゆるRC発信回路(抵抗とコンデンサで組まれた発信回路)で構成されており、果てしなく正確な時を刻む水晶に比べて精度がイマイチという特性があるのである。そして、どうやら今回用いるPIC16F648Aはかなり速めの発振を行う個体らしいのである。

  「クロックが速ければ、処理が速くてええやん、ナチュラルオーバークロックやん」と思えばさにあらず。今回はPIC内蔵のシリアル通信(USART)機能を用いるのであるから、ボーレートまで速くなってしまうのは困りモノなのである。マニュアルの推奨設定値によれば「CPU動作クロック4MHzで通信速度9600bpsを望む場合、高速モード(BRGH=1)でSPBRGに25を設定すべし」とあったのだが、そもそも4MHzが正確でないならばこの値も変わってくるのである。あな恐ろしいや。そーいや昨日、PIC→PCへのUSB経由の通信が成功したと書いたものの、思い返せばデータがときどき化けて受信されていたのもコレが原因っぽい。

  理由がわかったトコロで対処である。「秘伝の0.1秒×n-αループルーチン」を利用し、4MHzのCPUがキッカリと10秒間隔でLED点滅を繰り返すコードを書き込み、その時間をストップウォッチで計測、実際のCPUクロックを逆算してしまえばいいのである。

  LEDの消灯→点灯のタイミングは約20秒に1回であるが、ストップウォッチを押すのは人間である。誤差を軽減するために数サイクルを計測するコトにした。結果は以下の通りである。

実測秒数サイクル数理論値で20秒の実測秒数
18.77sx118.77s
56.18sx318.727s
112.39sx618.732s
168.46sx918.718s
281.23sx1518.749s
281.15sx1518.743s

  見事に速い。20秒あたり1.2秒以上速い。この結果を踏まえ、今回使用するPICの実クロックを求め、さらに設定するべきSPBRGを求めよう。


20.00s / 18.74s = 1.0672倍
4MHz * 1.0672倍 = 4.2688MHz
BaudRate = Fosc / (16 * (x + 1))
x = ((Fosc / BaudRate) / 16) - 1
x = 26.79 ≒ 27

  というワケで、SPBRGには推奨値の25ではなく、27を利用しなければならないコトが判明した。ちなみに、PICの仕様書を見ると、電源電圧5Vで通常の温度条件下では誤差は±2%と書いてある。±2%でも上記の校正作業は行うに越したコトはないと思うが、今回の+7%って……このPIC不良なんじゃねーか!?

  で、対策コードを書き込んで動かしてみるが、まだ動かん……いいかげんメゲる寸前である。オシロで出力波形をモニタしながら……って、波形が出てねーじゃん!! そーか、Rubyのputcがバファリングしてしまっているんだ。おーちゃくしないで1バイトずつ出しなさいッ!! 「serial.sync = 1」を指定してどうだッ!!

  画像の説明

  「動いた!!」

  うわー、懐かしいカチャカチャ感だ。このプロッタの動きや音!! かなり面白いのでゼヒこのムービーで体感していただきたい。ちょっと画質が悪いが、その雰囲気は伝わるハズだ。というワケで、これにて「ハ号作戦」の完遂である。今回のI/Fの完成は祝氏からのお告げのおかげである(と信じて疑わない)。命日から一日遅れてしまいはしたが、このI/Fの完成を祝氏に捧げさせていただく。

  画像の説明 画像の説明

  さて、完成したらパッケージングである。バラしは極力避けようと思っていたが、必要に迫られて、すっかりバラすことになってしまった。例の供締め予定箇所に基板をあてがってみたトコロ、意外と余裕がないことが判明したのだ。基板の端は既存のコンデンサと干渉するため、ギジギジとニッパでカジり取ってなんとかなったが、高さ方向はUSBのBコネクタの高さギリギリであり、現在のように基板をピンヘッダで結合する方式では裏ブタが閉まりそうもない感じである。どうやらピンヘッダとPICを直ハンダしないと解決が難しそうだ。

  画像の説明

  で、とりあえずUSBコネクタの外側に当たる部分のケースに穴を空ける。いきなりタコって、すぐ隣に余計な穴を開けてしまったが、その後、正しい場所にキレイに穴を空けることに成功した。なかなかの仕上がりではないだろうか。

  さて、今後の工作の予定であるが、ケース内の実装スペースの問題でピンヘッダとPICを直ハンダしなければならず、その後のPICの書き換えが不可能になるため、まずコードの不具合を全滅する必要がある。それと電源。やはりUSBバスパワーでの動作は期待できそうにないので、これもどーにかする必要がある。これ以上ケースに穴を空けるのは避けたいが……明日は明日の風が吹く。今日はここまで。


2011-04-03(Sun) 台を青に塗る

  新築する際「書斎」というか「工房」を作り、部屋の1/3を土間にし、その端に流しを作った。切ったり削ったりした後の洗浄や、作業の合間に手を洗ったりするためである。正直、これは大正解であった。

  画像の説明

  ついでに朝の洗面もそこで済ませている。そのために、ちょいちょいと手を入れている。

  画像の説明

  ひとつは照明。ホームセンタで、なかなかにワイルドな陶器の電球ソケットを発見したので、これまたベタなスイッチを組み合わせて、自分で配線工事した。とってもダサカッコイイのがお気に入りである。

  もうひとつが、洗面の脇にハメ込む小さな脇机。ホームセンタで端材を買ってきて自作したもの。必要最小限の大きさながら、あるとないとでは大違い。劇的に便利になった。

  画像の説明

  ただ、ムキ出し合板だったので、ハネた水を吸ってしまい、イマイチ気持ちが悪い。そこで、例によって塗装してみた。使ったのは、100円ショップのスプレー缶のペイント「ブルー」。

  実は、イッペイに「何色がいい?」などとノリで聞いて「あお!」なんて感じで決めた色なのだが、正直、大失敗……雰囲気ブチ壊しである。そのうち、灰色か茶色あたりで塗り直すか……とほほ。


2016-04-03(Sun) 遅ればせながら、戦車道、観戦します!

  中川コロナシネマワールドで、4DX版のガールズアンドパンツァーを観てきた。

  画像の説明

  実は、先日、通常版のガールズアンドパンツァーは観ているのだが、デキが良かっただけに4DX版で観たくなってしまったのであった。映画を劇場で2回も観るのは2回目だ。前回、アバターの2回目をIMAXで観て以来。あれもIMAXという付加価値付きで、もう一度、観てみたかったという経緯で、状況は今回とよく似てはいる。

  映画本編は、かなり「思い切っている」と思う。「オマエラが観たいのはコレだろッ!!」といわんばかりの砲撃戦、砲撃戦、砲撃戦、砲撃戦。途中、わずかばかり、入浴シーンと伏線が入るくらい。あとは、コネタ。キャラを生かしてクスッと笑わせるセリフを挟んでくる。それがすべて。

  要するに、砲撃戦、コネタ、砲撃戦、コネタ、入浴シーン、伏線、砲撃戦、コネタ、砲撃戦、コネタ、砲撃戦、コネタ、砲撃戦、コネタ、砲撃戦、砲撃戦、砲撃戦、砲撃戦、砲撃戦、コネタ、伏線回収、エンディング、って感じ。

  ストーリーとか、面倒じゃん、といわんばかりの思い切った構成。でも、それがスガスガしく、それで十分に面白いんだから仕方ない。ある意味、アンチガンダムだな。政治ドラマとか、そんなのいる? って感じ。

  で、2回目。劇場の入り口にロッカーが据え付けてあるのに納得。席がガタガタと動くので、荷物をそのヘンに置いておけないための配慮だ。すかさず、手荷物をロッカーに押し込んだ。気が利いてるな、こりゃ。

  で、席に着いて驚いた。「一番前のド真ん中」という思い切った席を選んだのだが、なんと4列目だ。前3列分、通常の席が並んでいるのだ。4DXでない上映用らしく、そこは空席。実は、一番前ってのもちょっとマズったかな、と思っていたので、中川コロナの4DXに関しては、ベストな席だったといえよう。ちなみに、延長上映なのに、席は7割以上は入っていた感じだった。そら、上映期間を延長するわ。

  意外だったのは、席が4つ組みというところ。オイラは左端だったので、揺れ方の大きさも向きも左右対称にならない。まぁ、それほど気にはならなかったけど。

  で、心配だったのは、4DX用に後付けされた動きだけに、ミスマッチがあるのではないか、というところだが、ほとんど問題なし。最初から最後まで、ちゃんとキッチリとシンクロして、違和感はほぼなし。エンジンの振動、戦車のサスの効き、砲撃の振動、着弾の衝撃、砲弾が切り裂く空気、そして、なんといっても、丘を駆け抜ける風! 基本的には扇風機なんだろうけど、一方向からじゃなく、方向も強弱も複雑に渦を巻いて、自然に吹いている風を感じさせるのがいい。扇風機の風の不自然さに不満のあるオイラとしては、感動モノだった。家庭用に欲しいなぁ。

  いやー、4DXが不満、という評判も聞いていたが、ガルパンに関しては大満足だった。確かに誰視点の動きかわからん時がある、というのもないことはないが「誰かが映像に動きを後付けした」という低レベルな印象は受けない。先日に動きナシで映画を観ていたのが、逆に不思議なくらい。追加料金が高いという意見もあるが、アフターバーナーなら5分足らずで200円だぞ。2時間たっぷり動いて1000円なら安い。ファイナルバトル付近は、特に動きを大きくしているようで、ヘッドレストに頭がガンガンと当たるのは快感だったなぁ。

  最後に、難点を言えば、砲撃の音量が足りなかった。先日、名古屋駅で観た時は、心臓に響くほどだったが、それがよかったのに。それと、入浴シーンのシャボンの香りが、イマひとつ。

  しかし、DVDを買っても、これを味わえないんじゃ、片手落ちだよなぁ……。むしろ、DVDの購入意欲が落ちるわ。4DXが家にないとねぇ。もう一度、観たいなぁ。

  あ、ひとつ思ったが、砲弾が切り裂く空気を再現するプシュッってヤツ、スプラトゥーンに対応したらいいのになぁ。