SlideShare a Scribd company logo
1 of 77
Download to read offline
4. NXTプラットフォーム
⽯石川 拓也
名古屋⼤大学  ⼤大学院情報科学研究科
最終更新⽇日:2012/05/30
2012/06/02 TOPPERSプロジェクト認定 1
内容
•  NXTプラットフォームについて
‒  提供するデバイスドライバやミドルウェアのコン
ポーネントについて紹介
•  機能概要
•  コンポーネント図
•  インターフェース(受け⼝口関数)
•  使⽤用例
2012/06/02 TOPPERSプロジェクト認定 2
NXTのハードウェア構成
•  ハードウェア構成のイメージ図
2012/06/02 TOPPERSプロジェクト認定 3
Bluetooth
LCDディスプレイ
サウンド
ボタン
バッテリセンサ
メインプロセッサ
コプロセッサ
センサポート
モータポート
USART1SPI
SSC
TWI PIOA
I2C
ASP+TECS
デバイスドライバ・
ミドルウェア
NXTプラットフォームの概要(1/3)
•  ASP+TECS
‒  カーネルオブジェクト
‒  タイマ
‒  シリアル通信
•  デバイスドライバ
‒  ボタン、バッテリ、センサ、モータ
•  コプロセッサ
‒  Bluetooth
‒  ディスプレイ
‒  サウンド
‒  Flash
•  ミドルウェア
‒  ボタンチェック
‒  Bluetooth接続
‒  バランサ NXT
カーネル タイマ シリアル
ユーザアプリケーション
2012/06/02 TOPPERSプロジェクト認定 4
NXTプラットフォームの概要(2/3)
•  提供するコンポーネントの定義
‒  カーネル
•  include/kernel.cdl : カーネルオブジェクト
•  syssvc/tLogTask.cdl : システムログ出⼒力力タスク
•  syssvc/tSysLog.cdl : システムログバッファ
•  syssvc/tSerialPort.cdl: シリアルポート
•  target/mindstorms_nxt_gcc/target_syssvc_decl.cdl :
‒  tPutLogMindstormsNXT.cdl : 低レベル出⼒力力
‒  tSIOPortMindstormsNXT.cdl : シリアルドライバ
‒  NXTのデバイスドライバ、ミドルウェア
•  tecs_lib/mindstorms_nxt/target_lib_decl.cdl:
‒  tBluetooth_decl.cdl : Bluetooth
‒  tDisplay_decl.cdl,tLCD_decl.cdl,tSPI_decl.cdl : ディスプレイ
‒  tSound_decl.cdl : サウンド
‒  tAVR_decl.cdl,tTWI_decl.cdl : コプロセッサ
‒  tButton_decl.cdl : ボタン
‒  tBattery_decl.cdl : バッテリ
‒  tMotor_decl.cdl : モータ
‒  tSensor_decl.cdl : センサ
‒  tFlash_decl.cdl:Flashコントローラ
‒  tBalancer_decl.cdl : バランサ
TOPPERSプロジェクト認定 52012/06/02
NXTプラットフォームの概要(3/3)
•  提供するコンポーネントの⽣生成
‒  カーネル依存部
•  target/mindstorms_nxt_gcc/target_syssvc_inst.cdl :
‒  低レベル出⼒力力
‒  シリアルドライバ
‒  tBluetooth_inst.cdl : NXTのBluetoothドライバとBluetooth接続タスク
»  Bluetoothを使ってシリアル通信を実現
‒  NXTのデバイスドライバ、ミドルウェア
•  tecs_lib/mindstorms_nxt/target_lib_inst.cdl:
‒  ボタン
‒  コプロセッサ
‒  Flashコントローラ
‒  ボタンチェック周期ハンドラ
※ その他のコンポーネントはユーザが⽣生成する
•  例
‒  モータ
‒  センサ
‒  バランサ
TOPPERSプロジェクト認定 62012/06/02
ASP+TECSの解説
•  タイマ
•  シリアル通信
‒  Bluetoothを使⽤用
2012/06/02 TOPPERSプロジェクト認定 7
タイマ(1/2)
•  現在時刻の取得
‒  ASPカーネルのサービスコールを使⽤用
•  ER getTime(SYSTIM *p_systemTime)
‒  システム時刻の参照
»  ASPカーネルが起動してから現在までの時間
»  ミリ秒単位
‒  システム時刻はp_systemTimeで指定したメモリ領域に返される
•  ER getMicroTime(SYSUTM *p_systemMicroTime)
‒  性能評価⽤用システム時刻の参照
»  マイクロ秒単位
‒  システム時刻はp_systemMicroTimeで指定したメモリ領域に返
される
•  カーネルオブジェクト(タスクやセマフォ)以外の
サービスコール
‒  セルタイプtKernelのセルの受け⼝口eKernel
2012/06/02 TOPPERSプロジェクト認定 8
タイマ(2/2)
•  使⽤用例
/*	 コンポーネント記述	 */

celltype	 tSample{

	 	 require	 tKernel.eKernel;

	 	 entry	 sSample	 eSample;

};



/*	 呼出し	 */

void

eSample_main()

{

	 	 SYSTIM	 currentTime;

	 	 getTime(&currentTime);

};



2012/06/02 TOPPERSプロジェクト認定 9
シリアル通信
•  ASPカーネルのシリアル通信
‒  システムログ(シリアル送信)
•  void syslog(uint_t prio, const char *format, ...)
‒  prio:ログの優先度
‒  format, ...:表⽰示するログ(printf等と同様の記法)
※asp+tecs/doc/user.txtの「8.システムサービス」を参照
‒  シリアル受信
•  ER_UINT cSerialPort_read(char_t *buffer, uint_t length)
‒  length:⻑⾧長さ、buffer:受信バッファ
•  ホストPCとのシリアル通信⽅方法
‒  Bluetoothを使⽤用
•  NXTではシリアルのコネクタがない
•  NXTとホストPCで仮想シリアル通信
‒  ターミナル
•  Tera Term
•  screenコマンド(screen /dev/tty. )
2012/06/02 TOPPERSプロジェクト認定 10
syslog
•  使⽤用例
‒  syslogはライブラリ関数なので、コンポーネント
記述は不要
•  そのライブラリ関数の中で、シリアル通信⽤用セルの受け⼝口関数
を直接呼び出している
/*	 呼出し	 */

void

eSample_main()

{

	 	 int	 x	 =	 1;

	 	 syslog(LOG_NOTICE,	 "sample%d",	 x);

};



2012/06/02 TOPPERSプロジェクト認定 11
シリアル受信(1/2)
•  使⽤用例(コンポーネント記述)
celltype	 tSample{

	 	 entry	 sSample	 eSample

	 	 call	 sSerialPort	 cSerialPort;

};

cell	 tSample	 Sample{

	 	 cSerialPort	 =	 SerialPort1.eSerialPort;

};



SerialPort1Sample
2012/06/02 TOPPERSプロジェクト認定 12
シリアル受信(2/2)
•  使⽤用例(呼び⼝口関数)
void

eSample_main()

{

	 	 char_t	 c;

	 	 cSerialPort_read(&c,	 1);

}

SerialPort1Sample
2012/06/02 TOPPERSプロジェクト認定 13
デバイスドライバの解説
•  提供するコンポーネント
‒  セルを⽣生成済み
•  コプロセッサ
‒  AVR、TWI
•  ボタン
•  Flashコントローラ
•  Bluetooth
‒  ※必須ではない
‒  定義のみ提供する
•  ディスプレイ
‒  ディスプレイ、LCD、SPI
•  サウンド
•  バッテリ
•  モータ
•  センサ
⽣生成済みのセルを
プラットフォーム
として提供
アプリケーション
(ユーザ)レベル
でセルを⽣生成
2012/06/02 TOPPERSプロジェクト認定 14
Bluetooth(1/5)
•  機能概要
‒  Bluetooth通信の確⽴立立
•  マスタ/スレーブ
‒  Bluetooth通信
•  送信/受信
2012/06/02 TOPPERSプロジェクト認定 15
Bluetooth
LCDディスプレイ
サウンド
ボタン
バッテリセンサ
メインプロセッサ
コプロセッサ
センサポート
モータポート
USART1SPI
SSC
TWI PIOA
I2C
Bluetooth(2/5)
•  複合セルタイプtBluetoothのセルのコンポーネント図
Bluetooth
BluetoothBody InitializeBluetooth
AlarmTimeOut
sBluetooth
eBluetooth
2012/06/02 TOPPERSプロジェクト認定 16
Bluetooth(3/5)
•  コンポーネント記述(組上げ記述)
※ これは提供物に含まれているので、改めて記述する必要は
ない
‒  target_syssvc_inst.cdlからimportされる
cell	 tSemaphore	 BluetoothSemapohre{

	 	 attribute	 =	 C_EXP("TA_TPRI");

	 	 count	 =	 0;

	 	 max	 =	 1;

};

cell	 tBluetooth	 Bluetooth	 {	 //	 Bluetooth本体

	 	 cSemaphore	 =	 BluetoothSemaphore.eSemaphore;

	 	 keyCode	 =	 "1234";

};



2012/06/02 TOPPERSプロジェクト認定 17
tBluetooth_inst.cdl
Bluetooth(4/5)
•  セルタイプtBluetoothのインタフェース(⼀一部)
‒  シグニチャ:sBluetooth,受け⼝口:eBluetooth
•  void open(void)
‒  USART1送受信バッファをBluetooth通信⽤用に切り替える
•  uint8_t initializeSlave(void)
‒  NXTをスレーブデバイスとして初期化し,マスタデバイスとの接
続を確⽴立立後、ストリームモードに以降する
‒  ストリームモード以降後は、Bluetoothコマンドは受け付けず、
シリアル通信路として機能する
•  bool_t isConnected(void)
‒  接続が確⽴立立したかをチェックする
•  uint32_t sendPacket([in] const uint8_t *buffer,
                      [in] uint32_t length)
‒  データを送信する
2012/06/02 TOPPERSプロジェクト認定 18
Bluetooth(5/5)
•  キーコードの設定
‒  tBluetooth_inst.cdl内Bluetoothセルを⽣生成している
部分において、keyCodeで設定する
•  デフォルトの値は 1234
•  注意点
‒  ASPカーネルでのシリアル通信でBluetoothを使⽤用
•  syslogやシリアル受信
•  Bluetoothでの仮想シリアル通信を利⽤用
‒  ASPカーネルのシリアル通信を利⽤用する場合、
Bluetoothコンポーネントの機能をユーザアプリが直
接利⽤用した場合の動作は保証しない
•  syslogやtSerialPortを使⽤用する
2012/06/02 TOPPERSプロジェクト認定 19
ディスプレイ(1/7)
•  機能概要
‒  ディスプレイ表⽰示
•  ⽂文字列や数字
•  提供するコンポーネントの定義
‒  複合セルタイプtDisplay
2012/06/02 TOPPERSプロジェクト認定 20
Bluetooth
LCDディスプレイ
サウンド
ボタン
バッテリセンサ
メインプロセッサ
コプロセッサ
センサポート
モータポート
USART1SPI
SSC
TWI PIOA
I2C
ディスプレイ(2/7)
•  複合セルタイプtDisplayのセルの⽣生成例
‒  コンポーネント図
Display
DisplayBody
InitializeDisplay
SPI
sDisplay
eDisplay
LCD
2012/06/02 TOPPERSプロジェクト認定 21
TerminateDisplay
ディスプレイ(3/7)
•  セルSPIのコンポーネント図
SPI
SPIBody
ISRSPI
sSPI
eSPI
2012/06/02 TOPPERSプロジェクト認定 22
ディスプレイ(4/7)
•  複合セルタイプtDisplayのセルの⽣生成例
‒  コンポーネント記述(組上げ記述)
cell	 tDisplay	 Display{	 //	 ディスプレイ

};



2012/06/02 TOPPERSプロジェクト認定 23
tSample.cdl
ディスプレイ(5/7)
•  tDisplayのインタフェース(⼀一部)
‒  シグニチャ:sDisplay, 受け⼝口:eDisplay
•  void update(void)
‒  バッファの内容を画⾯面に表⽰示する
•  void clear([in] bool_t updateToo)
‒  画⾯面表⽰示⽤用バッファのクリア
•  void gotoXY([in] uint8_t x, [in] uint8_t y)
‒  ⽂文字表⽰示位置の設定
•  void putString([in] const char_t *string)
‒  ⽂文字列を画⾯面表⽰示⽤用バッファに⼊入れる
•  void putInt([in] int32_t val, [in] uint8_t place);
‒  符号付き整数を画⾯面表⽰示⽤用バッファに⼊入れる
2012/06/02 TOPPERSプロジェクト認定 24
ディスプレイ(6/7)
•  使⽤用例(コンポーネント記述)
celltype	 tSample{

	 	 entry	 sSample	 eSample;

	 	 call	 sDisplay	 cDisplay;

};

