■ホビーロボット部品の製造・販売 
  モータコントローラ、センサ、音声、画像、無線モジュールなど、
■ホビーロボット制作記事のページ (各種マイコン、PCとの接続事例)
■特殊メイク、特殊材料の販売 ※特殊メイクのコーナーはこちらに移りました。
Top(お知らせ) 製品紹介 使い方とサンプルプログラム 通信販売 リンク ロボット掲示板 会社案内
 Easy Robotics for all enthusiastic people!!!  ---HOBBY ROBOT PARTS SHOP ASAKUSAGIKEN---   Since 2003...

PICを使ってみる

はじめに

 浅草ギ研のユーザーにPIC使いが少ないなぁと思っていたら
、PICのHowToをやっていないことに気がつきました。個人的にはちっさくて簡単なものを作るときに8ピンのPICをよく使ってます。

 ということで、ここでは簡単にPICの使い方と浅草ギ研製品との接続について説明していきます。

PICと他のマイコン

 PICは皆様おなじみだとは思いますが個人でも簡単に入手できてチップ上のフラッシュROMにプログラムを書き込んだりでき、ホビーの電子工作ユーザーの方々に広く使われているマイコンです。今日のマイコンブームはここから始まったといっても過言ではないでしょう。詳しくはWeb上や書籍で情報が沢山入りますので、これからPICを使ってみようと思う方はそちらの方も参考にしてみてください。特に、電子工作の書籍を多く執筆されている後閑哲也氏のホームページは必見です。

後閑氏のページ
電子工作の実験室

PICはどうなの?ということはここでわかると思いますので、ここでは他のマイコンとの比較をしてみます。

現在、世界でホビー用として使われているのはPICとAVRですが、国内ではH8、SH、M16なども使われています。これ以外は書籍もでておらず、市販のマイコンボードも無いのでホビーではあまり使われてないようです。

これはあくまでも私個人の所感ですが、教育用という観点から考えると、書き換え回数の点でPICやAVRが向いていると思います。PIC、AVRはフラッシュの書き換え回数が10万回ですが、H8などは書き換え保証が100回程度です。実際に、学校で導入したら一年でつかえなくなったという話を聞きますが、H8などはもともとそうゆう用途(教育とか)は想定してないようです。車とか家電用のようです。

また、浅草ギ研ではH8Tinyを使用したボードを製造してますが、日立の時はよかったのですが、ルネサスになったとたんに入手性が悪くなりました(好きなときに少量を入手、というのができなくなった)。ホビーで教育用の場合は継続的に入手ができないと問題があると思います。PICやAVRだったら電子部品店やDigikeyなどの通販サイトで簡単に入手できます。
まあ、チップからロボットを作るのではなく、市販のマイコンボードを使うという場合は別ですが。


開発環境の入手

 PICの開発は、メーカーのホームページからMPLABIDEという開発環境が無償でダウンロードできます。英文ですが、MPLAB IDE というところを探して気合でダウンロードしてください。また、各チップのデータシートも入手できます。PICをやる場合は必ず使うサイトですのでお気に入りに入れておきましょう。

メーカー(MicroChip社)のページ


英語がどうしてもダメという場合は日本法人のページもありますが、あまり情報量が多くないので上の英語サイトに慣れた方がいろいろできます。尚、MPLABの使い方の日本語版は下記にありますので、これで手っ取り早くPICの開発環境に慣れて、細かいところは上のページを見るというのもありかもしれません。(2005年8月現在でMPLABのバージョンは7ですが、下の日本語版は6というのが気になりますが。)

マイクロチップテクノロジージャパンのページ



 アセンブラでの開発はMPLABだけでできます。PICのアセンブラについてはいろいろと書籍が出てますのでアマゾンあたりでPICで検索してみてください。
 尚、このページではアセンブラは使いません(面倒なので。)。


