SlideShare a Scribd company logo
1 of 24
Copyright © 2016 Uhuru Corporation, All Right Reserved. 1
mbedでjavarcript (JerryScript)
2017/02/25
mbed祭り 2017@春の新横浜
株式会社ウフル
IoTイノベーションセンター IoTアーキテクト
デバイスプラットフォーム開発部 部長
竹之下 航洋
Copyright © 2016 Uhuru Corporation, All Right Reserved. 2
自己紹介
Copyright © 2016 Uhuru Corporation, All Right Reserved. 3
ウフルってこんな会社です
出展・関連リンク:日経コンピュータ 2014.10.16号
http://itpro.nikkeibp.co.jp/atclact/active/14/102800110/102800007/
日経BP社「第9回クラウドランキング」
ベストサービスに選出
デロイトが発表したTMT業界の売上高成長率の
ランキングにて、直近4年間の収益(売上高)成
長率200.16%を記録。
第14回 「アジア太平洋地域
テクノロジーFast 500」を受賞
ウフルとはスワヒリ語で「自由」を意味する言葉で
す。自由な発想と確かな技術で社会の役に立つサー
ビスを届けていきたいという思いを込めた社名です。
テクノロジーと
自由な発想で未来を創る
ウフルという社名の由来と
めざすビジョン
Copyright © 2016 Uhuru Corporation, All Right Reserved. 4
自己紹介
 立命館大学理工学研究科にてロボティクス及び生体工学を専攻
 在学中にドワンゴ研究開発センターにてWebシステムの開発に従事
 その後、ハードウェア系スタートアップに参画、執行役員COOを歴任
 2009年からは組込み機器ベンダー「アットマークテクノ」にて製品開発・企画に従事
IoTゲートウェイを中心とした新規ビジネスを立上げ
 2016年4月より(株)ウフルにてIoTイノベーションセンターに所属、8月よりIoTアーキテクト着任
 ウフルにおけるIoTソリューションの組込機器側開発の責任者
IoTの普及促進とそのセキュリティリスクについての啓蒙活動を行う
 IoTあるじゃん札幌立ち上げメンバー、ソラコムユーザーグループ発起人
AWS Summit2016
登壇
JAIPA
(日本インターネットサービスプロバイダ協会)
カンファレンス2016 ファシリテータ
SORACOM Discovery 2016
セキュリティセッション
ファシリテータ
第1回徳島IoT活用研究会
講師
Copyright © 2016 Uhuru Corporation, All Right Reserved. 5
自己紹介
 立命館大学理工学研究科にてロボティクス及び生体工学を専攻
 在学中にドワンゴ研究開発センターにてWebシステムの開発に従事
 その後、ハードウェア系スタートアップに参画、執行役員COOを歴任
 2009年からは組込み機器ベンダー「アットマークテクノ」にて製品開発・企画に従事
IoTゲートウェイを中心とした新規ビジネをス立上げ
 2016年4月より(株)ウフルにてIoTイノベーションセンターに所属、8月よりIoTアーキテクト着任
 ウフルにおけるIoTソリューションの組込機器側開発の責任者
IoTの普及促進とそのセキュリティリスクについての啓蒙活動を行う
 IoTあるじゃん札幌立ち上げメンバー、ソラコムユーザーグループ発起人