cell	 tSample	 Sample{

	 	 cDisplay	 =	 Display.eDisplay;

};



DisplaySample
2012/06/02 TOPPERSプロジェクト認定 25
ディスプレイ(7/7)
•  使⽤用例(呼び⼝口関数)
void

eSample_main()

{

	 	 cDisplay_gotoXY(0,	 0);	 	 	 	 	 	 	 	 //	 表示位置を(0,0)に

	 	 cDisplay_putString("sample");	 //	 "sample"をバッファに

	 	 cDisplay_update();	 	 	 	 	 	 	 	 	 	 	 	 //	 画面を更新

}

DisplaySample
2012/06/02 TOPPERSプロジェクト認定 26
サウンド(1/6)
•  機能概要
‒  サウンドを出⼒力力する
•  ⾳音の周波数、鳴らす時間を指定
•  ⾳音量を設定
•  提供するコンポーネントの定義
‒  複合セルタイプtSound
2012/06/02 TOPPERSプロジェクト認定 27
Bluetooth
LCDディスプレイ
サウンド
ボタン
バッテリセンサ
メインプロセッサ
コプロセッサ
センサポート
モータポート
USART1SPI
SSC
TWI PIOA
I2C
サウンド(2/6)
•  複合セルタイプtSoundのセルの⽣生成例
‒  コンポーネント図
Sound
SoundBody
ISRSound
InitializeSound
sSound
eSound
2012/06/02 TOPPERSプロジェクト認定 28
サウンド(3/6)
•  複合セルタイプtSoundのセルの⽣生成例
‒  コンポーネント記述(組上げ記述)
cell	 tSound	 Sound{	 //	 サウンド

};

2012/06/02 TOPPERSプロジェクト認定 29
tSample.cdl
サウンド(4/6)
•  tSoundのインタフェース
‒  シグニチャ:sSound, 受け⼝口:eSound
•  void beepTone([in] uint32_t frequency,
                 [in] uint32_t msecond)
‒  トーンサウンドの出⼒力力
•  void setVolume([in] uint8_t volume)
‒  ⾳音量の設定
※ 0か100を設定することを推奨
   それ以外の値の場合、出⼒力力サウンドの周波数が変わる
2012/06/02 TOPPERSプロジェクト認定 30
サウンド(5/6)
•  使⽤用例(コンポーネント記述)
celltype	 tSample{

	 	 entry	 sSample	 eSample;

	 	 call	 sSound	 cSound;

};

cell	 tSample	 Sample{

	 	 cSound	 =	 Sound.eSound;

};



SoundSample
2012/06/02 TOPPERSプロジェクト認定 31
サウンド(6/6)
•  使⽤用例(呼び⼝口関数)
void

eSample_main()

{

	 	 cSound_setVolume(100);	 	 	 	 	 //	 音量100	 %

	 	 cSound_beepTone(660,	 100);	 //	 660Hzの音を100ms鳴らす

}

SoundSample
2012/06/02 TOPPERSプロジェクト認定 32
コプロセッサ(1/5)
•  機能概要
‒  コプロセッサ(AVR)と通信をする
•  TWIバスを通じて、2m秒周期で受信と送信を交互に⾏行行う
‒  センサ、ボタン、バッテリの状態を受信
‒  モータの出⼒力力値を送信
•  送受信データを管理する
•  セルAVRを提供
2012/06/02 TOPPERSプロジェクト認定 33
Bluetooth
LCDディスプレイ
サウンド
ボタン
バッテリセンサ
メインプロセッサ
コプロセッサ
センサポート
モータポート
USART1SPI
SSC
TWI PIOA
I2C
コプロセッサ(2/5)
•  セルAVRのコンポーネント図
AVR
AVRBody CyclicAVR
InitializeAVR
TWI
sAvrMotor
eAvrMotor
...etc
sCyclic
eCyclic
2012/06/02 TOPPERSプロジェクト認定 34
コプロセッサ(2/5)
•  セルTWIのコンポーネント図
TWI
TWIBody
ISRTWI
2012/06/02 TOPPERSプロジェクト認定 35
コプロセッサ(3/5)
•  コンポーネント記述(組上げ記述)
※これは提供物に含まれているので、改めて記述する必要は
ない
cell	 tAVR	 AVR{	 //	 コプロセッサ

};

2012/06/02 TOPPERSプロジェクト認定 36
target_lib_inst.cdl
コプロセッサ(4/5)
•  AVRのインターフェース(⼀一部)
‒  シグニチャ:sAvrMotor, 受け⼝口:eAvrMotor
•  void setMotor([in] uint8_t portNumber, [in] int8_t
powerPercent, [in] bool_t brake)
‒  モータにPWM値をセット
‒  シグニチャ:sAvrSensor, 受け⼝口:eAvrSensor
•  void setInputPower([in] uint8_t portNumber, [in] uint8_t
powerType);
‒  ポートに電源を供給
•  uint16_t getSensor([in] uint8_t portNumber)
‒  センサ値の取得
‒  シグニチャ:sAvrBattery, 受け⼝口:eAvrBattery
•  uint16_t batteryVoltage(void)
‒  バッテリ電圧値の取得
2012/06/02 TOPPERSプロジェクト認定 37
コプロセッサ(5/5)
•  注意事項
‒  AVRは、センサ、モータ、ボタン、バッテリ、ミ
ドルウェアのコンポーネントが呼び出すことを想
定している
•  ユーザアプリが直接AVRを呼び出すことは想定しておらず、
ユーザアプリから直接呼び出した場合の動作は保証しない
2012/06/02 TOPPERSプロジェクト認定 38
バッテリ(1/6)
•  機能概要
‒  バッテリ残量の取得
•  提供するコンポーネントの定義
‒  セルタイプtBattery
2012/06/02 TOPPERSプロジェクト認定 39
Bluetooth
LCDディスプレイ
サウンド
ボタン
バッテリセンサ
メインプロセッサ
コプロセッサ
センサポート
モータポート
USART1SPI
SSC
TWI PIOA
I2C
バッテリ(2/6)
•  セルタイプtBatteryのセルの⽣生成例
‒  コンポーネント図
Battery
sBattery
eBattery
2012/06/02 TOPPERSプロジェクト認定 40
AVR
セルAVRの受け⼝口
sAvrBattery
eAvrBattery
につなぐ必要がある
バッテリ(3/6)
•  セルタイプtBatteryのセルの⽣生成例
‒  コンポーネント記述(組上げ記述)
cell	 tBattery	 Battery{	 //	 バッテリ

	 	 cAvrButton	 =	 AVR.eAvrButton;

};