Cコンパイラを購入する

 H8などはフリーのC言語の開発環境がインターネットで入手できますが、私の知る限りではPICをCで開発する場合はCコンパイラを購入する必要があります。購入したCコンパイラは上記のMPLABに組み込むことで、MPLAB上で使えるようになります。
 Cコンパイラはメーカーからも出てますし、いろいろなサードパーティーから出されていますが、ほとんどは10万円ぐらいします。その中で、ホビー用としては申し分ない機能がある安価なコンパイラにCCS社のCコンパイラがあります。これは英語版ですが日本では

IPI社のホームページ

で買えるようです。

CCS社のPIC用コンパイラには色々な種類がありますが、ホビーなどで使われる一般的なPIC(16Fxxとか)に限定したバージョンの PCMというグレードが2万6千円ぐらいのようです。英語が出来る方は海外サイトを探して購入するともうちょっと安くなるかもしれません。

CCS社CコンパイラのPCM(以後CCS−C)を購入すると、関数などが書いてあるマニュアルとソフト(私が買ったときはフロッピー2枚でした。)がおくられてきますのでインストールします。

このとき、注意点ですが、必ず

1)MPLABをインストール

2)CCS−Cをインストール

の順番でインストールする必要があります。逆だとCCS−CがMPLABに組み込まれないので注意しましょう。また、MPLABはバージョンがよく変わりますが、CCS−CをMPLABに組み込んだ後にMPLABをバージョンアップすると組み込まれたCCS−Cが外されることがあります(経験済み)ので、必ず上の順番にしましょう。

CCS−Cをインストールすると次のようなアイコンが出来ます。

上がMPLABで下がCCS−Cです。 CCS−C単体でもコンパイラを動かせますが、MPLABに組み込まれた状態であればMPLAB内でCを書いて、コンパイル(F10キー)をすると自動的にCCS−Cが起動してコンパイルしてくれ、結果をMPLAB内で表示しますので、CCS−C単体で起動することは無いと思います。


PICライタを用意する

Cで書いたソースプログラムをコンパイルすると、PICに書き込める形式のプログラムが出来上がります。このプログラムをPICのフラッシュメモリに書き込む必用がありますが、これには専用の機械が必要です。これをPICライタと言います。

PICライタは自作もできるようで、「PICライタ 自作」でインターネットを探すと沢山の例が出てきます。私の場合は面倒なのでMicroChip社の純正PICライタであるPICSTART−PLUSを購入しました。価格は忘れましたが2〜3万だったような気がします。


PICの開発に必要なもの(まとめ)



上図のPICライタはPICSTART−PLUSです。

PICには色々な種類がありますが、書籍などでよく紹介されているのがPIC16F84Aというものです。その他、機能やピン数によって色々な種類があります。一個数百円程度なので、色々な種類を用意しておいてもよいでしょう。CCS−Cにはシリアル通信機能が無いPICにシリアル通信機能をソフト的に追加する機能がありますので、シリアル通信機能の有無はあまり関係ないです。私がよくストックしているのは

●12F675(8ピンで小さい、ADコンバータ付き)
●16F648A(20ピンで多機能。16F84の機能強化型だが秋葉で安かったりする。)
あたりです。





ここでは環境のインストールなど、詳しく説明しませんので各自マニュアルや書籍をを見ながらセットアップしてください。

PICのCの勉強

PICについては沢山の書籍が出版されてますので書籍で勉強するのが一番早いかも知れません。または前出の電子工作の実験室のページでも解説されています。以下はPICのC本の代表的なものです。

C言語によるPICプログラミング入門 後閑哲也著 ISBN4-7741-1592-4

CによるPIC活用ブック 高田直人著 ISBN4-501-53560-1


どちらもCCS-Cを例にとって解説しています。上の方が沢山の関数について説明しており、ソフトウェアのリファレンスとしても使えます。下の方は実際に回路を組みながら進めるという感じです。。

以後、これらの書籍の内容を読んである程度PICを習得したという前提で説明します。


ターゲットボード

上の写真をみてもわかるとおり、PICは単にチップの状態ですので、プログラムを書き込んでもなにも動きません。最低でもPICに電源を供給する必要があります。ということで練習用に簡単なマイコンボードを作ってみます。PICは12F675にしました。なんとなく。

