SlideShare a Scribd company logo
 
Arduino compatible layer
(with 6LoWPAN)
on Contiki
soburi
Open Source UN-Conference 2016 Kawagoe 2016/4/24
2 
About
● UNIX 島の老害サークルやってます
– Twitter https://twitter.com/crs
– GitHub https://github.com/soburi
● 夏冬の祭り以外は大して活動してません。
● 技術書典応募してみました。
3 
Recent works
●
KiCad で雑に基板を作るチュートリアル
http://www.slideshare.net/soburi/kicad-53622272
●
TWE-Lite を ArduinoIDE で使う
http://qiita.com/soburi/items/0b0aa3d0c4332a5e7a4c
●
TWE-Lite を ArduinoIDE で使って IPv6(6LoWPAN) で通信する。
http://qiita.com/soburi/items/b07c314d33ef71a10001
●
ScratchX から WebSocket 経由で eject してみる。
http://qiita.com/soburi/items/ea12671f973d24e512b0
●
ScratchX と ESP8266 を WebSocket でつないで遊んでみる。
http://qiita.com/soburi/items/ec0a39e4c6f3b9de4de4
大好評!
It’s new!
It’s new!
ウケなかった!
それなり
一番労力かけたネタが一番ウケなくて残念な感じなので、
ボヤキ宣伝しにきました
4 
TWE-Lite
● IEEE802.15.4 が話せるマイコン
● 秋葉原のあちこちで 1500 円で売っている
● 中身は JN5164 という NXP の石だが、 ARM ではなくて
OpenRISC 派生の独自アーキテクチャ (BA2)
● NXP の SDK はそこそこマトモだが、
国内流通版の SDK(APP-FW) が
色々とアレ
5 
Contiki
● 最近流行りの軽量 OS
● TI とか Atmel とか Contribute してる
● TWE-Lite(JN5164) も対応している
● プロトスレッドの仕組みでスタックレスの
マルチタスク処理ができる ( 後述 )
6 
Protothreads
static
PT_THREAD(example(struct pt *pt))
{
PT_BEGIN(pt);
while(1) {
PT_WAIT_UNTIL(pt,
counter == 1000);
printf("Threshold reachedn");
counter = 0;
}
PT_END(pt);
}
static
char example(struct pt *pt)
{
switch(pt->lc) { case 0:
while(1) {
pt->lc = 12; case 12:
if(!(counter == 1000)) return 0;
printf("Threshold reachedn");
counter = 0;
}
} pt->lc = 0; return 2;
}
● 行番号を状態変数としてステートマシンを作るワンダフルなマクロ群
● プロセス毎にコールスタック要らないから確かにローコスト
● NICE JOKE.
 
Coroutine
● Contiki には Multithreading API(Coroutine) がある。
● Protothreads でマルチタスクできるから
誰も実装していない!
● レジスタ・スタックの退避復元処理を書けば動く
● TWE-Lite の CPU の仕様が公開されてないから、
disassemble 見ながら Hack! した (F**k!)
● とりあえず動くようになった!
 
Arduino Compatible API
● Coroutine があると Contiki 上に Arduino 互換
API を実装できる
(Protothreads の文法に従わなくて済む )
● OS ベースで動くので API でブロッキング動作
してる裏で仕事ができる
Arduino API から
ネットワークプロトコルスタックが使える !
9 
6LoWPAN
● IPv6 を低電力低帯域ネットに無理矢理通す仕様
● Contiki は大手マイコンベンダがコミットしていて
実質 6LoWPAN の Reference Implement
● Arduino の API から使えるようにできた!
● TCP/IP なので API もほぼ既存と共通にできた!
● Arduino でも Industries 4.0 っぽい感じに!
● UDP のペイロード 33byte しかないけどな!
10 
Conclusion
● Arduino 互換レイヤを Contiki 上に構築できた
● Contiki based Arduino 、まだ色々遊べそう
● TWE-Lite のアレな SDK 使わずに
Arduino ライクに作れるし
6LoWPAN で IoT ごっこもできるようになった

