くりこうの手記 2010.9

9月21日 火曜日 晴れ

PICリハビリ

また運輸区の事務にいた時、模型鉄の後輩から鉄道模型の自動閉そく装置(起動回路・信号機・制御装置)を受注していました。

初めはディスクリート部品で済まそうと考えていましたが、ある方にPICを勧められ、PIC開発環境を整えました。

整えましたと言うと大げさに聞こえますが、単にPICkit2を購入し、AsortaにMPLAB IDEをインストールしただけです。
「その方」の勧めで、Cコンパイラはユーザは少ないがきれいなコードを出力するCC5Xをチョイス。

PICkit2に付属のLow pin count demo boardを使ってLEDを点滅させるところまではこぎ着けましたが、スイッチの入力がどうにもうまく行かない。
「その方」にはちゃんとしたテスト基板を作らなきゃ駄目だと指摘されましたが、やはりLow pin count demo boardのスイッチ周りはプルアップの処理がよくわからないので自分でテスト基板を作るべきだという結論にたどり着きました。

3位式3現示の閉そく信号機であれば、入力が2、出力3あれば事足りるため、Low pin count demo boardにオマケで付いて来たPIC16F690のような多機能で足の多いPICは不必要です。
足が8本しか無いPIC12シリーズで十分。

このごろ、自分のために使える時間が少しできてきたので、受注から半年以上経って何の進展も無い自動閉そく装置を少しずつ進めていこうと思っています。
nop();が使える事がわかってLEDをゆっくり点滅できるようになって、ちょっとPICに対する興味が蘇ってきました。

高速道路ってすばらしい

先週の日曜日は家を9時前に出発して越前海岸(敦賀)に行ってきました。

高速に乗ったのが9時過ぎ、敦賀ICを降りたのが正午前。
そこから少し下道を走って、由比に似た景色の越前海岸に到着。

あの日はまだ暑かったので、海水浴場には人がいました。
またスキューバダイビングのメッカらしく、海から上がった人たちがウェットスーツのまま道を歩いていました。

来た道を戻るのは嫌なたちなので、帰りは東海北陸道を選びました。
敦賀から金沢までは国道8号をとことこ走っていきました。
愛知県ではすっかり数を減らした8番らーめんは、北陸では愛知県のサークルKよりよく見かけました。
8番らーめんの1号店は加賀市にあり、R8沿いだったので8番らーめんという名前にしたそうです。

金沢森本ICに乗ったのは、16時頃。
北陸道を東進し、小矢部砺波JCTから東海北陸道へ。
そしてこのルートを選択した最大の理由、飛騨トンネルへ。

飛騨トンネルは道路トンネルで日本国内3位の長さを誇るトンネルです。
これまでに通った事のある長い道路トンネルは、中央自動車道の恵那山トンネルが最長です。
私が生まれた頃は、恵那山トンネルが日本最長の道路トンネルでした。

暫定2車線の対面通行のため速度制限が設けられているものの、東名と同じ速度で快調に走れました。それでも通過には10分以上かかりました。さすが10km超。

その後飛騨河合PAで飛騨牛コロッケバーガーを夕食にして、東海環状経由で帰りました。
ナビは一宮JCTから名神を通るルートを案内していましたが、美濃関JCTから東海環状に乗ってもしつこく名古屋経由を提示。
土岐JCTを豊田方面へ突っ切りナビが再探索した結果、到着予想時刻が10分早まったのを見ときには思わず「勝った」と呟いてしまいました。

ナビだって万能ではありません。

早起きしなくたって、敦賀から砺波まで下道をのんびり走っても、高速道路を使えば日帰りで北陸をドライブできる事が証明されました。

洗車の悩み

クルマが汚れているのは嫌だけれども、洗車は面倒くさい。

デミオの時はちょくちょく自動洗車機を使っていましたが、ダーググレーの今のクルマで自動洗車機に入る勇気はありませんでした。
濃色車は小さな傷も目立ちます。納車から2年経ちましたが、一度も洗車機は使いませんでした。

しかし、納車時に付いて来たボディーコーティング用のシャンプーが底をつきました。
その後はデミオの時に使っていた「超撥水」シャンプーを使ってみましたが、撥水効果が中途半端な上泡立ちが悪く、使い勝手は最悪。雨が降れば屋根にはデカイウォータースポットができるという状況。

デミオに付いて来たシャンプーも試しましたが、経年変化のせいか全く泡立たず、使えませんでした。

なので、越前海岸に行く前に、禁断の自動洗車機を使ってしまいました。
さすがに2年経てば塗装も完全に定着したようで、ブラシ傷は入りませんでした。
しかし、フロントガラスにシャンプー成分が付着してしまい、雨は弾かない、ワイパーはビビる、夜は対向車のヘッドライトがギラギラと言う最悪の状況に。

そういえばデミオに乗っていた頃も自動洗車機の後はガラス処理に手間取っていた事を思い出しました。

今日、仕事帰りにカーマに寄る用事があったのでついでにカー用品コーナーも見てきましたが、「単なるクルマ用シャンプー」もあるんですね。
超撥水とか、ワックス不要とか、そういう付加価値シャンプーばかりだと思っていたので意外でした。

木曜日は6ヶ月点検で入庫するので、その時ディーラーの人にいい方法が無いか聞いてみよう。