AWS Summit2016
登壇
第1回徳島IoT活用研究会
講師
JAIPA
(日本インターネットサービスプロバイダ協会)
カンファレンス2016 ファシリテータ
SORACOM Discovery 2016
セキュリティセッション
ファシリテータ
Copyright © 2016 Uhuru Corporation, All Right Reserved. 6
マイコンピュータ
PC9821 CX3
Pentium/
Windows 95
Z80
Non-OS
PIC18
Non-OS
MSP430
Non-OS
H8
Non-OS
Armadillo-IoT G3
Freescale i.MX7
(Corte-A7)/
Linux 3.14
Armadillo-4x0
Freescale
i.MX257
(ARM926EJ-S)/
Linux 2.6.26
Armadillo-2x0
Cirrus Logic
EP9307
(ARM920T)/
Linux 2.6.12
GUIから入った
ゆとり世代
マイコンはOSなしでアセンブラごりごりから
好きなARMコアはARM9
Copyright © 2016 Uhuru Corporation, All Right Reserved. 7
mbedについて
すごーい!
あなたはマイコンで動くOSSで
プロトコルスタックもある
フレンズ(OS)なんだね!
Copyright © 2016 Uhuru Corporation, All Right Reserved. 8
本題
Copyright © 2016 Uhuru Corporation, All Right Reserved.
javascript on mbed
Copyright © 2016 Uhuru Corporation, All Right Reserved. 10
Jan Jongboom: Run Your JS App For Years On A Single Coin Cell -
JSConf.Asia 2016
https://youtu.be/3HLRwcVqgFE
Copyright © 2016 Uhuru Corporation, All Right Reserved.
• 世はIoTの時代
• しかし、Web系、クラウド系の人はC/C++を扱えない
• Python, Ruby, PHP, Perl, javascriptなどスクリプト言語が主流
• それらをマイコン上でコイン電池で数年間持つぐらいの消費電力で動かすこと
ができないか?
11
Challenge
Copyright © 2016 Uhuru Corporation, All Right Reserved.
• 元々javascriptには2種類ある
– クライアントサイドjavascript(Webブラウザで動いているもの)
– サーバーサイドjavascript(ほぼイコールNode.js)
• javascriptはイベント駆動型の処理が得意
• Node.jsはシングルスレッドでノンブロッキングI/Oを活用して複数のイベント
を見かけ上同時に処理する
• 組み込み向けでも、イベント駆動型のプログラミングならできるのでは?
– リアルタイム制御への適用は期待できないけど。。。
12
組み込みでjavascript?
Copyright © 2016 Uhuru Corporation, All Right Reserved. 13
色々な組み込み向けjavascript実装
Copyright © 2016 Uhuru Corporation, All Right Reserved.
• Espruino
– イギリスの開発者が(一人で?)
開発
• https://www.espruino.com/
– 開発が活発
– Node.jsに準拠したインタープリ
ターになっている
14
OSSで公開されていて注目しているもの
• JerryScript
– 元々、SAMSUNGが開発
– 公式(?)のmbed対応がある
• https://github.com/ARMmbe
d/mbed-js-example
– ECMAScriptの仕様に準拠?
– インタープリターではなくプリ
コンパイル型
– 今日はこっちの話
Copyright © 2016 Uhuru Corporation, All Right Reserved.
• Runs on > 40 boards already
• Drivers, OS, critical paths in C++
• Deep sleep build-in
• Big library ecosystem, and many connectivity methods
• Application code can run in JS, and interop with C++
15
JS on mbed – Best of both worlds
Copyright © 2016 Uhuru Corporation, All Right Reserved. 16
Sample Application Code
var blink = require('./blink_leds');
setInterval(function() {
blink();
}, 2000);
main.js
var led = DigitalOut(LED1);
var blink = function() {
led.write(led.read() ? 0 : 1);
print("blink! LED is now " + led.read());
};
module.exports = blink;
blink_led.js
すごーい!簡単だね!
Copyright © 2016 Uhuru Corporation, All Right Reserved.
• スレッドの管理
• 割り込みの扱い
• コンテキストスイッチ
• 電源管理
など、
17
しかし抽象度が高いと・・・
ローレベルの管理ができなくなるのでは?
Copyright © 2016 Uhuru Corporation, All Right Reserved.
• イベントループで自動的にスリープするようにすることで
• JS on mbed Beaconでは7年間動作できる計算
– nRF52-DK
– 1sec interval
– lowest power mode
18
Jan曰く
これは試してみなければ
Copyright © 2016 Uhuru Corporation, All Right Reserved. 19
手順
mbed DevelopperサイトのNotebootで公開
Copyright © 2016 Uhuru Corporation, All Right Reserved.
• ベース環境:Bash on Ubuntu on Windows (BoW)
– ほぼUbuntu 14.04
20
開発環境の整備: mbed-CLI
$ sudo apt-get install build-essential
Install native toolchain
$ sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa
$ sudo apt-get update
$ sudo apt-get install gcc-arm-embedded
Install native toolchain
$ sudo apt-get install python
$ sudo apt-get install python-pip
$ sudo apt-get install git
$ sudo apt-get install mercurial
Install dependencies
$ git clone https://github.com/ARMmbed/mbed-cli
$ cd mbed-cli
$ sudo python setup.py install
$ mbed config --global GCC_ARM_PATH /usr/bin
Install mbed-cli
Copyright © 2016 Uhuru Corporation, All Right Reserved. 21
Jerryscript for mbedのビルド手順
$ curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash -
$ sudo apt-get install -y nodejs
$ node --version
v6.9.5
Install Node.js
$ sudo npm install gulp-cli -g
Install Gulp
$ git clone https://github.com/ARMmbed/mbed-js-example
$ cd mbed-js-example
$ npm install
$ gulp --target=NUCLEO_F401RE
build jerryscript
Copyright © 2016 Uhuru Corporation, All Right Reserved.
• ターゲットボード:NUCLEO_F401RE
• コンパイラ:arm-none-eabi-gcc 6.2.1 20161205 [ARM/embedded-6-branch revision 243739]
• OS: mbed OS 5.1
22
Lチカの結果
+--------------------+--------+-------+-------+
| Module | .text | .data | .bss |
+--------------------+--------+-------+-------+
| Fill | 390 | 0 | 12 |
| Misc | 299322 | 3644 | 18992 |
| drivers | 3390 | 4 | 192 |
| events | 52 | 0 | 0 |
| events/equeue | 1404 | 0 | 61 |
| hal | 802 | 0 | 8 |
| platform | 1771 | 4 | 297 |
| rtos | 757 | 4 | 4 |
| rtos/rtx | 6717 | 20 | 6870 |
| targets/TARGET_STM | 15497 | 4 | 1452 |
| Subtotals | 330102 | 3680 | 27888 |
+--------------------+--------+-------+-------+
Allocated Heap: unknown
Allocated Stack: unknown
Total Static RAM memory (data + bss): 31568 bytes
Total RAM memory (data + bss + heap + stack): 31568 bytes
Total Flash memory (text + data + misc): 333782 bytes
Lチカだけなら、RAM 32kB, ROM 350kB程度
Copyright © 2016 Uhuru Corporation, All Right Reserved.
• インタープリタ化
• スリープ性能の評価
• Node-REDの移植
23
今後やってみたいこと
一緒にやってくれるフレンズ募集中!
Copyright © 2016 Uhuru Corporation, All Right Reserved.
iot@uhuru.jp

More Related Content

What's hot

RustによるGPUプログラミング環境
RustによるGPUプログラミング環境RustによるGPUプログラミング環境
RustによるGPUプログラミング環境KiyotomoHiroyasu
 
ACRi_webinar_20220118_miyo
ACRi_webinar_20220118_miyoACRi_webinar_20220118_miyo
ACRi_webinar_20220118_miyoTakefumi MIYOSHI
 
TechBuzz第5回cocos2d-x勉強会 BrainWars発表資料
TechBuzz第5回cocos2d-x勉強会 BrainWars発表資料TechBuzz第5回cocos2d-x勉強会 BrainWars発表資料
TechBuzz第5回cocos2d-x勉強会 BrainWars発表資料Takuma Kudo
 