More Related Content

What's hot

Config mapについて
Config mapについてConfig mapについて
Config mapについて
Arata Honda
 
GitLabを16万8千光年ワープさせた話 GITLAB BIG UPGRADE PROJECT
GitLabを16万8千光年ワープさせた話 GITLAB BIG UPGRADE PROJECTGitLabを16万8千光年ワープさせた話 GITLAB BIG UPGRADE PROJECT
GitLabを16万8千光年ワープさせた話 GITLAB BIG UPGRADE PROJECT
Wataru NOGUCHI
 
Excite beer bash06
Excite beer bash06Excite beer bash06
Excite beer bash06
Arata Honda
 
Piwik fluentd at OSC Tokyo 2015 Fall
Piwik fluentd at OSC Tokyo 2015 FallPiwik fluentd at OSC Tokyo 2015 Fall
Piwik fluentd at OSC Tokyo 2015 Fall
Takashi Yamamoto
 
今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集
Wataru NOGUCHI
 
Intel graphics
Intel graphicsIntel graphics
Intel graphics
Yuichiro Naito
 
VyOSの開発とか運用の話
VyOSの開発とか運用の話VyOSの開発とか運用の話
VyOSの開発とか運用の話
Shintaro Hasunuma
 

What's hot (7)

Config mapについて
Config mapについてConfig mapについて
Config mapについて
 
GitLabを16万8千光年ワープさせた話 GITLAB BIG UPGRADE PROJECT
GitLabを16万8千光年ワープさせた話 GITLAB BIG UPGRADE PROJECTGitLabを16万8千光年ワープさせた話 GITLAB BIG UPGRADE PROJECT
GitLabを16万8千光年ワープさせた話 GITLAB BIG UPGRADE PROJECT
 
Excite beer bash06
Excite beer bash06Excite beer bash06
Excite beer bash06
 
Piwik fluentd at OSC Tokyo 2015 Fall
Piwik fluentd at OSC Tokyo 2015 FallPiwik fluentd at OSC Tokyo 2015 Fall
Piwik fluentd at OSC Tokyo 2015 Fall
 
今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集今時のDev opsの取り組み事例集
今時のDev opsの取り組み事例集
 
Intel graphics
Intel graphicsIntel graphics
Intel graphics
 
VyOSの開発とか運用の話
VyOSの開発とか運用の話VyOSの開発とか運用の話
VyOSの開発とか運用の話
 

Viewers also liked

KiCadで雑に基板を作る チュートリアル
KiCadで雑に基板を作る チュートリアルKiCadで雑に基板を作る チュートリアル
KiCadで雑に基板を作る チュートリアル
裕士 常田
 
Mft2014 defeated
Mft2014 defeatedMft2014 defeated
Mft2014 defeated
裕士 常田
 
OSUnC川越2016
OSUnC川越2016OSUnC川越2016
OSUnC川越2016
洋史 東平
 
○○作ったよ(OSunC川越LT)
○○作ったよ(OSunC川越LT)○○作ったよ(OSunC川越LT)
○○作ったよ(OSunC川越LT)
Takeshi Kabu
 
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux DeviceAdding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Samsung Open Source Group
 
Internship end
Internship endInternship end
Internship end
Maxime Denis
 
Internet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! nightInternet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! night
Andy Gelme
 
IPSN 2009 Contiki / uIP tutorial
IPSN 2009 Contiki / uIP tutorialIPSN 2009 Contiki / uIP tutorial
IPSN 2009 Contiki / uIP tutorial
adamdunkels
 
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under LinuxPractical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Samsung Open Source Group
 
Run Your Own 6LoWPAN Based IoT Network
Run Your Own 6LoWPAN Based IoT NetworkRun Your Own 6LoWPAN Based IoT Network
Run Your Own 6LoWPAN Based IoT Network
Samsung Open Source Group
 
