Pirtunit slideshare
Upcoming SlideShare
Loading in...5
×
 

Pirtunit slideshare

on

  • 753 views

 

Statistics

Views

Total Views
753
Views on SlideShare
390
Embed Views
363

Actions

Likes
0
Downloads
3
Comments
0

2 Embeds 363

http://www.openrtm.org 199
http://openrtm.org 164

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Pirtunit slideshare Pirtunit slideshare Presentation Transcript

  • RaspberryPi 用拡張入出力ボード:PiRT-Unit - RTミドルウエア教育用途への適用 - 〇安藤慶昭(産総研) 関山守(産総研) 神徳徹雄(産総研) 深澤篤史(ウィン電子工業) 片見剛人(ウィン電子工業)
  • はじめに • ソフト・ハード融合領域と教育 • RaspberryPiとPiRT-Unit – RT-UnitとRTC-Lite – PiRT-Unitの仕様・特徴 • ROBOMEC2013 RTM講習会での利用 • まとめ 2
  • ソフト・ハード融合領域と教育 3 ロボット工学、情報工学、メディア工学、先端計測工学、 高エネルギー物理学、先進製造分野、メディアアート、etc… メディアアートにおけるRTミドルウエアの利用 ロボットにおけるRTMの利用 DAQシステムでのRTMの利用 先端計測分野でのRTMの利用 ソフトウェア技術 ハードウェア技術 様々な分野で、ハードとソフトの融合が進み 両方の技術を習得した人材が必要とされている!!
  • RTミドルウエア講習会 • これまでに約40回、 600名以上を対象に講 習会を開催 • ソフトとハードの技術を 短期間で習得すること は難しい • 理想: – 一人1台のロボット – すぐに試せる環境 – 十分な時間 4
  • RaspberryPi • 低価格Linuxボード – 約3,000円 • debianが動作 – ≠ uClinux, busybox – セルフコンパイル可能 • リッチなスペック – CPU: ARM11 700MHz – メモリ: 512MB – ストレージ: SDメモリ • 多彩なIF,IO – Ethernet,USB,Composite Video, HDMI – GPIO, SPI, I2C, UART 5 HDMI LAN USB Video PWR Audi o 5V power 5V power Ground GPIO 14 (TXD) GPIO 15 (RXD) GPIO 18 (PCM_CLK) Ground GPIO 23 GPIO 24 Ground GPIO 25 GPIO 8 (CE0) GPIO 7 (CE1) 3.3V power GPIO 0 (I2C SDA) GPIO 1 (I2C SCL) GPIO 4 (GPCLK0) Ground GPIO 17 GPIO 21 (PCM_DOUT) GPIO 22 3.3V power GPIO 10 (MOSI) GPIO 9 (MISO) GPIO 11 (SCLK) Ground 1 2 25 26 Raspberry Pi
  • RaspberryPi • 低価格Linuxボード – 約3,000円 • debianが動作 – ≠ uClinux, busybox – セルフコンパイル可能 • リッチなスペック – CPU: ARM11 700MHz – メモリ: 512MB – ストレージ: SDメモリ • 多彩なIF,IO – Ethernet,USB,Composite Video, HDMI – GPIO, SPI, I2C, UART 6 HDMI LAN USB Video PWR Audi o 5V power 5V power Ground GPIO 14 (TXD) GPIO 15 (RXD) GPIO 18 (PCM_CLK) Ground GPIO 23 GPIO 24 Ground GPIO 25 GPIO 8 (CE0) GPIO 7 (CE1) 3.3V power GPIO 0 (I2C SDA) GPIO 1 (I2C SCL) GPIO 4 (GPCLK0) Ground GPIO 17 GPIO 21 (PCM_DOUT) GPIO 22 3.3V power GPIO 10 (MOSI) GPIO 9 (MISO) GPIO 11 (SCLK) Ground 1 2 25 26 Raspberry Pi RaspberryPiとRTミドルウエアを利用することで、 ソフトとハードの技術を効率よく習得するための プラットフォームが実現できるのでは?
  • RTUnit(2003年~) /RTC-Lite(2005年~) • ネットワーク型マイコン機器 – small/μRTUnitをRTMで統合 7 small RTUnit μRTUnit RTUnit 仕様 MPU Microchip PIC16F877A ROM 8kwords RAM 368 bytes EEPROM 256 bytes クロック max 20MHz A/D 10bit ×8ch DIO 24ch シリアル 2ch 通信 LANTRONIX XPort 電源 DC 5V
  • モデルに基づくコード生成 8 コンポーネント仕様 MyComp temp.sensor device temp. sensor RTC STATIC PERIODIC mode:TimedBool temp: TimedDouble name: category: description: comp_type: act_type: InPorts: OutPorts: Template code generator C++ backend Java backend Python backend RTC-Lite backend RTC source for C++ RTC source for Java RTC source for Python RTC-Lite source for PIC C RTC-Lite proxy code class MyComp : public DataflowComponent { public: virutal onExecute(ec_id); : private: TimedBool m_mode; TimedDouble m_temp; }; import RTC.DataFlowComponent; public class MyCompImpl extends DataFlowComponent { public ConsoleInImpl(mgr) { } : }; #/usr/bin/env python import RTC class MyComp( DataFlowComponent): def __init__(self, manager): : def onExecute(self, ec_id): : #include <16f877a.h> #include "rtc_base.c“ int main (void) { rtc_connect_proxy(); rtc_mainloop(); return 0; } #/usr/bin/env python import RTC class Proxy( DataFlowComponent): def __init__(self, manager): : def onExecute(self, ec_id): : 同一のRTC仕様からは 言語が異なっていても、 同じ(コンポーネントモデ ルの)RTCが生成される
  • モデルに基づくコード生成 9 コンポーネント仕様 MyComp temp.sensor device temp. sensor RTC STATIC PERIODIC mode:TimedBool temp: TimedDouble name: category: description: comp_type: act_type: InPorts: OutPorts: Template code generator C++ backend Java backend Python backend RTC-Lite backend RTC source for C++ RTC source for Java RTC source for Python RTC-Lite source for PIC C RTC-Lite proxy code class MyComp : public DataflowComponent { public: virutal onExecute(ec_id); : private: TimedBool m_mode; TimedDouble m_temp; }; import RTC.DataFlowComponent; public class MyCompImpl extends DataFlowComponent { public ConsoleInImpl(mgr) { } : }; #/usr/bin/env python import RTC class MyComp( DataFlowComponent): def __init__(self, manager): : def onExecute(self, ec_id): : #include <16f877a.h> #include "rtc_base.c“ int main (void) { rtc_connect_proxy(); rtc_mainloop(); return 0; } #/usr/bin/env python import RTC class Proxy( DataFlowComponent): def __init__(self, manager): : def onExecute(self, ec_id): : 同一のRTC仕様からは 言語が異なっていても、 同じ(コンポーネントモデ ルの)RTCが生成される Proxy Component Small RT-Unit I/O RTC-Lite PC RTC-Lite protocol フル規格RTCへフル規格RTCから
  • PiRT-Unit PiRT-Unit諸元 ADコンバータ 10bit, 4ch, 200S/s DAコンバータ 12bit, 2ch PWM出力 1ch, RCサーボモータ用 RS232C D-SUB 9pinコネクタ Xbeeとジャンパにて切り替え XBee Xbeeモジュール接続コネクタ 電源入力 5V DC入力 RaspberryPiへ電源供給可能 RaspberryPiからの電源供給 でも動作(例:秋月のアダプタ) 10 PWR AD0AD1AD2AD3 DA0 DA1 PWM RS232C DSUB 9pin PiRT-Unit XBee GND 5V In GND 5V In GND 5V In GND 5V In 3.3V SCL SDA GND I2C シリアルポート Zigbee モジュール DA 2ch AD4chI2C PWM 普通のLinuxから普通に触れる入出力ボード ・クロスコンパイル不要 ・マシン語・アセンブリ言語不要 手軽にセンサ・アクチュエータ等を試せる環境
  • PiRT-Unit 特長 • Xbeeを利用可能 – 手軽に無線利用 • Phidgetセンサを利用可能 – 様々なセンサを手軽に利用 可能 • チュートリアルとセットアッ プスクリプト – 環境構築を支援するプログラ ムを提供 – http://openrtm.org 11 AD GND 5V In Phidgetセンサユニット PiRT-Unit ADCコネクタ
  • RTM講習会での利用 ROBOMEC2013(5月22日) NSNS localhost(デフォルト)に登録 localhost(デフォルト)に登録 RTSystemEditorに両方の ネームサーバを登録 それぞれにネームサーバを立てる Raspberry Pi + Kobuki RaspberryPi + PiRT-Unit Ministick Sensor PC MinistickとKobuki を接続 vel targetVelocity
  • RTM講習会での利用 ROBOMEC2013(5月22日) • 課題 – Pythonによるプログラミング – ひな型を提供 – IO読み込みから移動ロボット の速度ベクトルへの変換コー ドを実装 • 結果 – Pythonは初心者にも容易に 理解できる – Linux上のCUIでの操作に難 あり – 無線接続が不安定なため接 続トラブルが発生 13
  • まとめ • ソフト・ハード融合領域と教育用プラットフォームとし てのRaspberryPiとPiRT-Unit – セルフコンパイル可能なLinux – センサ等を容易に接続可能なIO拡張ボード – Webチュートリアル・自動セットアップスクリプト • ROBOMEC2013 RTM講習会での利用 – スクリプト言語の利用が有用 – Linux等CUIのレクチャーから必要:カリキュラムの改善 – RTミドルウエアによる拡張性、他のシステムとの接続 • PiRT-Unitを利用したチュートリアル作成を予定 – 大学の先生方のご意見をいただければ幸いです 14