RCX vs. NXT 機能 CPU メモリサイズ ( バイト ) 1 デバイス I/O 表示 サウンド 通信 コンパイラ オープンソース開発環境 RCX H8 (8bit, 16MHz) 32K ( 含むファームウェア ) センサ 3ch モータ 3ch 液晶 8bit PCM 赤外線 GCC f

Similar documents
組込みシステムにおける UMLモデルカタログの実践研究

PowerPoint Resources

EV3_APIの解説.pptx

TECSをサポートする構造設計ツール ZIPC Toy!

RL78開発環境移行ガイド R8C/M16C, H8S/H8SXからRL78への移行(統合開発環境編)(High-performance Embedded Workshop→CS+)

TOPPERS基礎ロボコンセミナー

SWEST 17 mruby の現状と事例紹介 九州工業大学情報工学部田中和明 RubyAssociation 軽量 Ruby フォーラム

1. A/D 入力について分解能 12bit の A/D コンバータ入力です A/D 入力電圧とディジタル値との対応は理論上 入力電圧 0V : 0 入力電圧 +3V : 4095 です 実際はオフセットと傾きがあり ぴったりこの数値にはなりません 2. A/D 入力に使用する信号 STM32L_A

IntroductionForGR-PEACH.pptx

CashDrawer ライブラリ API 仕様書 2014/07/09 CashDrawer ライブラリ API 仕様書 Rev / 10

Microsoft PowerPoint _開発環境構築相談会_資料_05.pptx

関係各位 2019 年 1 月 31 日 ヴイストン株式会社 4 軸独立ステアリング駆動方式の ROS 対応台車ロボット 4WDS ローバー Ver2.0 を発売 ヴイストン株式会社 ( 本社 : 大阪府大阪市 代表取締役 : 大和信夫 ) は 4 輪独立ステアリング駆動式全方位移動台車ロボット 4