第2回日本seleniumユーザーコミュニティ勉強会
第2回日本seleniumユーザーコミュニティ勉強会第2回日本seleniumユーザーコミュニティ勉強会
第2回日本seleniumユーザーコミュニティ勉強会
Nozomi Ito
 
Building the Internet of Things with Thingsquare and Contiki - day 1, part 1
Building the Internet of Things with Thingsquare and Contiki - day 1, part 1Building the Internet of Things with Thingsquare and Contiki - day 1, part 1
Building the Internet of Things with Thingsquare and Contiki - day 1, part 1
Adam Dunkels
 
エンタープライズ開発でのSelenium活用事例
エンタープライズ開発でのSelenium活用事例エンタープライズ開発でのSelenium活用事例
エンタープライズ開発でのSelenium活用事例
isaac-otao
 
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトークSeleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトークY Watanabe
 
海外のSeleniumカンファレンスではどんな発表がされているのか2014
海外のSeleniumカンファレンスではどんな発表がされているのか2014海外のSeleniumカンファレンスではどんな発表がされているのか2014
海外のSeleniumカンファレンスではどんな発表がされているのか2014
Nozomi Ito
 
去年のデブサミの「日本Seleniumユーザーコミュニティ」のLTが真面目すぎてイマイチだったので、今年は何とかしようと色々がんばった結果ww
去年のデブサミの「日本Seleniumユーザーコミュニティ」のLTが真面目すぎてイマイチだったので、今年は何とかしようと色々がんばった結果ww去年のデブサミの「日本Seleniumユーザーコミュニティ」のLTが真面目すぎてイマイチだったので、今年は何とかしようと色々がんばった結果ww
去年のデブサミの「日本Seleniumユーザーコミュニティ」のLTが真面目すぎてイマイチだったので、今年は何とかしようと色々がんばった結果ww
Nozomi Ito
 
Seleniumをもっと知るための本の話
Seleniumをもっと知るための本の話Seleniumをもっと知るための本の話
Seleniumをもっと知るための本の話
Ryuji Tamagawa
 
Windows環境でのgitまとめ(2016.8)
Windows環境でのgitまとめ(2016.8)Windows環境でのgitまとめ(2016.8)
Windows環境でのgitまとめ(2016.8)
Tadahiro Ishisaka
 
CoAP Course for m2m and Internet of Things scenarios
CoAP Course for m2m and Internet of Things scenariosCoAP Course for m2m and Internet of Things scenarios
CoAP Course for m2m and Internet of Things scenarios
carlosralli
 
Selenium Antipatterns
Selenium AntipatternsSelenium Antipatterns
Selenium Antipatterns
Jumpei Miyata
 

Viewers also liked (20)

KiCadで雑に基板を作る チュートリアル
KiCadで雑に基板を作る チュートリアルKiCadで雑に基板を作る チュートリアル
KiCadで雑に基板を作る チュートリアル
 
Mft2014 defeated
Mft2014 defeatedMft2014 defeated
Mft2014 defeated
 
OSUnC川越2016
OSUnC川越2016OSUnC川越2016
OSUnC川越2016
 
○○作ったよ(OSunC川越LT)
○○作ったよ(OSunC川越LT)○○作ったよ(OSunC川越LT)
○○作ったよ(OSunC川越LT)
 
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux DeviceAdding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
Adding IEEE 802.15.4 and 6LoWPAN to an Embedded Linux Device
 
Internship end
Internship endInternship end
Internship end
 
Internet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! nightInternet Of Things: Hands on: YOW! night
Internet Of Things: Hands on: YOW! night
 
IPSN 2009 Contiki / uIP tutorial
IPSN 2009 Contiki / uIP tutorialIPSN 2009 Contiki / uIP tutorial
IPSN 2009 Contiki / uIP tutorial
 
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under LinuxPractical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
Practical Guide to Run an IEEE 802.15.4 Network with 6LoWPAN Under Linux
 
Run Your Own 6LoWPAN Based IoT Network
Run Your Own 6LoWPAN Based IoT NetworkRun Your Own 6LoWPAN Based IoT Network
Run Your Own 6LoWPAN Based IoT Network
 
