これまで、RTOS(OSEK OS)の使うための手順と、実際に動作するサンプルプログラムについて解説してきました。今回は、いままでの基本的な内容をふまえて、制御を行うソフトウェアの作成方法について説明していきます。
ライントレーサとは
ライントレーサは、床上に引かれた線に沿って、前進していくロボットです。通常は、模造紙などの上に太めのマジック等で黒い線を引いて、線をトレースしていきます。
レゴマインドストームNXTライントレーサロボットの設計
ここでは、ライントレーサロボットの動作に従って設計を行う手順を解説します。設計は、UML(Unidifed Modeling Language)を利用して行います。
STEP1:ライントレーサの制御パターンを考える(状態遷移図による制御方式決定)
線上をトレースするためには、どのような制御を行うかを決定する必要があります。制御内容にかかわらず構造や動作を分析・設計することも可能ですが、制御方式を決定してからのほうがより具体的になります。
利用可能な機器
レゴマインドストームNXT(※)では、以下の機器が本体に用意されており、提供されているAPIを利用して制御することができます。
- モーター(タイヤを装着可能)
- 真下の明るさを検知する照度センサ
- バンパースイッチ
本稿では、一般的な名称として「レゴマインドストームNXT」を使用していますが、正式な製品名は「教育用レゴマインドストームNXT」です。
ライントレースの実現方法
モータ(とタイヤ)を使って前進することができます。真下の明るさ(線の色)は、照度センサの値を読み取ることで判定できそうです。スイッチも用意されているので、動作開始/終了もNXTの操作(バンパースイッチのON)をきっかけとして行えそうです。以上のことから、バンパースイッチが押されたら前進を開始し、線上であれば右に曲がり、線外であれば左に曲がることで、線の端にそって進むことができそうです。
制御のアルゴリズム
「ライントレースの実現方法」で検討した内容を詳細化するために、ライントレーサがとりうる「状態」と「状態」間の遷移条件をまとめます。このような情報を整理する場合は、UMLの状態遷移図(ステートチャート図)を使います。
今回のライントレーサの状態遷移図は以下のようになります。「状態」間の遷移制御=「プログラムで実装する制御内容」となります。
この記事は参考になりましたか?
- [組込み開発入門] ロボットを作ろう連載記事一覧
-
- 【第4回】レゴマインドストームNXTでライントレーサを作成しよう
- 【第3回】NTXでRTOSを動かそう
- 【第2回】リアルタイムOS(RTOS)とは
- この記事の著者
-
柏崎 真司(カシワザキ シンジ)
(株)永和システムマネジメント所属。カーネル開発から、組み込み開発の世界へと足を踏み入れた。共通部分を多く感じながらも、組込み独自の魅力に魅了されつつある。また、組込み開発と同様、それ以上に、家族と過ごす時間もこよなく愛している。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア


