BricxCCとNXCで学ぶ
知的LEGO Mindstorms NXTプログラミング入門
高本 孝頼 著
B5変型判 200ページ
定価2,860円(税込)
JAN9784789818957
2012年5月1日発行
好評発売中!
海外ではレゴ・マインドストームNXTに関する情報は豊富にあり,インターネットでもいろいろと紹介されています.調べると多くの事例が,本書で紹介している統合開発環境のBricxCCを使って,C言語ライクなNXCで開発しています.本書は,各種センサの利用を含み,大学や高専,工業高校におけるロボット教育に活用できるNXCの解説書です.また,制御・組み込みプログラミングの情報技術を学ぶ教育現場には最適です.
目次
I.導入・準備編
第1章 ロボット教育
1.1 ロボット教育とは
(1)実社会でのロボットの活躍
(2)ロボットの研究
(3)ロボット教育が目指すもの
(4)学校でのロボット教育
1-2 レゴ・マインドストームによるロボット教育
(1)NXTハードウェア仕様
(2)NXTプログラミング教育
(3)レゴ・マインドストームの教育
第2章 NXTの購入と開発環境
2-1 製品と購入について
2-2 NXTを動かす手順
2-3 ロボットの組み立て
2-4 NXTのソフトウェア開発環境
2-5 BricxCC・NXCとは
第3章 BricxCC統合開発環境
3-1 BricxCCのプログラミング開発環境構築
(1)BricxCCのインストール
(2)BricxCCの起動
(3)BricxCCの画面概要
3-2 BricxCCの基本的な環境設定
(1)環境設定「General」(一般)
(2)環境設定「Editor」(エディタ関連)
(3)環境設定「Compiler」(コンパイラ関連)
(4)環境設定「API」(アプリケーション開発インターフェース)
(5)環境設定「Start Up」(スタートアップ)
(6)環境設定「Templates」(テンプレート関連)
(7)環境設定「Macros」(マクロ関連)
(8)環境設定「Color」(カラー設定)
(9)環境設定「Options」(オプション)
3-3 BricxCCの主な機能
(1)File(ファイル)機能
(2)Edit(編集)機能
(3)Search(検索)機能
(4)View(ビュー)機能
(5)Compile(コンパイル)機能
(6)Tools(ツール)機能
(7)Window (ウィンドウ)機能
(8)Help(ヘルプ)機能
II.基礎編
第4章 ロボットを動かす
4-1 ロボットの前進と後退
(1)BricxCCを使ってNXCプログラムの作成
(2)NXCプログラムの保存とコンパイル
(3)NXTロボットへのプログラムのダウンロード
(4)NXTロボットのプログラム実行
4-2 ロボットの停止
4-3 スピードの変更
【課題1】定位置で停止
【課題2】正確に前進・後退
Column4-1 プログラムのデバッグ
第5章 ロボットを複雑に動かす
5-1 ロボットの旋回(簡単なプログラミング)
5-2 繰り返しの動き(わかりやすいプログラミング)
5-3 渦巻いて動く(複雑なプログラミング)
5-4 ランダムに動く(高度なプログラミング)
5-5 センサを使う(知的なプログラミング)
5-6 ディスプレイとサウンドを使う(賢いプログラミング)
【課題3】直角に曲がる
【課題4】円を描く
Column5-1 わかりやすいプログラム
第6章 NXCプログラム仕様
6-1 記述ルール
(1)空白文字の扱い
(2)コメント記述
(3)数値定数
(4)文字列定数と文字定数
(5)識別子とキーワード
(6)演算子(オペレータ)
6-2 変数とデータ構造
(1)データ型(タイプ)と変数宣言
(2)構造体(struct)
(3)配列(array)
(4)定数変数(const)
(5)静的変数(static)
(6)列挙タイプ(enum)
(7)タイプ宣言(typedef)
6-3 制御ステートメント群
(1)repeatステートメント
(2)while ステートメント
(3)for ステートメント
(4)ifステートメント
(5)do-whileステートメント
(6)untilステートメント
(7)switchステートメント
6-4 コード群
(1)タスク
(2)関数とプロシジャ
(3)プリプロセッサ
6-5 コンパイルと実行ファイル
(1)ソース・ファイルと実行ファイル
(2)コンパイル
【課題5】車庫入れ
【課題6】プログラムの変更
Column6-1 プログラム設計とモデル化
III.応用編
第7章 センサを制御する
7-1 センサで判断する
(1)NXT付属のセンサ群の機能
(2)センサの設定とセンサ値の利用
7-2 センサ設定とデータ値取得方法
(1)センサ設定1:SetSensorによる入力ポートの設定方法
(2)センサ設定2:タイプ設定とモード設定
(3)センサ設定3:各種センサ設定関数
(4)センサ値の取り出し方法
7-3 タッチ・センサを使いこなす
7-4 音センサを使いこなす
7-5 光センサを使いこなす
7-6 カラー・センサを使いこなす
7-7 超音波センサを使いこなす
【課題7】三重線の往復
【課題8】手拍子の記録と再生
Column7-1 データ構造とアルゴリズム
第8章 高度なモータ制御
8-1 調整機能をもつモータ制御(OnFwdReg)
8-2 同期をとるモータ制御(OnFwdSync)
8-3 回転角度によるモータ制御(RotateMotorEx)
8-4 モータのPID制御(OnFwdRegPID)
8-5 回転センサを使いこなす(MotorRotationCount & MotorTachoCount)
【課題9】ライン・トレース
【課題10】正確に直角に曲がるロボット
Column8-1 メモリ管理と高速化
第9章 並列処理と割り込み
9-1 マルチ・タスク(並列処理)
9-2 割り込み処理と衝突(コンフリクト)
9-3 セマフォによる制御
9-4 mutex変数による制御
9-5 safecallによる同期処理
【課題11】二つのセンサによる割り込み処理
【課題12】割り込み処理を考慮したライン・トレースの挑戦
Column9-1 組み込みプログラミング
第10章 便利機能
10-1 LCD画面表示機能
(1)テキスト表示
(2)グラフィック表示
(3)画像ファイル表示
10-2 ファイル入出力機能
(1)ファイルの入出力機能
(2)センサ・データ値のファイル入出力事例
10-3 サウンド機能
(1)メロディを奏でる
(2)サウンド・ファイルの変換と再生その他
10-4 ロボット間通信機能(複数ロボットの操作)
(1)NXT間のBluetooth通信の接続設定
(2)NXT間でのメッセージ送受信
(3)スレーブ側NXTのコマンド起動
(4)スレーブ側NXTのプログラム起動
(5)NXT間でのより複雑な制御
【課題13】実行時のデバッグ対応支援プログラムの作成
【課題14】探索問題アルゴリズムへの挑戦
Column10-1 トラブル・シューティング
Appendix
Appendix A BricxCC機能概要一覧表
Appendix B 標準CとNXCとの違い
Appendix C NXC APIライブラリ関数一覧表
Appendix D NXT拡張関連情報
Appendix E NXTを使った教育カリキュラムの提案