40
OSC2017 Kyoto IoTアプリ開発をリアルタイムOSレベルアップしませんか? ~高品質な組込み向けオープンソースを 開発するTOPPERSプロジェクトのご紹介~ NPO法人 TOPPERSプロジェクト 高瀬 英希 1 TOPPERS公式マスコット 「とぱめ」 2017年8月5日

TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

Embed Size (px)

Citation preview

Page 1: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

OSC2017 Kyoto

IoTアプリ開発をリアルタイムOSでレベルアップしませんか?~高品質な組込み向けオープンソースを

開発するTOPPERSプロジェクトのご紹介~

NPO法人 TOPPERSプロジェクト

高瀬 英希

1

TOPPERS公式マスコット「とぱめ」

2017年8月5日

Page 2: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

目次

2

1.組込みシステムとは?

2.TOPPERSプロジェクトとは?

3.とりあえず触ってみませんか?

GR-PEACHでお手軽RTOSプログラミング

4.こんなことができます!

展示ブースのご紹介

5.まとめ:TOPPERS入会のススメ

Page 3: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

1. 組込みシステムとは?

3

Page 4: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

身の回りにある組込みシステム

4OSC2016@Nagoya

FA機器その他 自動車

航空機

マルチメディア通信機器

家電製品OA機器

Page 5: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

組込みシステムのオープンソース(1/2)

ハードウェア設計HW:IP(HDLソースコード)

プログラミング言語

プログラム開発環境

5

Page 6: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

プログラム実行環境

リアルタイムOS

OS

6

組込みシステムのオープンソース(2/2)

Page 7: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

2. TOPPERSプロジェクトとは?

7

Page 8: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

TOPPERSプロジェクトとは?

TOPPERS = Toyohashi OPen Platform forEmbedded and Real-time Systems

プロジェクトの活動内容

• ITRON仕様の技術開発成果を出発点としたプロジェクト

• 組込システム構築の基盤となる各種の高品質なオープンソースソフトウェアを開発するとともに,その利用技術を提供

組込システム分野において,Linuxのように広く使われる

オープンソースOSの構築を目指す!

プロジェクトの推進主体

• 産学官の団体と個人が参加する産学官民連携プロジェクト

• 2003年9月にNPO法人として組織化

• 以前は,名古屋大学(2002年度までは豊橋技術科学大学)高田研究室を中心とする任意団体として活動

8

Page 9: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

TOPPERSプロジェクトの狙い

決定版のITRON仕様OSの開発

• ITRON仕様が抱える過剰な重複投資と過剰な多様性の問題を解決(または軽減)

次世代のリアルタイムOS技術の開発

• 組込みシステムの要求に合致し,ITRONの良さを継承する次世代のリアルタイムOS技術を開発

Linuxと類似のOSをもう1つ作っても意味がない!

• オープンソースソフトウェア化により産学官の力を結集

組込みシステム開発技術と開発支援ツールの開発

• 高品質な組込みシステムの効率的な開発を支援

組込みシステム技術者の育成への貢献

• オープンソースソフトウェアを用いた教育コースや教材を開発し,それを用いた教育の場を提供

ほぼ完了

9

Page 10: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

次世代のリアルタイムカーネル技術! 高信頼性・安全性・リアルタイム性を追求

• TOPPERS新世代カーネル(ITRON仕様からの発展)

• 次世代車載システム向けRTOS(AUTOSAR仕様をベース)

• 宇宙機向けソフトウェアプラットフォーム(SpaceWire OS)

10

重点的に取り組んでいるテーマ

Page 11: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

ソフトウェア部品化技術,セキュリティ向上技術• TECS(TOPPERS組込みコンポーネントシステム)

• SafeG(高信頼組込みシステム向けデュアルOSモニタ)

技術者育成のための教材開発• ETロボコン向けプラットフォームと教材の提供

• TOPPERS/EV3RT & mruby+TECS

11

重点的に取り組んでいるテーマ

組込みソフトウェアの設計力・実装力を競う開発コンテスト!

組込み技術教育の機会を提供しています。

Page 12: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

ホームネットワーク技術• ECHONET Lite仕様準拠のミドルウェア、支援ツールの作成

12

重点的に取り組んでいるテーマ

HEMS

ECHONET Lite

ECHONET Lite

Internet

インターネット

無線LAN

専用回線

家庭内LAN

電力会社

スマートメーター

創エネ

畜エネ省エネ

見える化

機器が対象

Page 13: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

TOPPERS/R2CA (TOPPERS RTE/RTOS Compatible with Arduino)

•Arduinoハードウェア上でTOPPERS/ASPカーネルを実行

•組込みソフトウェア開発のエントリからのステップアップ用

さらに詳しく知りたい方は

https://dev.toppers.jp/trac_user/contrib/wiki/rtos_arduino

Qiitaにも多数の記事を公開しています

http://qiita.com/tags/R2CA

13

ArduinoでもTOPPERS!

Page 14: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

3. とりあえず使ってみませんか??

14

Page 15: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

15

とりあえず凄そうだけどどう使うの??

この世は金と時間が全てや!

組込みボードでHello, World!!してみたい!!

色んな処理を1つのボードでまとめちゃいたい

アプリのloopが長くなってきた,,,

どこになに書いてあったっけ,,,

組込みは環境整えるのがメンドいやん!?

※このスライドは個人の見解です.所属ともプロジェクトとも講演者とも一切関係ありません.

きっちりかっちり時間制御したい

Page 16: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

16

そんなあなたにGR-PEACH!!

Renesas Cortex-A9 RZ/A1H (400MHz)

http://www.core.co.jp/product/m2m/gr-peach/#full_pin-assign

Page 17: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

特徴

• Arduino用ライブラリをGR-PEACHに移植

• Arduinoプログラミングスタイル(setup()とloop())で開発

• マルチタスク(複数loop())を使用できるよう拡張

• リアルタイムOSのアプリからもAPIを呼出し可能

•mbedライブラリに依存(HALやEthernetInterafaceが必要)

主な機能

• デジタル/アナログ入出力,外部割込み管理

• SDカード制御

• Ethernetクライアント機能

• LCD制御SPI通信

• リアルタイムクロック

• ×EEPROM読書き,ソフトウェアシリアル通信,モータ制御(Servo, Stepper),Ethernetサーバ機能,USBホスト, Firmata, I2C

17

使えるArduinoライブラリ

Page 18: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

特徴

• mbed対応ボード用のライブラリ

• アプリケーションのソースコード互換性を維持

• ARM社のRTOSであるRTXを使用(デフォルト)

• 本環境では,RTXをTOPPRES/ASPに変更

主な機能

• HAL(Hardware Abstruction Layer) (mbed-src)

• EthernetInterface (EthernetInterface)※LwIP[GPLv2]も含む

• FAT File System (FATFileSystem)※FatFs[BSD-style License]を含む

• HTTP Server (HttpServer_snapshot)

• RPC(Remote Procedure Call) (mbed-rpc)

• I2C (i2c)

• Softwere PWM (SoftPRM)

18

使えるmbedライブラリ

リファレンス:https://developer.mbed.org/handbook/Homepage

Page 19: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

19

いろいろ選べる開発環境

種類 環境 主な対象 特徴

コマンドラインGNU Compiler+ OpenOCD

熟練者従来の開発方法

ウェブコンパイラ

ルネサスウェブコンパイラ

入門者中級者

○お手軽○TOPPERSテンプレート×デバッガなし

mbed コンパイラ 入門者○お手軽×デバッガなし

統合開発環境

Eclipse中級者熟練者

×設定が面倒(現状)

TrueSTUDIO入門者中級者熟練者

