Robot Watch logo
記事検索
バックナンバー
【 2009/04/17 】
月刊ROBOTウォッチング
~心機一転、MANOI企画設立!
[12:03]
【 2009/04/15 】
ノモケンの「素組でロボット」
バンダイ 1/100スケール MG「RX-78-2 ガンダム Ver.2.0」(その2)
[14:24]
【 2009/04/09 】
ノモケンの「素組でロボット」
バンダイ 1/100スケール MG「RX-78-2 ガンダム Ver.2.0」(その1)
[15:40]
【 2009/04/06 】
世界最小級の二足歩行ロボット「ROBO-Q」レビュー
~全高3.4cmの超小型ロボットが自律動作する!
[14:09]
【 2009/04/03 】
石井英男のロボットキットレビュー
ヴイストン「Beauto Balancer」
~倒立振子制御を手軽に学べる工作キット
[12:59]
【 2009/03/27 】
通りすがりのロボットウォッチャー
男の憧れか? 女性型ロボット
[01:19]
【 2009/03/24 】
「新型ASIMO」のフィギュアが登場!
~フィギュアで実感、ASIMOの進化~
[02:00]
【 2009/03/18 】
ノモケンの「素組でロボット」
バンダイ 1/72スケール「VF-25F メサイアバルキリー アルト機」(その3)
[14:28]
【 2009/03/11 】
ノモケンの「素組でロボット」
バンダイ 1/72スケール「VF-25F メサイアバルキリー アルト機」(その2)
[00:05]
【 2009/03/06 】
月刊ROBOTウォッチング
~2月はエンタメ路線を爆走!?
[11:31]
【 2009/03/04 】
ノモケンの「素組でロボット」
バンダイ 1/72スケール「VF-25F メサイアバルキリー アルト機」(その1)
[13:05]
【 2009/02/27 】
通りすがりのロボットウォッチャー
脳とロボットを直接つなぐBMI
[00:10]

統合開発ツール「MPLAB IDE」を使ったプログラムの書き込み

芝浦工大「大人のためのロボットセミナー」レポート(2)
Reported by 井上猛雄

 前回は、大人のロボットセミナー第1回目の内容として、ロボットの頭脳となるワンチップマイクロコンピュータボードを製作する過程を紹介した。今回はマイクロチップテクノロジーが無償で提供する統合開発環境ソフトウェア「MPLAB IDE」について紹介する。これはロボットを動かすために必要なPICのプログラム開発をサポートするツールである。

 まずはMPLAB IDEをダウンロードして、プログラミング環境を整備してみる。また、C言語でプログラムを開発できるように、無償のコンパイラもIDEに組み込んでみる。


プログラム開発を容易にする統合開発環境「MPLAB IDE」

【画面1】マイクロチップテクノロジー社のWebサイト。画面を一番下までスクロールすると、MPLAB IDE v7.40をダウンロードするためのリンクがある
 第1回目の最後では、ワンチップマイコンボードに搭載されているLEDを点滅させて、ボードの動作チェックを行なった。

 原理的には、PIC16F84AのRA0ポートの出力をオン/オフすることでLEDを点滅させる仕組みである。このような動作をするためには、PICの内蔵EEPROMへLED点滅用プログラムを転送し、プログラムを書き込む必要がある。その際に、プログラムの開発をするために便利な統合開発環境が「MPLAB IDE」である。これは、マイクロチップテクノロジーから、無償で提供されているツールだ。

 早速、MPLAB IDEをダウンロードして、PCにインストールしてみよう【画面1】。

 MPLAB IDEの最新バージョンは7.40である。Windows 98 SE以降であれば、最新バージョンをインストールする。今回は古いバージョン6.4【画面2】と最新バージョン7.4【画面3】の両方で試してみた。MPLAB IDEは、エディタとアセンブル環境(MPASM)のほか、シミュレーション機能や、後述するPICライターとの接続機能などを備えている。