2012/06/02 TOPPERSプロジェクト認定 41
tSample.cdl
バッテリ(4/6)
•  tBatteryのインタフェース
‒  シグニチャ:sBattery,受け⼝口:eBattery
•  uint16_t getBatteryVoltage(void)
‒  バッテリ残量の電圧値を返す.
»  セルAVRを通して取得する
2012/06/02 TOPPERSプロジェクト認定 42
バッテリ(5/6)
•  使⽤用例(コンポーネント記述)
celltype	 tSample{

	 	 entry	 sSample	 eSample;

	 	 call	 sBattery	 cBattery;

};

cell	 tSample	 Sample{

	 	 cBattery	 =	 Battery.eBattery;

};



BatterySample
2012/06/02 TOPPERSプロジェクト認定 43
バッテリ(6/6)
•  使⽤用例(呼び⼝口関数)
void

eSample_main()

{

	 	 uint16_t	 battery;

	 	 //	 バッテリ残量の取得

	 	 battery	 =	 cBattery_getBatteryVoltage();

}

2012/06/02 TOPPERSプロジェクト認定 44
BatterySample
ボタン(1/6)
•  機能概要
‒  ボタン(ENTER,EXIT,RUN,STOP)押下状態
の取得
•  セルButtonを提供
2012/06/02 TOPPERSプロジェクト認定 45
Bluetooth
LCDディスプレイ
サウンド
ボタン
バッテリセンサ
メインプロセッサ
コプロセッサ
センサポート
モータポート
USART1SPI
SSC
TWI PIOA
I2C
ボタン(2/6)
•  セルButtonのコンポーネント図
Button
AVR
sButton
eButton
2012/06/02 TOPPERSプロジェクト認定 46
ButtonBody ButtonUpdate
ボタン(3/6)
•  コンポーネント記述(組上げ記述)
※これは提供物に含まれているので、改めて記述する必要は
ない
cell	 tButton	 Button{	 //	 ボタン

	 	 cAvrButton	 =	 AVR.eAvrButton;

};



2012/06/02 TOPPERSプロジェクト認定 47
target_lib_inst.cdl
ボタン(4/6)
•  Buttonのインタフェース(⼀一部)
‒  シグニチャ:sButton,受け⼝口:eButton
•  bool_t isRUNButton(void)
‒  RUNボタンが押下されているならばtrue,そうでなければfalseを
返す.
•  bool_t isENTERButton(void)
‒  ENTERボタンが押下されているならばtrue,そうでなければ
falseを返す.
•  bool_t isSTOPButtonOnly(void)
‒  STOPボタンのみが押下されているならばtrue,そうでなければ
falseを返す.
2012/06/02 TOPPERSプロジェクト認定 48
ボタン(5/6)
•  使⽤用例(コンポーネント記述)
celltype	 tSample{

	 	 require	 tKernel.eKernel;

	 	 entry	 sSample	 eSample;

	 	 call	 sButton	 cButton;

};

cell	 tSample	 Sample{

	 	 cButton	 =	 Button.eButton;

};



ButtonSample
2012/06/02 TOPPERSプロジェクト認定 49
ボタン(6/6)
•  使⽤用例(呼び⼝口関数)
void

eSample_main()

{

	 	 if(cButton_isRUNButton()){

	 	 	 	 //	 RUNボタンが押されたら、exitTaskを呼ぶ

	 	 	 	 exitTask();

	 	 }	 	 

}

2012/06/02 TOPPERSプロジェクト認定 50
ButtonSample
モータ(1/7)
•  機能概要
‒  モータの回転数の取得/設定
‒  モータのPWM値のセット
2012/06/02 TOPPERSプロジェクト認定 51
Bluetooth
LCDディスプレイ
サウンド
ボタン
バッテリセンサ
メインプロセッサ
コプロセッサ
センサポート
モータポート
USART1SPI
SSC
TWI PIOA
I2C
モータ(2/7)
•  提供するコンポーネントの定義
‒  複合セルタイプtRotaryEncoder
•  モータの割込みハンドラと終了処理ルーチン
•  モータを使⽤用するときは、 tRotaryEncoder のセルの呼び⼝口と
tMotorのセルの受け⼝口を結合
‒  セルタイプtMotor
•  モータの回転数
•  モータのPWM値
2012/06/02 TOPPERSプロジェクト認定 52
・接続するポート番号を属性
  としてもつ
・ユーザアプリケーションの
  コンポーネントと結合するため
  の受け⼝口をもつ
・tRotaryEncoderのセル
  と結合するための受け⼝口をもつ
・セルAVRへPWM値を
  送るための呼び⼝口をもつ
モータ(3/7)
•  モータ関連のセルの⽣生成例
‒  コンポーネント図
RightMotor LeftMotor
AVR RotaryEncoder
RotaryEncoder
RotaryEncoderBody
Initialize
Motor
Terminate
Motor
Cyclic
Motor
ISR
Motor
sMotor
eMotor
2012/06/02 TOPPERSプロジェクト認定 53
セルAVRの
受け⼝口
sAvrMotor
eAvrMotor
につなぐ必要
がある
セルRotaryEncoderの呼び⼝口
ciMotorInterrupt[x](x=0,1,2)
を、tMotorのセルの受け⼝口
eiMotorInterrupt
につなぐ必要がある
モータ(4/7)
•  モータ関連のセルの⽣生成例
‒  コンポーネント記述(組上げ記述)
cell	 tMotor	 RightMotor	 {	 //	 右モータ

	 	 portNumber	 =	 NXT_PORT_B;	 //	 Bポート

	 	 cAvrMotor	 =	 AVR.eAvrMotor;

};

cell	 tMotor	 LeftMotor	 {	 //左モータ

	 	 portNumber	 =	 NXT_PORT_C;	 //	 Cポート

	 	 cAvrMotor	 =	 AVR.eAvrMotor;

};

cell	 tRotaryEncoder	 RotaryEncoder{

	 	 ciMotorInterrupt[0]	 =	 TailMotor.eiMotorInterrupt;

	 	 ciMotorInterrupt[1]	 =	 RightMotor.eiMotorInterrupt;

	 	 ciMotorInterrupt[2]	 =	 LeftMotor.eiMotorInterrupt;

};

