SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

[組込み開発入門] ロボットを作ろう

【第4回】レゴマインドストームNXTでライントレーサを作成しよう

レゴマインドストームNXTでロボットプログラミング


  • X ポスト
  • このエントリーをはてなブックマークに追加

 これまで、RTOS(OSEK OS)の使うための手順と、実際に動作するサンプルプログラムについて解説してきました。今回は、いままでの基本的な内容をふまえて、制御を行うソフトウェアの作成方法について説明していきます。

  • X ポスト
  • このエントリーをはてなブックマークに追加

ライントレーサとは

 ライントレーサは、床上に引かれた線に沿って、前進していくロボットです。通常は、模造紙などの上に太めのマジック等で黒い線を引いて、線をトレースしていきます。

ライントレーサの動作イメージ
ライントレーサの動作イメージ

レゴマインドストームNXTライントレーサロボットの設計

 ここでは、ライントレーサロボットの動作に従って設計を行う手順を解説します。設計は、UML(Unidifed Modeling Language)を利用して行います。

STEP1:ライントレーサの制御パターンを考える(状態遷移図による制御方式決定)

 線上をトレースするためには、どのような制御を行うかを決定する必要があります。制御内容にかかわらず構造や動作を分析・設計することも可能ですが、制御方式を決定してからのほうがより具体的になります。

利用可能な機器

 レゴマインドストームNXT(※)では、以下の機器が本体に用意されており、提供されているAPIを利用して制御することができます。

  • モーター(タイヤを装着可能)
  • 真下の明るさを検知する照度センサ
  • バンパースイッチ

 本稿では、一般的な名称として「レゴマインドストームNXT」を使用していますが、正式な製品名は「教育用レゴマインドストームNXT」です。

ライントレースの実現方法

 モータ(とタイヤ)を使って前進することができます。真下の明るさ(線の色)は、照度センサの値を読み取ることで判定できそうです。スイッチも用意されているので、動作開始/終了もNXTの操作(バンパースイッチのON)をきっかけとして行えそうです。以上のことから、バンパースイッチが押されたら前進を開始し、線上であれば右に曲がり、線外であれば左に曲がることで、線の端にそって進むことができそうです。

制御のアルゴリズム

 「ライントレースの実現方法」で検討した内容を詳細化するために、ライントレーサがとりうる「状態」と「状態」間の遷移条件をまとめます。このような情報を整理する場合は、UMLの状態遷移図(ステートチャート図)を使います。

 今回のライントレーサの状態遷移図は以下のようになります。「状態」間の遷移制御=「プログラムで実装する制御内容」となります。

ライントレーサの状態遷移図
ライントレーサの状態遷移図

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
STEP2:ライントレーサの処理単位を考える(動作タスク設計)

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
[組込み開発入門] ロボットを作ろう連載記事一覧

もっと読む

この記事の著者

柏崎 真司(カシワザキ シンジ)

(株)永和システムマネジメント所属。カーネル開発から、組み込み開発の世界へと足を踏み入れた。共通部分を多く感じながらも、組込み独自の魅力に魅了されつつある。また、組込み開発と同様、それ以上に、家族と過ごす時間もこよなく愛している。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3704 2009/03/16 19:17

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング