ものづくりコンテスト:MPLAB-X 使い方のヒント

MPLAB-Xは機能が豊富な故に時々訳の分からないトラブルで悩むことがあります。
以下はよくあるトラブルとその対処法についての備忘録です。

1.PicKit3から書き込みが出来なくなる

 MPLAB-XとPicKit3を使っていてよくあるのは書き込みが出来ないというトラブルです。
 プログラム書き込みは下の赤丸で囲まれたボタンを使います、一度書き込みがうまくいくと左の緑のボタンでも書き込みはできますがプロジェクトを切り替えた時など書き込みが出来ない場合があります。

2.書き込んだプログラムが期待通りの動作をしない

 MPLAB-Xは同時に複数のプロジェクトを開けるので複数の課題を解くには便利ですが、うっかり別の課題のプログラムを編集してしまったり書き込むプログラムを間違ったりして期待通りの動作をしなことがあります。
 プログラムのコンパイルが出来て書き込みも出来ているように見えるのにプログラムが思い通りに動かない場合はprojectウィンドウで該当のプロジェクトを選び、

右クリックで表示されるメニューで Set as Main project を選択した後に上図で緑の丸で囲まれたボタンをクリックしてプロジェクトの再構築をしてからプログラムの書き込みをおこないます。
 それでもプログラムが期待通りの動作をしない場合は一度MPLAB-Xを終了してPicKit3も接続し直すと正常に動作する場合があります。

3.プロジェクトをコピーした後にエラーが出る

MPLAB-Xは右クリックで表示されるメニューからプロジェクトをコピーして新しいプロジェクトを作ることが出来ます。

この機能を使うとプロジェクトの初期化設定がそのまま新しいプロジェクトに反映されるので次の課題を解く時間を節約することが出来ます。
ただし、コピーしたプロジェクトをコンパイル&書き込みしようとすると下のエラーで先に進めない場合があります。

この時には一度下図のところでCustomizeを選択して再設定をおこなうことで正常にコンパイルが通るようになります。

 

 

 

ものづくりコンテスト:PIC vs Arduino

高校生ものづくりコンテストに使うマイコンボードとしてArduinoとPICのどちらが適しているかを考えてみます。

Arduinoボード

Arduinoはツール無しでプログラムを書き込めるArduinoモニタを書き込んだマイコンボードと、Windows PCで動くArduino IDE(Arduino用開発環境)のセットで使えるマイコン開発環境です。

Arduinoの特長は導入の手順を判り易くして小中学生でもすぐにマイコンボードを使い始めることが出来るようになっているところです。
さらにアナログ入力、PWM出力や割り込みまで使えて、ちょっとしたロボットの制御まで出来るので手軽にマイコン工作をするためにはとても優れたツールです。

PICマイコンボード

一方でPICを搭載したマイコンボードはプログラムを書き込むのに専用のツールが必要で、プログラムを書き始めるにもちょっとした知識が必要です。

ものづくりコンテスト対応PIC18F45K22 CPUボード

以前はArduinoモニタが裏でやっている初期化の部分もゼロから記述しなければならなかったので最初の敷居が高かったのですが、Windows PCで動くPICの開発環境MPLAB-Xが出来てから初期化の部分と内部機能を使う関数を自動的に生成してくれるようになったため、ちょっと頑張れば中高生でも本格的な組み込みプログラミングを始めることが出来ます。

ものづくりコンテストにはどちらのボードを使うべきか

課題をこなせるようになるまでの期間

ゼロから始めてものづくりコンテストの課題をこなすプログラムが書けるようになるまでの期間を比較するとArduinoが有利です。
例えばArduinoでプログラムが出来るようになるまでに1週間必要だとすればPICのプログラムが出来るようになるまでには2週間以上必要です。

課題を解くのに必要な時間

ものづくりコンテストでは決められた時間内に課題を解くプログラムを書かなければなりません。
PICの開発環境MPLAB-XはGUI形式でいくつかのパラメータを設定するだけで初期化プログラムを自動的に作ってくれますがパラメータ設定に数分が必要です。
一方、Arduinoはあらかじめマイコンに組み込まれたArduinoモニタに初期化部分が入っていますからいきなりプログラムを書き始めることが出来ます。
PICの方がより高度な課題までこなせる可能性を持っていますがものづくりコンテストの課題はArduinoでも対応できるレベルなのでArduinoを使ったほうが若干有利と言えるでしょう。
課題を解くのに使える関数はArduinoの関数もMPLAB-Xのライブラリ関数も機能は同等なので習得レベルが同じならどちらの環境を使っても差はありません。

企業による評価

ものづくりコンテストの趣旨は工業高校の生徒に仕事で通用する技能を習得して貰い、コンテスト上位入賞者は企業から見て魅力的な技術者であることを目指しています。
PICで身につけたプログラミング技術は他のCPUにも通用する汎用性がありますが、Arduinoは小中学生でも使えるマイコンボードという位置づけであるためArduinoのプログラムが組めたとしてもプロの組み込み技術者としては低い評価となってしまうことは避けられません。
ですから、工業高校の生徒ならPICを使ってものづくりコンテストに取り組んだ方が高い評価を得るために有利と言えます。

まとめ

以上の観点から、工業高校の生徒にとっては最初難しい点があってもプロの技術に直接つながり企業から高い評価の得られるPICを使ったプログラミング技術を習得するための一環としてものづくりコンテストに取り組むことをお勧めします。