TOPPERS 活用アイデア アプリケーション開発 コンテスト 部門 : 活用アイデア部門アプリケーション開発部門 作品のタイトル : Toppers_JSP と Scicos_lab / (Scilab でも可 ) による 組込みメカトロニクス制御シミュレーション 作成者 : 塩出武 ( シオデタ

CCD リニアイメージセンサ用駆動回路 C CCD リニアイメージセンサ (S11155/S ) 用 C は 当社製 CCDリニアイメージセンサ S11155/S 用に開発された駆動回路です S11155/S11156-

アジェンダ Renesas Synergy TM プラットフォーム構成 ThreadX とは ThreadX の状態遷移 ThreadX とμITRONの機能比較 まとめ ページ 2

1 Atollic TrueSTUDIO( GR-PEACH TOPPERS/ASP ASP GR-PEACH mbed ( git

AUTOSAR OSに対するテストケースおよびテストプログラムの自動生成

TRQerS - Introduction

型名 RF007 ラジオコミュニケーションテスタ Radio Communication Tester ソフトウェア開発キット マニュアル アールエフネットワーク株式会社 RFnetworks Corporation RF007SDK-M001 RF007SDK-M001 参考資料 1

技術教育のシラバス: 公式トレーニング

UIOUSBCOM.DLLコマンドリファレンス

2008 年度下期未踏 IT 人材発掘 育成事業採択案件評価書 1. 担当 PM 石川裕 PM ( 東京大学大学院情報理工学系研究科教授 ) 2. 採択者氏名 チーフクリエータ : 加藤淳 ( 東京大学理学部情報科学科学部学生 ) コクリエータ : なし 3. プロジェクト管理組織 株式会社メルコホ

モータ HILS の概要 1 はじめに モータ HILS の需要 自動車の電子化及び 電気自動車やハイブリッド車の実用化に伴い モータの使用数が増大しています 従来行われていた駆動用モータ単体のシミュレーション レシプロエンジンとモータの駆動力分配制御シミュレーションの利用に加え パワーウインドやサ


CMOS リニアイメージセンサ用駆動回路 C CMOS リニアイメージセンサ S 等用 C は当社製 CMOSリニアイメージセンサ S 等用に開発された駆動回路です USB 2.0インターフェースを用いて C と PCを接続

1. LCD LS027B4DH01 について LS027B4DH01 は 400dot x 240dot のグラフィック LCD です 秋月電子通商で購入できます 外形サイズ : 62.8 x x 1.53mm LCD のフレキシブルケーブルの根元の部分はちょっと力を加えただけで表示が

スライド 1

TOPPERS 活用アイデア アプリケーション開発 コンテスト 部門 : 活用アイデア部門アプリケーション開発部門がじぇるね IoT 部門作品のタイトル : TOPPERS_ASP3 カーネルと astah*-uml による状態マシン図でのソフト設計と動作検証の試み作成者 : 塩出武 ( しおでたけ

RTC_STM32F4 の説明 2013/10/20 STM32F4 内蔵 RTC の日付 時刻の設定および読み込みを行うプログラムです UART2( 非同期シリアル通信ポート 2) を使用して RTC の設定および読み込みを行います 無料の開発ツール Atollic TrueSTUDIO for

本資料のご使用につきましては 次の点にご留意願います 本資料の内容については 予告無く変更することがあります 1. 本資料の一部 または全部を弊社に無断で転載 または 複製など他の目的に使用することは堅くお断りいたします 2. 本資料に掲載される応用回路 プログラム 使用方法等はあくまでも参考情報で

TOPPERS活用アイデア・アプリケーション開発

057 { 058 int i; 059 timecounter=0; 060 pwmvalue=0;x=0;v=0; 061 requestdisplaydata=1; 062 tick=1; 063 for (i=0; i<rbuffsize; i++) { 064 ringbuffer[i]=

( ザ ゴルフウォッチスポルト / スポルトプラス共通 ) サポートツール取扱説明書 インストール編 第 1.2 版 Copyright (C) MASA Corporation, All Rights Reserved.

Prog1_10th

(Microsoft PowerPoint - \221g\202\335\215\236\202\335\203\\\203t\203g\203E\203F\203A\215H\212w No02\201i\224z\225z\227p\201j.pptx)

press-1005.OHP

3 無線 / 有線接続で制御 メガローバー Ver2.0 は Wi-Fi / BLE / Bluetooth Classic の 3 種の無線通信と 有線の USB シリアル通信に対応しています 指定のコマンドを用いることで PC やタブレットなど 様々なデバイスからメガローバー Ver2.0 を制

AquesTalk Mac マニュアル

前回の内容 マイクロコンピュータにおけるプログラミング PC上で作成 コンパイル マイコンに転送 実行 プログラムを用いて外部の装置を動作させる LED turnonled turnoffled LCD printf プログラムを用いて外部の装置の状態を読み取る プッシュスイッチ getpushsw

ETロボコン2009 九州地区反省と来年度について

ETCB Manual

MINI2440マニュアル

Microsoft PowerPoint - RL78G1E_スタータキットデモ手順_2012_1119修正版.pptx

Microsoft PowerPoint - lego1.ppt [互換モード]

PCL6115-EV 取扱説明書

CPU VS-RC003 RobovieMaker for VS-RC003

2. [4] NXT 8 5 IT [5] 2006 RCX 5 2 IT A/D [6] A/D 1 PSD LED PSD LED LED A/D [7] LilyPad Arduino PEN LilyPad LED

サポートツール取扱説明書 ( インストール編 ) 第 1.2 版 Copyright (C) MASA Corporation, All Rights Reserved.

OS

slide5.pptx

Presentation Title

Copyright c 2009 by Masaki Yagi

Microsoft Word - Training10_プリプロセッサ.docx

1. UART について UART は Universal Asynchronous Receiver Transmitter の頭文字をとったもので 非同期シリアル通信と呼ばれます シリアル通信とは 一本の信号線でデータをやりとりするために 1bit ずつデータを送出することをいいます データを受

81 /******************************************************************************/ 82 /* スレーブアドレスの設定 */ 83 /*****************************************

2

A. InstallScript プロジェクト InstallScript インストールは InstallScript エンジンによって制御され 決められた順序で一連のイベントが生成されます これらのイベントは インストールを実行するソフトウェアハンドラーをトリガーします たとえば インストールがロ

1. USB の VCP( 仮想 COM ポート ) について USB の VCP( 仮想 COM ポート ) は USB を非同期シリアル通信として使用するための USB のドライバです PC には VCP ドライバをインストールする必要があります USB の VCP( 仮想 COM ポート )

二次元連続動的計画法による知的画像処理システム ImageFileSelector RTC 機能仕様書 ImageFileSelectorRTC Ver.1.0 ( 株 ) 東日本計算センター 1 / 11

課題情報シート テーマ名 : 動画中継ラジコンカーの製作 担当指導員名 : 土山博剛実施年度 : 25 年度施設名 : 四国職業能力開発大学校課程名 : 専門課程訓練科名 : 電子情報技術科課題の区分 : 総合制作実習課題学生数 : 1 時間 : 12 単位 (216h) 課題制作 開発のポイント

SuperH RISC engine C/C++ コンパイラ Ver.7 不具合内容 - 過去のお知らせ SuperH RISC engine C/C++ コンパイラ Ver.7 台における不具合内容を以下に示します のチェックツールをルネサスエレクトロニクス株式会社のホームページ

1. プログラム実行時の動作プログラムを実行すると以下のように動作します 1) NUCLEO-F401RE 上の LED LD2( 緑 ) が 200mSec 間隔で点滅します 2. プロジェクトの構成 2.1. プロジェクト F401N_BlinkLD2 の起動画面 TrueSTUDIO で作成し

PowerPoint プレゼンテーション

セットアップガイド

タイトル

画像ファイルを扱う これまでに学んだ条件分岐, 繰り返し, 配列, ファイル入出力を使って, 画像を扱うプログラムにチャレンジしてみよう

アスラテック株式会社 会社案内

CoIDE 用 F4D_VCP の説明 V /07/05 USB の VCP( 仮想 COM ポート ) による非同期シリアル通信を行うプログラムです Free の開発ツール CoIDE で作成した STM32F4 Discovery 用のプロジェクトです プログラムの開始番地は 0x

ERTLテンプレート

Microsoft Word - マイコンを用いた信号# doc

サポートツール取扱説明書 ( インストール編 ) 第 1.2 版 Copyright (C) MASA Corporation, All Rights Reserved.

PRONETA

組込みLinuxシステムに関する調査研究

tri_s_tg12864_vcp の説明 2014/02/05 飛石伝ひ CPU 基板 の LCD TG12864 の表示プログラムです 漢字表示 (JIS208) を行うことができます USB の VCP ( 仮想 COM ポート ) を使用して非同期シリアル通信により 表示試験を行うことができ

関係各位 2018 年 10 月 10 日 ヴイストン株式会社 研究開発用台車ロボット メカナムローバー Ver2.0 を発売 ~ Arduino 互換の制御基板を搭載し ROS や Arduino IDE に対応 ~ ヴイストン株式会社 ( 本社 : 大阪府大阪市 代表取締役 : 大和信夫 ) は

RH850の割り込み/例外実現方法 CC-RHアプリケーションガイド

電気的特性 (Ta=25 C) 項目 記号 条件 Min. Typ. Max. 単位 読み出し周波数 * 3 fop khz ラインレート * Hz 変換ゲイン Gc ゲイン =2-5 - e-/adu トリガ出力電圧 Highレベル Vdd V -

untitled

Industrial shields brochure_JP

2. 生田仮想デスクトップ PC の接続方法 生田仮想デスクトップ PC に接続する方法は 次の 2 通りです 1. HTML アクセス Internet Explorer や Safari などのブラウザを用います PC に特別なソフトウェアをインストールす る必要が無いので 管理者権限をもってい

<4D F736F F D CC82BD82DF82CC50438AC28BAB90DD92E82E646F63>

ACR38T-D1 技術仕様書 V1.08

de:code 2019 CM04 Azure Kinect DK 徹底解説 ~ 進化したテクノロジーとその実装 ~ 技術統括室 千葉慎二 Ph.D.

2008 DS T050049

RobotCでの基本プログラミング

Android Layout SDK プログラミング マニュアル

新コンフィギュレータのフレームワークについて

AquesTalk プログラミングガイド

API 連携方式 外部 DLL の呼び出し宣言 外部 DLL の呼び出し宣言のサンプルコード (Microsoft Visual C#.NET の場合 ) プログラムコードの先頭で using System.Runtime.InteropServices; が必要 クラスの内部に以下のような外部 D

USB_IR_Remote_Controller_Advance_Library 取扱説明書 2016/06/23 R03 Assembly Desk USB_IR_Remote_Controller_Advance_Library を使用すると 弊社製 USB IR Remote controll

HDLトレーナーサンプルプログラム説明書

CU-Roboconについて

2014 年 11 月 20 日 ET2014 スペシャルセッション C-2 mruby プログラム言語 Ruby による組込みソト開発 九州工業大学田中和明 軽量 Ruby フォーラム Ruby アソシエーション

利用のためのPC環境設定

Raspberry Pi BF BF BF Raspberry Pi PC USB HDMI OS SD SD OS Raspberry Pi Model B MicroUSB MicroSD OS SD GPIO HDMI USB LAN Raspberry Pi MicroUSB MicroSD

改版履歴 Ver 改版日内容 /02/07 新規作成 2 / 18

S1C17 Family Application Note S1C17 シリーズ PORT 多重割り込みアプリケーションノート Rev.1.0

AquesTalk2 Mac マニュアル

8 / 0 1 i++ i 1 i-- i C !!! C 2

プレポスト【問題】

Transcription:

ET ソフトウェアデザインロボットコンテスト 2009 年 NXT 走行体 & 開発環境 実施説明会資料 Embedded Technology Software Design Robot Contest NXT 走行体 開発環境 nxtosek/jsp 開発環境 C 言語サンプルプログラム 目次 1

RCX vs. NXT 機能 CPU メモリサイズ ( バイト ) 1 デバイス I/O 表示 サウンド 通信 コンパイラ オープンソース開発環境 RCX H8 (8bit, 16MHz) 32K ( 含むファームウェア ) センサ 3ch モータ 3ch 液晶 8bit PCM 赤外線 GCC for H8 BrickOS: C/C++ lejos: Java LEGO MINDSTORMS NXT ARM7(32bit, 48MHz) ROM+RAM:64K ( 拡張 NXT ファームウェア ) ROM:224K / RAM:50K (NXT BIOS) センサ 4ch (A/D, I2C) モータ 3ch ( 分解能 1deg のエンコーダ内蔵 ) LEGO 社は HW 回路図 /SW を公開 100 64 ピクセル液晶 8bit PCM ( トーン /WAV) Bluetooth マスタ / スレーブ (NXT/PC と通信可能 ) USB スレーブ (PC と通信可能 ) GNU ARM (GCC 4.0.2) nxtosek/jsp (TOPPERS ATK/JSP): C/C++ lejos NXJ : Java 1: NXT のメモリサイズは nxtosek/jsp 使用時のデータ NXT 走行体仕様 2 輪倒立振子ライントレースロボット (NXTway-ET) 倒立振子制御により 2 輪でバランスしながら走行坂道や多少の凸凹も走破可能 ジャイロセンサ 光センサ タッチセンサ 超音波センサを搭載 エンコーダ内蔵 DC モータによる左右輪独立制御 Bluetooth USB 通信対応 開発環境はオープンソース ( 無償提供 ) 倒立振子制御機能は C API として提供 制御工学用教材としても利用可能 2008 年チャンピオンシップ大会におけるデモ走行の様子 http://www.kumikomi.net/article/movie/2008/05nxt/index.html 2

組立図 (PDF) nxtosek/jsp の Web サイトにて入手可能 (http://lejos-osek.sourceforge.net/jp/nxtway_gs.htm) NXTway-GS_Building_Instructions.pdf 目次 NXT 走行体 開発環境 nxtosek/jsp 開発環境 C 言語サンプルプログラム 3

nxtosek/jsp(c/c++) NXT 用 C/C++ 開発環境 (http://lejos-osek.sourceforge.net/) TOPPERS ATK/JSP をベースとした国産オープンソースプロジェクト OSEK 仕様 RTOS( デフォルト ) 又は μitron4.0 仕様 RTOS クロス環境 : GCC 4.0.2(GNUARM) NXT 用 C/C++ API を提供 モデルベース開発にも対応 倒立振子制御 C API を提供 対応 OS: Windows XP/Vista NXT 用 Java 開発環境 (http://lejos.sourceforge.net/) NXT 専用 VM を使用 豊富な NXT 用 Java API を提供 OOP デザインパターンに対応 倒立振子制御 API は未提供 ( 独自に作成する必要あり ) 対応 OS: Windows/Linux/Mac lejos NXJ(Java) 4

NXT 走行体 開発環境 nxtosek/jsp 開発環境 C 言語サンプルプログラム 目次 nxtosek/jsp 開発環境構築 対象 OS: Windows XP SP2/Windows Vista SP1 開発環境構築に ( 最低限 ) 必要なもの Cygwin (+ make 3.8.1) GNUARM 4.0.2 LEGO MINDSTORMS NXT Driver NeXTTool( プログラムアップロード用 ) 拡張 NXT ファームウェア nxtosek/jsp v2.07 拡張 NXT ファームウェアの使用を推奨 上記ソフトウェアは全て無償入手可能 nxtosek Web サイトに詳細情報 5

nxtosek/jsp アーキテクチャ 好みに応じて RTOS を選択 ( デフォルト :OSEK) リアルタイム制御用 C API C/C++ API ECRobot C API - 各種センサ - モータ - Bluetooth/USB 通信 - NXT( 含む液晶表示 ) C++ API 海外の方々が開発 各種センサクラス モータクラス アニメーション描画クラス クラスの動的生成 (new/delete) 6

NXT GamePad Bluetooth 通信用 PC ソフトウェア (http://lejos-osek.sourceforge.net/jp/nxtgamepad.htm) - Bluetooth 通信による R/C( 別途 PC HID ゲームパッドが必要 ) データロギング機能を提供 - ロギングデータは PC へ随時送信 結果は CSV ファイルとして保存 - Bluetooth ドングルが必要 (LEGO 推奨ドングルでのみ動作確認 ) 倒立振子制御 C API nxtosek/jsp C ライブラリとして提供 (http://lejos-osek.sourceforge.net/jp/nxtway_gs.htm) Simulink モデルからの自動生成 C コードを採用 モデルを HTML ファイルとして配布 ( 要 SVG 対応 Web ブラウザ ) 現代制御 ( 状態フィードバック + サーボ制御 ) 制御パラメータは適合可能 7

倒立振子制御 C API 車両制御命令は RCX 走行体と同様 ( 駆動命令と旋回命令 ) ユーザー独自の旋回制御も可能 ( 例 PID 制御 ) [RCX 車両制御サンプル ] 駆動命令 モータ A 旋回命令 モータ C [NXT 車両制御サンプル ] 駆動命令 旋回命令 倒立振子制御 C API モータ B モータ C [NXT 車両制御拡張例 ] 駆動命令 旋回 0 倒立振子制御 C API 旋回制御 + - モータ B モータ C 目次 NXT 走行体 開発環境 nxtosek/jsp 開発環境 C 言語サンプルプログラム 8

C 言語サンプルプログラム ライントレースサンプルプログラム (RCX 用サンプルをベースに必要最低限の機能を実装 ) sample.c:toppers/atk(osek) 用メインソースファイル / ファイル名 : sample.c 概要 : 2 輪倒立振子ライントレースロボットの TOPPERS/ATK(OSEK) 用サンプルプログラム / #include "kernel.h" #include "kernel_id.h" #include "ecrobot_interface.h" #include "balancer.h" /* 倒立振子制御用ヘッダファイル */ #define GYRO_OFFSET 605 /* ジャイロセンサオフセット値 ( 角速度 0[deg/sec] 時 ) */ #define WHITE 500 /* 白色の光センサ値 */ #define BLACK 700 /* 黒色の光センサ値 */ //* // 関数名 : user_1ms_isr_type2 // 引数 : なし // 戻り値 : なし // 概要 : 1msec 周期割り込みフック関数 (OSEK ISR type2 カテゴリ ) //* void user_1ms_isr_type2(void){/* 空 */} //* // タスク名 : OSEK_Task_bg // 概要 : バックグラウンド ( 常駐 ) タスク //* TASK(OSEK_Task_bg) { signed char forward; /* 前後進命令 : -100( 後進 )~100( 前進 ) */ signed char turn; /* 旋回命令 : -100( 左旋回 )~100( 右旋回 ) */ signed char pwm_l, pwm_r; /* 左右モータ PWM 出力 */ while (!ecrobot_get_touch_sensor(nxt_port_s1)); /* タッチセンサ押下待機 */ balance_init(); /* 倒立振子制御初期化 */ ecrobot_set_light_sensor_active(nxt_port_s3); /* 光センサ赤外線 ON */ nxt_motor_set_count(nxt_port_c, 0); /* 左モータエンコーダリセット */ nxt_motor_set_count(nxt_port_b, 0); /* 右モータエンコーダリセット */ forward = 50; /* 前進命令 */ while(1) { if (ecrobot_get_light_sensor(nxt_port_s3) <= (WHITE + BLACK)/2) turn = 50; /* 右折 */ else turn = -50; /* 左折 */ /* 倒立振子制御 (forward = 0, turn = 0 で静止バランス ) */ balance_control( (float)forward, (float)turn, (float)ecrobot_get_gyro_sensor(nxt_port_s4), /* ジャイロセンサ値 */ (float)gyro_offset, /* ジャイロセンサオフセット値 */ (float)nxt_motor_get_count(nxt_port_c), /* 左モータ回転角度 (deg) */ (float)nxt_motor_get_count(nxt_port_b), /* 右モータ回転角度 (deg) */ (float)ecrobot_get_battery_voltage(), /* バッテリ電圧 [mv] */ &pwm_l, &pwm_r); nxt_motor_set_speed(nxt_port_c, pwm_l, 1); /* 左モータ PWM 出力セット */ nxt_motor_set_speed(nxt_port_b, pwm_r, 1); /* 右モータ PWM 出力セット */ systick_wait_ms(4); /* 4msecウエイト */ } sample.c } の続き 9

balancer_param.c: 倒立振子制御パラメータソースファイル / * ファイル名 : balancer_param.c 概要 : 倒立振子制御パラメータ 注記 : 倒立振子制御パラメータは制御特性に大きな影響を与えます * / /*============================================================================ * データ定義 *===========================================================================*/ float A_D = 0.8F; /* ローパスフィルタ係数 ( 左右車輪の平均回転角度用 ) */ float A_R = 0.996F; /* ローパスフィルタ係数 ( 左右車輪の目標平均回転角度用 ) */ /* 状態フィードバック係数 * K_F[0]: 車輪回転角度係数 * K_F[1]: 車体傾斜角度係数 * K_F[2]: 車輪回転角速度係数 * K_F[3]: 車体傾斜角速度係数 */ float K_F[4] = {-0.870303F, -31.9978F, -1.1566F, -2.78873F}; float K_I = -0.44721F; /* サーボ制御用積分フィードバック係数 */ float K_PHIDOT = 25.0F; /* 車体目標旋回角速度係数 */ float K_THETADOT = 7.5F; /* モータ目標回転角速度係数 */ const float BATTERY_GAIN = 0.001089F; /* PWM 出力算出用バッテリ電圧補正係数 */ const float BATTERY_OFFSET = 0.625F; /* PWM 出力算出用バッテリ電圧補正オフセット */ sample.oil:toppers/atk(osek) 設定ファイル / ファイル名 : sample.oil 概要 : サンプル用 OSEK OIL(OSEK Implementation Language) ファイル OSEK OIL 記述方法詳細については nxtosek toppers_osek doc TOPPERS_OSEK カーネル SG 取扱説書.pdf を参照してください / #include "implementation.oil" CPU ATMEL_AT91SAM7S256 { OS LEJOS_OSEK /* nxtosek の旧名 */ { STATUS = EXTENDED; STARTUPHOOK = FALSE; ERRORHOOK = FALSE; SHUTDOWNHOOK = FALSE; PRETASKHOOK = FALSE; POSTTASKHOOK = FALSE; USEGETSERVICEID = FALSE; USEPARAMETERACCESS = FALSE; USERESSCHEDULER = FALSE; }; APPMODE appmode1{}; /* TOPPERS OSEK では単一の APPMODE のみサポート (?) */ /* OSEK_Task_bg タスク設定 */ TASK OSEK_Task_bg { AUTOSTART = TRUE { APPMODE = appmode1; }; /* StartOS で自動的に READY */ PRIORITY = 1; /* 最低優先度 */ ACTIVATION = 1; SCHEDULE = FULL; STACKSIZE = 512; /* bytes */ }; }; 10

さいごに 世の中 ロボコンは星の数あれど 2 輪倒立振子ロボットによる競技は世界初!( とおもわれます ) 技術委員会も わくわくしながら今年の ETロボコンをサポートしていきたいと思います ぜひ奮ってご参加ください 技術委員会一同 11