Successfully reported this slideshow.
Your SlideShare is downloading. ×

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

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad

Check these out next

1 of 24 Ad

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

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

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

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

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

Advertisement
Advertisement

More Related Content

Similar to ElixirでIoT!?ナウでヤングでcoolなNervesフレームワーク (20)

Advertisement

More from Hideki Takase (17)

Advertisement

Recently uploaded (20)

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 サッポロビーム れっつじょいなす!!

Editor's Notes

  • My presentation consists of 3 parts.
    How many people do you know about FPGA?

    First part is just a lecture in the University. I will introduce about hardware design and FPGA.

    OK, let’s go to the 1st part.
  • これまでのプログラミング言語は処理の振る舞いに着目してきた.これからはデータの扱いを重視すべきとの思想が根付いている.
    パイプ演算子でデータの流れを直接的に記述できる.
    MapReduceモデルのFlowライブラリによって並列処理を直接的に記述できる.

    このプログラムでは,1 から1000 までのリストを生成し,各コアにリストの要素を分配した後,各要素について関数foo とbar を順番に適用してから結果をリストに戻す.図1のプログラムコードを記述すると,各コアにリスト要素を分配して実行される.

    10.63倍のスループットを達成できるという報告も
    IoTでは高性能なコア単体よりも低性能でも多数コアを有する組込みSoCのほうがシステム全体の性能を発揮できることを示している.
     
    •耐障害性とレスポンス性が極めて高い
    -WebフレームワークPhoenixを持つ
    -プロセスごとにGCを含む堅牢なメモリ管理がなされる
    -障害時にはプロセス単位で再起動を高速に行える
  • アカツキ ロマサガRS
    ドリコム 動画広告ネットワーク DreeVee
  • My presentation consists of 3 parts.
    How many people do you know about FPGA?

    First part is just a lecture in the University. I will introduce about hardware design and FPGA.

    OK, let’s go to the 1st part.
  • コナーはFarmBot FrankはSmartRentでElixirALE グレッグはBleacher Report JustinはLe Totle

    Elixir-lang の #nerves チャンネル参加者が2,000人近くいる! #general で24,000人
    Nerves Remote Meetupのワークスペースもある

×