階層構造を意識したLED点灯プログラムに挑戦しよう!:マイクロマウスで始める組み込み開発入門(6)(1/3 ページ)
マイクロマウスの市販組み立てキット「Pi:Co Classic」を完成させた北上くんとえみちゃん。向上心あふれる北上くんの開発方針により、階層構造を意識したオリジナルプログラムを作成することになった。今回からいよいよ【プログラミング編】に突入する!
前回のあらすじ
組み込み技術者に要求される要素が“ギュッ”と詰まった「マイクロマウス」。北上くんと新入社員のえみちゃんは、スキルアップを兼ねてマイクロマウスの開発を始めることにしました。北上くんの指導の下、えみちゃんは何とかはんだ付けをこなし、市販の組み立てキット「Pi:Co Classic」の基板を完成させました。無事に動作確認も終え、このままサンプルプログラムを用いて、マイクロマウスを走らせたいところですが、はやる気持ちをグッとこらえ、階層構造を意識したオリジナルプログラムの開発に取り組むことになりました……(前回の記事へ)。
「自立」と「自律」について
デバッグ用LEDを制御するプログラムに挑戦!
――ピンポーン! (チャイムの音)
こんにちは……。
いらっしゃい!
あれ? どうしたの。いつもの元気がないね?
この間、センパイから聞いたプログラムの階層構造化なんですが……。
ワタシ、ちゃんとできるか心配なんです。
そんなに心配しなくても、大丈夫、大丈夫! 実際にソースコードを書いて動かしてみれば、すぐに分かるよ。
今日は、デバッグ用LEDを制御するプログラムに挑戦してみよう!
は、はいっ!
まずは、ルネサス エレクトロニクスの統合開発環境「HEW(High-performance Embedded Workshop)」で新規プロジェクトを作るところから始めるよ。
新規プロジェクトワークスペース「Mouse2012」を作成する
それでは、HEWを起動して、新規プロジェクトワークスペースを作成してみましょう。このワークスペース上に、これから作成していくプログラムを毎回追加していきます。そして、最終的にPi:Co Classicが迷路内を自律走行できる状態を目指します。本稿では、ワークスペース名を「Mouse2012」としました(画像1)。
画像1 新規プロジェクトワークスペースの作成。1)初期画面(「ようこそ!」ダイアログ)で、「新規プロジェクトワークスペースの作成」にチェックを入れる。2)ワークスペース名の欄に「Mouse2012」と入力し、3)使用するCPUのシリーズとタイプを選択する(本稿では「SH-2」「SH7125」を選ぶ)、4)最後に[完了]ボタンを押下する
自分で作成するプログラムと、HEWが自動生成したプログラムが混在していると、これからの作業が分かりづらくなるので、あらかじめメイン関数が入っている「Mouse2012.c」以外のファイルを別のディレクトリに振り分けておきましょう(画像2)。そして、HEWのメインメニューの[ファイル]―[新規作成]で、以下に列挙する空ファイルを作成し(画像2の1))、それらをショートカットメニューの[ファイルの追加]でプロジェクトツリーに追加(画像2の2))します。ヘッダーファイルと、ソースファイルがそれぞれのディレクトリに分かれて追加されます。
- ヘッダーファイル
app.h
common.h
ctrl.h
drv.h
init.h - ソースファイル
app.c
ctrl.c
drv.c
init.c
LED点滅プログラムを作成する
今回は、Pi:Co Classicの前方に4つ並んでいる“デバッグ用LED”を点灯/消灯させるプログラムを作成します。これらのLEDの点灯パターンによって、例えば、現在選択しているモードが何なのかを表したり、走行中のPi:Co Classicが周囲の壁をどのように認識しているのかを表示させたりできます(画像3)。
プログラミングを始める前に、あらかじめLEDを点灯/消灯させるために必要な情報を取得しておきましょう。Pi:Co Classicのマニュアルに記載されている「基板ポート一覧」を確認すると、デバッグ用LEDのポートは、PE0〜PE3に割り当てられていることが分かります(表1)。回路図も公開されているので、一緒にチェックしておきましょう(画像4)。
こちらの回路図を見てみると、GNDとマイコンの間にLEDと抵抗が接続されていることが分かります。これは、マイコンの信号ピンに“1”を出力すると、LEDが点灯する「正論理」の回路です。つまり、該当するポートに“1”を書き込めば、5Vの電圧が出力されてLEDが点灯します。逆に“0”を書き込めば、0Vが出力されてLEDが消灯します。
ここまでの内容は理解できたかな?
えっと〜。分かったような気はするんですけど……。
でも、「じゃあ、説明してみてよ」と言われたらできません(ガクッ)。
ふふっ、えみちゃんは正直だね。
初めてマイコンプログラミングに挑戦するんだから、説明を聞いただけじゃピンとこなくて当たり前だよ。
はぁ、そうですかねぇ……。
プログラムを組んだ後に、もう一度、回路図を見たり、参考記事を読んだりすればきっと理解が深まるよ。とにかく、やってみよう!
はいっ!
Copyright © ITmedia, Inc. All Rights Reserved.