HOME >> 鉄道模型自動運転システム >  新ATSに挑戦 ハードの準備

新ATSに挑戦 ハードの準備

  .

■ はじめに

 制御の心臓部であるマイコンを8ピンタイプのPICマイコンを使うことに決めたが、その機種と周辺回路を固めて、必要な部品を揃えることにした。 

 

■ マイコンの設定

 PICマイコンは始めたなので一から勉強しなければならない。 このための教則本として、右の書籍を2年前に購入していた。 この教則本は、QC出版社から2010年10月に発行されたものであり、パラパラとめくって自分でもPIC マイコンに挑戦できると考えていたのである。

 ここには、12F509、12F629、12F683、12F635 の4種類の仕様が表で示されており、本文での記述は 12F683 を使用しての説明がされていた。 今回はA/D コンバータなどを使用しない単なるシーケンス制御なので、A/D コンバータを搭載していない12F635 で充分と考えこれを使うことにし、安全のために 12F683 も入手しておくことにした。

■ プログラミング言語

 このマイコンのプログラミング言語としては、「アッセンブリ言語」と「C言語」を使用するのですが、40年以上の昔の若いころ、Z80(?)を使って少しプログラムをいじった事がありましたので、アッセンブラには抵抗がありません。 命令等はその頃とは大違いでしょうが、考え方は同じだと安易に判断しており、もう一度「アッセンブリ言語」に挑戦することにします。 ボケ防止を兼ねて!

■ エディタとライター

 プログラムの記述のためのエディタやアッセンブラまたはコンパイラを内蔵しているパソコン上のソフトとしてMPLAB IDE を使用し、マイコンに書き込むためのライターとしてPICkit を使うことにしたが、PICkit の最新バージョンは 4 であった。 しかし教則本では2/3のものが使用されているので、これも安全をみて教則本と同じ PICkit 3 を選定した。 さらに、多数の PIC に同じプログラムを書き込む必要があると考えているので、書込みアダプターキットも一緒に購入しておくことにする。

■ 開発環境とハード回路の構成

 プログラムの記述などに使用するパソコンは、Windos10 をインストールしているノートパソコンを使用し、ハード回路が固まるまではブレッドボード 上に回路構成して作動等をチェックするつもりである。

 そして周辺回路に必要な部品を揃えるために、回路図を描いてみた。 

  オプション回路1は、ヤードの入出庫ボタン用の回路で、右回りと左回り同h時に信号発信できるように、オプション回路2は、ホームでの出発制御用の回路案である。

 ネットでの購入先は、何時も利用している秋月とし、そこで調達できる仕様のものを選定した。 まず、マイコンは、 PICマイコン PIC12F683−I/P  と  PIC12F635−I/P、 8ピンのICソケット2227シリーズ、 マイクロチップ PICkit3、Pickit対応ICSP書き込みアダプターキット、 5V小型リレー 接点容量:2A 946H−1C−5D、 ターミナルブロック 2ピン(青)(縦)小、 半固定ボリューム 10kΩ [103]、 フォトカプラ TLP785(GBランク)、 2入力ORゲート TC7S32F、 SOT23変換基板 金フラッシュ 等を注文した。

 ここで、2入力ORゲートのICを探したが、 多回路のICばかりで、やっとワンゲートロジックICを見つける事が出来たものの、表面実装用のためユニバーサル基板でも使用できるようにと変換基板も用意することにした。

 

■ 作業を始める

 発注していた部品が届いたので早速作業を開始することにした。 下の写真

◆ 最初のトラブル

  .

 プログラム記述のためのエディタを内蔵しているパソコン用ソフト MPLAB IDE をインストール しようとしたが、パッケージの中にはCDが入っていませんでした。 インストール用ソフトは Web ページからダウンロードせよとのことでしたので、早速アクセスしてダウンjンロードしてインストールを実施しました。

 胸躍らせてソフトを走らせてみましたが、教則本で説明されている様子と異なっており、どこをどう操作すればよいのか右往左往です。 落ち着いてチェックしてみると、インストールしたのは最新版の MPLAB X IDE v5.05 でした。 教則本バージョンは、MPLAB IDE v8.53 です。 途中に X が入っていてバージョンが若い?

 ネットで情報収集してみると、最新のものはフル・モデルチェンジされており、画面も全然別物になっていました。 そこでせっかくの教則本を生かすべく、同じサイトから古いバージョンのアーカイブサイトからダウンロード先を見つけ、インストールを実施しました。 頭からつまずいていますね! インストールしたのは、MPLAB IDE v8.53 です。

【注記】  どうせなら最新版を使って勉強しようと新しい教則本を探してみました。 カットシステム社が2018年3月発行の右の本です。 PICkit 3 MPLAB X の組合せでの説明とのことで、アマゾンに注文しました。 しかし、届いてからガックリ! 使用している PIC が18ピンの 16F84A だったのです。 やはり本屋の店頭で中身を見ながら選定すべきだったと反省していますが、命令語の一覧や色々な注意書きなど参考になる部分もありますので、これはこれで良しとしましょう。

◆ 最初の作動確認

 新しい技術を習得すには、まず教則本の通りに実施してみることが早道と考えています。 そjこで最初に示されていた例題を実施することにしました。 構成した回路は下の通りです。 LEDを点灯させる回路です

 プログラムを例題どおり(?)に打ち込み、手順に従ってアッセンブリを実施しましたが、エラー表示されて次に進めさせん。 石が違うためかと思って 12F635 から 12F683 に変えてみましたがダメでした。 ソフトのあちこちを調べたところ、PICkit へのパワー供給の部分のチェックを変えてみると、PICkit のPOWERランプが点灯して接続が設定されたようですが、アッセンブルでのエラーは解消されませんでした。 自分の打ち込みミスかと思って何度もチェックした。 特にゼロとオーの違いには注意したが、問題は見つからなかった。

 そこで、紹介されていたサイトよりサンプルプログラムをダウンロードしてソフトに取り込みアッセンブルしてみた。 すると問題無く実施され、書込みを順調に出来、紹介されていたような作動を確認することが出来た。

【注記】 後から購入した教則本を見ていると、“#include と __CONFIG の行頭を開けているのは、行の先頭から記述するラベルと区別するためです。 空ける文字は任意の空白、または水平タブでかまいせん。” と書いてあったのです。 エラーの原因はこれですね! 最初の本にはそんなこと書いてなかったよ! 見落としていたのかな?

◆ タイマー機能の確認

 記述予定のプログラムには時間待ちの機能が必要になるので、その命令方法を確認しておくことにします。 このタイマー機能とするためには

  1. 無断演算を実施させて時間稼ぎをする方法 (教則本でのリスト6-1 P24)
  2. プリスケーラを使う方法 (教則本でのリスト2 P35)
  3. 割り込み処理を使う方法 (教則本でのリスト3 P36)

などの方法が紹介されていましたが、(1)は確認できたものの、(2)と(3)はうまく行きませんでした。 プログラム前後が省略されているので、まだそれを補完できる実力がありません。 そこで、(1)の方法を使うことにしました。

 

■ まとめ

 なんとか PIC マイコンを動かせるようになりました。 次からは実際の線路とセンサーを使って、初歩的な制御から少しづつステップアップしていく事にします。 でもまだ勉強する項目は多くあります。

など必要ですね。

ページトップへ戻る .


 2018/9/12 作成