今回はMPLABXの使い方を一通り確認します。回路を完成させるために以下の順序で説明しています。このエントリの説明は(3)「プログラムを作る」の部分のMPLABXの概要説明になります。前回までの説明で、ブレッドボードで回路を組み立てて開発環境もインストールしましたので、今回は回路が問題なく動作するか確認してみます。今回の説明では、実際にプログラムをビルドします。プログラムの中身については次回以降詳細に説明しますので、今回はMPLABXでのPICプログラム開発の流れを把握してみてください。LEDを電池と抵抗のみで光らせる回路を組み立てるPICマイコンの回路を組み立てる前に、まずはブレッドボードに慣れておくことにします。電池、抵抗、LEDのみを使って、ブレッドポード上に回路を組んでLEDを光らせてみます。ここでは電池、抵抗、LEDの回路記号と回路図の説明をして、回路図からブレッドボードに組む方法を説明します。ブレッドボードに慣れましょう!PICマイコンのベース回路を組むはじめの一歩の回路は、LEDを1秒に1回光らせるだけの回路です。この回路をブレッドボードに組み立てます。プログラムを作るLEDを1秒に1回光らせるプログラムを作成します。PICマイコンに書き込んで動作させる作成したプログラムをPICマイコンに書き込んで動作させてみます。ベース回路にスイッチを追加LEDの点滅をスイッチで開始させるために、ベース回路にスイッチを追加します。これまではLEDを光らせる、という出力制御をしましたが、今度はPICマイコンで外部から信号を入力する方法を確認します。ベース回路にブザーを追加スタートスイッチ付きの、1秒に1回光らせる回路を作りましたので、ブザーを追加してタイマーとして完成させます。Xを立ち上げてみましょう。デフォルト設定でインストールした場合、macOSは、「アプリケーション」→「microchip」→「mplabx」→「(バージョン番号フォルダ)」→「mplab_ide.app」です。vx.xx」があります(vx.xxはバージョン番号)。MPLABXを立ち上げると、以下のようなウインドウが表示されます。以下はmacOS版のウインドウですが、Windows版もほぼ同様のスクショになります。それでは開発の流れを確認したあと、実際にMPLABXを操作しながら開発の流れを確認しましょう。準備するものは、MPLABXをインストールしたMac/PC以外に、作成したブレッドボード、電池ボックス、PICKit3、PICKit3付属のUSBケーブルです。開発の流れ開発規模の大小にかかわらず、開発の流れは以下のようになります。新規に「プロジェクト」を作成します。プロジェクトを作成したら、そのプロジェクトに対して新規ファイルを追加、そのファイルにプログラムを書きます。プログラムができたらビルドしてPICマイコンに書き込み、実際に回路を動作させます。一度にすべての機能を実装したり、一発で動作することはあまりないので、実際には以下のような手順になります。「プロジェクト」とか「ファイル」とか、今は具体的にわからなくても大丈夫です。これから実際にやってみますので、その過程でどんなものなのか感覚をつかんでみてください。プロジェクト作成それでは、これからプロジェクトを作成し、プログラムファイルを追加、プログラム作成(今回はコピペ)、ビルド、書き込み、動作させてみます。実際に自分でやってみながら手順を追ってみて下さい。スクショはmacOSのものですが、Windows版も同様の操作になります。いうか、立ち上げてますよね。はじめに新規プロジェクトを作成します。Project”を選択します。メニューを選択すると、プロジェクト作成のための情報を入力するウィザードが始まります。Project」を選択してください。通常のPICマイコンのプログラムを作る場合、この選択をすることになります。選択したらNext>ボタンをクリックします。次の画面で、このプロジェクトで使用するPICマイコンの型番を指定します。プルダウンメニューになっていますので、メニューから選択できますが、数が多いので選択するのは大変です。入力は小文字でもOKです。合致するものが見つかると自動的に大文字に変換してくれます。入力できたらNext>ボタンをクリックします。次に、、、ちょっと難しい内容ですので、そっとNext>ボタンをクリックしてください。(プログラムをデバッグする際の設定になります。基礎編ではデバッグは行いませんので、ここではNoneを選択したまま次の設定に進みます)次の画面で、プログラムの書き込みツールを指定します。お持ちのPICkitに合わせて「PICkit3」または「PICkit4」を選択します。以下は「PICkit4」を選択した状態です。線足したらNext>ボタンをクリックします。次の画面で、使用するコンパイラを指定します。以下のように先ほどインストールしたXCコンパイラを選択します。XCコンパイラは何ヶ月かごとにバージョンアップされます。新しいバージョンをインストールすると、古いバージョンを上書きするのではなく、追加でインストールされます。XCコンパイラを複数バージョンインストールすると、上のコンパイラ選択画面で複数のバージョンがリストされます。最後にプロジェクト名称などを設定します。以下の説明図も合わせて見ながら設定してみて下さい。Name欄に、”LED_Flash”と入力してください。ご自分で付けたいプロジェクト名があればそれを指定いただいても構いません。Location欄のプロジェクトフォルダの場所を確認してください。自分で作成したフォルダになっていない場合は、「Browse...」ボタンをクリックして、自分で作成したプロジェクトフォルダ位置を指定します。folder」のチェックは外します。最後に、Encoding欄はUTF-8を選択してください。UTF-8を選択すると、プログラム中のコメントに日本語が入力可能になります。選択できたらFinishボタンをクリックします。これでLED点滅制御プログラムを作成するためのプロジェクトができました。この状態ではプログラムを書くためのファイルなどはまだ用意されていません。このあと、このプロジェクトに、main.cファイルを新規追加して、main.cにプログラムを書いていくことになります。プロジェクト作成のウィザードが終わると、プロジェクトが作成され、ウインドウ左上の方に作成したプロジェクトが以下のように表示されていると思います。プログラム作成ここまでの操作でLED点滅制御のプログラムを作成するための「プロジェクト」を作成しました。次にこのプロジェクトにプログラムを書くためのファイルを追加します。このセクションでは、このmain.cを新規にプロジェクトに追加して、main.cにプログラムをコピペすることにします。今回はMPLABXでの開発〜動作確認までの流れを確認するためなので、main.cの中身には触れないことにします。補足ですが、プログラム規模が大きくなってくると、main.cだけで開発するとわかりづらくなりますので、いくつかのファイルに分けたりします。その場合は、ひとつのプロジェクトにいくつものプログラムファイルが追加されることになります。それでは、main.cという名称のファイルをこのプロジェクトに追加しましょう。Files”というディレクトリに追加します。Files”というディレクトリは、実際にはFinder(macOS)やExplorer(Windows)で探してもどこにもありません。MPLABXがそれぞれのプロジェクトに対して仮想的に管理してくれているだけです。Files”というフォルダを右クリックします。“main”と入力します。選択されていると思いますのでこのままでOKです。ボタンをクリックします。Filesの下にmain.cが作成されたと思います。それと同時に、右の広い領域に以下のようにmain.cの内容が表示されたと思います。このエディタでmain.cにプログラムを書いていくことになります。このファイルはCのメインファイルとして作成したため、メイン関数で使われる典型的な内容がすでに書かれています。プログラムの中身は次回以降の記事で詳細に説明しますので、まずは現在main.cに書かれている内容をすべて消去して、以下のプログラムをコピペしてください。return;}これでプログラムが完成しました。ここでファイルを保存します。アプリケーションメニューの「File」→「Save...」を選択します。ここまでの作業で以下のようになります。ビルド次にビルドをします。ビルドとは、先ほど保存したC言語のプログラムをPICマイコンが処理できるコードに変換する作業です。ビルドはエラーがなければすぐに終わります。今回はプログラムをコピペいただいたのでエラーは出ないと思います。ツールアイコンにビルドボタンがありますので、そのボタンをクリックしてください。クリックすると、右下の領域に以下のように何か文字が表示されると思います。これは、ビルド過程でコンパイラから出力される文字(ログ)の表示領域です。エラーがあれば、該当箇所が青文字で、エラーの内容が赤文字で表示されます。completed”と出力されればビルド成功です。あとは、ビルドされたプログラムをPICマイコンに書き込む作業です。書き込み書き込みはブレッドボードのコネクタにPICKitを接続して書き込めばOKですが、実はこの状態で書き込みを行うと、PICマイコンが見つからない、というエラーになってしまいます。これについて原因と対応方法を説明します。PICマイコンにプログラムを書き込むには、PICマイコン内部のプログラムを記憶しておくメモリに電圧をかけてプログラムを書き込みむ必要があるため、電源を供給する必要があります。この電源をどのように供給するかが問題になります。この電源供給方法には2通りあります。ひとつは、電池ボックスをブレッドボードにつないで回路側の電源から供給する方法です。ひとつはPICKit本体から供給する方法です。SNAPは電源供給の機能がありませんので、プログラム書き込みの際には必ず電池ボックスをブレッドボードにつないで電源を供給しておく必要があります)PICKitから供給できるのであれば、書き込むときにわざわざ電池ボックスをブレッドボードに接続する必要はないので、常にPICkitから書き込んだ方がいいですよね。PICKitから電源を供給する方法ではうまくいかない場合があるんです。今回の回路ではPICKitから電源供給しても問題ありません。細かい内容になりますが、この背景を簡単に説明しておきます。実は、PICKitから電源を供給する、というのは、そのターゲットの回路に電力を供給することになります。PICKitから電力を供給すると、そのターゲットの回路が必要とする電流が流れます。回路が大規模の場合、PICKitからの電力供給は追いつかなくなり、結果的にプログラムを書き込めなくなってしまいます。PICKitから電源を供給するといちいち回路側の電源を接続しなくてよいので手軽ですが、この場合の回路はあまり電力を使わない、というケースに限ります。電力をたくさん使う回路の場合は、回路側で用意している本来の電源をつなげて電源を供給し、PICKitからは電源を供給しない設定で書き込みます。プロジェクトのデフォルトは、PICKit3から電源を供給しない設定になっています。今回の回路はLEDをひとつのみ点灯する回路ですので、電力をあまり使いません。そのため今回はPICKitから電源を供給することにします。SNAPを使用する場合はこの設定はできませんのでスキップしてください。それでは、以下の手順でPICkitから電源を供給する設定に変更して、PICマイコンにプログラムを書き込みましょう。プロジェクト設定ダイアログを開くプロジェクト設定の中のPICKit3のプログラム書き込み時の電源供給設定をONにして、電圧を5Vに設定するプログラムを書き込むそれでは始めます。プロジェクトの設定ダイアログを表示するため、”LED_Flash”というプロジェクト名を右クリックして、メニューの一番下の”Properties”を選択します。以下のようなプロパティダイアログが表示されますので、次の設定をします。Levelを5.0に設定しますこの設定ができたら、OKボタンをクリックします。このダイアログで、プログラム書き込み時、電源をPICkit3から5.0Vで供給する、という設定をしたことになります。SNAPの場合は、電池ボックスから供給する必要がありますので、以下のように電池ボックスをブレッドボードに接続して電池ボックスのスイッチをONにしておきます。これで書き込みの準備ができました。これから実際に書き込みます。Mac/PCとPICkitをUSBケーブルで接続します。PICkitは以下のように、前回までに製作したブレッドボードのピンヘッダに差し込みます。向きに注意しましょう。PICKitの三角マークがある側が1番ピンです。不安定なので、左手で押さえたままにします。次に、プログラムを書き込みます。書き込みはツールアイコンに書き込みボタンがありますので、それをクリックします。xxxxxx」というところを選択してOKボタンをクリックします。IDEがPICkitを見つけられなかった場合に表示されます。表示された場合、PICkitがどれか教えてあげます。次に、以下のようなダイアログが表示されると思います。これは何を言っているかというと、「あなた、知ってると思うけど、このPICマイコンには3.3Vモデルと5Vモデルがありますよね。あなた、書き込みの電圧を5Vの設定にしてるみたいだけど、もし書き込むPICマイコンが3.3Vモデルの場合、このまま書き込んだらぶっ壊れるけどいいよね」(意訳)というような内容です。5Vで問題ないのでOKボタンをクリックしてこのまま進めます。書き込みが終わっても特にダイアログが出るわけでもないので、右下のタスク領域にログが表示されますので、そこを確認してみます。complete”と表示されれば、無事書き込み完了です。ところで、PICKitを差しっぱなしにしていると、LEDが点滅を始めたと思います。これはプログラム書き込み後、PICマイコンが動作を始めたためです。電池をつないで動作確認しますので、ここでいったんPICKitを外します。動作確認では、電池をつないで動作させてみます。以下のように電池ボックスから出ている電線をブレッドボードに接続して、スイッチを入れます。うまく1秒に1回ピカッ、ピカッ、と光りましたか?もし光らなかったら、回路とプログラムをもう一度確認してみてください。動かない原因がどうしてもわからなかったら、ご質問を受け付けますので、このサイトの「Contact」ページからお問い合わせいただければと思います。