HOME >> 鉄道模型自動運転システム > ATS列車自動停止システム PICマイコンを使おう
制御の心臓部であるマイコンを8ピンタイプのPICマイコンを使うことに決めたが、その機種と周辺回路を固めて、必要な部品を揃えることにした。
■ マイコンの設定
PICマイコンは始めてなのでいちから勉強しなければならない。 このための教則本として、QC出版社「8ピンPICで はじめてのマイコン工作をはじめる」で、2年程前に購入していた。 この教則本をパラパラとめくって自分でも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 をインストールしているノートパソコンを使用し、ハード回路が固まるまではブレッドボード 上に回路構成して作動等をチェックするつもりである。
発注していた部品が届いたので早速作業を開始することにした。
◆ 最初のトラブル
.
プログラム記述のためのエディタを内蔵しているパソコン用ソフト MPLAB IDE をインストール しようとしたが、パッケージの中にはCDが入っていませんでした。 インストール用ソフトは Web ページからダウンロードせよとのことでしたので、早速アクセスしてダウンjンロードしてインストールを実施しました。
胸躍らせてソフトを走らせてみましたが、教則本で説明されている様子と異なっており、どこをどう操作すればよいのか右往左往です。 落ち着いてチェックしてみると、インストールしたのは最新版の MPLAB X IDE v5.05 でした。 教則本バージョンは、MPLAB IDE v8.53 です。 途中に X が入っていてバージョンが若い?
ネットで情報収集してみると、最新のものはフル・モデルチェンジされており、画面も全然別物になっていました。 そこでせっかくの教則本を生かすべく、同じサイトから古いバージョンのアーカイブサイトからダウンロード先を見つけ、インストールを実施しました。
頭からつまずいていますね! インストールしたのは、MPLAB IDE v8.53 です。
【注記】 どうせなら最新版を使って勉強しようと新しい教則本を探してみました。 カットシステム社 2018年3月発行の「やさしいPICアセンブラ入門」 日向 俊二著の本です。 PICkit 3 と MPLAB X の組合せでの説明とのことで、アマゾンに注文しました。 しかし、届いてからガックリ! 使用している PIC が18ピンの 16F84A だったのです。 やはり本屋の店頭で中身を見ながら選定すべきだったと反省していますが、命令語の一覧や色々な注意書きなど参考になる部分もありますので、これはこれで良しとしましょう。
そして、8ピンでも、18ピンでも、どちらでも使えるようになったぞ!・・・・・・・・と解釈することにします。
◆ もう一つのトラブル
.
暫く使用していて、途中からおかしくなりました。 トラブルの内容は、MPLAB IDEに今まで作ったファイルが取り込めないのである。ファイルを開けようとした時、右のようなメッセージが出て折角作成した今までのファイルを使うことができないのである。
ソフトの問題なのか、あるいはOSの問題ではないかと疑って、OSの再インストールまでしてしまったのであるが、ネットで見つけたあるアドバイスが解決のヒントになった。 それは、
との記述であった。 質問者は、ファイルを開くでファイル名を拾って入力するだけでなのにと・・・・・とのことでした。 自分の場合でも確かに日本語のフォルダがあります。
そこで、MPLAB IDEから新しくファイルを保存した場合にはどこに保管されるのか追跡してみました。 すると意外な事が分かったのです。 MPLAB IDEは自分でファイルを保存する位置のパスは、すべて半角英数字のパスだったのです。
なんでこのような状態になっただろうか。 その原因はすぐに判明しました。 今までのファイルを整理整頓したのでした。 この時ファイルの保管位置を日本語名のフォルダである 「ドキュメント」 フォルダの中に移動させていたのです。
MPLAB IDEは自分自身がファイルを保管する場合、アクセス可能な日本語名の無い場所を探して保管するようにしているようである。 その場所は、OSが作った「ドキュメント」というファオルダでなくて、パソコン名から作成された英文字のフォルダに保管するものと理解します。 すると、パソコン名に日本語を使った場合にはトラブルになるとのアドバイスも理解できます。
そこで、MPLAB IDE が探したフォルダにファイルを移動させて使用する事にしました。
◆ 最初の作動確認
新しい技術を習得すには、まず教則本の通りに実施してみることが早道と考えています。 そこで教則本に示されていた例題を実施することにしました。 構成した回路は下の通りです。 LEDを点灯させる回路です
プログラムを例題どおり(?)に打ち込み、手順に従ってアッセンブリを実施しましたが、エラー表示されて次に進めさせん。 石が違うためかと思って 12F635 から 12F683 に変えてみましたがダメでした。 ソフトのあちこちを調べたところ、PICkit へのパワー供給の部分のチェックを変えてみると、PICkit のPOWERランプが点灯して接続が設定されたようですが、アッセンブルでのエラーは解消されませんでした。 自分の打ち込みミスかと思って何度もチェックした。 特にゼロとオーの違いには注意したが、問題は見つからなかった。
そこで、紹介されていたサイトよりサンプルプログラムをダウンロードしてソフトに取り込みアッセンブルしてみた。 すると問題無く実施され、書込みを順調に出来、紹介されていたような作動を確認することが出来た。
【注記】 後から購入した教則本を見ていると、“#include と __CONFIG の行頭を開けているのは、行の先頭から記述するラベルと区別するためです。 空ける文字は任意の空白、または水平タブでかまいせん。” と書いてあったのです。 エラーの原因はこれですね! 最初の本にはそんなこと書いてなかったよ! 見落としていたのかな?
◆ タイマー機能の確認
記述予定のプログラムには時間待ちの機能が必要になるので、その命令方法を確認しておくことにします。 このタイマー機能とするためには
などの方法が紹介されていましたが、(1)は確認できたものの、(2)と(3)はうまく行きませんでした。 プログラム前後が省略されているので、まだそれを補完できる実力がありません。 そこで、(1)の方法を使うことにしました。
◆ 石の違いに対しての設定方法
トラブルの例のように、マイコンの石の種類によって、設定方法が異なっています。 このために、使用する石に対する説明書や仕様書を確認しておきましょう。
PICマイコンそのもの仕様書は、初心者にはチンプンカンプンですが、レジスタ・ファイルはチェックしておきましょう。 バンクの指定や汎用レジスタのアドレスに注目しておきます。 石毎に異なっている場合があります。
つぎに、コンフィグ関係の資料もチェックしておきましょう。 デフォルトで指定されている項目は何か、そのまま使用して問題無いかなどをチェックしておきます。 注意する点は、クロック設定方法です。 内部クロックか、外部クロックか、また、使用するピンは何番かなどをチェックしておきましょう。 ウォッチドッグダイマなどがデフォルトでは有効になっていますので、外しておきましょう。
このコンフィグ設定は、PICマイコンを使いこなす最初の山ですので、焦らずに習得しておきましょう。
なんとか PIC マイコンを動かせるようになりました。 次からは実際の線路とセンサーを使って、初歩的な制御から少しづつステップアップしていく事にします。
2019/8/22 作成