○ビルド〜デバッグまで無償で利用可能(WindowsとLinux)×Macは来年以降

IDE for GR 入門者 ×TOPPERS未対応

その他 Blockly 入門者○ブロックプログラミング可能×ビルドは別環境を使用

Page 20: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

20

がじぇるねWebコンパイラを使おう!

一番お手軽!ネットがあれば開発可能!!• 解説ページ:http://gadget.renesas.com/ja/product/peach_sp5.html

「がじぇるね」で検索!

ひとまずお試しもできます

MyRenesas登録でプロジェクトやファイルのクラウド保存が可能になります

Page 21: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

21

がじぇるねWebコンパイラを使おう!

ブラウザでお手軽プログラミング

(コンパイル環境の構築不要)

すぐにRTOSを使える

TOPPERSのテンプレート

Page 22: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

22

すぐに使えるサンプルアプリ

blinky

• mbedライブラリでRGB LEDを華麗に光らせる

blinky_arduino

• arduinoライブラリでRGB LEDを周期的に光らせる

• リセット時にUser-SWを押しているとUSR LEDが点滅する

httpsample

• IoTシステム構築向けのhttpサーバ

• mbedライブラリのlwIPプロトコル

multitask_arduino

• arduinoプログラミング風のマルチタスクアプリ

• loop(), loop1(), loop2() がTOPPERSのタスクとして動く

sample1

• TOPPERS伝統のサンプルアプリ

• 各サービスコールの振る舞いを確認できる

Page 23: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

23

いろいろ試してみよう!

アプリを自作したい• エクスプローラーの examples のどれかを編集するか同レベルにコピペ&名前変更

• 階層構造はけっこう大事なのです

ビルドしたい• build_target でビルド対象のアプリを指定する

• 右側メニューで「ビルド実行」

ボード上で実行したい• GR-PEACHのPG側をmicroUSBで接続

• USBマスストレージとして認識されます

• [アプリ名].bin をMBEDにコピー

• RSTボタンを押す

• TeraTerm等でメッセージ出力も見られます

最初のビルドはちょっと時間掛かります,,,

ね?めっちゃ簡単でしょ!??

Page 24: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

24

統合開発環境を使おう!

TrueSTUDIO for GR-PEACH

Document: TOPPERS with mbed/Arduino on Renesas GR-PEACH

Website: http://www.aicp.co.jp/en/index.html

E-mail: [email protected]

The debugger is now started. The IDE automatically switch from C/C++ Editing perspective to Debug perspective. This is seen in the picture below.

Figure 17 Target is waiting for "Resume" button to be pressed

The debugger automatically stops at the temporary breakpoint configured in the startup script.

The user can click Execution Resume from this break point.

https://github.com/ncesnagoya/asp-gr_peach_gcc-mbed

A.I.Corporation によるサポート&マニュアル提供

IDE上でのプログラミング&強力なデバッグ機能

ローカル環境で開発できる

Page 25: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

25

統合開発環境を使おう!

詳細なマニュアル

• https://goo.gl/qgtm7h

開発環境の準備(マニュアルP.5)

• Atollic TrueSTUDIO v6.0.0以降をDL&インストール

• https://atollic.com/resources/download/

• git clone or download zip from:

• https://github.com/ncesnagoya/asp-gr_peach_gcc-mbed

• Open OCDをインストール

• https://github.com/gnu-mcu-eclipse/openocd/releases/tag/gae-0.10.0-20160110

• $ cp ${ASP_DIR}/examples/truestudio/renesas_rza1h_swd.cfg ¥${OpenOCD_DIR}/scripts/target/

• TOPPERSコンフィギュレータをダウンロード&コピー

• http://toppers.jp/cfg-download.html

• $ cp ${CFG_DIR}/cfg.exe ${ASP_DIR}/asp-1.9.2-utf8/cfg/cfg/

• お好みのターミナルソフト(puTTY, TeraTerm等)をインストール