第2回日本seleniumユーザーコミュニティ勉強会
第2回日本seleniumユーザーコミュニティ勉強会第2回日本seleniumユーザーコミュニティ勉強会
第2回日本seleniumユーザーコミュニティ勉強会
 
Building the Internet of Things with Thingsquare and Contiki - day 1, part 1
Building the Internet of Things with Thingsquare and Contiki - day 1, part 1Building the Internet of Things with Thingsquare and Contiki - day 1, part 1
Building the Internet of Things with Thingsquare and Contiki - day 1, part 1
 
エンタープライズ開発でのSelenium活用事例
エンタープライズ開発でのSelenium活用事例エンタープライズ開発でのSelenium活用事例
エンタープライズ開発でのSelenium活用事例
 
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトークSeleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
Seleniumと相性がいいテンプレートエンジンMixer2-第1回selenium勉強会ライトニングトーク
 
海外のSeleniumカンファレンスではどんな発表がされているのか2014
海外のSeleniumカンファレンスではどんな発表がされているのか2014海外のSeleniumカンファレンスではどんな発表がされているのか2014
海外のSeleniumカンファレンスではどんな発表がされているのか2014
 
去年のデブサミの「日本Seleniumユーザーコミュニティ」のLTが真面目すぎてイマイチだったので、今年は何とかしようと色々がんばった結果ww
去年のデブサミの「日本Seleniumユーザーコミュニティ」のLTが真面目すぎてイマイチだったので、今年は何とかしようと色々がんばった結果ww去年のデブサミの「日本Seleniumユーザーコミュニティ」のLTが真面目すぎてイマイチだったので、今年は何とかしようと色々がんばった結果ww
去年のデブサミの「日本Seleniumユーザーコミュニティ」のLTが真面目すぎてイマイチだったので、今年は何とかしようと色々がんばった結果ww
 
Seleniumをもっと知るための本の話
Seleniumをもっと知るための本の話Seleniumをもっと知るための本の話
Seleniumをもっと知るための本の話
 
Windows環境でのgitまとめ(2016.8)
Windows環境でのgitまとめ(2016.8)Windows環境でのgitまとめ(2016.8)
Windows環境でのgitまとめ(2016.8)
 
CoAP Course for m2m and Internet of Things scenarios
CoAP Course for m2m and Internet of Things scenariosCoAP Course for m2m and Internet of Things scenarios
CoAP Course for m2m and Internet of Things scenarios
 
Selenium Antipatterns
Selenium AntipatternsSelenium Antipatterns
Selenium Antipatterns
 

Similar to Arduino compatible layer (with 6LoWPAN) on Contiki

ネタ募集箱を支える技術 開発環境編
ネタ募集箱を支える技術 開発環境編ネタ募集箱を支える技術 開発環境編
ネタ募集箱を支える技術 開発環境編
Daisuke Shimada
 
ScalaにまつわるNewsな話
ScalaにまつわるNewsな話ScalaにまつわるNewsな話
ScalaにまつわるNewsな話
Yosuke Mizutani
 
第2回 -Play部屋- Play 2.0はじめて&もくもく会
第2回 -Play部屋- Play 2.0はじめて&もくもく会第2回 -Play部屋- Play 2.0はじめて&もくもく会
第2回 -Play部屋- Play 2.0はじめて&もくもく会
Kazuhiro Hara
 
20220412 IoTLT vol86 kitazaki v1
20220412 IoTLT vol86 kitazaki v120220412 IoTLT vol86 kitazaki v1
20220412 IoTLT vol86 kitazaki v1
Ayachika Kitazaki
 
M5Stackの拡張基板を作ってjimmyに届けた話
M5Stackの拡張基板を作ってjimmyに届けた話M5Stackの拡張基板を作ってjimmyに届けた話
M5Stackの拡張基板を作ってjimmyに届けた話
Masawo Yamazaki
 