【画面2】MPLAB IDEの古いバージョン6.4。デフォルトでアセンブリ言語での開発が可能。画面ではアセンブリ言語のプログラムをコンパイルして機械語に変換しているところ 【画面3】MPLAB IDEの最新バージョン7.40(2006/7/7現在)。こちらはHI-TECH社から無償Cコンパイラを利用できるので、それを組み込んでいる。プログラムをC言語で記述し、機械語に変換している。中間ファイルとしてアセンブリ言語での表示も可能だ。また、画面の左下では、シミュレータによってプログラムを実行している

 PIC用のプログラム言語としてよく使われるのは、アセンブリ言語とC言語である。アセンブリ言語はハードウェアに直結した機械語(マイクロコンピュータが理解できる言語)に近い言語であるため、レジスタなどCPUの内部アーキテクチャを理解する必要があるので少し難しい。アセンブリ言語の開発環境は、最初からMPLAB IDEに含まれているので特に問題はないが、C言語を利用する場合は別途、Cコンパイラが必要になる。

 今回のセミナーではプログラミング開発にC言語を用いている。その理由は、前述のとおりアセンブリ言語よりも理解しやすいためである。C言語で記述したプログラムは、コンパイラでアセンブリ言語に変換され、さらにそれが機械語にアセンブルされ、リンカーによって各種ライブラリとリンクし、実行形式の機械語プログラムになる、という流れである。MPLAB IDEはここまでを担当する。

 今回のセミナーで利用したプログラムは以下の通り。これは、第1回目で使ったワンチップマイコンボードの動作チェック用プログラムである。LEDを点滅させたあとに、右側のDCモータを駆動させ、次に左側のDCモータを駆動させる。さらに両方のDCモータを回し、停止できるようにつくられている。モータの駆動・停止時や、LEDの点滅時には、少し待ち時間ができるように、wait関数によって変数に任意の値を代入することで、時間を調整している。また、main関数の中にあるTRISA=0xFE;およびTRISB=0x00;の行では、PICのポートAとBの入出力モードを設定している。

□自立スパイダチェックプログラム


 Cコンパイラは市販品もあるが、HI-TECH社から無償で提供されているので、それを利用する【画面4】。下記のサイトから「HI-TECH PICC-LITE」というコンパイラをダウンロードする。このとき、名前、国、E-mailといった最低限の情報の登録が必要になる【画面5】。


【画面4】HI-TECH社が提供する「HI-TECH PICC-LITE」のダウンロードサイト。Cコンパイラは無償で提供されているが、ダウンロードするためには登録が必要となる 【画面5】ここで個人情報を登録する。名前、国、E-mailの3項目の記入は必須となっている。登録を済ませると、Cコンパイラをダウンロードできるようになる

 ダウンロードを終えたら、コンパイラをインストールし利用する。ただし、このコンパイラは、MPLAB IDEのバージョン6.50以上でないと対応しないため注意が必要だ。HI-TECH PICC-LITEのインストールが済んだら、まず始めに「Configure MPLAB」を起動し、MPLAB IDEの環境でこのコンパイラを利用できるようにセッティングをする。Windows XPの「スタートメニュー」から「すべてのプログラム」→「HI-TechSoftware」→「PICC-Lite」→「Configure MPLAB」を選ぶと、「MPLAB Tool suite support files Setup」ウィザードが起動するので、その指示に従って設定していく【画面6】。

 セッティング後に、MPLAB IDEを起動する。MPLAB IDEでは、1つのプログラムを「プロジェクト」としてまとめて扱うように管理される。そのため、まずProjectメニューから「Project Wizard」を立ち上げて【画面7】、ウィザードに従って設定を行なう。