• サンプルアプリをワークスペースにインポート

ちょっと大変そうかな,,,

でもこれだけで強力な開発環境が手に入る!!

Page 26: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

26

せっかくならRTOSプログラミング!!

multitask_arduinoを使う• arduino_app.h の ADDITIONAL_LOOP_NUM を増やす

• loopX() を記述する

• loop5() まで記述できます

• loopX に対応するタスクは10ms毎に周期的に切り替わります

TOPPERSの静的APIとサービスコールを使う• app.cfg にタスクや周期ハンドラ生成の静的APIを記述する

• httpsample や sample1 が参考になると思います

• 詳しくは,[email protected] か がじぇるねフォーラムで!• https://japan.renesasrulz.com/gr_user_forum_japanese/f/toppers

いそ〇ー!

マルチタスクしようぜ!!コノツバメハナニヲイッテイルンダ,,,

Page 27: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

27

ブロックプログラミング for GR-PEACH

Google社ビジュアルプログラミングライブラリBlocklyをベースに

GR-PEACH用マルチloopプログラミング環境を実現

現在開発中?

小学生からできる

ブロックプログラミング Arduino プログラム

への変換

Page 28: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

28

開発環境の使い分け

Arduino ユーザ

ブロックプログラマー(小/中学生など)

ウェブコンパイラ

TOPPERS/RTOSユーザ

Blockly

統合開発環境Eclipse/TrueSTUDIO

コマンドライン

C言語

習得不要

インストール

作業不要

高度な

デバッグ

Page 29: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

第7回TOPPERS活用アイデア・アプリケーション開発コンテスト開催決定!

TOPPERS開発成果物を利用した

楽しい・独創的なアプリケーション実用的なアプリケーション

わかりやすいサンプルアプリケーションを募集します

アプリケーション開発部門

活用アイデア部門

TOPPERS開発成果物の利用者にとって

有益な活用アイデアやTOPPERSプロジェクトを

より良くするアイデアを募集します

応募資格:国内に在住の方(グループ、法人の場合にはその代表者)なら誰でも

※TOPPERSプロジェクトの会員でない方もご応募頂けます

応募期間:2017年6月16日(金) ~ 2017年8月31日(木)表彰:<活用アイデア部門> 金賞 銀賞 銅賞 各1万円!

<アプリケーション部門> 金賞 5万円!! 銀賞 3万円!! 銅賞 1万円!<がじぇるね IoT 部門> 金賞 3万円!! 銀賞 2万円!! 銅賞 1万円!<学生賞> 学生の応募作品の中から優秀なものに学生賞を授与!

募集要項、応募規約、FAQ 、技術講習会の案内等は以下のページで公開していきます!http://www.toppers.jp/contest.html

協賛社からの特別賞も予定しています

学生や組込み初心者からベテランエンジニアまで、

幅広い応募をお待ちしています!

がじぇるね IoT 部門

がじぇるね マイコンボードと(GR-PEACH, GR-SAKURA,…)

TOPPERS開発成果物を利用した

アプリケーションは、こちらの部門へ!

応募者向けの技術講習会の開催& GR-PEACH ボードの無償提供・貸出しもあります!

利用するマイコン、OSの選択は自由!

Arduino on TOPPERS(TOPPERS/R2CA)やTOPPERS/EV3RT を利用したアプリもこちらの開発部門へ!

Page 30: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

4. こんなことができます!

30

Page 31: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

ZUMO on GR-PEACH

31今日は無いですm(_ _)m

Page 32: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

mROS:ロボット向け軽量実行環境

32

Linuxの載らない組込みマイコンでもROSが実行可能!ROSの通信ライブラリとプロトコルをサポート!!

PCのROSノードから出版されたLチカ命令を,mROSノードが購読してGR-PEACH上のLEDを光らせる

超音波センサで測定した値をGR-PEACHのmROSノードから出版し,ROSノードが購読して標準出力する

