Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ElixirでIoT!?ナウでヤングでcoolなNervesフレームワーク

1,232 views

Published on

IoT ALGYAN Webinarで,Nervesを存分に紹介しました!!

【オンライン】Elixir/Nerves入門!堅牢なIoT Edgeデバイスプログラミングをお手軽に
https://algyan.connpass.com/event/180192/

Published in: Technology
  • Login to see the comments

ElixirでIoT!?ナウでヤングでcoolなNervesフレームワーク

  1. 1. ElixirでIoT!? ナウでヤングでcoolなNervesフレームワーク @takasehideki
  2. 2. @takasehideki − 京都大学 情報学研究科 准教授 − JSTさきがけ 兼任研究者 − SWEST ステアリング委員 − IPSJ-SIGEMB 運営幹事 − TOPPERSプロジェクト 特別会員 − ROS Japan Users Group  関西勉強会 主催  ROSCon JP 実行委員 − IoT ALGYAN 関西支部長代行補佐 − Elixir: NervesJP kyoto.ex 主な研究開発プロジェクト − mROS: 組込み向けROS軽量実行環境 − Cockatrice: Elixir for HLS 自己紹介 2 Cockatrice
  3. 3. We are !!! 3
  4. 4. 4 関数型言語ElixirでIoT開発!?を 楽しんでいるオンラインコミュニティです Elixir/Nervesをもっと知りたい方、 Nervesでなんか作ってみたい方、 Nerves Projectに貢献したい方、 れっつじょいなす!! https://nerves-jp.connpass.com/
  5. 5. Elixirとは?
  6. 6. Elixirとは? 2012年に登場した新たな関数型言語 6 Erlang VM上で動作 • 高い並列性能を誇る • 軽量かつ頑強なプロセスモデル • 耐障害性が極めて高い Rubyを基にした言語設計 • 習得しやすく生産性が向上する • WebフレームワークPhoenixを持つ 応答性が極めて高い #NervesJP
  7. 7. Elixirの採用例 • 8 Companies That Use Elixir in Production https://serokell.io/blog/elixir-companies • 日本で Erlang/OTP や Elixir を利用している会社一覧 github: voluntas/japanese-erlang-elixir-companies 7 画像クリックで 詳細ページに
  8. 8. 8 Elixir Zen Style 1..1000 |> Flow.from_enumerable() |> Flow.map(& foo(&1)) |> Flow.map(& bar(&1)) |> Enum.sort Zen(禅) とは本質美である プログラミングの本質とは データの流れである Elixirではデータフローと並列処理を Enum Flow |> で直感的に記述できる #NervesJP
  9. 9. Elixirの気持ちよさ • Zen Style!! • (やや)強い動的型付け • オブジェクトの イミュータブル性(不変性) • バイナリ操作と パターンマッチ • メモリ軽量かつ 堅牢なプロセスモデル − 障害時にはプロセス 単位で復旧可能 • マクロプログラミング 9 ダッシュ ボード Link Super Visor one_for_one App 液晶 データ ロガー Link センサ 監視 制御 Link ボタン #NervesJP
  10. 10. Elixirって,,,
  11. 11. ElixirでIoT!! 11 • HWもSWもErlangセットで提供!! ü300MHz Cortex-M7 & 64MB Flash üOn-board WLAN & Pmodコネクタ • V2のKickstarter Project達成︕︕ • ラズパイ等が主な対象 • メモリサイズ数10MB︕ • Elixir ecosystem連携︕ • ESP32/STM32で Elixir/Elarngが動く!! • ファームは約700KB!! • 機能実装はまだ限定的 #NervesJP
  12. 12. 12#NervesJP https://nerves-project.org Platform Framework Tooling
  13. 13. Platform • ブートローダ+rootfs+ Erlang OTP+Elixirアプリ − 一括でビルドして SDカード等に書込み 13#NervesJP
  14. 14. Framework • IoTデバイス開発に欠かせない 強力なライブラリ −Elixir Circuits: GPIO, I2C, SPI, UART −IoTモジュール向けライブラリも • 通常のElixirライブラリも利用可 −描画系ライブラリ Scenic や Webフレームワーク Phoenixとも 容易に連携可能! 14#NervesJP
  15. 15. Tooling • mixによるプロジェクト管理 − いつものElixirアプリ開発と一緒! − クロスコンパイルは裏でよしなに • IExでのインタプリタ実行も可能 − VirtualEther越しのssh接続 − /dev/tty* 越しのserial接続 • ファーム・アプリの書き込み − SDカードに書き込み − VirtualEther越しの更新 − NervesHub : Device to the Cloud!! サーバ経由のOTAでアプリをリモートデプロイ! 15#NervesJP
  16. 16. NervesHub • サーバ経由のOTA (Over The Air) で Nervesアプリをリモートデプロイ! − X.509署名証明書とNervesKey回路で セキュアな接続経路を実現  https://www.tindie.com/products/ troodonsw/nerveskey/ − 更新先とファームを任意指定可 16
  17. 17. 主な対応デバイス 17#NervesJP x86_64 https://www.youtube.com/ watch?v=DvwgGz_5D5I ラズパイ BeagleBone Custom Boards
  18. 18. 18 Developers Community https://github.com/orgs/nerves-project/people #nerves on elixir-lang.slack https://github.com/nerves-project/nerves
  19. 19. Nervesの採用例 https://www.nerves-project.org/case-studies 19 Le Tote: 衣料品倉庫のRFIDと キオスクによる在庫管理 Hop: 顔認証機能付きの キオスクビールサーバ FarmBot: スマートファームの実現
  20. 20. 『ElixirでIoT』の新世界! 20 デバイス エッジサーバ クラウド あらゆるモノ・コト・ヒトを ネットワーク化! 情報技術の総合格闘技! 新たな社会的価値を創出!!
  21. 21. 『ElixirでIoT』の新世界! 21 デバイス エッジサーバ クラウド あらゆるモノ・コト・ヒトを ネットワーク化! 情報技術の総合格闘技! 新たな社会的価値を創出!!
  22. 22. 勉強したくね?? 22#NervesJP • 通称「えりいざ」本 − @MzRyuKa さん渾身の力作! − 達人出版会にて電子版の 半額セール実施中! https://tatsu-zine.com/books/elixir-invitation − めちゃ丁寧!入門に最適! Elixirのインストールから PhoenixのWebページ作成, NervesでLチカまで! − はじめは雰囲気で使っても 良いじゃないの
  23. 23. わんもあしんぐ,,, NervesJP #9 MeetUpを7/20(月)に開催!! https://nerves-jp.connpass.com/event/182548/ 23
  24. 24. https://nerves-jp.connpass.com/ 24 サッポロビーム れっつじょいなす!!

×