2012/06/02 TOPPERSプロジェクト認定 54
tSample.cdl
モータ(5/7)
•  tMotorのインタフェース
‒  シグニチャ:sMotor,受け⼝口:eMotor
•  void setPWM([in] int8_t pwm, [in] bool_t brakeMode)
‒  モータのPWM値をセット
•  void setRevolution ([in] int32_t revolution)
‒  モータの回転数をセット
»  ロータリエンコーダの初期化
•  void getRevolution([out] int32_t *revolution)
‒  モータの回転数を取得
2012/06/02 TOPPERSプロジェクト認定 55
モータ(6/7)
•  使⽤用例(コンポーネント記述)
celltype	 tSample{

	 	 entry	 sSample	 eSample

	 	 call	 sMotor	 cLeftMotor;

};

cell	 tSample	 Sample{

	 	 cLeftMotor	 =	 LeftMotor.eMotor;

};



LeftMotorSample
2012/06/02 TOPPERSプロジェクト認定 56
モータ(7/7)
•  使⽤用例(呼び⼝口関数)
void

eSample_main()

{

	 	 cLeftMotor_setPWM(20,	 1);	 //	 モータのPWMを20に設定

}

LeftMotorSample
2012/06/02 TOPPERSプロジェクト認定 57
センサ(1/10)
•  機能概要
‒  センサ値の取得
2012/06/02 TOPPERSプロジェクト認定 58
Bluetooth
LCDディスプレイ
サウンド
ボタン
バッテリセンサ
メインプロセッサ
コプロセッサ
センサポート
モータポート
USART1SPI
SSC
TWI PIOA
I2C
センサ(2/10)
•  提供するコンポーネントの定義
‒  複合セルタイプtSensorDriver
•  センサの初期化ルーチンとI2Cの割込みハンドラ
•  各種センサを使⽤用するときは、 tSensorDriver のインスタン
スの呼び⼝口と各種センサのインスタンスの受け⼝口を結合
‒  各種センサのセルタイプ
•  光センサ
•  ジャイロセンサ
•  タッチセンサ
•  超⾳音波センサ
‒  センサ値の取得など
2012/06/02 TOPPERSプロジェクト認定 59
・接続するポート番号を属性
  としてもつ
・ユーザアプリケーションの
  コンポーネントと結合するため
  の受け⼝口をもつ
・tSensorDriverのセル
  と結合するための受け⼝口をもつ
・セルAVRからセンサ値を
  取得するための呼び⼝口をもつ
センサ(3/10)
•  光センサの
コンポーネント図
•  ジャイロセンサの
コンポーネント図
LightSensor
LightSensor
Body
Terminate
LightSensor
SensorPort
GyroSensor
GyroSensor
Body
SensorPort
sSensor
eSensor sSensor
eSensor
2012/06/02 TOPPERSプロジェクト認定 60
sSensorControl
eSensorControl
センサ(4/10)
•  タッチセンサの
コンポーネント図
•  超⾳音波センサの
コンポーネント図
TouchSensor
TouchSensor
Body
SensorPort
SonicSensor
SonicSensor
Body
Terminate
SonicSensor
SensorPort
I2C
2012/06/02 TOPPERSプロジェクト認定 61
sSensor
eSensor
sSensor
eSensor
センサ(5/10)
•  センサ関連のセルの⽣生成例
‒  コンポーネント図
GyroSensor SonicSensor
AVR SensorDriver
SensorDriver
SensorDriverBody
Initialize
Sensor
ISR
I2C
sSensor
eSensor
2012/06/02 TOPPERSプロジェクト認定 62
セルAVRの
受け⼝口
sAvrSensor
eAvrSensor
につなぐ必要
がある
セルSensorDriverの呼び⼝口
ciSensorDriver[x](x=0,1,2,3)
を、各種センサのセルの受け⼝口
eiSensorDriver
につなぐ必要がある
センサ(6/10)
•  センサ関連のセルの⽣生成例
‒  コンポーネント記述(組上げ記述)
cell	 tGyroSensor	 GyroSensor{	 //	 ジャイロセンサ

	 	 portNumber	 =	 NXT_PORT_S1;

	 	 cAvrSensor	 =	 AVR.eAvrSensor;

};

cell	 tSonicSensor	 SonicSensor{	 //	 超音波センサ

	 	 portNumber	 =	 NXT_PORT_S2;

	 	 cAvrSensor	 =	 AVR.eAvrSensor;

};

cell	 tSensorDriver	 SensorDriver{

	 	 ciSensorDriver[0]	 =	 GyroSensor.eiSensorDriver;

	 	 ciSensorDriver[1]	 =	 SonicSensor.eiSensorDriver;

	 	 //	 省略:他のセンサとの結合

};

2012/06/02 TOPPERSプロジェクト認定 63
tSample.cdl
センサ(7/10)
•  tLightSensorのインタフェース
‒  シグニチャ:sSensor, 受け⼝口:eSensor
•  void getValue([out] uint16_t *value)
‒  光センサデータの取得
‒  シグニチャ:sSensorControl,受け⼝口:
eSensorControl
•  void on(void) / void off(void)
‒  光センサのON/OFF
‒  プログラム起動時はON
•  tGyroSensorのインタフェース
‒  シグニチャ:sSensor, 受け⼝口:eSensor
•  void getValue([out] uint16_t *value)
‒  ジャイロセンサデータの取得
2012/06/02 TOPPERSプロジェクト認定 64
センサ(8/10)
•  tTouchSensorのインタフェース
‒  シグニチャ:sSensor, 受け⼝口:eSensor
•  void getValue([out] uint16_t *value)
‒  タッチセンサデータの取得(⾮非接触ならば0,接触ならば1)
•  tSonicSensorのインタフェース
‒  シグニチャ:sSensor, 受け⼝口:eSensor
•  void getValue([out] uint16_t *value)
‒  超⾳音波センサ計測距離データの取得
•  超⾳音波センサ初期化/終了処理のためのAPIはない
‒  ⾃自動で呼ばれる
2012/06/02 TOPPERSプロジェクト認定 65
センサ(9/10)
•  使⽤用例(コンポーネント記述)
celltype	 tSample{

	 	 entry	 sSample	 eSample

	 	 call	 sSensor	 cLightSensor;

	 	 call	 sSensorControl	 cLightSensorControl;

};

cell	 tSample	 Sample{

	 	 cLightSensor	 =	 LightSensor.eSensor;

	 	 cLightSensorControl	 =	 LightSensor.eSensorControl;

};



LightSensorSample
2012/06/02 TOPPERSプロジェクト認定 66
センサ(10/10)
•  使⽤用例(呼び⼝口関数)
void

eSample_main()

