前回の更新で「LEDを光らせる事はできた」と書きましたが、ちょっと嘘つきました。すみません。
GPIO2に赤色LEDを取付けたのですが、このLEDだけ光らせる事ができなかったのです。
TRISGPIOはスイッチが取付けてあるGPIO0と1だけビットを立て0x03と宣言してあるので、GPIO2は出力になっているはずです。
それなのに、GPIO = 0x04; としてもLEDが点灯しなかったのです。
回路を製作した時に、意図せずPICkit2を逆差ししてしまったのを思い出し、Vppピンではないところに12Vが印可され故障したのではないかと疑いました。
なのでクルマを走らせマルツパーツ館浜松店へ行き、新品のPIC12F509を1個買ってきました。
帰宅してすぐにテスト基板のPICを交換し、PICkit2の逆止しに注意してICSP書き込みを行うと...
おかしい。点灯しない。
すっかり手詰まりになってしまいました。
仕方ないので英語で小さい文字で専門用語ばかりでぎっちり記述されているPIC12F509のデータシートを読んでみました。
原因が分かりました。
第4ピンはGPIO2とT0CKIを兼ねていますが、パワーオン・リセット後はこのピンがT0CKIとして設定される、とデータシートに書かれていたのです。
T0CKIはTimer0 ClocK Inの略で、タイマー回路のクロック外部入力です。
プログラムの冒頭でOPTIONレジスタに特定の値を書き込み、第4ピンはGPIO2として使用すると宣言しなければならなかったのです。
プログラム上の問題が解決したところで、テスト基板に再び逆差ししたPICを取付け、プログラムを書き込みました。
結果、正常動作しました。本当にありがとうございました。
IOポートの問題も解決したので、今日は信号を制御するプログラムを考えてみました。
とはいっても午前中はゴロゴロして、昼食後はシエスタしたので、始めたのはおやつ時を過ぎてからですが。
いきなりプログラムを書き始めると自分でも変数の使い分けなどがわからなくなるので、久しぶりにフローチャートから書き出しました。
とはいっても難しい動作をさせる訳ではないので、フローはすぐに完成。
そしてコーディングも15分程度で終了。
これが今回作成したプログラムです。
//コンフィグレーションビットの設定 #pragma config_reg 0xFFA //グローバル変数の宣言 //thisArea:この閉そく区間に列車がいるか いる=1 //nextArea:次の閉そく区間に列車がいるか いる=1 bit thisArea,nextArea; //少し待つ void loop(void){ int a = 20000; while(--a) nop(); } //IOポート初期化 void initIo(void){ GPIO = 0; TRISGPIO = 0x03; OPTION = 0xDF; } //IOポート状態取得 char getJokyo(void){ char a; a = GPIO & 0x03; switch (a){ case 0x03: thisArea = 0; nextArea = 0; break; case 0x02: thisArea = 1; nextArea = 0; break; case 0x01: thisArea = 0; nextArea = 1; break; default: thisArea = 1; nextArea = 1; } return a; } //停止現示を持続させる(停留所対策) void teishiJizoku(void){ char a=0x02; GPIO = 0x04; while(getJokyo() != 0) loop(); loop(); } //メイン関数 void main(void){ initIo(); while(1){ getJokyo(); if (thisArea == 1) teishiJizoku(); else{ if (nextArea == 1) GPIO = 0x10; else GPIO = 0x20; } loop(); } }
見たままで何の説明も要らないプログラムです。
それでも説明させていただくと、thisAreaが1の場合はthisAreaとnextAreaが共に1になるまで停止現示のままとなり、thisAreaが0の場合はnextAreaの状態によって進行現示又は注意現示になります。
停止現示の場合のみ状態を保持させるのは、検知回路の問題上、列車を停止させると「在線なし」となるためです。
停留所を設けた場合など、列車を停止させると「在線なし」となり、信号機が進行現示となってしまいます。このため一旦停止現示となったら、信号機の防護する閉そく区間と次の閉そく区間の両方に列車が「在線あり」となり(つまり列車が閉そく区間を跨ぐ)、閉そく区間を列車が抜けるまで停止現示のままにしています。
PICでC言語を使う場合、雑誌でもwebでもCCS CやPIC Cが多数派ですが、私はN先生に勧められたCC5Xを使っています。PIC Cのフリー版はあり得ないコードを吐くそうです。
これで、鉄道模型用信号機制御装置の論理部は一応形になったことになります。
同じ事をディスクリート部品でやろうとすると、この画像のような事になります。
それがPICを使う事で、同じ機能をDIP8ピンのマイコン一つで実現できてしまうのです。(画像は9月26日の手記「テスト基板できました」に掲載)
ディスクリート部品で行こうと思っていた頃は「この程度でマイコンなど不要」と発現していましたが、撤回します。
どう考えたってマイコンでやった方が楽だ。
自分の話。
呼びかけられても気づかない事がよくあります。
それでも、聴力検査で異常と判定された事はありません。
けいおん!!のオープニングを聞いていて歌詞が聞き取れないことから、確信しました。
音を認識・処理する部分が、多分私、働きが悪いです。
大きな荷物を持って階段を下りる時、慣れた場所なら直接足下が見えなくても脳内のイメージから階段の始まる場所とか1段の高さや奥行きを想定して降りる事ができます。
しかし、イメージから無意識のうちに足を動かす動作に、思考が介入してきて動きが止まったり、動作がぎくしゃくする事があります。
これで階段で転んだ事もあります。
いろんな事を同時進行で進めるのは昔から苦手ですが、何かをしている時には割込フラグも無視する事があります。
誰でも何かに集中している時は割り込みに対する感性が鈍くなりますが、私のそれは度を超しています。
これって精密検査を受けるべきなんでしょうか。
昨日の業務終了後、新幹線と特急しなのを乗り継いで木曽福島へ行ってきました。
駅有志の木曽福島高山連絡バスに乗ってみるツアーに参加したのです。
先発隊は朝から木曾福島へ行き、御岳ロープウェイ
にも乗ったようです。
日勤終了組が宿に到着すると、先発隊は既にかなりでき上がっていました。
私も当然飲んだのですが、ペース配分を間違えてえらい目に遭いました。悪いのは自分ですが。
後半は記憶がありません。若い社員に抱えられてトイレに運び込まれたのは微かに覚えていますが。
今日は木曽福島からバスに乗り高山へ。
この連絡バスを使えば、1泊で木曽と高山の両方を観光することができます。うまく使えばいろんな事が出来そうです。
実際今日は木曽も高山もお祭りでした。一日で両方見ることだってできてしまうのです。
ただ、いかんせん遠い。ちょっと遠い。
バスの所要時間はおよそ2時間30分。近鉄ビスタカーのコピーを借りれば、2時間あるからちょうどいい。
昼寝には十分な時間ですし、ノートパソコンを持ち込めば一仕事できそうです。
木曽と高山を結ぶ国道は今回始めて通りましたが、高根ダムはもっとよく見たかったです。
明日早起きできればクルマで行こうかな...
高山では大爆笑体験館と言うところで煎餅焼き体験をしてきました。
生地(と言うか分からないけど)を火鋏で挟み、初めは両面にっさっと火を通し、はさむ場所を変えて火に近づけると突然反り返ります。
ここで素早く表裏を返し、逆にそらせ、取り出して手で形を整えて完成。
手本を見たときは簡単そうに見えましたが、きれいに焼くのはなかなか難しい。でも楽しかった。
駅からは少し歩きますが、高山へ行ってみたら体験してみるといいですよ。
あ、普段使いのコンパクトデジカメです。
Nikon D80はまだまだ使います。今はまだ機能に振り回されている感じですが。
これまでコンパクトデジカメはキヤノンPowerShot A700を使ってきました。購入は2006年7月。
最近、電源周りの不調が目立つようになりました。
満充電したeneloopを入れても、初回起動でバッテリ警告が点滅するのです。
同じeneloopをデジタルレコーダーEDIROL R-09に入れても充電直後でも満充電表示にはならないのでバッテリ側の問題かもしれませんが。
そんな訳でキヤノンPowerShot SX210 ISにしました。
今回も下取りしてもらおうとカメラのキタムラに行ったのですが、置いてない。
買い替えを思いついたのが日曜の夜で、木曜日にはうどん旅行が控えていたので取り寄せている時間が勿体ない。なのでエイデンとジョーシンにも行ったのですが、PowerShotシリーズのミドルレンジというニッチなカメラはどこにも置いていませんでした。
なので今回はamazon.jpで購入。何とでも言ってくれ。この便利さは使った人でなきゃわからない。
使ってみた感想ですが、4年でこうも進歩するもんなんですね。
まず、光学ズームは14倍。A700は6倍です。
デジタルズームも、記録画素数を落としている場合は撮像素子の一部分のみを使う事で画角を狭めズームする機能があり、画質を落とさずにデジタルズームできる領域を教えてくれます。
動画撮影機能も大幅に機能アップしています。
1280x720pxのHDフォーマットに対応。記録方式もMotionJPEGからH.264になりました。
音声はリニアPCMのままですが(コンテナはQuickTime)、動画圧縮方式の変更でデータは格段に軽くなりました。
もうXactiを使う必要は無さそうです。本格的な撮影でなければ十分に耐えます。
何より一番感動したのは、光学式手ぶれ補正です。
A700には手ぶれ補正が一切付いていなかったので、本当に感動しました。これまでなら諦めなければならなかった場面でも、気にせずシャッターを切れます。
IXYではなくPowerShotにこだわる理由は、撮影モードの選択肢の広さにあります。
A700ではAUTOモードは全く使いませんでした。車両の撮影ではプログラムAEモードで必要な設定は自分でやった方がいい結果になったからです。
DiGiC4になってAUTOでもだいぶ狙った通りに写るようになりましたが、それでもPモードを使う事はよくあります。
Pだけではありません。背景をぼかしたいと思う事もあるし、ISO感度を上げてでもシャッタースピードを確保したい時もあります。なのでTv、Av(メーカーによってはS、A)モードは付いてないと困るのです。
一応、Nikonのサイトも見て比較見当しましたが、NikonのコンパクトデジカメにはP、S、A、Mモードが付いてないのです。
最後に、撮像素子の感度の高さと画像エンジン(DiGiC4)の圧縮精度の高さにも舌を巻きました。
A700ではISO800はノイズがひどいのでどうにもならない時の最終手段でしたが、SX210 ISではISO800で撮影してもそれほどノイズが気になりません。
久しぶりにいい買い物をしたと実感できました。
元同じ職場の後輩が定期的に開催しているうどんツアー。
私も既に4回ほど参加しています。
今回は22日に開催されましたが、私の他に参加者が無かったので二人で行ってきました。
私は木曜日は仕事だったので、サンライズ瀬戸で高松入り。
関ヶ原で先行貨物列車が鹿と衝撃した影響で、高松には50分延で到着。
ジャンボフェリーで先に高松入りしていた後輩と合流して、消化器の限界に挑戦するツアーの戦闘開始です。
今回は3時間53分で6件廻りました。
こう書いて自分でもびっくりです。
腹ごなしに瀬戸大橋記念館へ行ったのですが、プロジェクトXに見入ってしまい、15時出航のジャンボフェリーを危うく逃すところでした。
神戸到着まで爆睡していのは言うまでもありません。
神戸からは阪神電車と大阪環状線を乗り継いで新今宮へ。
新世界で串カツを食べました。
出航時点では何も腹に入れたくない状態だったのに、串カツを目にすると空腹感を覚えました。食いだめってできないんですね。
再び満腹になったところで、天満のビジネスホテルへ。
窓の外には大阪環状線。103系や201系ばかりが通り、タイムスリップしたようでした。
103系のMT54の音で目覚めた後は、吹田へ。
尼崎事故以来自粛されていた吹田工場一般公開があったのです。
車輪削正作業や踏切非常ボタン体験など、普段は見られない&体験できないものが目白押しでした。
アーバンネットワーク新快速の新型車両225系も展示されていました。
高運転台なんですね。デザインは現在の223系の方が好みです。E233系のように運転台補助ワイパが取付けられていました。
うどんと吹田工場で撮影した画像は、MobileMeギャラリーで公開しています。
久しぶりに泊まりがけで出かけられて、心のリフレッシュができました。体(特に消化器官)には優しくなかったですが、それは気にしてはいけません。
金曜日は名古屋へ出張してきました。年末調整担当者説明会に出るためです。
前回は乗務停止になって事務に入り、少し落ち着いた頃でした。
本職の先輩に概要を教わり、扶養控除、配偶者特別控除、保険料控除は大体できるようになりました。
それでも住宅借入金等特別控除(住宅ローン減税)は難しいので本職の先輩に丸投げしていました。
しかし今回は、全て自分で行わなければなりません。
説明会の資料もわかりやすかったですが、国税庁の「年末調整のしかた」も2回ほど読み通しました。
国税庁の資料は文字が小さくページが多く読みにくい部分もあるのですが、やはり読む価値はあります。
給与収入の基礎控除額とか、住宅借入金等特別控除の例題とか、勉強になりました。
各箇所から事務統括センターへの締切は11月17日(必着)。
時間があまりないですが、気合い入れていきます。
昨日は豊橋工業高校の文化祭一般公開日だったのですが、明け方に発令された暴風警報が7時30分になっても解除されなかったため中止になりました。
私は卒業してからもほぼ毎年行っていました。
車掌をしていた時に年休を入れ忘れて仕事になった事が1度あったか無かったくらいで、行けなかったのは1回か2回です。
あ、前回は日付を間違えて行く事ができませんでした。
商業高校や普通科高校がどうかはわかりませんが、工業高校の教諭は、特に専門科目の教諭はほとんど異動がありません。
あったとしても、隣の学校の事が多く、東三河の枠を越えて異動する事はほとんどありません。
なので卒業して9年経っているのにも関わらず、職員室は知っている先生ばかりなのです。
フロントで働いていた時は平日休みとか非番があったので、学校のある午後にふらっと寄る事もできましたが、今は叶いません。
文化祭の時には卒業生が職員室にわっと押し寄せます。知らない方もいれば、久しぶりに会う先輩もいます。
なので今回は凄く楽しみにしていたのですが、台風によって中止になってしまいました。
国語のS先生が顧問をしている茶道部の出し物に行くのも楽しみにしていたのですが、異動で別の高校に行ってしまいました。
変わらないようでいて、時間は留まる事なく流れているんですね。
最近クルマに乗ってないなと思ったので、雨が小振りになった午後、久しぶりにアクセラのエンジンに火を入れました。
金曜日の夜、YouTubeを見ていたら2時になってしまっていたので、これは絶対に眠くなると思い、本坂峠(旧道)を経由して舘山寺に行く事に。
高速道路に乗ってしまうと、どんなに眠くてもPAまで走らなければならないので一般道で行ける近場に。
本坂旧道は、どんどん荒れていきます。
新道が無料になった今、敢えて旧道を通る意味も無いですからね。
路肩には小枝や枯れ葉がうずたかく積もり、脇からは雑草が行く手を遮るように伸び放題。
本坂トンネルは再びストリートペイントのカンバスと化していました。
普段なら左折する下気賀交差点(サークルK)を右折して舘山寺方面へ。
初めて走る道はどんなにしょぼい道でもワクワクします。
動物園・パルパルの前を通り、浜名湖東岸をひたすら南へ。
村櫛海水浴場付近で活動限界を感じたので駐車場でシエスタ。
14時30分に到着して、目が覚めたのは16時。きっちり90分寝て、雲の合間から夕日が覗いていました。
目覚ましのため湖岸を少し歩いて、再びハンドルを握り宇布見橋経由で帰宅しました。
さすがに睡眠時間5時間を割ると昼間の眠気は強いです。
私は事務員ですが、動かなくなった布団乾燥機や動かなくなった電気掃除機を修理したりもしています。
駅で使っている電気機器の不調や故障は、大抵は手入れが不十分とか、プラグの根元が断線している程度の整備不良とか軽微な故障です。
なのでよく修理を頼まれます。
前回、掃除機の修理を依頼されたので原因を調べると、やはりプラグの根元付近でコードが断線していました。
なので帰りがけにカーマに寄ったのですが...
キングジム テプラPRO SR600を店頭で見つけてしまい、勢いで買ってしまいそうな衝動に駆られました。
ラベルライターらしからぬ外見とは裏腹に、あいつはかなり高機能です。
駅で現在使用しているカシオ ネームランドKL-M5なんて霞んで消えてしまいます。
ネームランドも上位機種は色々できますが、ラベルライターはテプラでしょ。
その場は何とか衝動を抑える事に成功しましたが、あやうく買ってしまうところでした。