自分の思いのままにプログラムを動かし,その結果を「光る」「動く」などの形で実際に体験する――そんなことができると,とっても楽しいと思いませんか? この連載では,読者の皆さんを電子工作の世界にご案内します。
 Part1では,電子工作の実例をお見せしました。「自分もやってみたい」と思いませんか?しかし,実際に作るとなると,電子部品をそろえ,基盤を設計し,部品を基盤に取り付けるといった作業が必要です。そこでPart2では,パソコン上で動作する仮想環境を利用して,電子工作プログラミングの基本を手軽に体験しましょう。

 Part1の「初めてのあなたも必ずできる! 電子工作の世界にようこそ」では,電子工作の実例をいくつかお見せしました。「自分もやってみたい」と思いませんか?

 しかし,実際に作品を作るとなると,必要な電子部品をそろえ,基盤を設計し,ハンダで部品を基盤に取り付けるといった作業が必要になります。少しハードルが高い気がしますね。そこでPart2では,パソコン上で動作する仮想環境を利用して,電子工作プログラミングの基本を体感していただこうと思います。

 プログラムの作成には,「CodeWarrior Development Studio for Microcontrollers V6.1(以下,CodeWarrior)」を使用します。CodeWarriorは,米Freescale Semiconductor(日本法人はフリースケール・セミコンダクタ・ジャパン)が開発した統合開発環境です。

 同社が販売する様々なマイコンに対応したプログラムを作成できるほか,マイコンの動作をパソコン上で再現する仮想環境を搭載しています。加えて,アイコンのドラッグ&ドロップでプログラムを自動生成する「Processor Expert」というRAD(Rapid Application Development)ツールを搭載しています。

 今回,使用するCodeWarriorは無償版の「Special Edition」です。コンパイルやデバッグが可能なプログラム・サイズは32Kバイトまでという制限はありますが,Processor Expertや仮想環境も搭載しているので,小規模のプログラム開発であれば十分対応できます。

 このCodeWarrior Special Editionは,Part3で使用するマイコン評価ボード「DEMO9S08QG8」を使ったプログラム開発にも利用できます。この評価ボードは「MC9S08QG8」という8ビット・マイコンを搭載しています。プログラム格納用に実装しているフラッシュROM(書き換え可能な不揮発性メモリー)の容量は8Kバイト。Special Editionの制限は特に問題にはなりません。

 ただし,Special Editionは無償製品なのでフリースケール・セミコンダクタ・ジャパンのサポートを受けられない点に注意が必要です。不明な点があれば,ユーザー・コミュニティなどWeb上の情報を探してください。フリースケール・セミコンダクタ・ジャパンもマイコンのデータシートなどの資料をWebページで公開しています。

電子工作プログラミングではOSを使わずハードウエアを操作する

 では,CodeWarriorでプログラムを作成してみましょう。CodeWarriorでは通常,C言語を使ってプログラムを作ります。しかし,いきなりC言語のソースコードを書くのは難しいかもしれません。マイコン用のプログラムを作るには,マイコンの構成を把握する必要があるからです。

 安価ですが処理能力が高いとはいえないマイコンを使うことが多い電子工作プログラミングでは,WindowsやLinuxのようなOSを使わずにマイコンを直接制御するプログラムを書くのが一般的です。OSを使う場合は,そのOSが提供するAPI(Application Programming Interface)を利用できるので,ハードウエアの構成を意識しなくても済みます。しかし電子工作プログラミングでは,使用するマイコンの搭載する機能と使い方,メモリー・マップ,I/Oポートの使い方などを調べる必要があります。

 しかし,いきなりC言語でハードウエアを直接制御するプログラムを書けと言われても,簡単ではありません。そこでまずは,RADツールの Processor Expertでプログラムを作ってみます。その過程でマイコンの構成を把握していくことにしましょう。

 動作検証にはCodeWarriorの仮想環境を使うので,実際のマイコンや評価ボードを用意する必要はありません。CodeWarriorをインストールしたパソコンがあればOKです。