機械学習 (AI/ML) 勉強会 #2 IoT編
機械学習 (AI/ML) 勉強会 #2 IoT編 機械学習 (AI/ML) 勉強会 #2 IoT編
機械学習 (AI/ML) 勉強会 #2 IoT編
Fujio Kojima
 
OSC Nagoya NETMF 160528
OSC Nagoya NETMF 160528OSC Nagoya NETMF 160528
OSC Nagoya NETMF 160528
Atomu Hidaka
 
PYNQ祭り
PYNQ祭りPYNQ祭り
PYNQ祭り
Mr. Vengineer
 
io tつくるよ! LT [m5stackの拡張基板をつくったよ!」
io tつくるよ! LT [m5stackの拡張基板をつくったよ!」io tつくるよ! LT [m5stackの拡張基板をつくったよ!」
io tつくるよ! LT [m5stackの拡張基板をつくったよ!」
Masawo Yamazaki
 
Building Static Website With Github And Jekyll
Building Static Website With Github And JekyllBuilding Static Website With Github And Jekyll
Building Static Website With Github And JekyllYoji Shidara
 
日本 GNU AWK ユーザー会スライド 2 - OSC2012 Tokyo/Fall
日本 GNU AWK ユーザー会スライド 2 - OSC2012 Tokyo/Fall日本 GNU AWK ユーザー会スライド 2 - OSC2012 Tokyo/Fall
日本 GNU AWK ユーザー会スライド 2 - OSC2012 Tokyo/Fall博文 斉藤
 
20180829 ガチラボ vol.9
20180829 ガチラボ vol.920180829 ガチラボ vol.9
20180829 ガチラボ vol.9
Satoshi Fujimoto
 
[DockerConハイライト] OpenPubKeyによるイメージの署名と検証.pdf
[DockerConハイライト] OpenPubKeyによるイメージの署名と検証.pdf[DockerConハイライト] OpenPubKeyによるイメージの署名と検証.pdf
[DockerConハイライト] OpenPubKeyによるイメージの署名と検証.pdf
Akihiro Suda
 
五番目のダイアグ、現る。 2012.08 #pyfes #blockdiag
五番目のダイアグ、現る。 2012.08 #pyfes #blockdiag五番目のダイアグ、現る。 2012.08 #pyfes #blockdiag
五番目のダイアグ、現る。 2012.08 #pyfes #blockdiagTakeshi Komiya
 
Vagrant+virtualboxを使ってみよう
Vagrant+virtualboxを使ってみようVagrant+virtualboxを使ってみよう
Vagrant+virtualboxを使ってみよう
Kei IWASAKI
 
Metahub for github
Metahub for githubMetahub for github
Metahub for github
Suguru Oho
 
20180822 ガチラボ vol.8
20180822 ガチラボ vol.820180822 ガチラボ vol.8
20180822 ガチラボ vol.8
Satoshi Fujimoto
 
10年ぶりの ニューラルネットワーク
10年ぶりの ニューラルネットワーク10年ぶりの ニューラルネットワーク
10年ぶりの ニューラルネットワーク
Takatsugu Nokubi
 
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
Hideki Takase
 

Similar to Arduino compatible layer (with 6LoWPAN) on Contiki (20)

ネタ募集箱を支える技術 開発環境編
ネタ募集箱を支える技術 開発環境編ネタ募集箱を支える技術 開発環境編
ネタ募集箱を支える技術 開発環境編
 
ScalaにまつわるNewsな話
ScalaにまつわるNewsな話ScalaにまつわるNewsな話
ScalaにまつわるNewsな話
 
第2回 -Play部屋- Play 2.0はじめて&もくもく会
第2回 -Play部屋- Play 2.0はじめて&もくもく会第2回 -Play部屋- Play 2.0はじめて&もくもく会
第2回 -Play部屋- Play 2.0はじめて&もくもく会
 
20220412 IoTLT vol86 kitazaki v1
20220412 IoTLT vol86 kitazaki v120220412 IoTLT vol86 kitazaki v1
20220412 IoTLT vol86 kitazaki v1
 
M5Stackの拡張基板を作ってjimmyに届けた話
M5Stackの拡張基板を作ってjimmyに届けた話M5Stackの拡張基板を作ってjimmyに届けた話
M5Stackの拡張基板を作ってjimmyに届けた話
 
機械学習 (AI/ML) 勉強会 #2 IoT編
機械学習 (AI/ML) 勉強会 #2 IoT編 機械学習 (AI/ML) 勉強会 #2 IoT編
機械学習 (AI/ML) 勉強会 #2 IoT編
 
OSC Nagoya NETMF 160528
OSC Nagoya NETMF 160528OSC Nagoya NETMF 160528
OSC Nagoya NETMF 160528
 
PYNQ祭り
PYNQ祭りPYNQ祭り
PYNQ祭り
 
io tつくるよ! LT [m5stackの拡張基板をつくったよ!」
io tつくるよ! LT [m5stackの拡張基板をつくったよ!」io tつくるよ! LT [m5stackの拡張基板をつくったよ!」
io tつくるよ! LT [m5stackの拡張基板をつくったよ!」
 
Building Static Website With Github And Jekyll
Building Static Website With Github And JekyllBuilding Static Website With Github And Jekyll
Building Static Website With Github And Jekyll
 
日本 GNU AWK ユーザー会スライド 2 - OSC2012 Tokyo/Fall
日本 GNU AWK ユーザー会スライド 2 - OSC2012 Tokyo/Fall日本 GNU AWK ユーザー会スライド 2 - OSC2012 Tokyo/Fall
日本 GNU AWK ユーザー会スライド 2 - OSC2012 Tokyo/Fall
 
20180829 ガチラボ vol.9
20180829 ガチラボ vol.920180829 ガチラボ vol.9
20180829 ガチラボ vol.9
 
[DockerConハイライト] OpenPubKeyによるイメージの署名と検証.pdf
[DockerConハイライト] OpenPubKeyによるイメージの署名と検証.pdf[DockerConハイライト] OpenPubKeyによるイメージの署名と検証.pdf
[DockerConハイライト] OpenPubKeyによるイメージの署名と検証.pdf
 
Open modeler
Open modelerOpen modeler
Open modeler
 
五番目のダイアグ、現る。 2012.08 #pyfes #blockdiag
五番目のダイアグ、現る。 2012.08 #pyfes #blockdiag五番目のダイアグ、現る。 2012.08 #pyfes #blockdiag
五番目のダイアグ、現る。 2012.08 #pyfes #blockdiag
 
Vagrant+virtualboxを使ってみよう
Vagrant+virtualboxを使ってみようVagrant+virtualboxを使ってみよう
Vagrant+virtualboxを使ってみよう
 
Metahub for github
Metahub for githubMetahub for github
Metahub for github
 
20180822 ガチラボ vol.8
20180822 ガチラボ vol.820180822 ガチラボ vol.8
20180822 ガチラボ vol.8
 
10年ぶりの ニューラルネットワーク
10年ぶりの ニューラルネットワーク10年ぶりの ニューラルネットワーク
10年ぶりの ニューラルネットワーク
 
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
IoTアプリ/ロボット開発をリアルタイムOSでレベルアップしませんか? ~高品質な組込み向けオープンソースを開発するTOPPERSプロジェクトのご紹介~
 

More from 裕士 常田

WeblateでOSSの翻訳に参加する
WeblateでOSSの翻訳に参加するWeblateでOSSの翻訳に参加する
WeblateでOSSの翻訳に参加する
裕士 常田
 
Node native ext
Node native extNode native ext
Node native ext
裕士 常田
 
Arduino library の作り方 2020
Arduino library の作り方 2020Arduino library の作り方 2020
Arduino library の作り方 2020
裕士 常田
 
BlackMagic ProbeでARMをデバッグする
BlackMagic ProbeでARMをデバッグするBlackMagic ProbeでARMをデバッグする
BlackMagic ProbeでARMをデバッグする
裕士 常田
 
HKマスクを作ってみた
HKマスクを作ってみたHKマスクを作ってみた
HKマスクを作ってみた
裕士 常田
 
Openthread / nrf52811 調査(仮)
Openthread / nrf52811 調査(仮)Openthread / nrf52811 調査(仮)
Openthread / nrf52811 調査(仮)
裕士 常田
 
いまどきの組込みOSの​ ZephyrRTOSと​ OpenThreadを​ Arduino環境で遊んでみる
いまどきの組込みOSの​ ZephyrRTOSと​ OpenThreadを​ Arduino環境で遊んでみるいまどきの組込みOSの​ ZephyrRTOSと​ OpenThreadを​ Arduino環境で遊んでみる
いまどきの組込みOSの​ ZephyrRTOSと​ OpenThreadを​ Arduino環境で遊んでみる
裕士 常田
 
DVB recording command on gstreamer.
DVB recording command on gstreamer.DVB recording command on gstreamer.
DVB recording command on gstreamer.裕士 常田
 

More from 裕士 常田 (9)

WeblateでOSSの翻訳に参加する
WeblateでOSSの翻訳に参加するWeblateでOSSの翻訳に参加する
WeblateでOSSの翻訳に参加する
 
Node native ext
Node native extNode native ext
Node native ext
 
Arduino library の作り方 2020
Arduino library の作り方 2020Arduino library の作り方 2020
Arduino library の作り方 2020
 
BlackMagic ProbeでARMをデバッグする
BlackMagic ProbeでARMをデバッグするBlackMagic ProbeでARMをデバッグする
BlackMagic ProbeでARMをデバッグする
 
HKマスクを作ってみた
HKマスクを作ってみたHKマスクを作ってみた
HKマスクを作ってみた
 
Openthread / nrf52811 調査(仮)
Openthread / nrf52811 調査(仮)Openthread / nrf52811 調査(仮)
Openthread / nrf52811 調査(仮)
 
いまどきの組込みOSの​ ZephyrRTOSと​ OpenThreadを​ Arduino環境で遊んでみる
いまどきの組込みOSの​ ZephyrRTOSと​ OpenThreadを​ Arduino環境で遊んでみるいまどきの組込みOSの​ ZephyrRTOSと​ OpenThreadを​ Arduino環境で遊んでみる
いまどきの組込みOSの​ ZephyrRTOSと​ OpenThreadを​ Arduino環境で遊んでみる
 
DVB recording command on gstreamer.
DVB recording command on gstreamer.DVB recording command on gstreamer.
DVB recording command on gstreamer.
 
Traveltoitalia
TraveltoitaliaTraveltoitalia
Traveltoitalia
 

Recently uploaded

LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
Toru Tamaki
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
chiefujita1
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
harmonylab
 
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
Takayuki Nakayama
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
t m
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
Matsushita Laboratory
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
0207sukipio
 

Recently uploaded (8)

LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
論文紹介:Deep Learning-Based Human Pose Estimation: A Survey
 
This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.This is the company presentation material of RIZAP Technologies, Inc.
This is the company presentation material of RIZAP Technologies, Inc.
 
Generating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language ModelsGenerating Automatic Feedback on UI Mockups with Large Language Models
Generating Automatic Feedback on UI Mockups with Large Language Models
 
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援しますキンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
キンドリル ネットワークアセスメントサービスご紹介 今のネットワーク環境は大丈夫? 調査〜対策までご支援します
 
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
遺伝的アルゴリズムと知識蒸留による大規模言語モデル(LLM)の学習とハイパーパラメータ最適化
 
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
ReonHata_便利の副作用に気づかせるための発想支援手法の評価---行為の増減の提示による気づきへの影響---
 
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさJSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
JSAI_類似画像マッチングによる器への印象付与手法の妥当性検証_ver.3_高橋りさ
 

Arduino compatible layer (with 6LoWPAN) on Contiki

  • 1.   Arduino compatible layer (with 6LoWPAN) on Contiki soburi Open Source UN-Conference 2016 Kawagoe 2016/4/24
  • 2. 2  About ● UNIX 島の老害サークルやってます – Twitter https://twitter.com/crs – GitHub https://github.com/soburi ● 夏冬の祭り以外は大して活動してません。 ● 技術書典応募してみました。
  • 3. 3  Recent works ● KiCad で雑に基板を作るチュートリアル http://www.slideshare.net/soburi/kicad-53622272 ● TWE-Lite を ArduinoIDE で使う http://qiita.com/soburi/items/0b0aa3d0c4332a5e7a4c ● TWE-Lite を ArduinoIDE で使って IPv6(6LoWPAN) で通信する。 http://qiita.com/soburi/items/b07c314d33ef71a10001 ● ScratchX から WebSocket 経由で eject してみる。 http://qiita.com/soburi/items/ea12671f973d24e512b0 ● ScratchX と ESP8266 を WebSocket でつないで遊んでみる。 http://qiita.com/soburi/items/ec0a39e4c6f3b9de4de4 大好評! It’s new! It’s new! ウケなかった! それなり 一番労力かけたネタが一番ウケなくて残念な感じなので、 ボヤキ宣伝しにきました
  • 4. 4  TWE-Lite ● IEEE802.15.4 が話せるマイコン ● 秋葉原のあちこちで 1500 円で売っている ● 中身は JN5164 という NXP の石だが、 ARM ではなくて OpenRISC 派生の独自アーキテクチャ (BA2) ● NXP の SDK はそこそこマトモだが、 国内流通版の SDK(APP-FW) が 色々とアレ
  • 5. 5  Contiki ● 最近流行りの軽量 OS ● TI とか Atmel とか Contribute してる ● TWE-Lite(JN5164) も対応している ● プロトスレッドの仕組みでスタックレスの マルチタスク処理ができる ( 後述 )
  • 6. 6  Protothreads static PT_THREAD(example(struct pt *pt)) { PT_BEGIN(pt); while(1) { PT_WAIT_UNTIL(pt, counter == 1000); printf("Threshold reachedn"); counter = 0; } PT_END(pt); } static char example(struct pt *pt) { switch(pt->lc) { case 0: while(1) { pt->lc = 12; case 12: if(!(counter == 1000)) return 0; printf("Threshold reachedn"); counter = 0; } } pt->lc = 0; return 2; } ● 行番号を状態変数としてステートマシンを作るワンダフルなマクロ群 ● プロセス毎にコールスタック要らないから確かにローコスト ● NICE JOKE.
  • 7.   Coroutine ● Contiki には Multithreading API(Coroutine) がある。 ● Protothreads でマルチタスクできるから 誰も実装していない! ● レジスタ・スタックの退避復元処理を書けば動く ● TWE-Lite の CPU の仕様が公開されてないから、 disassemble 見ながら Hack! した (F**k!) ● とりあえず動くようになった!
  • 8.   Arduino Compatible API ● Coroutine があると Contiki 上に Arduino 互換 API を実装できる (Protothreads の文法に従わなくて済む ) ● OS ベースで動くので API でブロッキング動作 してる裏で仕事ができる Arduino API から ネットワークプロトコルスタックが使える !
  • 9. 9  6LoWPAN ● IPv6 を低電力低帯域ネットに無理矢理通す仕様 ● Contiki は大手マイコンベンダがコミットしていて 実質 6LoWPAN の Reference Implement ● Arduino の API から使えるようにできた! ● TCP/IP なので API もほぼ既存と共通にできた! ● Arduino でも Industries 4.0 っぽい感じに! ● UDP のペイロード 33byte しかないけどな!
  • 10. 10  Conclusion ● Arduino 互換レイヤを Contiki 上に構築できた ● Contiki based Arduino 、まだ色々遊べそう ● TWE-Lite のアレな SDK 使わずに Arduino ライクに作れるし 6LoWPAN で IoT ごっこもできるようになった