{

	 	 uint16_t	 light;

	 	 cLightSensorControl_on();	 	 	 	 	 	 //	 光センサをON

	 	 cLightSensor_getValue(&light);	 //	 光センサの値を取得

}

Sample
2012/06/02 TOPPERSプロジェクト認定 67
LightSensor
ミドルウェア(1/4)
•  ボタンチェック周期ハンドラ(CheckNXTButton)
‒  機能概要
•  10ミリ秒周期でボタンの押下状態をチェックする
•  押下されているボタンに応じて以下の処理を⾏行行う
‒  STOP:プログラムを再起動する
‒  EXIT:プログラムを終了し、電源を切る
‒  STOP+ENTER:NXT BIOSを書き換え後、電源を切る
»  再度電源を⼊入れると、プログラムダウンロード可能な状態と
なる
2012/06/02 TOPPERSプロジェクト認定 68
ミドルウェア(2/4)
•  Bluetooth接続タスク(ConnectBluetoothTask)
‒  機能概要
•  システムの起動時に起動する優先度2のタスク
•  NXTのBluetoothデバイス名を設定
•  NXTをスレーブとしてBluetooth接続を確⽴立立し、仮想シリアル
通信を可能にする
‒  デバイス名の設定
•  tBluetooth_inst.cdl内ConnectBluetoothセルを⽣生成している部分に
おいて、deviceNameで設定する
•  デフォルトの値は ET1234
2012/06/02 TOPPERSプロジェクト認定 69
ミドルウェア(3/4)
•  コンポーネント記述(組上げ記述)
※これは提供物に含まれているので、改めて記述する必要はな
い
‒  target_lib_inst.cdlからimportされる
//	 ボタンチェック周期ハンドラ

cell	 tCheckNXTButtonBody	 CheckNXTButtonBody	 {

	 	 cButton	 =	 Button.eButton;

	 	 //	 NXT	 BIOSを使用する場合、Flashを結合(ram+rom.cdl)

	 	 cFlash	 =	 Flash.eFlash;

};

cell	 tCyclicHandler	 CheckNXTButton	 {

	 	 ciBody	 =	 CheckNXTButtonBody.eiBody;

	 	 attribute	 =	 C_EXP("TA_STA");

	 	 cyclicTime	 =	 10;

	 	 cyclicPhase	 =	 1;

};

2012/06/02 TOPPERSプロジェクト認定 70
ram_only.cdl /
ram+rom.cdl
ミドルウェア(4/4)
•  コンポーネント記述(組上げ記述)
※これは提供物に含まれているので、改めて記述する必要はな
い
‒  target_syssvc_inst.cdlからimportされる
2012/06/02 TOPPERSプロジェクト認定
//	 Bluetooth接続タスク

cell	 tConnectBluetooth	 ConnectBluetooh	 {

	 	 cBluetooth	 =	 Bluetooth.eBluetooth;

	 //	 デバイス名の設定

	 	 deviceName	 =	 {	 'E',	 'T',	 '1',	 '2',	 '3',	 '4',	 '0'	 };

};

cell	 tTask	 ConnectBluetoothTask	 {

	 	 cBody	 =	 ConnectBluetooth.eConnectBluetooth;



	 	 taskAttribute	 =	 C_EXP("TA_ACT");

	 	 priority	 =	 2;

	 	 stackSize	 =	 512;

};

 71
tBluetooth_inst.cdl
バランサ(1/4)
•  セルタイプtBalancer
‒  tBalancerのインタフェース
•  シグニチャ:sBalancer,受け⼝口:eBalancer
‒  void control([in] int16_t forward, [in] int16_t turn,
       [in] uint16_t gyro, [in] uint16_t gyroOffset,
     [in] int32_t leftRevolution,
               [in] int32_t rightRevolution,
     [in] uint16_t battery,
     [out] int8_t *pwm_l, [out] int8_t *pwm_r)
»  倒⽴立立制御に必要なモータのPWM値を求める
»  balance_controlと同様
2012/06/02 TOPPERSプロジェクト認定 72
バランサ(2/4)
•  セルタイプtBalancerの⽣生成例
‒  コンポーネント記述(組上げ記述)
//	 バランサ

cell	 tBalancer	 Balancer{

};



2012/06/02 TOPPERSプロジェクト認定 73
tSample.cdl
Balancer
Balancer
BalancerBody
Initialize
Balancer
バランサ(3/4)
•  使⽤用例(コンポーネント記述)
celltype	 tSample{

	 	 entry	 sSample	 eSample

	 	 call	 sBalancer	 cBalancer;

};

cell	 tSample	 Sample{

	 	 cBalancer	 =	 Balancer.eBalancer;

};



BalancerSample
2012/06/02 TOPPERSプロジェクト認定 74
バランサ(4/4)
•  使⽤用例(呼び⼝口関数)
void

eSample_main()

{

	 	 /*	 省略:変数宣言とパラメータの設定	 */

	 	 cBalancer_control(speed,	 turn,



 

	 	 	 	 	 	 gyro,	 gyroOffset,



 

	 	 	 	 	 	 rev_l,	 rev_r,



 

	 	 	 	 	 	 battery,



 

	 	 	 	 	 	 &pwm_l,	 &pwm_r);

}

2012/06/02 TOPPERSプロジェクト認定 75
BalancerSample
使⽤用するファームウェアの選択
•  拡張NXTファームウェア or NXT BIOSの選択
‒  target_lib_inst.cdlで選択する
•  importするcdlファイルで制御
TOPPERSプロジェクト認定 762012/06/02
//	 拡張NXTファームウェアを使用する場合

//	 ram_onlyを残し、ram+romをコメントアウト(削除)

import("ram_only.cdl");

//	 import("ram+rom.cdl");



target_lib_inst.cdl
//	 NXT	 BIOSを使用する場合

//	 ram+romを残し、ram_onlyをコメントアウト(削除)

//	 import("ram_only.cdl");

import("ram+rom.cdl");



target_lib_inst.cdl
Flashコントローラ
•  機能概要
‒  Flashコントローラにより、NXT BIOSを書き換え
る
•  セルFlashを提供
‒  NXT BIOSを使⽤用する場合に⽣生成される
‒  ram+rom.cdlで⽣生成
‒  周期ハンドラCheckNXTButtonの本体から呼ばれ
るので、ユーザアプリケーションが意識する必要
はない
TOPPERSプロジェクト認定 772012/06/02

More Related Content

What's hot

