Pirtunit slideshare

14
RaspberryPi 用拡張入出力ボード:PiRT-Unit RTミドルウエア教育用途への適用 - 〇安藤慶昭(産総研) 関山守(産総研) 神徳徹雄(産総研) 深澤篤史(ウィン電子工業) 片見剛人(ウィン電子工業)

Transcript of Pirtunit slideshare

Page 1: Pirtunit slideshare

RaspberryPi 用拡張入出力ボード:PiRT-Unit- RTミドルウエア教育用途への適用 -

〇安藤慶昭(産総研) 関山守(産総研)神徳徹雄(産総研)深澤篤史(ウィン電子工業)片見剛人(ウィン電子工業)

Page 2: Pirtunit slideshare

はじめに

• ソフト・ハード融合領域と教育

• RaspberryPiとPiRT-Unit– RT-UnitとRTC-Lite– PiRT-Unitの仕様・特徴

• ROBOMEC2013 RTM講習会での利用

• まとめ

2

Page 3: Pirtunit slideshare

ソフト・ハード融合領域と教育

3

ロボット工学、情報工学、メディア工学、先端計測工学、高エネルギー物理学、先進製造分野、メディアアート、etc…

メディアアートにおけるRTミドルウエアの利用 ロボットにおけるRTMの利用 DAQシステムでのRTMの利用 先端計測分野でのRTMの利用

ソフトウェア技術 ハードウェア技術

様々な分野で、ハードとソフトの融合が進み両方の技術を習得した人材が必要とされている!!

Page 4: Pirtunit slideshare

RTミドルウエア講習会

• これまでに約40回、600名以上を対象に講習会を開催

• ソフトとハードの技術を短期間で習得することは難しい

• 理想:

– 一人1台のロボット

– すぐに試せる環境

– 十分な時間

4

Page 5: Pirtunit slideshare

RaspberryPi• 低価格Linuxボード

– 約3,000円

• debianが動作– ≠ uClinux, busybox– セルフコンパイル可能

• リッチなスペック– CPU: ARM11 700MHz– メモリ: 512MB– ストレージ: SDメモリ

• 多彩なIF,IO– Ethernet,USB,Composite

Video, HDMI– GPIO, SPI, I2C, UART

5

HD

MI

LAN

USB

Video

PWRA

udio

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

Page 6: Pirtunit slideshare

RaspberryPi• 低価格Linuxボード

– 約3,000円

• debianが動作– ≠ uClinux, busybox– セルフコンパイル可能

• リッチなスペック– CPU: ARM11 700MHz– メモリ: 512MB– ストレージ: SDメモリ

• 多彩なIF,IO– Ethernet,USB,Composite

Video, HDMI– GPIO, SPI, I2C, UART

6

HD

MI

LAN

USB

Video

PWRA

udio

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ミドルウエアを利用することで、ソフトとハードの技術を効率よく習得するための

プラットフォームが実現できるのでは?

Page 7: Pirtunit slideshare

RTUnit(2003年~) /RTC-Lite(2005年~)

• ネットワーク型マイコン機器

– small/μRTUnitをRTMで統合

7

small RTUnit

μRTUnit

RTUnit 仕様

MPU Microchip PIC16F877AROM 8kwordsRAM 368 bytesEEPROM 256 bytesクロック max 20MHzA/D 10bit ×8chDIO 24chシリアル 2ch通信 LANTRONIX XPort電源 DC 5V

Page 8: Pirtunit slideshare

モデルに基づくコード生成

8

コンポーネント仕様MyComptemp.sensor devicetemp. sensor RTCSTATICPERIODICmode:TimedBooltemp: TimedDouble

name:category:description:comp_type:act_type:InPorts:OutPorts:

Template code generator

C++backend

Javabackend

Pythonbackend

RTC-Litebackend

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 MyCompImplextends DataFlowComponent{public ConsoleInImpl(mgr){}

:};

#/usr/bin/env pythonimport RTCclass 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 pythonimport RTCclass Proxy(

DataFlowComponent):def __init__(self, manager)::

def onExecute(self, ec_id): :

同一のRTC仕様からは

言語が異なっていても、同じ(コンポーネントモデルの)RTCが生成される

Page 9: Pirtunit slideshare

モデルに基づくコード生成

9

コンポーネント仕様MyComptemp.sensor devicetemp. sensor RTCSTATICPERIODICmode:TimedBooltemp: TimedDouble

name:category:description:comp_type:act_type:InPorts:OutPorts:

Template code generator

C++backend

Javabackend

Pythonbackend

RTC-Litebackend

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 MyCompImplextends DataFlowComponent{public ConsoleInImpl(mgr){}

:};

#/usr/bin/env pythonimport RTCclass 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 pythonimport RTCclass Proxy(

DataFlowComponent):def __init__(self, manager)::

def onExecute(self, ec_id): :

同一のRTC仕様からは

言語が異なっていても、同じ(コンポーネントモデルの)RTCが生成される

Proxy Component

Small RT-UnitI/O

RTC-Lite

PC

RTC-Lite protocol

フル規格RTCへフル規格RTCから

Page 10: Pirtunit slideshare

PiRT-UnitPiRT-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

AD

0A

D1

AD

2A

D3 DA0 DA1

PW

M

RS232CDSUB 9pin

PiRT-Unit

XBee

GND5VIn

GND5VIn

GND5VIn

GND5VIn

3.3VSCLSDA

GND

I2C

シリアルポート

Zigbeeモジュール

DA 2chA

D4c

hI2

C

PWM

普通のLinuxから普通に触れる入出力ボード・クロスコンパイル不要・マシン語・アセンブリ言語不要

手軽にセンサ・アクチュエータ等を試せる環境

Page 11: Pirtunit slideshare

PiRT-Unit特長

• Xbeeを利用可能– 手軽に無線利用

• Phidgetセンサを利用可能

– 様々なセンサを手軽に利用可能

• チュートリアルとセットアップスクリプト

– 環境構築を支援するプログラムを提供

– http://openrtm.org

11

AD

GND5VIn

Phidgetセンサユニット PiRT-UnitADCコネクタ

Page 12: Pirtunit slideshare

RTM講習会での利用ROBOMEC2013(5月22日)

NSNS

localhost(デフォルト)に登録 localhost(デフォルト)に登録

RTSystemEditorに両方のネームサーバを登録

それぞれにネームサーバを立てる

Raspberry Pi+ Kobuki

RaspberryPi+ PiRT-Unit

MinistickSensor

PC

MinistickとKobukiを接続

vel

targetVelocity

Page 13: Pirtunit slideshare

RTM講習会での利用ROBOMEC2013(5月22日)

• 課題– Pythonによるプログラミング

– ひな型を提供

– IO読み込みから移動ロボット

の速度ベクトルへの変換コードを実装

• 結果– Pythonは初心者にも容易に

理解できる

– Linux上のCUIでの操作に難あり

– 無線接続が不安定なため接続トラブルが発生

13

Page 14: Pirtunit slideshare

まとめ• ソフト・ハード融合領域と教育用プラットフォームとしてのRaspberryPiとPiRT-Unit– セルフコンパイル可能なLinux– センサ等を容易に接続可能なIO拡張ボード

– Webチュートリアル・自動セットアップスクリプト

• ROBOMEC2013 RTM講習会での利用

– スクリプト言語の利用が有用

– Linux等CUIのレクチャーから必要:カリキュラムの改善

– RTミドルウエアによる拡張性、他のシステムとの接続

• PiRT-Unitを利用したチュートリアル作成を予定

– 大学の先生方のご意見をいただければ幸いです

14