実践ロボットプログラミング LEGO Mindstorms NXTで目指せロボコン!

[著者]
藤吉弘亘・藤井隆司・鈴木裕利・石井成郎

ティップス

tips

EV3: BricxCCのインストールと設定 2中・上級者向け

 EV3のセンサを使用可能にするためにヘッダファイル(JissenPBL.h)のダウンロードをダウンロードして所定の場所に置く必要があります。

※ここで使用しますヘッダファイル(JissenPBL.h)およびEV3 BricxCCプログラムランチャー(run.rbf)は、 九州工業大学 花沢明俊先生が作成されたファイルを使用しております。 ファイル使用にあたり、快く了承していただき感謝いたします。 このヘッダファイルの著作権およびその他の権利は九州工業大学 花沢明俊先生にあります。
※※※ すべてのNXC命令の動作を確認しておりません。動作しない命令やエラーが発生する可能性があります。その場合、もし良い解決方法、エラーの回避方法がございましたらご連絡いただけますと幸いです。※※※
・準備1
センサを使用するためのヘッダファイルとEV3 BricxCCプログラムランチャーをダウンロードします。

< ヘッダファイル(JissenPBL.h)、EV3 BricxCCプログラムランチャー(run.rbf) >
九州工業大学 花沢研究室 File Download


JissenPBL.h は、プログラムを作成するフォルダに保存します。

・準備2(ヘッダファイルの変更)
 ヘッダファイル(~.h)内の宣言の重複を修正したり、パスの追加など数カ所の変更を行います。 (それぞれのファイルの著作権はファイルの制作者にあります)
本書では、lms2012フォルダはBricxCCの中にありますので、JissennPBL.hの中のパスを変更する必要があります。 また、ヘッダファイルの追加を行います。「メモ帳」などのアプリケーションを使用してJissennPBL.hを開きます。
#include の部分に

#include <sys/types.h> //追加
#include <sys/stat.h> //追加
#include <pthread.h> //追加
#include "C:\BricxCC\lms2012\lms2012.h"

#include "C:\BricxCC\lms_api\ev3_output.h"
#include "C:\BricxCC\lms_api\ev3_command.h"
#include "C:\BricxCC\lms_api\ev3_lcd.h"
#include "C:\BricxCC\lms_api\ev3_sound.h" //追加
#include "C:\BricxCC\lms_api\ev3_button.h" //追加
#include "C:\BricxCC\lms_api\ev3_constants.h" //追加
#include "C:\BricxCC\lms_api\ev3_timer.h" //追加

を追加します。

 次にヘッダファイル間で2重宣言が発生しているため、このままコンパイルすると 通常ではエラーが発生してしまいます(エラーの根本的な解決方法は調査中です)。 少し無理矢理ですが、この2重定義のままオブジェクトファイルの生成を行います。 この状態で一度、コンパイルを行います(コンパイルエラーが表示されます)。

(使用するプログラムは、次ページの"Motor.c"もしくは"Sound.c"どちらでもかまいません。 ~.cファイルと~.prjを作成してコンパイルしてください)

 コンパイルエラーが発生しますが、C:\BricxCC\lms_api内にオブジェクトファイル(~.o)が生成されているのを確認します。

 次に2重宣言のエラーとwarning表示を消します。C:\BricxCC\lms_api内にある ev3_lcd.h と ev3_constants.h の内容を変更します。
ev3_lcd.h の52、54、55行目をコメント「//」にします。

#define LCD_BUFFER_SIZE (LCD_BYTE_WIDTH * LCD_HEIGHT)
→ // #define LCD_BUFFER_SIZE (LCD_BYTE_WIDTH * LCD_HEIGHT)

typedef byte IMGDATA; //!< Image base type
typedef IMGDATA* IP; //!< Instruction pointer type
      ↓
// typedef byte IMGDATA; //!< Image base type
// typedef IMGDATA* IP; //!< Instruction pointer type

ev3_constants.h も同じように52、53、54、330行をコメント「//」にします。

#define LCD_WIDTH 178 /*!< LCD horizontal pixels */
#define LCD_HEIGHT 128 /*!< LCD vertical pixels */
#define TOPLINE_HEIGHT 10 /*!< Top line vertical pixels */
   :
#define FILENAME_SIZE 120 //!< Max filename size including path, name...
      ↓
// #define LCD_WIDTH 178 /*!< LCD horizontal pixels */
// #define LCD_HEIGHT 128 /*!< LCD vertical pixels */
// #define TOPLINE_HEIGHT 10 /*!< Top line vertical pixels */
   :
// #define FILENAME_SIZE 120 //!< Max filename size including path, name...

これで設定は終わりです。次は、モータを回転させてみます。

← BricxCCのインストールと設定 1 |  モータを回転させよう →

book

実践ロボットプログラミング
LEGO Mindstorms NXTで目指せロボコン!
本体価格: 2,300円/ISBN: 978-4-7649-0378-4
BUY NOW!!

教育用レゴ マインドストームNXT
次世代のロボット教材で、生徒や学生たちは
自分の手で実際に動かしながら、科学、技術と情報、
工学を楽しく、体験的に学習できます。
MORE

↑page top