C21 SQL Server のスレッド管理 by 古賀啓一郎
C21 SQL Server のスレッド管理 by 古賀啓一郎C21 SQL Server のスレッド管理 by 古賀啓一郎
C21 SQL Server のスレッド管理 by 古賀啓一郎Insight Technology, Inc.
 
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...NTT DATA Technology & Innovation
 
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )Hironobu Isoda
 
RFC6243(With-defaults Capability for NETCONF)の勉強資料
RFC6243(With-defaults Capability for NETCONF)の勉強資料RFC6243(With-defaults Capability for NETCONF)の勉強資料
RFC6243(With-defaults Capability for NETCONF)の勉強資料Tetsuya Hasegawa
 
RFC6241(Network Configuration Protocol (NETCONF))の勉強資料
RFC6241(Network Configuration Protocol (NETCONF))の勉強資料RFC6241(Network Configuration Protocol (NETCONF))の勉強資料
RFC6241(Network Configuration Protocol (NETCONF))の勉強資料Tetsuya Hasegawa
 
技術紹介: S2E: Selective Symbolic Execution Engine
技術紹介: S2E: Selective Symbolic Execution Engine技術紹介: S2E: Selective Symbolic Execution Engine
技術紹介: S2E: Selective Symbolic Execution EngineAsuka Nakajima
 
How to use STARC RTL Design Style Guide Verilog-HDL 2011 version
How to use STARC RTL Design Style Guide Verilog-HDL 2011 versionHow to use STARC RTL Design Style Guide Verilog-HDL 2011 version
How to use STARC RTL Design Style Guide Verilog-HDL 2011 versionKiyoshi Ogawa
 
20130329 rtm3
20130329 rtm320130329 rtm3
20130329 rtm3openrtm
 
Javaでトランザクショナルメモリを使う
Javaでトランザクショナルメモリを使うJavaでトランザクショナルメモリを使う
Javaでトランザクショナルメモリを使うKenji Kazumura
 
Dbts2013 特濃jpoug log_file_sync
Dbts2013 特濃jpoug log_file_syncDbts2013 特濃jpoug log_file_sync
Dbts2013 特濃jpoug log_file_syncKoji Shinkubo
 
Starc verilog hdl2013d
Starc verilog hdl2013dStarc verilog hdl2013d
Starc verilog hdl2013dKiyoshi Ogawa
 
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)NTT DATA Technology & Innovation
 
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強Kiyoshi Ogawa
 
RFC5717(Partial Lock Remote Procedure Call (RPC) for NETCONF)の勉強資料
RFC5717(Partial Lock Remote Procedure Call (RPC) for NETCONF)の勉強資料RFC5717(Partial Lock Remote Procedure Call (RPC) for NETCONF)の勉強資料
RFC5717(Partial Lock Remote Procedure Call (RPC) for NETCONF)の勉強資料Tetsuya Hasegawa
 
分散ストリーム処理フレームワーク Apache S4
分散ストリーム処理フレームワーク Apache S4分散ストリーム処理フレームワーク Apache S4
分散ストリーム処理フレームワーク Apache S4AdvancedTechNight
 
RFC5277(NETCONF Event Notifications)の勉強資料
RFC5277(NETCONF Event Notifications)の勉強資料RFC5277(NETCONF Event Notifications)の勉強資料
RFC5277(NETCONF Event Notifications)の勉強資料Tetsuya Hasegawa
 
Oracle Database In Lock
Oracle Database In LockOracle Database In Lock
Oracle Database In LockRyota Watabe
 
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)NTT DATA Technology & Innovation
 
RLSを用いたマルチテナント実装 for Django
RLSを用いたマルチテナント実装 for DjangoRLSを用いたマルチテナント実装 for Django
RLSを用いたマルチテナント実装 for DjangoTakayuki Shimizukawa
 

What's hot (20)

C21 SQL Server のスレッド管理 by 古賀啓一郎
C21 SQL Server のスレッド管理 by 古賀啓一郎C21 SQL Server のスレッド管理 by 古賀啓一郎
C21 SQL Server のスレッド管理 by 古賀啓一郎
 
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
 
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
オンライン広告入札システムとZGC ( JJUG CCC 2021 Spring )
 
RFC6243(With-defaults Capability for NETCONF)の勉強資料
RFC6243(With-defaults Capability for NETCONF)の勉強資料RFC6243(With-defaults Capability for NETCONF)の勉強資料
RFC6243(With-defaults Capability for NETCONF)の勉強資料
 
RFC6241(Network Configuration Protocol (NETCONF))の勉強資料
RFC6241(Network Configuration Protocol (NETCONF))の勉強資料RFC6241(Network Configuration Protocol (NETCONF))の勉強資料
RFC6241(Network Configuration Protocol (NETCONF))の勉強資料
 
技術紹介: S2E: Selective Symbolic Execution Engine
技術紹介: S2E: Selective Symbolic Execution Engine技術紹介: S2E: Selective Symbolic Execution Engine
技術紹介: S2E: Selective Symbolic Execution Engine
 
How to use STARC RTL Design Style Guide Verilog-HDL 2011 version
How to use STARC RTL Design Style Guide Verilog-HDL 2011 versionHow to use STARC RTL Design Style Guide Verilog-HDL 2011 version
How to use STARC RTL Design Style Guide Verilog-HDL 2011 version
 
Ll tiger clojure
Ll tiger clojureLl tiger clojure
Ll tiger clojure
 
20130329 rtm3
20130329 rtm320130329 rtm3
20130329 rtm3
 
Javaでトランザクショナルメモリを使う
Javaでトランザクショナルメモリを使うJavaでトランザクショナルメモリを使う
Javaでトランザクショナルメモリを使う
 
Dbts2013 特濃jpoug log_file_sync
Dbts2013 特濃jpoug log_file_syncDbts2013 特濃jpoug log_file_sync
Dbts2013 特濃jpoug log_file_sync
 
Starc verilog hdl2013d
Starc verilog hdl2013dStarc verilog hdl2013d
Starc verilog hdl2013d
 
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
JVMに裏から手を出す!JVMTIに触れてみよう(オープンソースカンファレンス2020 Online/Hiroshima 講演資料)
 
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
STARC RTL設計スタイルガイドによるVerilog HDL並列記述の補強
 
RFC5717(Partial Lock Remote Procedure Call (RPC) for NETCONF)の勉強資料
RFC5717(Partial Lock Remote Procedure Call (RPC) for NETCONF)の勉強資料RFC5717(Partial Lock Remote Procedure Call (RPC) for NETCONF)の勉強資料
RFC5717(Partial Lock Remote Procedure Call (RPC) for NETCONF)の勉強資料
 