9月26日 日曜日 晴れのち曇り

浜松は豊橋より街だ

PICで制御する鉄道模型用自動閉そく信号機のパイロット基板を作ろうと思い立ち、部品の調達をどうしようか考えながらwebをうろついていたら、浜松にはマルツパーツ館があるというので行ってきました。

豊橋は愛知県で2番目の都市です。人口とか漠然とした基準を持って、私の中では。
岡崎とか刈谷とか、条件を変えたら愛知県で2番目の都市はいくらでも変えられそうですが、私の中では豊橋です。

しかし、浜松は静岡県西部を代表する都市だけあって、豊橋より栄えています。
人口も、面積も、浜松が上回っています。何より豊橋市が中核市なのに対して、浜松市は政令指定都市です。敵うはずがありません。

...とまあ、どうでもいいような事を考えながらマルツパーツ館に行ってきました。
さすがはチェーン展開する部品屋、タケウチ電子には無い部品や道具も揃っていました。もちろんPICマイコンも。

テスト基板できました

PIC信号制御器

鉄道模型用の自動閉そく信号機制御装置は、以前ディスクリート部品の組み合わせで挑戦しました。
回路図もアップロードしましたが、ブレッドボード上でテストが何とかできるところまではこぎ着けましたが、列車検知回路ができず、nさんにPICを勧められて、そこで立ち止まっていました。

PICをはじめるには、PICマイコンだけでは何もできません。
マイコンのプログラムを作るパソコンのソフトや、できたプログラムをマイコンに書き込むライタが必要です。

私はICSPという技術で簡単にプログラムを書き込む事ができるPICkit2という物を、Low pin count demo boardという評価基板付きで購入しました。
しかし、スイッチ入力ができずに挫折し、それで半年近く止まっていました。

nさんには「早く実使用環境に近いテスト基板を作りなさい。」と言われていたのですが、それもできないまま半年が経過。
その後諸々あって再びPIC熱がじわじわ沸き上がってきたので、テスト基板を作ってみる事にしたのです。

PICと言っても種類はたくさんあります。
鉄道模型用自動閉そく信号器制御装置は、入力2、出力3で事足ります。コンパレータとか、A/Dコンバータは必要ありません。
なので今回はPIC12F509をチョイス。

このPICは足が8本しか無く、デジタル信号しか扱えません。記録できるプログラムも、1キロワードと少ないです。
しかし、それがスペックとしてちょうどいいのです。何より安い。
信号機1本立てるごとに1個必要なので、安いPICが使えるに越した事は無いのです。

回路図を起こし、製作。
さすがマイコン、外に付けるのは受動部品だけです。
PICkit2の取付け部分のピン配置を逆にしてしまったので、PICkit2は裏向きで接続しなければならないという失敗はありましたが、何とか完成。

Cを忘れている どうしようもなく

物理的な部分は問題なくできました。
LEDを点灯したり、点滅させたり、そう言う事はすぐできました。

しかし、スイッチ入力がやっぱりうまく行かない。

スイッチを接続しているのはGPIOポートの0番と1番です。
なのでプログラムでは、GPIOレジスタを0x03で論理積すれば、スイッチの状態を取り込めるはずです。

なのにどれだけスイッチを押しても、思った通りに動かない。
テスタは職場に置いてきているので、測定器具は何もありません。
機転を利かせて、スイッチの入力状態が変化したらLEDを点灯させるようにプログラムを変更したところ、スイッチの入力自体は問題なくPICに入っていました。

すっかり手詰まりになってしまい途方に暮れていた時、ポケコンの取扱説明書が目に入りました。
私はC言語は好きでも得意でもありません。

案の定、ビット演算のやり方を間違えている事が判明しました。
例えば先の「GPIOレジスタを0x03で論理積」は

GPIO & 0x03

と書きますが、これを間違えて

GPIO && 0x03

と書いていました。実際のプログラムでは

if ( GPIO && 0x03 ){ GPIO = 0x30; else GPIO = 0x00; }

という風に書いていたのです。
&は論理積ですが、&&にすると「(&&の)左右が共に真であるか」という意味になります。
これではいくらボタンを押してもelseに向かってしまいます。

ポケコンの説明書をにらめっこしながらバグを潰していったら、ボタン入力も期待通りに受け付けるようになりました。

後は、ディスクリート部品で行っていた在線状況の記憶や前後の在線状況から現示を出力する部分をプログラムするだけです。
「だけ」とは言っても、そこでまた一悶着あるのは間違いないですが。

何はともあれ、受注から丸一年が経過しようとしているプロジェクトが再び動き出す大きな一歩を踏み出す事ができました。
案ずるより産むが易しというやつですね。

6ヶ月点検

浜松に行く前に、ディーラーで24ヶ月点検後の6ヶ月点検に行ってきました。

洗車機を通ってからフロントガラスの撥水機能が低下している事を話したら、撥水機能は2年程度が限界なんだそうです。

こうなったら、キイロビンで中途半端に残った撥水コートを油膜ごと剥がしとり、耐久タイプの撥水材を塗るしかありません。
キイロビンも撥水材も、デミオに乗っていた時に使っていたものがあるので次の洗車でガラス磨きもしよう。

カーシャンプーも「コーティング車に最適」と謳っているものを買いました。

暑い時期は去ったので、次の洗車は徹底的にやろう。車内も。