【画面6】HI-TECH PICC-LITEをインストールしたあとで、Windowsの「スタートメニュー」→「すべてのプログラム」→「HI-TECH Software」→「PICC-LITE v9.50」→「Configure MPLAB」を選択すると、画面のようなセットアップウィザードが起動するので、指示に従う 【画面7】MPLAB IDEでは、プログラム類は「プロジェクト」で管理される。まずメニューから「Project」→「Project Wizard」を選択する

 ウィザードのステップ1において、利用するマイコンの種類を選択し【画面8】、ステップ2で「Active Toolsuite」のプルダウンメニューから、先ほどインストールした「HI-TECH PICC-LITE Toolsuite」を選ぶ【画面9】。ここで「PICC Compiler」、「PICC Assembler」、「PICC Linker」が利用できるようになっていることがわかる。またステップ3のプロジェクト名は任意の名称を入力し、プロジェクトディレクトリは、あらかじめCドライブなどに任意のフォルダをつくっておき、それを指定する【画面10】。

 次にエディタで作成しておいたC言語のプログラム(ソースファイル)を選択し、「ADD」ボタンで追加する【画面11】。ソースファイルの拡張子はアセンブリ言語で作成した場合は*.asm、C言語の場合は*.cになっている。これで「次へ」ボタンを押すとサマリーが現れるので、「完了」ボタンを押す【画面12】。


【画面8】「Project Wizard」の第1ステップ。使用しているマイコンの種類を選択する。ここではPIC16F84Aを選択する 【画面9】「Project Wizard」の第2ステップ。今回は言語で開発を行うため、「Active Toolsuite」のプルダウンメニューから「HI-TECH PICC-LITE Toolsuite」を選択する

【画面10】「Project Wizard」の第3ステップ。ここでプロジェクト名とプロジェクトのディレクトリを入力する 【画面11】「Project Wizard」の第4ステップ。あらかじめ記述しておいたC言語のプログラムを選択し、「ADD」ボタンを押すと右側のリストボックスに指定されたファイル名が表示される。

【画面12】「次へ」ボタンを押すと、サマリーが表示される。これでOKならば「完了」ボタンを押す

 さらにMPLAB IDEのメニューから「Project」→「Build All」を選択すると【画面13】、ソースファイルが、PICで実行可能な機械語プログラムに変換される【画面14】。コンパイルされた機械語はHexファイル(*.hex)としてプロジェクトフォルダの中に生成されるので【画面15】、PICライタを利用して、これをPIC内蔵のEEPROMに転送し、プログラムを焼き付けるという工程に進む。


【画面13】MPLAB IDEのメニューから「Project」→「Build All」を選択する。これでプロジェクトフォルダの中にHexファイルなど必要なファイル類が生成される 【画面14】「Build」が無事終了すると、「MPLAB IDE」の出力ウインドウに、「SUCCEEDED」というメッセージが現れる

【画面15】Build All後につくられたプロジェクトフォルダの内容。Hexファイルが生成されていることがわかる

PICライタで内蔵EEPROMにプログラムを焼き付ける

【写真1】エフテックのPICライタ「P-ROBO USBライタ0279」。もともとは同社が発売する教材ロボット「P-ROBO」用として開発されたものだが、汎用のPIC16F84、PIC16F84A、PIC16F627A、PIC16F628A、PIC16F648Aにも対応している。PICオンボードによるプログラミングが可能なため、焼き込み時にPICの抜き挿しは不要
 次にMPLAB IDEで開発したプログラムをEEPROMに書き込むために、PICライタのセッティングを行なう。PICライタは自作することもできるが、今回のロボットセミナーでは市販品を利用している。エフテックの「P-ROBO USBライタ0279」【写真1】は、ワンチップマイコンボードにPICを搭載したままで、プログラムの書き込みが可能なオンボードプログラミングに対応している。そのため、プログラム書き込み時に、いちいちPICを抜き差しする必要がなく、PICのリードやソケットを傷つける恐れがない。

 PICライタ本体とパソコンとの接続には、USBインターフェイスを利用する。まずUSBドライバをインストールし【画面16】、PICライタが認識されることを確認する【画面17】。次にPICライタに添付されているライティングソフトをインストールする。セッティングはこれで終了だ。パソコンとPICライタをUSBケーブルで接続し、さらにPICライタとワンチップマイコンボードを専用コネクタで連結する【写真2】【写真3】。