ROSノード

ROSノード

オープンソースで公開されているROSパッケージが簡単に使える!センサが変わっても対応するノードパッケージに変えるだけ!

ROSmROS

Page 33: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

RaspberryPiでもTOPPERSが動く!!

33

Page 34: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

ECHONET Lite通信ミドルウェア

34

一般照明

照度センサ

扇風機

Page 35: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

SWORDS framework for Zynq

35

ARM+FPGA SoCをソフトウェア志向で協調設計!

リアルタイムOSからハードウェアを管理制御する!

Page 36: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

mruby on ev3rt/tecs

36

loop{

distance = $ultrasonic_sensor.distance

LCD.draw("distance = #{distance} ", 0, 6)

if distance < 15 then

$left_motor.stop

$right_motor.stop

else

$left_motor.power=30

$right_motor.power=30

end

}

rescue => e

LCD.error_puts e

end

Page 37: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

5. まとめ:TOPPERS入会のススメ

37

Page 38: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

成果物利用とプロジェクト参加のお誘い

• 開発成果物をぜひご活用ください

• TOPPERSはレポートウェアです自由にどなたでもダウンロードして利用できます

• プロジェクトの活動に参加したい方/活動を支援して頂ける方は,ぜひプロジェクトにご入会ください

TOPPERSプロジェクトは,組込みシステム開発に有用な

高品質なオープンソースソフトウェアと教材を開発し,

組込みシステム開発に新しい標準を提案しています

http://www.toppers.jp/

インダストリアルコントロールの新しいスタンダードへ

… High Quality Open Source

38

Page 39: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

TOPPERSプロジェクト: Facebookページ

39

最新情報・関連行事内容・写真掲載

TOPPERSFacebookページ利用者からの情報掲載

2011年5月運用開始 2017年8月 現在「いいね!588件」

ぜひ「いいね!」を押してください!

http://facebook.com/toppersproject

Page 40: TOPPERS on GR-PEACH高速デモ&プロジェクトの紹介@OSC2017 Kyoto

第7回TOPPERS活用アイデア・アプリケーション開発コンテスト開催決定!

TOPPERS開発成果物を利用した

楽しい・独創的なアプリケーション実用的なアプリケーション

わかりやすいサンプルアプリケーションを募集します

アプリケーション開発部門

活用アイデア部門

TOPPERS開発成果物の利用者にとって

有益な活用アイデアやTOPPERSプロジェクトを

より良くするアイデアを募集します

応募資格:国内に在住の方(グループ、法人の場合にはその代表者)なら誰でも

※TOPPERSプロジェクトの会員でない方もご応募頂けます

応募期間:2017年6月16日(金) ~ 2017年8月31日(木)表彰:<活用アイデア部門> 金賞 銀賞 銅賞 各1万円!

<アプリケーション部門> 金賞 5万円!! 銀賞 3万円!! 銅賞 1万円!<がじぇるね IoT 部門> 金賞 3万円!! 銀賞 2万円!! 銅賞 1万円!<学生賞> 学生の応募作品の中から優秀なものに学生賞を授与!

募集要項、応募規約、FAQ 、技術講習会の案内等は以下のページで公開していきます!http://www.toppers.jp/contest.html

協賛社からの特別賞も予定しています

学生や組込み初心者からベテランエンジニアまで、

幅広い応募をお待ちしています!

がじぇるね IoT 部門

がじぇるね マイコンボードと(GR-PEACH, GR-SAKURA,…)

TOPPERS開発成果物を利用した

アプリケーションは、こちらの部門へ!

応募者向けの技術講習会の開催& GR-PEACH ボードの無償提供・貸出しもあります!

利用するマイコン、OSの選択は自由!

Arduino on TOPPERS(TOPPERS/R2CA)やTOPPERS/EV3RT を利用したアプリもこちらの開発部門へ!

大事なことなのでもう1回!!