ABOUT
ロボットに動きを命令するためには、プログラムを作成(プログラミング)する必要があります。
本書ではLEGO Mindstorms EV3 を用いて、ロボットプログラミングの方法を解説します。
まったくの初心者でも、「基礎編」「応用編」の順に学習を進めていくことで、
ロボットプログラミングを段階的にマスターできるように構成されています。
さらに、「競技編」では、ロボット競技大会に参加するためのロボット作りの方法を紹介します。
プログラムを初めて学ぶ人
まずは、EV3-SWでプログラミングを始めましょう。その際は、2章のC言語の文法と、4章、5章、6章、7章で出てくるNXCプログラムは読み飛ばして問題ありません。EV3-SWを駆使して、レゴロボットの競技会であるWRO(World Robot Olympias)のミドル競技にチャレンジしてみましょう。 EV3-SWをひととおり学んだ後、さらに高度なプログラミングを取得したい人は、再度、4章以降の同じ課題をNXC(C言語)で取り組むとよいでしょう。
LEGOプログラミング(EV3-SW)の経験がある人
LEGO Mindstormsに付属するEV3-SWのプログラミング経験者は、次のステップとして高度なプログラムが作成可能なNXC(C言語)にチャレンジしてみましょう。その際には、PADとEV3-SWを比べながらNXCを理解すると良いでしょう。NXCで学んだプログラミングの知識は、LEGOロボットだけではなく、幅広く応用する事が可能です。
ロボット競技大会を目指す人
プログラムを理解できるようになったら、7章を参考にロボット競技会にチャレンジしましょう。ロボット競技会は一人ではなく、チームで参加することが多くあります。その際には、8章「ロボット作り上達のため」に、9章「コース攻略法を考えよう」、10章「リフレクションをしよう」を読んで下さい。きっと、プログラミングだけでなく、ロボット競技会に向けて、役に立つヒントを見つけることができるはずです。
本書を使用してロボットプログラムを教える先生
各章のはじめに具体的な学習目標をまとめました。また、各章の最後に演習問題を用意しました。指導の際に適宜ご利用いただければと思います。プログラミングのための環境設定につきましては、本ウェブページを参考にしてください。
特長
- アルゴリズム(PAD)、EV3-SW、C言語(NXC)を併記、相互参照しながら、効率よくマスターできます。
- ものづくりの基本サイクルであるPDSサイクルを紹介、計画立案・評価方法など実例を挙げ解説、アイディアやグループ作業のコツなど、競技大会で役立つ知識も取得できます。
TIPS
DOWNLOAD
この資料は本来、学生たちの自習の便のために作ったものですが、
もし同様の講義を担当されている先生方がご覧になって、
ご興味をお持ちになりましたら、よろしければご自由にお使い下さい。
講義資料に関しましては、随時追加を予定しております。
画像ファイルの一部には他のwebページに著作権があるものがあり、ここには許可を得た上で引用し、出典も明記してあります。
こうしたものの取り扱いについてはご注意下さい。
本書で使用したEV3の3DデータをGoogle SketchUp 形式で提供しています。
掲載データは、学校などの教育目的の利用であれば、再加工して使用していただいてもかまいません。
ただし、データの2次配布は禁止と致します。
MOVIE
SUPPORT
本書の内容で、間違った説明をしてしまった箇所が幾つかあります。
読者の皆様さまにご迷惑をお掛けしたことを深くお詫びし、訂正させていただきます。
ここに記載が無く、疑問・問題点などございましたらsupport@robot-programming.jpまで御一報いただけますと幸いです。
※なお、第2版 第2刷 以降では訂正済みとなっております。ご迷惑をお掛けいたしまして申し訳ありません。
37ページ:側注 3-28)ヘッダファイル
誤
jissennPBL.h
正
jissenPBL.h
※ 「n」が多いです.
69ページ:NXCプログラム(spiral.c)
誤
angle=cm*20.45
正
angle=cm*20.45;
※ セミコロンが抜けております.
74ページ:側注 5-1) スイッチブロック
誤
正
※ ループブロックが掲載されています.
75ページ:touch.c 11行目 ⑤
誤
OnRevEx(OUT_C, -POW, 0);
正
OnRevEx(OUT_C, POW, 0);
※ Rev命令ですのでPOWは正の値となります.
75ページ:touch.c 22行目 ②
誤
OnFwd(OUT_BC);
正
OnFwdEx(OUT_BC, POW, 0);
※ 本書ではOnFwd命令は使用せず、すべてOnFwdEx命令としています.
ちなみにOnFwd命令の時のパワーは100(固定)となります.
※なお、第2版 第3刷 以降では訂正済みとなっております。ご迷惑をお掛けいたしまして申し訳ありません。
80ページ:usonic.c 22行目 ②
誤
OnFwd(OUT_BC);
正
OnFwdEx(OUT_BC, POW, 0);
※ 本書ではOnFwd命令は使用せず、すべてOnFwdEx命令としています.
ちなみにOnFwd命令の時のパワーは100(固定)となります.
75ページ:touch.c 11行目 ⑤
誤
OnRevEx(OUT_C, -POW, 0);
正
OnRevEx(OUT_C, POW, 0);
※ Rev命令ですのでPOWは正の値となります.
75ページ:touch.c 22行目 ②
誤
OnFwdEx(OUT_BC);
正
OnFwdEx(OUT_BC, POW, 0);
LINK
本書の章ごとのリンクを記載いたしますので参考にしてください。
-
レゴ マインドストーム公式サイト
education.lego.com/ja-jp -
aibo Official Site
aibo.sony.jp/ -
pepper
www.softbank.jp/robot/consumer/products/ -
ロボホン
robohon.com/ -
トヨタ パートナーロボット
www.toyota.co.jp/jpn/tech/partner_robot/ -
アールティ
www.rt-net.jp/
-
Bricx Command Center(BricxCC)
bricxcc.sourceforge.net/ -
MINDSTORMS ソフトウェアのダウンロード
education.lego.com/ja-jp/downloads/mindstorms-ev3/software -
jissenPBL.h(九州工業大学 花沢研究室)
www.mns.kyutech.ac.jp/~hanazawa/education/downloads/index.html -
クロスコンパイル環境(MacOS)
www.carlson-minot.com/available-arm-gnu-linux-g-lite-builds-for-mac-os-x -
クロスコンパイル環境(Windows)
sourcery.mentor.com/GNUToolchain/package4574/public/arm-none-linux-gnueabi/arm-2009q1-203-arm-none-linux-gnueabi.exe -
EV3ソースコード
github.com/mindboards/ev3sources -
EV3最新ファームウェア
education.lego.com/ja-jp/support/mindstorms-ev3/firmware-update
-
Laurens Valk氏のジャイロボーイプログラム
robotsquare.com/2014/07/01/tutorial-ev3-self-balancing-robot/
-
WROジャパン
www.wroj.org/ -
CU-Robocon
www3.chubu.ac.jp/cu-robocon/ -
Amazon Robotics
www.amazonrobotics.com/