【画面16】PICライタを認識させるために、まずUSBドライバをインストールする 【画面17】デバイスを認識できたか確認する。Windowsのデバイスマネージャを開くと、「Ftech Co.,LTD.P-ROBO USB Programmer」と表示される

【写真2】PICライタとワンチップマイコンボードを専用コネクタで連結。PICライタの右端にあるもうひとつのモジュラーコネクタは教材ロボット「P-ROBO」専用 【写真3】USBケーブルでPICライタをノートPCと接続する。これでオンボードでのプログラム書き込が可能となる

 ライティングソフトを起動すると、メインウィンドウが現れるので、マイコンの種類を確認して【画面18】、先ほどMPLAB IDEで生成したHexファイルを選択し、「Write」ボタンを押す【画面19】と、「Configレジスタ」の設定画面が現れる。すでにHexファイルにConfigレジスタの値が書かれている場合は、ファイルの内容が反映される(今回利用する動作チェックプログラムでは、始めの行に__CONFIG(0xFFFA)と書かれているので、それが反映される)。


【画面18】メインウィンドウのメニュー「CPU」で、書き込みをするCPUの種類を確認する。ここではPIC16F84Aを選択する 【画面19】「Write」ボタンを押すと、書き込みたいHexファイルを指定する入力欄が表示される。先ほどのプロジェクトフォルダの中に生成されたHexファイルを指定する

 もし、Configレジスタの値がない場合には、ダイアログから項目を選択する【画面20】。「オシレータ」(FOSC)は10MHz以上のクロック速度の場合はHS oscillatorモードを選択する。今回はそれ以外の項目として、ウォッチドッグタイマ(WDT)をOFFに、パワーアップタイマ(PWRTE)をOFFに、コードプロテクト(CP)をOFFになっている。これらの設定を終えて、「OK」ボタンを押すと、いよいよ書き込みが始まる。書き込みが無事終わると、終了メッセージのダイアログが表示される【画面21】。


【画面20】「Configレジスタ」の設定画面。HexファイルにConfigレジスタの値が書かれていない場合は、ここで各種項目を指定する 【画面21】書き込みが修了したところ。ダイアログに終了メッセージが表示される

 また、メインウィンドウの「Show」ボタンを押すと、PICのEEPROMに書き込まれたデータのメモリ領域の内容を表示することが可能だ。実際にプログラムとして記録されているのは16進の値(機械語)である。もし、あるアドレスのメモリ内容を変更したい場合は、その数値(命令やデータ)をダブルクリックして、Data欄を表示させる。そして、直接この16進の機械語を入力するればよい。

 以上で、PICへのプログラミングの書き込みまでが完了した。次回はセミナー第2回目で実施されたロボット本体の製作過程について詳しく紹介する。


URL
  芝浦工業大学
  http://www.shibaura-it.ac.jp/
  マイクロチップ・テクノロジー・ジャパン
  http://www.microchip.co.jp/
  MPLAB IDE
  http://www.microchip.co.jp/tools.html

関連記事
芝浦工大「大人のためのロボットセミナー」レポート(2006/07/25)

PIC (R) microcontroller,MPLAB (R) Integrated development environmentは、Microchip Technology Incの登録商標です。

Certain materials contained herein are reprinted with the permission of Microchip Technology Incorporated.No further reprints or reproductions may be made of said materials without Microchip Technology Inc.'s prior written consent.



2006/07/27 16:14

- ページの先頭へ-

Robot Watch ホームページ
Copyright (c) 2006 Impress Watch Corporation, an Impress Group company. All rights reserved.