まず、12F675の電源の位置を知る必要がありますのでメーカーのホームページからデータシートをダウンロードします。
MicroChip社のホームページのTOPページにDatasheetというところがあるのでクリックするとPIC12F629/675DataSheetというところがありますのでクリックします。データシートはpdfファイルなのでアドビのリーダーを入れてないと表示できませんので注意してください。ほとんどのICのデータシートはpdf形式で配布されているので読めるようにしておいて下さい。
データシートが開いたら念のため保存しておきます。
4ページ目ぐらいに早速ピン配列が出ていますので電源ピンを確認します。



マイコンは普通、クロック(クリスタルとか)を外付けする必用がありますが、データシートの始めのページの概要を読むと、12F675は4MHzの内蔵クロックがあるようです。ということで(簡単に済ませたいので)クロックは内蔵の4MHzを使うことにします。つまり外付けクロック無し。

電源電圧ですが、電気的特性(Electrical Specificationというところ。英語もそのまんまですな。)を見るとクロックが4MHz以下でADコンバータを使用しないときは2V〜5.5Vで動くようですが、あとでADコンバータも使いたい(と思うときが必ず来る)ので無難に5Vにします。

よって、Vdd(1番ピン)に5V、Vss(8番ピン)にGNDをつなぎます。

その他のピンは、とりあえずどのようにでもできるようにヘッダピンをつけておくことにしました。

電源ですが、5VレギュレータICをつけて電池駆動できるようにしておいても良いのですが、実験用なので面倒なので市販の5VのACアダプタを使うことにしました。5Vレギュレータの電源回路についてはH8を使ってみるのところを参照願います。なお、ここで使っている7805でなくて、低ドロップレギュレータのLM2940CT−5あたりを使った方が良いです。ピン配列は同じですので。

ACアダプタは秋葉で600円ぐらいのを買いました。

ということで回路図は次のようになりました。




PICはプログラムを書き込むときにライタに挿しますので、直接ハンダ付けするのではなく、8ピンのICソケットを使います。
コンデンサはノイズ除去用ですが、これをつけないとPICの誤動作の確率が格段に上がりますので必要です。
GPってのはGeneral Purpose IO つまり汎用IOの略ですな。

実際に作ったものが次の写真です。
上の方の四角い黒いものはACジャックでここに5VのACアダプタを差込ます。また、センサーやらなにやらを接続するのに電源が必要なので、一応、5VとGNDのピンも生やしておきました。


ACアダプタの端子の極性ですが、表示を見ると下の写真のように中がプラス、外がマイナスというのがわかります。

しかし、実際に配線するときは間違えないようにテスターでプラスマイナスを測定しながらハンダ付けしたほうが無難でしょう。
ここで使っているのは4A出力のACアダプタですが、電子回路だけなら1Aもあれば十分です。この4Aのアダプタは普通、RCサーボモータの駆動テストをするときに使ってます。

LEDの点灯

 おやくそくのLEDの点灯です。
 回路は次のようになります。

<回路図>

GP0をLOW(0V)にすると+5VからGP0へ電流が流れてLEDが点灯します。抵抗は電流制御用(他のページのどこかに詳しく書いてます。)


<プログラム>

一秒おきにLEDがついたり消えたりするプログラム。なんでそうなるかは上記で紹介した書籍をよく読みましょう。
fuseの設定だけがミソですが、その他は簡単っすね。INTRC_IOというのが内部クロックの指定です。
ADCとシリアル通信の設定がコメントつぶしになってますが、12F675を使う場合はこの5行をよく使います(使いまわし。)今回ADCとシリアルは使ってないのでコメントでつぶしてます。
いちおう、テキストファイル LEDtest.c


<結果>

抵抗はLEDの端子にくっついてます。熱収縮チューブで隠れてる(黒いやつ)。リード線に2550コネクタのメス1x1をつけてボードに抜き差しできるようにしてます。
結果は問題なく動作しました。 電子部品たったの5個。簡単だぁ。

次は浅草ギ研製品との連携をやります。


2005年8月10日
 
(C)Copylight 2003. 有限会社浅草ギ研 | 通信販売の法規(訪問販売法第8条)に基づく通信販売業者の表示