トップページ > dsPIC入門
“dsPIC”(ディー・エス ピック)は、Microchip Technology社のワンチップマイコンです。
ワンチップ・マイコン、要は
プログラムを書いてコレに書き込むことで、いろんなことができるよ!楽しい!!
…です。
高価なものではありませんし、開発環境も無償ということもあって、電子工作にはもってこいのデバイスだと思います。 さらに、最近のものは動作も高速で機能も豊富…と、かなり楽しいことができると期待できますね!
dsPICが登場する前からあった“PIC”(ピック−Peripheral Interface Controller)を使ったことはありましたが、
…というのがネックに感じられて、どうしても使いづらいところがありました。 ところが、最近メジャーになってきたdsPICは
と、いままで嫌がっていたポイントがほぼ全て解消されています。 dsPICの名前は、“DSP”(Digital Signal Processor)と“PIC”を合わせたものだそうです。 DSP…というのは直接使ったことはありませんが、なんだか計算とか超速いイメージです(笑)
(この「dsPIC入門」の一連の内容ではC言語が既に使えることを前提としています。C言語については 各種C言語の解説書などを参照してください。 また、後半からJavaが出てきますが、これもJavaの解説書に依ることにします。)
なにはともあれ、開発環境を整えて簡単なプログラムを走らせてみます。
主な環境は以下の通りとします。下の“準備編”で1つ1つのインストール方法を見ていきます。
項目 | 型番等 | 備考 |
使用するデバイス | dsPIC 30F4012 | 後からいろいろな機能を使って遊べそうなので。あと、 秋月さん で手に入ったという理由です。 |
総合開発環境 | MPLAB IDE ver 8.15 | 無償です。 MPLAB アーカイブ からダウンロード。 |
Cコンパイラ | C30 ver 2.05 Student Edition |
無償です。上と同様に MPLAB アーカイブ からダウンロード。 |
書き込み機 (ハードウェア) |
PICkit2 | 秋月さん にて安価に手に入ったので…。あと、PICを基盤にさしたままで書き込みができるのも魅力です |
書き込み機 (PC側ソフト) |
PICkit2 Software ver 2.55.02 |
無償です。これも、 MPLAB アーカイブ からダウンロード。 |
テストボード | 自作 | 必要最低限の、簡単な物です。LEDを8個つけてみます。 |
まず、最初に開発環境を整えてしまいましょう。一度セッティングが終われば、後はガンガン作るだけです。
製作編ここでは、試しに“ナイトライダー”(LEDの光が横に流れるやつ)をサクっと作りましょう。
dsPICを使った電子工作の流れをつかんだところで、これ以降はdPICに内蔵されている便利な各種モジュールの使い方 を解説していきます。また、より実用的な製作へつなげるためにJavaを用いたPCアプリケーションについても 触れていきます。
コンフィグレーションはソースコードの最初に記述されます。dsPICのハードウェア的な動作…電源やクロック関係 の設定ゆえ、設定を間違えるとプログラムが思い通りに走らない場合もあります。 プログラムごとに大きく変える必要はないので、基本的にコピー&ペーストで済ませる感じで。 (dsPIC30Fシリーズを使用するという前提で話を進めます)
基本的にマイコンの動作速度は人間から見ると非常に速いです。 単にLEDをピカピカせるだけでも、タイマーによる「時間稼ぎ」をしないと点滅しているのか点灯しているのか 分かりません。 また、マイコン回路の典型動作である「同じ処理を一定時間で繰り返す」ときも、タイマーが重宝します。
マイコンでモーターの回転をコントロールします。
ここではお手軽なモータードライバーICを使う方法を紹介します。
また、サーボの使い方にも触れています。
これで簡単なロボットくらいなら作れる…かもしれません。
(ゴツいモーターを制御するためのHブリッジについては解説していません。
要望メールがあったら書きます)
dsPICとPCとのシリアル通信は、いろいろ応用できて楽しいですよ!UARTモジュールの使い方について、丁寧に解説します。
dsPIC側でシリアル通信の準備が整ったら、PC側でもシリアル通信でデータをやりとりする アプリケーションを作ってみましょう。Swingの基礎と合わせて解説しています。
Javaを使い始めるまでは、VisualStudioを使っていました。 一応、簡単なノウハウだけ解説します。
AD変換を試してみます。
アナログ信号をとりこんで、ディジタル処理→PCへ送信…などなど、楽しいことができそうです。
dsPICと組み合わせて処理を行うアプリケーションを作っていこうと思います。
まず手始めに、Javaでハイパーターミナルのようなものを作ってみます。
シリアル通信、ボタン操作やテキスト入力などのアクション処理など実用的な
アプリケーションの基礎ということで1つ1つ確認しながら組んでいきます。
ケーブルでマイコン基板とPCをつないだシリアル通信は既に実験しました。 こんどは“XBee”という無線モジュールを使ってお手軽に無線通信をしてみます。 無線通信ができればロボットの無線制御(ラジコンとか)や、離れた場所からのセンシングなど 応用範囲が一気に広がって楽しいです。
I2Cは同期式シリアル通信の1つです。UARTよりも高速で安定して使用できるほか、マイコン間の通信や
EEP-ROMやAD変換機、カメラなど様々なモジュールと接続する際によく使用されています。
I2Cが使えるようになれば、dsPICを用いた処理系のバリエーションがもっと広がります。
SPI通信も試してみます。SPIはI2Cと同じく、同期式シリアル通信に分類されます。
同期式シリアルなら、I2CよりもSPIの方が簡単です・・・。
文字表示専用のキャラクタ液晶ディスプレイの使い方についてです。 手製の機器に取り付けると見栄えがしますし、 ちょっとしたデバッグにも便利です。
システムにおいて何か大容量のデータを保存したい時には、シリアルROMよりもSDカードの方が便利です。 今回はSDカードモジュールを使ってお手軽に制御します。
JPEG形式でデータを出してくれるカメラを、dsPICで制御してみます。