分散ストリーム処理フレームワーク Apache S4
分散ストリーム処理フレームワーク Apache S4分散ストリーム処理フレームワーク Apache S4
分散ストリーム処理フレームワーク Apache S4
 
RFC5277(NETCONF Event Notifications)の勉強資料
RFC5277(NETCONF Event Notifications)の勉強資料RFC5277(NETCONF Event Notifications)の勉強資料
RFC5277(NETCONF Event Notifications)の勉強資料
 
Oracle Database In Lock
Oracle Database In LockOracle Database In Lock
Oracle Database In Lock
 
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
 
RLSを用いたマルチテナント実装 for Django
RLSを用いたマルチテナント実装 for DjangoRLSを用いたマルチテナント実装 for Django
RLSを用いたマルチテナント実装 for Django
 

Similar to NXTプラットフォーム(ETロボコン向けTOPPERS活用セミナー4)

アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニングアドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニングYosuke Mizutani
 
2012研究室紹介(大川)
2012研究室紹介(大川)2012研究室紹介(大川)
2012研究室紹介(大川)猛 大川
 
iREX2015 RTM講習会
iREX2015 RTM講習会iREX2015 RTM講習会
iREX2015 RTM講習会openrtm
 
RTミドルウエア: OpenRTM-aist概要
RTミドルウエア: OpenRTM-aist概要 RTミドルウエア: OpenRTM-aist概要
RTミドルウエア: OpenRTM-aist概要 openrtm
 
db tech showcase 2019 D10 Oracle Database New Features
db tech showcase 2019 D10 Oracle Database New Featuresdb tech showcase 2019 D10 Oracle Database New Features
db tech showcase 2019 D10 Oracle Database New FeaturesNoriyoshi Shinoda
 
2015RTミドルウエア講習会
2015RTミドルウエア講習会2015RTミドルウエア講習会
2015RTミドルウエア講習会openrtm
 
130522 rt講習会(説明用)
130522 rt講習会(説明用)130522 rt講習会(説明用)
130522 rt講習会(説明用)openrtm
 
2013 summercamp 02
2013 summercamp 022013 summercamp 02
2013 summercamp 02openrtm
 
130710 01
130710 01130710 01
130710 01openrtm
 
さわってみようTOPPERS/SSP
さわってみようTOPPERS/SSPさわってみようTOPPERS/SSP
さわってみようTOPPERS/SSPNSaitoNmiri
 
[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...
[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...
[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...Insight Technology, Inc.
 
ネットワークコマンド入力に対応したツール事例
ネットワークコマンド入力に対応したツール事例ネットワークコマンド入力に対応したツール事例
ネットワークコマンド入力に対応したツール事例fumoto kazuhiro
 
RouterBOARD with OpenFlow
RouterBOARD with OpenFlowRouterBOARD with OpenFlow
RouterBOARD with OpenFlowToshiki Tsuboi
 
Fpga online seminar by fixstars (1st)
Fpga online seminar by fixstars (1st)Fpga online seminar by fixstars (1st)
Fpga online seminar by fixstars (1st)Fixstars Corporation
 
130329 02
130329 02130329 02
130329 02openrtm
 
131106 01 i-rex2013
131106 01 i-rex2013131106 01 i-rex2013
131106 01 i-rex2013openrtm
 
Cell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始めCell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始めYou&I
 
Nedo講座・rtmセミナー
Nedo講座・rtmセミナーNedo講座・rtmセミナー
Nedo講座・rtmセミナーopenrtm
 

Similar to NXTプラットフォーム(ETロボコン向けTOPPERS活用セミナー4) (20)

PostgreSQL 12の話
PostgreSQL 12の話PostgreSQL 12の話
PostgreSQL 12の話
 
アドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニングアドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニング
 
2012研究室紹介(大川)
2012研究室紹介(大川)2012研究室紹介(大川)
2012研究室紹介(大川)
 
iREX2015 RTM講習会
iREX2015 RTM講習会iREX2015 RTM講習会
iREX2015 RTM講習会
 
RTミドルウエア: OpenRTM-aist概要
RTミドルウエア: OpenRTM-aist概要 RTミドルウエア: OpenRTM-aist概要
RTミドルウエア: OpenRTM-aist概要
 
db tech showcase 2019 D10 Oracle Database New Features
db tech showcase 2019 D10 Oracle Database New Featuresdb tech showcase 2019 D10 Oracle Database New Features
db tech showcase 2019 D10 Oracle Database New Features
 
2015RTミドルウエア講習会
2015RTミドルウエア講習会2015RTミドルウエア講習会
2015RTミドルウエア講習会
 
130522 rt講習会(説明用)
130522 rt講習会(説明用)130522 rt講習会(説明用)
130522 rt講習会(説明用)
 
2013 summercamp 02
2013 summercamp 022013 summercamp 02
2013 summercamp 02
 
130710 01
130710 01130710 01
130710 01
 
さわってみようTOPPERS/SSP
さわってみようTOPPERS/SSPさわってみようTOPPERS/SSP
さわってみようTOPPERS/SSP
 
[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...
[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...
[db tech showcase Tokyo 2017] D21: ついに Red Hat Enterprise Linuxで SQL Serverが使...
 
ネットワークコマンド入力に対応したツール事例
ネットワークコマンド入力に対応したツール事例ネットワークコマンド入力に対応したツール事例
ネットワークコマンド入力に対応したツール事例
 
RouterBOARD with OpenFlow
RouterBOARD with OpenFlowRouterBOARD with OpenFlow
RouterBOARD with OpenFlow
 
Fpga online seminar by fixstars (1st)
Fpga online seminar by fixstars (1st)Fpga online seminar by fixstars (1st)
Fpga online seminar by fixstars (1st)
 
130329 02
130329 02130329 02
130329 02
 
131106 01 i-rex2013
131106 01 i-rex2013131106 01 i-rex2013
131106 01 i-rex2013
 
Cell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始めCell/B.E. プログラミング事始め
Cell/B.E. プログラミング事始め
 
perfを使ったPostgreSQLの解析(後編)
perfを使ったPostgreSQLの解析(後編)perfを使ったPostgreSQLの解析(後編)
perfを使ったPostgreSQLの解析(後編)
 
Nedo講座・rtmセミナー
Nedo講座・rtmセミナーNedo講座・rtmセミナー
Nedo講座・rtmセミナー
 

NXTプラットフォーム(ETロボコン向けTOPPERS活用セミナー4)