して以下のリンクに公開しています。発光ダイオード点滅回路を完成させるために以下の順序で説明しています。このエントリの説明は(3)「プログラムを作る」の部分の、プログラム作成の最初ステップになります。発光ダイオード(LED)を電池と抵抗のみで光らせる回路を組むPICマイコンの回路を組む前に、まずは電池、抵抗、発光ダイオードのみを使って、ブレッドポード上に回路を組んで発光ダイオードを光らせてみます。ここでは電池、抵抗、発光ダイオードの回路記号、回路図と、回路図からブレッドボードに組む方法を説明します。PICマイコンのベース回路を組むはじめの一歩の回路は、発光ダイオードを1秒に1回光らせるだけの回路です。プログラムを作る発光ダイオードを1秒に1回光らせるプログラムを作成します。PICマイコンに書き込んで動作させる作成したプログラムをPICマイコンに書き込んで動作させてみます。発光ダイオードの点滅をスイッチで開始させるために、ベース回路にスイッチを追加します。これまでは発光ダイオードを光らせる、という出力制御をしましたが、PICマイコンで外部から信号を入力する方法を確認します。ベース回路にブザーを追加スイッチ付きの1秒に1回光らせる回路を作りましたので、ブザーを追加してタイマーを作ってみます。開発環境概要これからMac上でPICマイコンのプログラムを作成して、前回までに完成させた回路(PICマイコン)に書き込みます。この記事では以下の項目について説明します。IDEというソフトウエアを使用します。IDEインストール後、コンパイラも別途インストールする必要がありますので、まずはPICマイコンの開発環境がどうなっているのか、概要を説明します。開発環境のインストールMicrochipのサイトから開発環境をダウンロードしてインストールします。この部分は補足記事としてまとめましたので参照していただきます。プログラム開発の流れ他の多くのアプリ開発環境と同様、ひとつのPICマイコンプログラムは、ひとつの「プロジェクト」というもので管理・開発します。この開発の流れを説明します。プロジェクト作成・プログラム作成・ビルド・書き込み・動作確認1秒に1回発光ダイオードを光らせるプログラムをビルド、PICマイコンに書き込んで動作確認をします。今回、このプログラムはコピペしていただきますが、詳細については今後の記事で詳しく説明します。今回はプログラム自体の解説はせず、まずは開発の流れを確認いただくことと、前回までに作成したブレッドボードの回路が動作するかの確認を目的としています。いうことで、まずは開発の最初から最後まで、具体的に手を動かしてどんな感じか体験してみるのがよいと思います。途中ちょっとぐらいわからないことがあっても問題ありません。全体の流れを知ることが大切です。プログラムの中身はこの次の記事から詳細に説明していきます。いうソフトウエアを使用して開発します。IDEの本体と、アセンブラ(プログラミング言語の一種)しかインストールされません。IDEをインストールしただけではCコンパイラはない状態ですので、別途Cコンパイラをダウンロード、インストールする必要があります。PICマイコン用のCコンパイラは、XC8、XC16、XC32、という3種類がMicrochip社から無償で提供されています。インストーラは別々ですので、XC8、XC16、XC32をすべてインストールする場合、インストーラを3つ実行する必要があります。これらのコンパイラはそれぞれ無償版と有償版があります。この違いですが、生成されるバイナリコードがどの程度最適化されているかです。有償版の方が生成されるバイナリコードはサイズが小さく、効率もよくなっていますが、個人ユースでは無償版で十分だと思います。このようにCコンパイラにはXC8、XC16、XC32というように3種類ありますが、どのコンパイラを使うかはPICマイコンの型番によって決まります。今回使用しているPIC12F683は8ビットマイコンですので、XC8コンパイラを使用することになります。XC16、XC32は、より高機能なPICマイコン用のコンパイラです。それらのPICマイコンも使用する可能性がある場合は、XC16、XC32も一緒にインストールしておいてください。今回のインストールが終わると、以下のようなソフトウエア構成となります。XC32)のインストール方法は以下の記事に手順を説明してありますので、この手順でインストールしてください。Xを立ち上げてみます。mplab_ide.appを立ち上げてみてください。以下のようなウインドウが表示されると思います。この後、開発の流れを確認したあと、実際に手を動かしながら開発の流れを確認します。ここまで確認できればOKです。開発の流れ開発規模の大小にかかわらず、開発の流れは以下のような感じになります。新規に「プロジェクト」を作成します。プロジェクトを作成したら、そのプロジェクトに新規ファイルを追加して、そのファイルにプログラムを書きます。プログラムができたらビルドしてPICマイコンに書き込み、動かします。今回作成する発光ダイオードの点滅制御プログラムは以下のように作ることになります。「発光ダイオード点滅制御プロジェクト」を作成します。作成できたら、点滅制御プログラムを書くために、main.cファイルを新規ファイルとしてプロジェクトに追加します。あとは、main.cにプログラムを書いて、ビルド、PICマイコンに書き込み、動かしてみる、という手順になります。開発規模が大きくなると一度にすべての機能を実装したり、一発で動作することはあまりないので、実際には以下のような手順になります。プロジェクトとかファイルとか、よくわからなくても大丈夫です。これから実際にやってみますので、その過程でどんなものなのか確認してみてください。プロジェクト作成それでは、これからプロジェクトを作成し、プログラムファイルを追加、プログラム作成(今回はコピペ)、ビルド、書き込み、動作させてみます。実際に自分でやってみながら手順を追ってみて下さい。いうか、立ち上げてますかね。はじめに新規プロジェクトを作成します。Project”を選択します。メニューを選択すると、プロジェクト作成のための情報を入力するウィザードが始まります。Projectを選択してください。新規にPICマイコンのプログラムを作る場合、この選択をすることになります。選択したらNext>ボタンをクリックします。次の画面で、このプロジェクトで使用するPICマイコンの型番を指定します。プルダウンメニューになっていますので、メニューから選択できますが、数が多いので選択するのは大変です。入力してしまいましょう。入力できたらNext>ボタンをクリックします。次に、、、ちょっと難しい内容ですので、そっとNext>ボタンをクリックしてください。(ここではデバッグするときのデバッグヘッダを選択します)次の画面で、プログラムの書き込みツールを指定します。今回の入門ではPICKit3を使いますので、以下のようにPICkit3を選択してください。選択できたらNext>ボタンをクリックします。次の画面で、使用するコンパイラを指定します。以下の画面は私の環境なので、皆さんの画面とは違うと思います。XC8コンパイラがひとつだけ表示されていると思います。今回はXC8コンパイラを使用しますので、XC8を選択します。(複数のXC8がでてきた場合は、XC8の最新のバージョンを選択してください)最後にプロジェクト名を指定します。Name欄に、”LED_Flash”と入力してください。ご自分で付けたいプロジェクト名があればそれを指定いただいても構いません。プログラムのコメントに日本語を入力したいため、Encoding欄はUTF-8を選択してください。選択できたらFinishボタンをクリックします。これで発光ダイオードの点滅制御プログラムを作成するためのプロジェクトができました。この状態ではプログラムを書くためのファイルなどはまだ用意されていません。このあと、このプロジェクトに、main.cファイルを新規追加して、main.cにプログラムを書いていくことになります。Xの画面が以下のように変わっていると思います。以下の画面の内容について説明します。Guideを元にしています。この画面の一番上に、ツールアイコンがあります。アプリケーションメニューにあるいくつかのメニュー、例えば、ビルドやプログラム書き込みなどがここにアイコンとしておかれています。ツールアイコンの下には大きくわけて4つの領域があります。言葉がでてきてちょっとげんなりしますが、よくわからなくても大丈夫です。いうより、この領域の名前は覚えなくて大丈夫です。使っていくうちにわかってくると思います。プロジェクトを複数作成した場合、ここに複数のプロジェクトが表示されます。いうプロジェクトを作成したばかりですので、上のスクリーンショットのようにひとつしか表示されていません。この領域ではビルドしたバイナリの情報など、いろいろな情報が表示されます。アプリ立ち上げ直後はスタートページが表示されます。ファイル領域のファイルをダブルクリックするとこのエディタ領域にファイルが表示され、ここで編集可能となります。MPLABXからのメッセージや、ビルド時のログメッセージなどが確認できます。PICマイコンに書き込む際のステータスなどもここに表示されます。これまでの手順で、発光ダイオードの点滅制御プログラムをつくるためのプロジェクトができました。このあと、新規にmain.cファイルをプロジェクトに追加して、プログラムを書いていきます。(今回はコピペしていただきます)プログラム作成ここまでの操作で発光ダイオードの点滅制御をプログラミングするための「プロジェクト」を作成しました。次にこのプロジェクトにプログラムを書くためのファイルを追加します。このセクションでは、このmain.cを新規にプロジェクトに追加して、main.cにプログラムをコピペすることにします。実際の開発はこのmain.cなどに、試行錯誤しながらプログラムを書いていくことになります。Xでの開発〜動作確認までの流れを確認するためなので、main.cの中身には触れないことにします。プログラム規模が大きくなってくると、main.cだけで開発すると、わかりづらくなりますので、いくつかのファイルに分けたりします。その場合は、ひとつのプロジェクトにいくつものプログラムファイルが追加されることになります。それでは、main.cという名称のファイルをこのプロジェクトに追加しましょう。Files”というディレクトリに追加します。Files”というディレクトリは、実際にはFinder上のどこにもありません。MacのFinderで実際にプロジェクトが格納されているフォルダをみて確認してみてください。Xがそれぞれのプロジェクトに対して仮想的に管理してくれているだけです。Files”というフォルダを右クリックします。“main”と入力します。選択されていると思いますのでこのままにします。ボタンをクリックします。Filesの下にmain.cが作成されたと思います。それと同時に、右のエディタ領域に以下のようにmain.cの内容が表示されたと思います。このエディタでmain.cにプログラムを書いていくことになります。このファイルはCのメインファイルとして作成したため、メイン関数で使われる典型的な内容がすでに書かれています。これをすべて消去して書き直してもいいですし、ここに追加してもよいと思います。プログラムは次の記事から詳細に説明しますので、まず、現在main.cに書かれている内容をすべて消去して、以下のプログラムをコピペしてください。右に隠れている部分もあるのでコピー時、注意してください。(EXIT_SUCCESS);}これでプログラムが完成しました。ここまでの作業で以下のようになります。ビルド次にビルドをします。ビルドとは、先ほど保存したC言語のプログラムをPICマイコンがわかるコードに変換する作業です。ビルドはエラーがなければすぐに終わります。今回はプログラムをコピペいただいたのでエラーは出ないと思います。ツールアイコンにビルドボタンがありますので、そのボタンをクリックしてください。クリックすると、右下の領域(タスク領域)に以下のように何か文字が表示されると思います。これは、ビルド過程でコンパイラやリンカから出力される文字(ログ)の表示領域です。エラーがあれば、該当箇所が青文字で、エラーの内容が赤文字で表示されます。今後の記事でエラーが発生する状況になりましたら詳しく説明したいと思います。completed”と出力されればビルド成功です。あとは、ビルドされたプログラムをPICマイコンに書き込めばOKです。書き込み書き込みはブレッドボードにPICKit3を接続して書き込めばOKですか、実はこの状態で書き込みを行うと、PICマイコンが見つからない、というエラーになってしまいます。これについて原因と対応方法を説明します。PICマイコンにプログラムを書き込む時、電圧をかけて電気的にプログラムを書き込みます。この電圧をどうするかが問題になります。以前のエントリで説明しましたが、電圧(電源)供給方法には2通りあります。ひとつは、回路側で持っている電源を使用する方法、もうひとつはPICKit3から供給する方法です。プログラム書き込み時は、どちらかの電源のみで行う必要があります。(両方の電源を使うと、、、簡単に説明できませんが、電源同士が衝突してしまうためです)ところで、PICKit3から供給できるのであれば、常にそうした方がいいですよね。ところが、PICKit3から供給できる電源は限界があります。実際には供給できる電流の上限容量が決まっています。PICマイコンにプログラムを書き込むだけだったら、PICKit3から供給される電源でなんとかなるのでは、という気もしますよね。実は、PICKit3から電源を供給する、というのは、そのターゲットの回路に電源を供給することになります(以前の回路図をよく思い出してみてください)。PICKit3から電源を供給すると、そのターゲットの回路が必要とする電流が流れ、回路が大規模の場合、PICKit3からの電源供給は追いつかなくなり、結果的にプログラムを書き込めなくなってしまいます。いうことで、PICKit3から電源を供給するといちいち回路側の電源をつけなくてよいので手軽ですが、この場合、あまり電流を使わない回路である必要があります。電流をたくさん使う回路の場合は、回路側で用意している本来の電源をつなげて電源を供給し、PICKit3からは電源を供給しない設定で書き込みます。プロジェクトのデフォルトは、PICKit3から電源を供給しない設定になっています。今回の回路は発光ダイオードをひとつしかつけていない電流をあまり使わない回路ですので、PICKit3から電源を供給してみます。”LED_Flash”というプロジェクト名を右クリックして、メニューの一番下の”Properties”を選択します。以下のようなプロパティダイアログが表示されます。右側のCategories欄で、PICKit3を選択します。categoriesを開いて、そこからPowerを選択します。Levelを5.0(5V)に設定します。PICkit3′′というのは「PICkit3からターゲット回路に電源を供給する」という意味です。この設定ができたら、OKボタンをクリックします。これで書き込みの準備ができました。これから実際に書き込みます。MacとPICkit3をUSBケーブルで接続します。PICkit3は以下のように、前回までに製作したブレッドボードのピンヘッダに差し込みます。向きに注意しましょうね。PICKit3の白い三角がある側が1番ピンです。不安定なので、左手で押さえたままにします。次に、プログラムを書き込みます。書き込みはツールアイコンに書き込みボタンがありますので、それをクリックします。クリックすると、書き込み処理が始まりますが、途中で以下のようなダイアログが表示されると思います。これは何を言っているかというと、「選択したPICマイコンは、3.3Vモデルと5Vモデルがあるよ。今5Vの設定にしてるけど、3.3VモデルのPICマイコンに書き込んだらぶっ壊れるよ」というような内容です。5V用なのでこのまま進めます。書き込みが終わっても特にダイアログが出るわけでもないので、右下のタスク領域にログが表示されますので、そこを確認してみます。complete”と表示されれば、無事書き込み完了です。ところで、PICKit3を差しっぱなしにしていると、発光ダイオードが点滅を始めたと思います。これはプログラム書き込み後、PICマイコンが動作を始めたためです。電池をつないで動作確認しますので、ここでPICKit3を外します。動作確認では、電池をつないで動作させてみます。以下のように電池ボックスから出ている電線をブレッドボードに接続して、スイッチを入れます。うまく1秒に1回ピカッ、ピカッ、と光りましたか?もし光らなかったら、回路とプログラムをもう一度確認してみてください。動かない原因がどうしてもわからなかったら、ご質問を受け付けますので、このサイトの「Contact」ページからお問い合わせいただければと思います。