Feature Store in DRIVE CHART
Feature Store in DRIVE CHARTFeature Store in DRIVE CHART
Feature Store in DRIVE CHARTemakryo
 
PCCC20 富士通株式会社「未来を引き寄せる力 スーパーコンピュータ」
PCCC20 富士通株式会社「未来を引き寄せる力 スーパーコンピュータ」PCCC20 富士通株式会社「未来を引き寄せる力 スーパーコンピュータ」
PCCC20 富士通株式会社「未来を引き寄せる力 スーパーコンピュータ」PC Cluster Consortium
 
Redshift Spectrumを使ってみた話
Redshift Spectrumを使ってみた話Redshift Spectrumを使ってみた話
Redshift Spectrumを使ってみた話Yoshiki Kouno
 
Lagopus & NFV with Vhost (Tremaday#9)
Lagopus & NFV with Vhost (Tremaday#9)Lagopus & NFV with Vhost (Tremaday#9)
Lagopus & NFV with Vhost (Tremaday#9)Tomoya Hibi
 
Terraformで始めるInfrastructure as Code
Terraformで始めるInfrastructure as CodeTerraformで始めるInfrastructure as Code
Terraformで始めるInfrastructure as CodeTakahisa Iwamoto
 
Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話
Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話
Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話Terui Masashi
 
Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi
Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumiYahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi
Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumiYahoo!デベロッパーネットワーク
 
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月VirtualTech Japan Inc.
 
TranslimitにおけるAWS活用術
TranslimitにおけるAWS活用術TranslimitにおけるAWS活用術
TranslimitにおけるAWS活用術Masakazu Matsushita
 
Focuslight, Jobs and OSS - HackGirls bar vol.2
Focuslight, Jobs and OSS - HackGirls bar vol.2Focuslight, Jobs and OSS - HackGirls bar vol.2
Focuslight, Jobs and OSS - HackGirls bar vol.2Koichiro Ohba
 
Quick Overview of Upcoming Spark 3.0 + α
Quick Overview of Upcoming Spark 3.0 + αQuick Overview of Upcoming Spark 3.0 + α
Quick Overview of Upcoming Spark 3.0 + αTakeshi Yamamuro
 
マルチレイヤコンパイラ基盤による、エッジ向けディープラーニングの実装と最適化について
マルチレイヤコンパイラ基盤による、エッジ向けディープラーニングの実装と最適化についてマルチレイヤコンパイラ基盤による、エッジ向けディープラーニングの実装と最適化について
マルチレイヤコンパイラ基盤による、エッジ向けディープラーニングの実装と最適化についてFixstars Corporation
 
Brain Dots at dots. - Brain Dotsのアーキテクチャ -
Brain Dots at dots. - Brain Dotsのアーキテクチャ -Brain Dots at dots. - Brain Dotsのアーキテクチャ -
Brain Dots at dots. - Brain Dotsのアーキテクチャ -Masakazu Matsushita
 
BrainWarsのアーキテクチャ(OpsWorks & DynamoDB編)
BrainWarsのアーキテクチャ(OpsWorks & DynamoDB編)BrainWarsのアーキテクチャ(OpsWorks & DynamoDB編)
BrainWarsのアーキテクチャ(OpsWorks & DynamoDB編)Masakazu Matsushita
 
ネットワーク運用自動化のためのサービス・運用設計
ネットワーク運用自動化のためのサービス・運用設計ネットワーク運用自動化のためのサービス・運用設計
ネットワーク運用自動化のためのサービス・運用設計Yuya Rin
 

What's hot (20)

RustによるGPUプログラミング環境
RustによるGPUプログラミング環境RustによるGPUプログラミング環境
RustによるGPUプログラミング環境
 
ACRi_webinar_20220118_miyo
ACRi_webinar_20220118_miyoACRi_webinar_20220118_miyo
ACRi_webinar_20220118_miyo
 
TechBuzz第5回cocos2d-x勉強会 BrainWars発表資料
TechBuzz第5回cocos2d-x勉強会 BrainWars発表資料TechBuzz第5回cocos2d-x勉強会 BrainWars発表資料
TechBuzz第5回cocos2d-x勉強会 BrainWars発表資料
 
Feature Store in DRIVE CHART
Feature Store in DRIVE CHARTFeature Store in DRIVE CHART
Feature Store in DRIVE CHART
 
PCCC20 富士通株式会社「未来を引き寄せる力 スーパーコンピュータ」
PCCC20 富士通株式会社「未来を引き寄せる力 スーパーコンピュータ」PCCC20 富士通株式会社「未来を引き寄せる力 スーパーコンピュータ」
PCCC20 富士通株式会社「未来を引き寄せる力 スーパーコンピュータ」
 
Redshift Spectrumを使ってみた話
Redshift Spectrumを使ってみた話Redshift Spectrumを使ってみた話
Redshift Spectrumを使ってみた話
 
Lagopus & NFV with Vhost (Tremaday#9)
Lagopus & NFV with Vhost (Tremaday#9)Lagopus & NFV with Vhost (Tremaday#9)
Lagopus & NFV with Vhost (Tremaday#9)
 
Terraformで始めるInfrastructure as Code
Terraformで始めるInfrastructure as CodeTerraformで始めるInfrastructure as Code
Terraformで始めるInfrastructure as Code
 
Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話
Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話
Infra as Code Sapppro Casual 札幌の開催趣旨とTest-Kitchenの話
 
Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi
Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumiYahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi
Yahoo! JAPANが実践するOpenStackと大規模環境でのコンテナ利用 #devsumi
 
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
OpenStackを利用したNFVの商用化 - OpenStack最新情報セミナー 2017年7月
 
TranslimitにおけるAWS活用術
TranslimitにおけるAWS活用術TranslimitにおけるAWS活用術
TranslimitにおけるAWS活用術
 
Focuslight, Jobs and OSS - HackGirls bar vol.2
Focuslight, Jobs and OSS - HackGirls bar vol.2Focuslight, Jobs and OSS - HackGirls bar vol.2
Focuslight, Jobs and OSS - HackGirls bar vol.2
 
Quick Overview of Upcoming Spark 3.0 + α
Quick Overview of Upcoming Spark 3.0 + αQuick Overview of Upcoming Spark 3.0 + α
Quick Overview of Upcoming Spark 3.0 + α
 
マルチレイヤコンパイラ基盤による、エッジ向けディープラーニングの実装と最適化について
マルチレイヤコンパイラ基盤による、エッジ向けディープラーニングの実装と最適化についてマルチレイヤコンパイラ基盤による、エッジ向けディープラーニングの実装と最適化について
マルチレイヤコンパイラ基盤による、エッジ向けディープラーニングの実装と最適化について
 
Brain Dots at dots. - Brain Dotsのアーキテクチャ -
Brain Dots at dots. - Brain Dotsのアーキテクチャ -Brain Dots at dots. - Brain Dotsのアーキテクチャ -
Brain Dots at dots. - Brain Dotsのアーキテクチャ -
 
BrainWarsのアーキテクチャ(OpsWorks & DynamoDB編)
BrainWarsのアーキテクチャ(OpsWorks & DynamoDB編)BrainWarsのアーキテクチャ(OpsWorks & DynamoDB編)
BrainWarsのアーキテクチャ(OpsWorks & DynamoDB編)
 
ネットワーク運用自動化のためのサービス・運用設計
ネットワーク運用自動化のためのサービス・運用設計ネットワーク運用自動化のためのサービス・運用設計
ネットワーク運用自動化のためのサービス・運用設計
 
Storm の新機能について @HSCR #hadoopreading
Storm の新機能について @HSCR #hadoopreadingStorm の新機能について @HSCR #hadoopreading
Storm の新機能について @HSCR #hadoopreading
 
170827 jtf garafana
170827 jtf garafana170827 jtf garafana
170827 jtf garafana
 

Viewers also liked

ソラコム Developers conference #0
ソラコム Developers conference #0ソラコム Developers conference #0
ソラコム Developers conference #0Koyo Takenoshita
 
A short presentation for The International Gamification for Business Conference
A short presentation for The International Gamification for Business ConferenceA short presentation for The International Gamification for Business Conference
A short presentation for The International Gamification for Business ConferenceSylvester Arnab
 
STEM/STEAM at the DMLL: Games and gamification
STEM/STEAM at the DMLL: Games and gamificationSTEM/STEAM at the DMLL: Games and gamification
STEM/STEAM at the DMLL: Games and gamificationSylvester Arnab
 
DiGRAJ-GD 07/17/2011 三宅陽一郎
DiGRAJ-GD 07/17/2011 三宅陽一郎 DiGRAJ-GD 07/17/2011 三宅陽一郎
DiGRAJ-GD 07/17/2011 三宅陽一郎 Kenneth Chan
 
AWSクラウドデザインパターン(CDP) - コンテンツ配信編 -
AWSクラウドデザインパターン(CDP) - コンテンツ配信編 -AWSクラウドデザインパターン(CDP) - コンテンツ配信編 -
AWSクラウドデザインパターン(CDP) - コンテンツ配信編 -Akio Katayama
 
Laura Kingsbury Resume 02.2017
Laura Kingsbury Resume 02.2017Laura Kingsbury Resume 02.2017
Laura Kingsbury Resume 02.2017Laura Kingsbury
 
Flagman basic training
Flagman basic trainingFlagman basic training
Flagman basic trainingNatasha Azura
 
04c b4 p reuseevora
04c b4 p reuseevora04c b4 p reuseevora
04c b4 p reuseevorawebtierra
 
SEISMIC HUMAN LOSS ESTIMATION IN TEHRAN USING GIS
SEISMIC HUMAN LOSS ESTIMATION IN TEHRAN USING GISSEISMIC HUMAN LOSS ESTIMATION IN TEHRAN USING GIS
SEISMIC HUMAN LOSS ESTIMATION IN TEHRAN USING GISReza Nourjou, Ph.D.
 
Alaska Family Medicine
Alaska Family MedicineAlaska Family Medicine
Alaska Family Medicineerinroyalmd
 
Web API: The Good Parts 落穂ひろい
Web API: The Good Parts 落穂ひろいWeb API: The Good Parts 落穂ひろい
Web API: The Good Parts 落穂ひろいAPI Meetup
 
Android thingsやってみた
Android thingsやってみたAndroid thingsやってみた
Android thingsやってみたHiroshi Kikuchi
 
Collaboration tools
Collaboration toolsCollaboration tools
Collaboration toolsdeniseram00
 
"ΔΙΚΑΙΩΜΑ ΨΗΦΟΥ ΓΙΑ ΤΗΝ ΓΥΝΑΙΚΑ"
"ΔΙΚΑΙΩΜΑ ΨΗΦΟΥ ΓΙΑ ΤΗΝ ΓΥΝΑΙΚΑ""ΔΙΚΑΙΩΜΑ ΨΗΦΟΥ ΓΙΑ ΤΗΝ ΓΥΝΑΙΚΑ"
"ΔΙΚΑΙΩΜΑ ΨΗΦΟΥ ΓΙΑ ΤΗΝ ΓΥΝΑΙΚΑ"xrysa123
 
AWS Elastic BeanstalkとAWS Lambdaのご紹介
AWS Elastic BeanstalkとAWS Lambdaのご紹介AWS Elastic BeanstalkとAWS Lambdaのご紹介
AWS Elastic BeanstalkとAWS Lambdaのご紹介Akio Katayama
 
Spring Day 2016 - Web API アクセス制御の最適解
Spring Day 2016 - Web API アクセス制御の最適解Spring Day 2016 - Web API アクセス制御の最適解
Spring Day 2016 - Web API アクセス制御の最適解都元ダイスケ Miyamoto
 
Funeral Hymnody from Confessional to Pietism
Funeral Hymnody from Confessional to PietismFuneral Hymnody from Confessional to Pietism
Funeral Hymnody from Confessional to PietismAdan Fernandez
 

Viewers also liked (20)

ソラコム Developers conference #0
ソラコム Developers conference #0ソラコム Developers conference #0
ソラコム Developers conference #0
 
A short presentation for The International Gamification for Business Conference
A short presentation for The International Gamification for Business ConferenceA short presentation for The International Gamification for Business Conference
A short presentation for The International Gamification for Business Conference
 
STEM/STEAM at the DMLL: Games and gamification
STEM/STEAM at the DMLL: Games and gamificationSTEM/STEAM at the DMLL: Games and gamification
STEM/STEAM at the DMLL: Games and gamification
 
DiGRAJ-GD 07/17/2011 三宅陽一郎
DiGRAJ-GD 07/17/2011 三宅陽一郎 DiGRAJ-GD 07/17/2011 三宅陽一郎
DiGRAJ-GD 07/17/2011 三宅陽一郎
 
人工知能とゲーム
人工知能とゲーム人工知能とゲーム
人工知能とゲーム
 
AWSクラウドデザインパターン(CDP) - コンテンツ配信編 -
AWSクラウドデザインパターン(CDP) - コンテンツ配信編 -AWSクラウドデザインパターン(CDP) - コンテンツ配信編 -
AWSクラウドデザインパターン(CDP) - コンテンツ配信編 -
 
Laura Kingsbury Resume 02.2017
Laura Kingsbury Resume 02.2017Laura Kingsbury Resume 02.2017
Laura Kingsbury Resume 02.2017
 
Flagman basic training
Flagman basic trainingFlagman basic training
Flagman basic training
 
04c b4 p reuseevora
04c b4 p reuseevora04c b4 p reuseevora
04c b4 p reuseevora
 
Trabajo 4
Trabajo 4Trabajo 4
Trabajo 4
 
SEISMIC HUMAN LOSS ESTIMATION IN TEHRAN USING GIS
SEISMIC HUMAN LOSS ESTIMATION IN TEHRAN USING GISSEISMIC HUMAN LOSS ESTIMATION IN TEHRAN USING GIS
SEISMIC HUMAN LOSS ESTIMATION IN TEHRAN USING GIS
 
Alaska Family Medicine
Alaska Family MedicineAlaska Family Medicine
Alaska Family Medicine
 
Web API: The Good Parts 落穂ひろい
Web API: The Good Parts 落穂ひろいWeb API: The Good Parts 落穂ひろい
Web API: The Good Parts 落穂ひろい
 
Android thingsやってみた
Android thingsやってみたAndroid thingsやってみた
Android thingsやってみた
 
Collaboration tools
Collaboration toolsCollaboration tools
Collaboration tools
 
"ΔΙΚΑΙΩΜΑ ΨΗΦΟΥ ΓΙΑ ΤΗΝ ΓΥΝΑΙΚΑ"
"ΔΙΚΑΙΩΜΑ ΨΗΦΟΥ ΓΙΑ ΤΗΝ ΓΥΝΑΙΚΑ""ΔΙΚΑΙΩΜΑ ΨΗΦΟΥ ΓΙΑ ΤΗΝ ΓΥΝΑΙΚΑ"
"ΔΙΚΑΙΩΜΑ ΨΗΦΟΥ ΓΙΑ ΤΗΝ ΓΥΝΑΙΚΑ"
 
AWS Elastic BeanstalkとAWS Lambdaのご紹介
AWS Elastic BeanstalkとAWS Lambdaのご紹介AWS Elastic BeanstalkとAWS Lambdaのご紹介
AWS Elastic BeanstalkとAWS Lambdaのご紹介
 
Spring Day 2016 - Web API アクセス制御の最適解
Spring Day 2016 - Web API アクセス制御の最適解Spring Day 2016 - Web API アクセス制御の最適解
Spring Day 2016 - Web API アクセス制御の最適解
 
Funeral Hymnody from Confessional to Pietism
Funeral Hymnody from Confessional to PietismFuneral Hymnody from Confessional to Pietism
Funeral Hymnody from Confessional to Pietism
 
Practic innovadora
Practic innovadoraPractic innovadora
Practic innovadora
 

Similar to Mbed祭り 2017@春の新横浜 20170225 竹之下

Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会Dai Utsui
 
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1近藤 繁延
 
04 citynet awsセミナー_クラウドでビックデータのスモールスタート
04 citynet awsセミナー_クラウドでビックデータのスモールスタート04 citynet awsセミナー_クラウドでビックデータのスモールスタート
04 citynet awsセミナー_クラウドでビックデータのスモールスタート充博 大崎
 
クラウドでビックデータのスモールスタート
クラウドでビックデータのスモールスタートクラウドでビックデータのスモールスタート
クラウドでビックデータのスモールスタートYukihito Kataoka
 
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力ThinReports
 
ET2016 Smart Japan Alliance Llilum 161118
ET2016 Smart Japan Alliance Llilum 161118ET2016 Smart Japan Alliance Llilum 161118
ET2016 Smart Japan Alliance Llilum 161118Atomu Hidaka
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割Toru Yamaguchi
 
Jslug2 nagoya-shibata
Jslug2 nagoya-shibataJslug2 nagoya-shibata
Jslug2 nagoya-shibataNaoki Shibata
 
ROBOMECH2023 RTミドルウェア講習会 第1部
ROBOMECH2023 RTミドルウェア講習会 第1部ROBOMECH2023 RTミドルウェア講習会 第1部
ROBOMECH2023 RTミドルウェア講習会 第1部openrtm
 
ソフトウエアジャパン2017 IT Forum AITC(6)
ソフトウエアジャパン2017 IT Forum AITC(6)ソフトウエアジャパン2017 IT Forum AITC(6)
ソフトウエアジャパン2017 IT Forum AITC(6)aitc_jp
 
実践!DBベンチマークツールの使い方
実践!DBベンチマークツールの使い方実践!DBベンチマークツールの使い方
実践!DBベンチマークツールの使い方Fujishiro Takuya
 
Aerospike on IDCF Cloud
Aerospike on IDCF CloudAerospike on IDCF Cloud
Aerospike on IDCF CloudIDC Frontier
 
.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組みKouji Matsui
 
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”Drecom Co., Ltd.
 
Node-REDのノード開発容易化ツール Node generator
Node-REDのノード開発容易化ツールNode generatorNode-REDのノード開発容易化ツールNode generator
Node-REDのノード開発容易化ツール Node generatorBMXUG
 
Microsoft Intelligent Edge Technologies
Microsoft Intelligent Edge TechnologiesMicrosoft Intelligent Edge Technologies
Microsoft Intelligent Edge TechnologiesTakeshi Fukuhara
 
ソフトウェアテストの歴史と近年の動向
ソフトウェアテストの歴史と近年の動向ソフトウェアテストの歴史と近年の動向
ソフトウェアテストの歴史と近年の動向Keizo Tatsumi
 
Smart Tennis Lesson Serverless Design
Smart Tennis Lesson Serverless DesignSmart Tennis Lesson Serverless Design
Smart Tennis Lesson Serverless DesignRyuji TAKEHARA
 
ソフトウェア技術者から見たFPGAの魅力と可能性
ソフトウェア技術者から見たFPGAの魅力と可能性ソフトウェア技術者から見たFPGAの魅力と可能性
ソフトウェア技術者から見たFPGAの魅力と可能性Kenichiro MITSUDA
 

Similar to Mbed祭り 2017@春の新横浜 20170225 竹之下 (20)

Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会Gmo media.inc 第9回西日本ossの普及を考える会
Gmo media.inc 第9回西日本ossの普及を考える会
 
Try IoT with Node-RED
Try IoT with Node-REDTry IoT with Node-RED
Try IoT with Node-RED
 
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
AITCシニア技術者勉強会 「今さら聞けないWebサイト開発」 vol1
 
04 citynet awsセミナー_クラウドでビックデータのスモールスタート
04 citynet awsセミナー_クラウドでビックデータのスモールスタート04 citynet awsセミナー_クラウドでビックデータのスモールスタート
04 citynet awsセミナー_クラウドでビックデータのスモールスタート
 
クラウドでビックデータのスモールスタート
クラウドでビックデータのスモールスタートクラウドでビックデータのスモールスタート
クラウドでビックデータのスモールスタート
 
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
Ruby向け帳票ソリューション「ThinReports」の開発で知るOSSの威力
 
ET2016 Smart Japan Alliance Llilum 161118
ET2016 Smart Japan Alliance Llilum 161118ET2016 Smart Japan Alliance Llilum 161118
ET2016 Smart Japan Alliance Llilum 161118
 
技術選択とアーキテクトの役割
技術選択とアーキテクトの役割技術選択とアーキテクトの役割
技術選択とアーキテクトの役割
 
Jslug2 nagoya-shibata
Jslug2 nagoya-shibataJslug2 nagoya-shibata
Jslug2 nagoya-shibata
 
ROBOMECH2023 RTミドルウェア講習会 第1部
ROBOMECH2023 RTミドルウェア講習会 第1部ROBOMECH2023 RTミドルウェア講習会 第1部
ROBOMECH2023 RTミドルウェア講習会 第1部
 
ソフトウエアジャパン2017 IT Forum AITC(6)
ソフトウエアジャパン2017 IT Forum AITC(6)ソフトウエアジャパン2017 IT Forum AITC(6)
ソフトウエアジャパン2017 IT Forum AITC(6)
 
実践!DBベンチマークツールの使い方
実践!DBベンチマークツールの使い方実践!DBベンチマークツールの使い方
実践!DBベンチマークツールの使い方
 
Aerospike on IDCF Cloud
Aerospike on IDCF CloudAerospike on IDCF Cloud
Aerospike on IDCF Cloud
 
.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み.NET Coreから概観する.NETのOSSへの取り組み
.NET Coreから概観する.NETのOSSへの取り組み
 
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
[CEDEC2014]モバイルゲームにおける社内基盤開発と“実録”
 
Node-REDのノード開発容易化ツール Node generator
Node-REDのノード開発容易化ツールNode generatorNode-REDのノード開発容易化ツールNode generator
Node-REDのノード開発容易化ツール Node generator
 
Microsoft Intelligent Edge Technologies
Microsoft Intelligent Edge TechnologiesMicrosoft Intelligent Edge Technologies
Microsoft Intelligent Edge Technologies
 
ソフトウェアテストの歴史と近年の動向
ソフトウェアテストの歴史と近年の動向ソフトウェアテストの歴史と近年の動向
ソフトウェアテストの歴史と近年の動向
 
Smart Tennis Lesson Serverless Design
Smart Tennis Lesson Serverless DesignSmart Tennis Lesson Serverless Design
Smart Tennis Lesson Serverless Design
 
ソフトウェア技術者から見たFPGAの魅力と可能性
ソフトウェア技術者から見たFPGAの魅力と可能性ソフトウェア技術者から見たFPGAの魅力と可能性
ソフトウェア技術者から見たFPGAの魅力と可能性
 

Mbed祭り 2017@春の新横浜 20170225 竹之下

  • 1. Copyright © 2016 Uhuru Corporation, All Right Reserved. 1 mbedでjavarcript (JerryScript) 2017/02/25 mbed祭り 2017@春の新横浜 株式会社ウフル IoTイノベーションセンター IoTアーキテクト デバイスプラットフォーム開発部 部長 竹之下 航洋
  • 2. Copyright © 2016 Uhuru Corporation, All Right Reserved. 2 自己紹介
  • 3. Copyright © 2016 Uhuru Corporation, All Right Reserved. 3 ウフルってこんな会社です 出展・関連リンク:日経コンピュータ 2014.10.16号 http://itpro.nikkeibp.co.jp/atclact/active/14/102800110/102800007/ 日経BP社「第9回クラウドランキング」 ベストサービスに選出 デロイトが発表したTMT業界の売上高成長率の ランキングにて、直近4年間の収益(売上高)成 長率200.16%を記録。 第14回 「アジア太平洋地域 テクノロジーFast 500」を受賞 ウフルとはスワヒリ語で「自由」を意味する言葉で す。自由な発想と確かな技術で社会の役に立つサー ビスを届けていきたいという思いを込めた社名です。 テクノロジーと 自由な発想で未来を創る ウフルという社名の由来と めざすビジョン
  • 4. Copyright © 2016 Uhuru Corporation, All Right Reserved. 4 自己紹介  立命館大学理工学研究科にてロボティクス及び生体工学を専攻  在学中にドワンゴ研究開発センターにてWebシステムの開発に従事  その後、ハードウェア系スタートアップに参画、執行役員COOを歴任  2009年からは組込み機器ベンダー「アットマークテクノ」にて製品開発・企画に従事 IoTゲートウェイを中心とした新規ビジネスを立上げ  2016年4月より(株)ウフルにてIoTイノベーションセンターに所属、8月よりIoTアーキテクト着任  ウフルにおけるIoTソリューションの組込機器側開発の責任者 IoTの普及促進とそのセキュリティリスクについての啓蒙活動を行う  IoTあるじゃん札幌立ち上げメンバー、ソラコムユーザーグループ発起人 AWS Summit2016 登壇 JAIPA (日本インターネットサービスプロバイダ協会) カンファレンス2016 ファシリテータ SORACOM Discovery 2016 セキュリティセッション ファシリテータ 第1回徳島IoT活用研究会 講師
  • 5. Copyright © 2016 Uhuru Corporation, All Right Reserved. 5 自己紹介  立命館大学理工学研究科にてロボティクス及び生体工学を専攻  在学中にドワンゴ研究開発センターにてWebシステムの開発に従事  その後、ハードウェア系スタートアップに参画、執行役員COOを歴任  2009年からは組込み機器ベンダー「アットマークテクノ」にて製品開発・企画に従事 IoTゲートウェイを中心とした新規ビジネをス立上げ  2016年4月より(株)ウフルにてIoTイノベーションセンターに所属、8月よりIoTアーキテクト着任  ウフルにおけるIoTソリューションの組込機器側開発の責任者 IoTの普及促進とそのセキュリティリスクについての啓蒙活動を行う  IoTあるじゃん札幌立ち上げメンバー、ソラコムユーザーグループ発起人 AWS Summit2016 登壇 第1回徳島IoT活用研究会 講師 JAIPA (日本インターネットサービスプロバイダ協会) カンファレンス2016 ファシリテータ SORACOM Discovery 2016 セキュリティセッション ファシリテータ
  • 6. Copyright © 2016 Uhuru Corporation, All Right Reserved. 6 マイコンピュータ PC9821 CX3 Pentium/ Windows 95 Z80 Non-OS PIC18 Non-OS MSP430 Non-OS H8 Non-OS Armadillo-IoT G3 Freescale i.MX7 (Corte-A7)/ Linux 3.14 Armadillo-4x0 Freescale i.MX257 (ARM926EJ-S)/ Linux 2.6.26 Armadillo-2x0 Cirrus Logic EP9307 (ARM920T)/ Linux 2.6.12 GUIから入った ゆとり世代 マイコンはOSなしでアセンブラごりごりから 好きなARMコアはARM9
  • 7. Copyright © 2016 Uhuru Corporation, All Right Reserved. 7 mbedについて すごーい! あなたはマイコンで動くOSSで プロトコルスタックもある フレンズ(OS)なんだね!
  • 8. Copyright © 2016 Uhuru Corporation, All Right Reserved. 8 本題
  • 9. Copyright © 2016 Uhuru Corporation, All Right Reserved. javascript on mbed
  • 10. Copyright © 2016 Uhuru Corporation, All Right Reserved. 10 Jan Jongboom: Run Your JS App For Years On A Single Coin Cell - JSConf.Asia 2016 https://youtu.be/3HLRwcVqgFE
  • 11. Copyright © 2016 Uhuru Corporation, All Right Reserved. • 世はIoTの時代 • しかし、Web系、クラウド系の人はC/C++を扱えない • Python, Ruby, PHP, Perl, javascriptなどスクリプト言語が主流 • それらをマイコン上でコイン電池で数年間持つぐらいの消費電力で動かすこと ができないか? 11 Challenge
  • 12. Copyright © 2016 Uhuru Corporation, All Right Reserved. • 元々javascriptには2種類ある – クライアントサイドjavascript(Webブラウザで動いているもの) – サーバーサイドjavascript(ほぼイコールNode.js) • javascriptはイベント駆動型の処理が得意 • Node.jsはシングルスレッドでノンブロッキングI/Oを活用して複数のイベント を見かけ上同時に処理する • 組み込み向けでも、イベント駆動型のプログラミングならできるのでは? – リアルタイム制御への適用は期待できないけど。。。 12 組み込みでjavascript?
  • 13. Copyright © 2016 Uhuru Corporation, All Right Reserved. 13 色々な組み込み向けjavascript実装
  • 14. Copyright © 2016 Uhuru Corporation, All Right Reserved. • Espruino – イギリスの開発者が(一人で?) 開発 • https://www.espruino.com/ – 開発が活発 – Node.jsに準拠したインタープリ ターになっている 14 OSSで公開されていて注目しているもの • JerryScript – 元々、SAMSUNGが開発 – 公式(?)のmbed対応がある • https://github.com/ARMmbe d/mbed-js-example – ECMAScriptの仕様に準拠? – インタープリターではなくプリ コンパイル型 – 今日はこっちの話
  • 15. Copyright © 2016 Uhuru Corporation, All Right Reserved. • Runs on > 40 boards already • Drivers, OS, critical paths in C++ • Deep sleep build-in • Big library ecosystem, and many connectivity methods • Application code can run in JS, and interop with C++ 15 JS on mbed – Best of both worlds
  • 16. Copyright © 2016 Uhuru Corporation, All Right Reserved. 16 Sample Application Code var blink = require('./blink_leds'); setInterval(function() { blink(); }, 2000); main.js var led = DigitalOut(LED1); var blink = function() { led.write(led.read() ? 0 : 1); print("blink! LED is now " + led.read()); }; module.exports = blink; blink_led.js すごーい!簡単だね!
  • 17. Copyright © 2016 Uhuru Corporation, All Right Reserved. • スレッドの管理 • 割り込みの扱い • コンテキストスイッチ • 電源管理 など、 17 しかし抽象度が高いと・・・ ローレベルの管理ができなくなるのでは?
  • 18. Copyright © 2016 Uhuru Corporation, All Right Reserved. • イベントループで自動的にスリープするようにすることで • JS on mbed Beaconでは7年間動作できる計算 – nRF52-DK – 1sec interval – lowest power mode 18 Jan曰く これは試してみなければ
  • 19. Copyright © 2016 Uhuru Corporation, All Right Reserved. 19 手順 mbed DevelopperサイトのNotebootで公開
  • 20. Copyright © 2016 Uhuru Corporation, All Right Reserved. • ベース環境:Bash on Ubuntu on Windows (BoW) – ほぼUbuntu 14.04 20 開発環境の整備: mbed-CLI $ sudo apt-get install build-essential Install native toolchain $ sudo add-apt-repository ppa:team-gcc-arm-embedded/ppa $ sudo apt-get update $ sudo apt-get install gcc-arm-embedded Install native toolchain $ sudo apt-get install python $ sudo apt-get install python-pip $ sudo apt-get install git $ sudo apt-get install mercurial Install dependencies $ git clone https://github.com/ARMmbed/mbed-cli $ cd mbed-cli $ sudo python setup.py install $ mbed config --global GCC_ARM_PATH /usr/bin Install mbed-cli
  • 21. Copyright © 2016 Uhuru Corporation, All Right Reserved. 21 Jerryscript for mbedのビルド手順 $ curl -sL https://deb.nodesource.com/setup_6.x | sudo -E bash - $ sudo apt-get install -y nodejs $ node --version v6.9.5 Install Node.js $ sudo npm install gulp-cli -g Install Gulp $ git clone https://github.com/ARMmbed/mbed-js-example $ cd mbed-js-example $ npm install $ gulp --target=NUCLEO_F401RE build jerryscript
  • 22. Copyright © 2016 Uhuru Corporation, All Right Reserved. • ターゲットボード:NUCLEO_F401RE • コンパイラ:arm-none-eabi-gcc 6.2.1 20161205 [ARM/embedded-6-branch revision 243739] • OS: mbed OS 5.1 22 Lチカの結果 +--------------------+--------+-------+-------+ | Module | .text | .data | .bss | +--------------------+--------+-------+-------+ | Fill | 390 | 0 | 12 | | Misc | 299322 | 3644 | 18992 | | drivers | 3390 | 4 | 192 | | events | 52 | 0 | 0 | | events/equeue | 1404 | 0 | 61 | | hal | 802 | 0 | 8 | | platform | 1771 | 4 | 297 | | rtos | 757 | 4 | 4 | | rtos/rtx | 6717 | 20 | 6870 | | targets/TARGET_STM | 15497 | 4 | 1452 | | Subtotals | 330102 | 3680 | 27888 | +--------------------+--------+-------+-------+ Allocated Heap: unknown Allocated Stack: unknown Total Static RAM memory (data + bss): 31568 bytes Total RAM memory (data + bss + heap + stack): 31568 bytes Total Flash memory (text + data + misc): 333782 bytes Lチカだけなら、RAM 32kB, ROM 350kB程度
  • 23. Copyright © 2016 Uhuru Corporation, All Right Reserved. • インタープリタ化 • スリープ性能の評価 • Node-REDの移植 23 今後やってみたいこと 一緒にやってくれるフレンズ募集中!
  • 24. Copyright © 2016 Uhuru Corporation, All Right Reserved. iot@uhuru.jp