SWEST23 セッションs2b【NervesJPプレゼンツ】
SBCの使い⽅の新しいカタチ#NervesJP #SWEST23

本セッションの内容と登壇者#NervesJP#SWEST23

SBCおよび周辺技術の発展は、FAの分野でも⼤きなブレイクスルーをもたらすと期待されています。まず本セッションでは、FAにおけるPLC制御を簡単に解説した上で、SBCがFAに変⾰をもたらすために必要な考え⽅について述べたいと思います。
次に、IoT分野における昨今のSBCの活⽤のされ⽅と、FA分野にも通じるSBCの開発／運⽤における課題を概観します。これらの課題を、関数型⾔語ElixirのIoTフレームワークであるNervesがどのように解決することができるかを、Nervesの移植可能性とデモを通じて紹介いたします。

@kikuyuta@pojiro@takasehideki

2

SBC，とは︖︖#NervesJP#SWEST23• Single Board Computer• Linuxがさくさくといごく• I/Oが割りと豊富GUIが使えるものも• 組込み向けにも使える（⼩型，低電⼒，低価格）

3

#NervesJP#SWEST23

そこでElixir!!

#NervesJP#SWEST23

Elixir!!
2012年に登場した新たな関数型⾔語
Erlang VM上で動作• ⾼い並列性能を誇る• 軽量かつ頑強なプロセスモデル• 耐障害性が極めて⾼い

Rubyを基にした⾔語設計• 習得しやすく⽣産性が向上する• WebフレームワークPhoenixを持つ
Ø応答性が極めて⾼い※各⾔語・フレームワークのロゴの権利はそれぞれの作成者に帰属しています#NervesJP#SWEST23
Shared Data

Elixirの気持ちよさ• Zen Style!!

3.14• (やや)強い動的型付けとイミュータブル性• 処理のモジュール化と制御の抽象化­関数とパイプ／プロセスとメッセージ• メモリ軽量かつ堅牢なプロセスモデル­プロセス単位でのメモリ管理と障害復旧• バイナリ操作とパターンマッチ{:ok, ref} = Circuits.I2C.open(@i2c_bus)
Circuits.I2C.write(ref, @i2c_addr, <<0xBE, 0x08, 0x00>>)
Circuits.I2C.write(ref, @i2c_addr, <<0xAC, 0x33, 0x00>>){:ok, val} = Circuits.I2C.read(ref, @i2c_addr, 7)<<_state::8, raw_humi::20, raw_temp::20, _crc::8>> = val

Core #1

Core #2

App

データ
ロガー

Link

Super
Visor

監視制御

Link

ダッシュボード

Link

one_for_one

センサ

ボタン

液晶

#NervesJP#SWEST23

つまりElixirとは,,,

#NervesJP#SWEST23

Elixir Zen StyleZen(禅) とは本質美である

1..1000|> Flow.from_enumerable()|> Flow.map(& foo(&1))|> Flow.map(& bar(&1))
Programming should be|> Enum.sort

about transforming data

プログラミングの本質とはデータの流れである
Elixirではデータフローと並列処理を
Enum Flow |> で直感的に記述できる

#NervesJP#SWEST23

ElixirってIoTに良いんじゃね︖︖

だって頼もしいやつらがいる︕)!
連"
+#
,$-%
.三/銃︒⼠三!
銃"⼠#︖$%#NervesJP#SWEST23

#NervesJP#SWEST23

だって頼もしいやつらがいる︕
三!
銃"
⼠#︖$%

任⼤
B量C接D続︕@

作 62+ 7⼿; 8軽/ $5︒%
9!Q%RVS
W時
代@

強 計F
N 算G
味 LH
⽅ I/\`]a^b︑︒

Ｉ!
ｏ"
Ｔ#︕$%
X

※各⾔語・フレームワークのロゴの権利はそれぞれの作成者に帰属しています#NervesJP#SWEST23

つまりNerves!!

Master Boot Record
Linux kernel (Buildroot)
Bootloader A• ナウでヤングなcoolなすごいやつ!!

­極⼩規模のファームウェア (~>30 MB)­堅牢性の⾼いファイルシステム­機能の取捨選別が容易 (Buildrootの利⽤)• Elixirと完全互換でかんたん­アクターベースの並⾏プログラミング­でも，IoT向けになにか気にしなくていい• 有⽤なIoTライブラリとツール­NervesHub: Device to the Cloud!!

Root Filesystem A(Read-only)

Erlang VM
C libraries
Bootloader B
Root Filesystem B(Read-only)

Erlang VM
C libraries
Application Data(Read-Write)#NervesJP
CQ出版Interface
2020年6⽉号〜#SWEST23
2021年1⽉号

6%&䛾౑䛔᪉䛾᪂䛧䛔䜹䝍䝏59(56⮬ᕫ⤂௓ƔƔVYKVVGTRQLKTQYGDJVVRUYYYVQODQYQTMUEQO⤒Ṕ⤌䜏㎸䜏/LQX[ᒇ䛥䜣䝥䝻䜾䝷䝬䞊䜶䞁䝆䞁䝧䞁䝏 6($♫ᇸ⋢┴6♫ྡྂᒇᕷฟྥ䝅䝱䝅䝎䜲㛤Ⓨ⟶⌮7♫㇏⏣ᕷ

KWWSZZZRULHQWHFFRMSSURGXFWV䜶䞁䝆䝙䜰
7RPER:RUNVᒸᓮᕷ⌧ᅾ䜰䜴䝖䝷䜲䞁Ɣ

ͳQ6ศ㔝䛻䛚䛡䜛᫖௒䛾5%&䛾ά⏝䛾䛥䜜᪉ż

Ɣ5%&䜢ά⏝䛩䜛ୖ䛷䛾ㄢ㢟䜢ᴫほżƔ౛䠅)$䚸㎰ᴗ䝝䞊䝗䚸䝋䝣䝖ㄢ㢟䜢ゎỴ䛩䜛䝔䜽䝜䝻䝆䞊0GTXGUż⛣᳜ྍ⬟ᛶ䚸䝕䝰

,R7ศ㔝䛻䛚䛡䜛6%&䛾ά⏝ƔƔƔ᫖௒䚸5KPING%QCTF&QORWVGT䚸⤌䜏㎸䜏.KPWZ䝪䞊䝗䚸䛾ά⏝䛜ቑຍ3䠖䛺䛬䛛䠛$䠖䛂䜔䜚䛯䛔䛣䛸䛃䚸䛂䜔䜜䜛䛸⪃䛘䜙䜜䜛䛣䛸䛃䛜ቑ䛘䛯䛛䜙䛷䛿䛺䛔䛛䠛Ɣ⤌䜏㎸䜏ศ㔝䛸9GDศ㔝䛾ᢏ⾡䛜ᡭ䜢ྲྀ䜚ྜ䛳䛶䛷䛝䜛䛣䛸䜢䛂ከ䛟䛾ே䛃䛜Ẽ䛵䛡䜛䜘䛖䛻䛺䛳䛯䟿żżżᏳ౯䛺䝷䝈䝟䜲䛾䜘䛖䛺 5%&䛿䛣䜜䛻኱䛝䛟ᐤ୚䛧䛯䛛䜒⤌䜏㎸䜏.KPWZ䛾Ẹ୺໬䠄䠛ᵝ䚻䛺ศ㔝䛷ά⏝䛥䜜䜛䜘䛖䛻䛺䛳䛯

,R7ศ㔝䛻䛚䛡䜛6%&䛾ά⏝౛䛘䜀)$ᚑ᮶䠖3/&䛾䜏䛾ሙྜ┙௨ୗ䛷㛢䛨䛯䜿䞊䝇ƔƔƔධຊ䛷ィ 䠄/GCUWTG䠅
2.&䛷┘ど䠄/QPKVQT䠅ฟຊ䛷ไᚚ䠄&QPVTQN䠅ไᚚ┙3/&
ධຊฟຊ,R7䝖䝺䞁䝗ୗ䛾3/&┙௨ୖ䛻㛤䛛䜜䛯䜿䞊䝇ƔƔƔ౛ู䛾ไᚚᶵᵓ'%$3,ධຊ䛷ィ
2.&䛷┘どฟຊ䛷ไᚚ౛౛ไᚚ┙䝥䝷䝇3/&䠛ƔƔ౛䠍䠖'%$2ͳ䛸䛾䜔䜚䛸䜚౛䠖ู䛾ไᚚᶵᵓ䛾ᣦ♧ཷ䛡ධຊฟຊ⪃䛘䜙䜜䜛ᐇ⿦䝟䝍䞊䞁౛౛ู䛾ไᚚᶵᵓ'%$3,౛౛ไᚚ┙6%&3&3/&ධຊู䛾ไᚚᶵᵓ'%$3,౛౛ไᚚ┙6%&ⓗ䛺ఱ䛛ฟຊධຊฟຊ,R7ศ㔝䛻䛚䛡䜛6%&䛾ά⏝౛䛘䜀㎰ᴗ䜏䛹䜚䝪䝑䜽䝇KWWSVLQIRPLGRULFORXGQHWSURGXFWLRQPRQLWRUVSHFƔƔ

KWWSVLQIRPLGRULFORXGQHWSURGXFWLRQSULPDJHVSGIPLGRULER[BVDPSOHSGI䜏䛹䜚䝪䝑䜽䝇 241
ż 䝷䝈䝟䜲䛸䝯䜹䝖䝷䝑䜽䝇♫〇䛾 *2K䛷సᡂ䛥䜜䛶䛔䜛ż 䝣䜯䞊䝮䜴䜵䜰䛾᭦᪂ᶵ⬟䛒䜚䈜䛆䜸䞁䝷䜲䞁䛇$\WTGͳQ6ᐇ⿦㛤Ⓨ⌧ሙ ᭱๓⥺䞉ᡂຌㄯ䠃ኻᩋㄯ 䛻䛶ᰴᘧ఍♫䝉䝷䜽 䜏䛹䜚䜽䝷䜴䝗஦ᴗ㒊 ஦ᴗ㒊㛗ᣢ⏣ᵝ䛜⤂௓䛣䛾䜘䛖䛺ά⏝䜢䛧䛯䛔䛸ᛮ䛖䛸䛭䛣䛻䛿ㄢ㢟䛜䟿ㄢ㢟䐟䠖6%&䠄䝝䞊䝗䠅䜢䛹䛖䛩䜛䠛Ɣ䝷䝈䝟䜲䛷䜔䜛䠛żżƔಙ㢗ᛶ䛜Ẽ䛻䛺䜛䛛䜙 2Q&䜎䛷䠛䠄ィ䛒䜛䛔䛿䛭䛾䜎䜎 *Q䛷䛝䜛䛛䠛䠋┘ど䠋ไᚚ䛾せ䛻䛺䜛䛛䜙〇ရ௙ᵝ䛻ྜ䜟䛫䛯䝪䞊䝗䜢㛤Ⓨ䛩䜛䠛䠋㉎ධ䛩䜛䠛Ỵ䜑䜛䛾䛜㞴䛧䛟䚸୍ᗘỴ䜑䜛䛸ኚ䛘䛵䜙䛔ㄢ㢟䐠䠖6%&䠄䝋䝣䝖䠅䛾㛤ⓎƔ㟁᩿ᑐ⟇䠄䝣䜯䜲䝹᭩䛝㎸䜏୰䛻㟁※䛜ⴠ䛱䜛䛸䚹䚹䠅żƔྛ✀䝋䝣䝖䜴䜵䜰タᐃ䛸䜰䝥䝸䛾㛤ⓎżżżƔ725䜢䛛䜎䛩䠛.KPWZ䛷䛒䜜䜀䚸U[UVGOFPGVYQTMCRCEJGPIKPZGVE䚸GVE㓄ୗ䛾タᐃ䜰䝥䝸䛛䜙ͳ1䜢྇䛟䛻䛿䠛䝥䝻䝉䝇䛜䜽䝷䝑䝅䝳䛧䛯ሙྜ䛾ᑐ⟇䛿䠛䝣䜯䞊䝮䜴䜵䜰䛾ྲྀᢅż䝞䞊䝆䝵䞁⟶⌮䚸䝞䞊䝆䝵䞁䜰䝑䝥᪉ἲ䛣䜜䜙䛿⤌䜏㎸䜏.KPWZ㛤Ⓨ䛾䝥䝻䛾௙஦

5%&䛜Ẹ୺໬䛥䜜䛯䛾䛺䜙䛣䜜䜙䛾ㄢ㢟䜢㍍ῶ䛩䜛䛣䛸䛿䛷䛝䛺䛔䛰䜝䛖䛛䠛䛷䛝䜎䛩䚹䛂1HUYHV䛃䛺䜙䟿

1HUYHV
Ɣ0GTXGUFGȤPGUCPGYYC[VQDWKNFGODGFFGFU[UVGOUWUKPI(NKZKTJVVRUJGZFQEUROPGTXGUIGVVKPIUVCTVGFJVON䝝䞊䝗䛾ㄢ㢟䜢㍍ῶㄢ㢟䠖Ỵ䜑䜛䛾䛜㞴䛧䛟䚸୍ᗘỴ䜑䜛䛸ኚ䛘䛵䜙䛔ƔƔ

0GTXGU2TQLGEV䛜䝃䝫䞊䝖䛩䜛䝍䞊䝀䝑䝖䝬䝅䞁䛿Ᏻ౯䛺5%&䛜㇏ᐩ䟿żżżż%GCINGDQPGU
4CURDGTT[2K䝅䝸䞊䝈15'/2
*GPGTKEZAż!9GQPN[QɍEKCNN[UWRRQTVGCUKN[QDVCKPGFJCTFYCTGDWVVJCVFQGUP VOGCPVJCV0GTXGUQPN[YQTMUQPVJGUGDQCTFUJVVRUIKVJWDEQOPGTXGURTQLGEVPGTXGUAU[UVGOADTDNQDOCKP4($'/(OF0GTXGU䛿௚䛾䝪䞊䝗䜈䛾⛣᳜䛻㛤䛛䜜䛶䛔䜛㍍ῶ䠖Ᏻ౯䛻2Q&䛧䚸ᚲせ䛺䜙䜀⛣᳜䛩䜛䛸䛔䛖㑅ᢥ⫥䜢ᣢ䛴䛣䛸䛜䛷䛝䜛䟿䝋䝣䝖䛾ㄢ㢟䜢㍍ῶƔƔƔ㟁᩿⪏ᛶ䛒䜚ż䝣䜯䜲䝹䝅䝇䝔䝮䛜 5SWCUJ)5䠄䜲䝯䞊䝆䝃䜲䝈䜒ᑠ䛥䛔䟿ż

0GTXGU䛜.KPWZ䜢㞃ⶸ䚸0GTXGU䝥䝻䝆䜵䜽䝖ෆ䛷㛤Ⓨ䛩䜛䛰䛡.KPWZ䛾䜰䝥䝸䜿䞊䝅䝵䞁ẖ䛾▱㆑䜢ぬ䛘䛺䛟䛶䛔䛔䚸GVE䛻タᐃ䛜ᩓ䜙䛺䛔୪⾜ฎ⌮䛻ᙉ䛟䚸䝥䝻䝉䝇┘ど᚟ᪧᶵ⬟䛜䛒䜛(NKZKT䛷㛤Ⓨ䛩䜛żƔ㇏ᐩ䛺䝷䜲䝤䝷䝸䛜㛤Ⓨ䜢䝃䝫䞊䝖Ŷ 䝃䞊䝞䞊䠖2JQGPKZ䜽䝷䜲䜰䞁䝖䠖+662QKUQP/KPVȀŶ ͳ1ไᚚ䠖&KEWKVU*2ͳ1ͳ&Ȁ䝛䝑䝖䝽䞊䜽䠖 8KPVCIG0GVȀ䝣䜯䞊䝮䜴䜵䜰żżż䝋䞊䝇䝁䞊䝗䛜 0GTXGU䝥䝻䝆䜵䜽䝖ෆ䛷㛢䛨䜛䛾䛷⟶⌮䛜ᐜ᫆䝍䞊䝀䝑䝖䝬䝅䞁䛾ษ䜚᭰䛘䜢䝷䜲䝤䝷䝸䛾㏣ຍ䛸⎔ቃኚᩘ䛾ษ䜚᭰䛘䛷䛷䛝䜛 ĺ⛣᳜䛜ᐜ᫆㐲㝸䜰䝑䝥䝕䞊䝖䛾䛯䜑䛾䝃䞊䝞䞊䜒䛒䜛䟿䛭䜜䛳䛶ᮏᙜ䠛ƔƔƔƔᮏᙜ䛻⛣᳜䛷䛝䜛䛾䠛ゝⴥ䛰䛡䛷ㄝ᫂䛥䜜䛶䜒䠛ᐇ㝿䛻౑䜟䜜䛶䛔䜛䛾䠛㐺⏝⠊ᅖ䛿䠛ᮏᙜ䛻⛣᳜䛷䛝䜛䛾䠛ƔᶓἙ㟁ᶵ〇G46 ỗ⏝15ᑐᛂ&27䝰䝆䝳䞊䝹 䜈䛾⛣᳜ᐇ⦼᭷䜚żżƔG46䛿༙ᑟయ⏕⏘䝷䜲䞁䛷౑⏝䛥䜜䜛ධฟຊ ͳ1௚䝰䝆䝳䞊䝹䜢ᣢ䛴 ሀ∼䝝䞊䝗JVVRUIKVJWDEQORQLKTQPGTXGUAU[UVGOAHTR䛸䛧䛶බ㛤⛣᳜䛾ヲ⣽䛿⏘ᴗ⏝ሀ∼䝝䞊䝗䛷(NKZKT䠖G46䛻0GTXGU䝫䞊䝔䜱䞁䜾ゝⴥ䛰䛡䛷ㄝ᫂䛥䜜䛶䜒䠛

0GTXGUQPG46䛷䝕䝰䛧䜎䛩ᐇ㝿䛻౑䜟䜜䛶䛔䜛䛾䠛&QTGFGXGNQRGTQH
0GTXGU)TCPM

3RFNHW/$1FKHUƔ᪥ᮏ䛷ึ䜑䛶䛾0GTXGUᦚ㍕〇ရżżƔ

0GTXGU䛜⤌䜏㎸䜏.KPWZ㛤Ⓨ䛻᭷ຠ䛸ุ᩿䛧᥇⏝䝣䜯䞊䝮䜴䜵䜰䜰䝑䝥䝕䞊䝖ᶵ⬟䜒ά⏝࿌▱䠖➨ᅇ)$タഛᢏ⾡ຮᙉ఍żż ᅵ ࠥ㛤ദ
2QEMGV.$0EJGT䛾䝕䝰䛒䜚KWWSVHQJLQHHUIDEFURVVMSDUFKHLYHBWRPERZRUNVKWPO

㐺⏝⠊ᅖ⮬⏤ᗘ
1HUYHV䛾㐺⏝⠊ᅖ䠖⤌䜏㎸䜏 /LQX[䝪䞊䝗䝷䝈䝟䜲

H57
5HY3L
&3,5$6$UGXLQRሀ∼ᛶ㔠㢠
ᚑ᮶3/&,R7䝖䝺䞁䝗䛷䛣䛾㡿ᇦ䛜䛥䜙䛻ቑ䛘䜛䛿䛪䜎䛸䜑Ɣ

5%&䛾ά⏝౛䛸䛭䛾ㄢ㢟䜢☜ㄆ䛧䚸ㄢ㢟䜢ゎỴ䛩䜛䝔䜽䝜䝻䝆䞊䛸䛧䛶㥑䛡㊊䛷䛂0GTXGU䛃䜢⤂௓䛧䜎䛧䛯䚹Ɣ

0GTXGU䛜⤌䜏㎸䜏.KPWZ㛤Ⓨ䛻ᑐ䛩䜛䝀䞊䝮䝏䜵䞁䝆䝱䞊䛛䜒䠛΁䛸ᛮ䛳䛶䛔䛯䛰䛡䛯䜙Ꮀ䛧䛔䛷䛩Ž

6JCPM[QWཧ⪃䠖䝸䞁䜽Ɣ

0GTXGUżżƔᶓἙ㟁ᶵ䠖G46ỗ⏝15ᑐᛂ&27䝰䝆䝳䞊䝹żżżƔJVVRUYYYPGTXGURTQLGEVQTI䛺䛬൅䛿0GTXGU䛻ᮇᚅ䛩䜛䛾䛛 䠄൅ Ⓨ⾲⪅䚸䛜᭩䛔䛯グ஦䛷䛩䠅
0GTXGU䜢⛣᳜䛧䛯⏘ᴗ⏝ሀ∼䝝䞊䝗JVVRUYYY[QMQICYCEQLRUQNWVKQPURTQFWEVURNCVHQTOUEQPVTQNU[UVGOTGCNVKOGQUEQ
PVTQNNGTTVQUERWTVQUQUHTGGERW⏘ᴗ⏝ሀ∼䝝䞊䝗䛷 (NKZKT䠖G46䛻0GTXGU䝫䞊䝔䜱䞁䜾䠄⛣᳜䜢⾜䛳䛯㝿䛻᭩䛔䛯グ஦䛷䛩䠅

6QODQ9QTMU䠖2QEMGV.$0EJGTżJVVRUYYYRQEMGVNCPEJGTEQO䠄〇ရ䝃䜲䝖䛷䛩䠅ཧ⪃䠖3RFNHW/$1FKHUᶵ⬟⿦⨨䛿3&䛷䜒3/&䛷䜒䚸/$1䜿䞊䝤䝹䛷䛴䛺䛢䜙䜜䜜䜀
ྠ୍/$1䛻䛔䜛䜒䛾䛸䛧䛶ᢅ䛘䜛䛴䜎䜚♫ෆ3&䛛䜙⿦⨨䛻䜰䜽䝉䝇䛷䛝䜛
3&/$1䜿䞊䝤䝹䝰䝞䜲䝹:L)L

♫ෆ⿦⨨

⌧ሙFAとIoTとの谷をSBCで埋めてみよう
SWEST232021.09.03

高知工科大学 菊池豊

1kikuyuta とは@kikuyuta

2021.09.03

高知工科大学 菊池豊

2渓流取水の小水力発電所

2021.09.03

高知工科大学 菊池豊

3砂防堰堤を使った小水力発電所

2021.09.03

高知工科大学 菊池豊

4PCベースで制御システムを作ってみた

2021.09.03

高知工科大学 菊池豊

5

が… どうも壁がある…

盤
switch board
2021.09.03

ソフトウェアSoftwareハードウェア hardware
高知工科大学 菊池豊

6

モノの差で言うとこんな感じ

三菱電機ホームページより

Raspberry Pi

オムロンホームページよりBeagleBone
2021.09.03

高知工科大学 菊池豊

7

ポリシーの違い・技術の違い• 確実に安全に• カネはかかるものだ• 具象化を突き進める• クローズドであることで価値を担保する• デ・ジュール標準化• モノを相手に進化してきた– のがクラウドに出ようとしてる
2021.09.03• お手軽に楽しく• お安く済ませるものだ• 抽象化を突き進める• オープンなエコシステムに活路を見出した• デ・ファクト標準化• ヒトを相手に進化してきた– のがモノを扱おうとしてる

高知工科大学 菊池豊

8仮想盤的 FA ハンズオン• 課題
モータがあります– 緑のボタンで動かして…
– 赤のボタンで止める…
ようにしてください• ヒント– MC（リレー）使えます

2021.09.03

高知工科大学 菊池豊

9電気業界ではラダーを使う• LD: Ladder Logic（ラダー・ロジック）– リレー回路を模倣するプログラミング図• 課題の解答– X0: 緑ボタン
– X1: 赤ボタン
– Y0: MC（リレー）• 出力をモータに繋ぐ
Wikipedia 「ラダー・ロジック」より

2021.09.03

高知工科大学 菊池豊

10

融合できるとイイことあるんじゃね？
• 技術的な進展（クラウドとか、機械学習とか）• 効率的な開発（再利用の促進、情報の流通）• 業界横断的なマーケットへの到達• コスト削減、分業による先鋭化• もっと早く、もっと速く、もっと多く• もっと楽しく

2021.09.03

高知工科大学 菊池豊

11Hype Cycle for Emerging Technologies, 2021
gartner.com ホームページより• 初めて出てきた– Industry Clouds

2021.09.03

高知工科大学 菊池豊

12SBC でどこまでいけるのか• Web で電力制御をやってみる– ブラウザでポチったら三相誘導電動機が回って欲しい• 近い将来、1デバイス1ホストが当たり前だよね– I/O デバイスはすべからく無線上のIP/APIで扱いたい• 産業用PLCを置き換える本格的なマシンが欲しい– 発電所を制御しないSBCはただのSBCだ• もちろん全部 Nerves / Elixir で2021.09.03

高知工科大学 菊池豊

13自分でも作ってみました
その1• Cape: by 三宅 (@myasu) さん• Case: by りとるラボさん– 白が試作品、ゆず色が完成品

2021.09.03

高知工科大学 菊池豊

14いごかしてみた2021.09.03

高知工科大学 菊池豊

15自分でも作ってみました その2• GPIO 出力をフォトカ
プラ通して DC24V を駆動• ラズパイの電源は
DC24V から DC-DC で• パイロット LED 付き• コイルの逆起電力はダイオードで吸収
2021.09.03

高知工科大学 菊池豊

16

MM2XPの中⾝
DC24V⽤

MM4XPの台

これを詰める

MM4XPのケース
MM4XP⽤のソケット

ラズパイ0WH
サージ保護
ダイオード

2021.09.03

DC-DC
フォトカプラ高知工科大学 菊池豊

17

できた！

2021.09.03

高知工科大学 菊池豊

18いごかしてみる

2021.09.03

高知工科大学 菊池豊

19

自分でも作ってみました その3

https://github.com/kikuyuta/exibee
2021.09.03

高知工科大学 菊池豊

20

ExiBee 3.0 の中身

2021.09.03

高知工科大学 菊池豊

21

ExiBee 3.0仕様
項目

機能・性能

コンボボードデジタルボード

アナログボード

設計

完了

完了

完了

製作

試作4枚

試作3枚

試作3枚

◯◯

◯

CPU

Intel AM3358 (OSD3358 C-SiP)

デジタル入力絶縁入力

8チャンネル

16チャンネル

デジタル出力

絶縁出力

4チャンネル

16チャンネル

アナログ入力4-20mA

6チャンネル

16チャンネル

アナログ出力4-20mA, 給電・無給電兼用

1チャンネル

16チャンネル

RS422/485

Half dup

1ポート

1ポート

1ポート

RS232

デバッグ用コンソール 5pin

1ポート

1ポート

1ポート

USB

USB 2.0 / USB C （内部拡張）

2ポート

2ポート

2ポート

LAN

100baseTX auto MDIX

1ポート

1ポート

1ポート

SDカード

誤操作防止位置マウント

1スロット

1スロット

1スロット

RTC

5ppm精度、バッテリバックアップ◯◯◯

ウォッチドッグタイマ

MAX6369もしくは相当品

◯

◯

◯

状態表示LED

4色 (Green, Yellow, Orange, Red)

◯◯

◯

電源断検出

検出電圧設定可能（半固定抵抗）◯◯◯

電源PoE (IEEE802.3af) 準拠

◯

◯

◯

動作温度範囲-20℃〜70℃

◯◯

◯

ケース

DINレール装着型◯◯◯

2021.09.03

高知工科大学 菊池豊

22JIS B3502 振動・衝撃試験風景

2021.09.03

高知工科大学 菊池豊

23JIS B3502 温度湿度環境試験風景

2021.09.03

高知工科大学 菊池豊

24ゆくゆくはオープンソース小水力発電所• 単線結線図とソースコード開発中

2021.09.03

高知工科大学 菊池豊

写真はイメージです25産業用に入ってくるIoT• 横河電機• Phoenix Contact• Kunbus• Siemens• Monarco• などなど…

2021.09.03

高知工科大学 菊池豊

26

ヒト用とモノ用また一つになりて蘇らん
ヒト用

モノ用
https://ja.wikipedia.org/wiki/TK-80
The Elixir logo are copyright (c)2012 Plataformatec.
2021.09.03

高知工科大学 菊池豊

27

FAの世界にSBCでIoTを

We believe in rough consensus
and blinking LEDs
論よりLチカ
2021.09.03

高知工科大学 菊池豊

28

#NervesJP#SWEST23

おもろそうやん︕
でもどうはじめよう︖

Nervesのはじめかた
Step1 まずはつぶやく
with #NervesJP#NervesJP#SWEST23

Nervesのはじめかた
Step2 あるじゃん動画を⾒る#NervesJP#SWEST23
https://youtu.be/A1AiQZR7UFQ

https://algyan.connpass.com/event/197306/

https://youtu.be/UpJ4VewZdRY
https://algyan.connpass.com/event/180192/

まるでわからん︕︖↓↓↓

Nervesのはじめかた
Step3 Slackに参加する
http://bit.ly/ncjp-slack
お好みのチャンネルにjoin!!
あんまElixir/Nervesに関係ない話題でもおけおけ︕#NervesJP#SWEST23

Nervesのはじめかた
Step4 イベントに参加してみる

https://nerves-jp.connpass.com/
次回は 6/23(⽔) ぜひ︕
少⼈数でワイガヤと︕
初⼼者にも優しい明るく元気な現場です︕

チョットデキル︖︖↓↓↓#NervesJP#SWEST23

Nervesのはじめかた#NervesJP#SWEST23

Step5 なんかイゴかしてみる

Elixir/NervesでPLC(多機能リレー)を作ってみた - Qiita

団⻑︕ いつでもどこでも温度・湿度が測れるのであります︕ (Elixir,SORACOM Air for セルラー) - Qiita

Omni Eye on GitHub

https://twitter.com/kikuyuta/status/
1375775134586335233

#NervesJP#SWEST23
Sapporo.beam

https://nerves-jp.connpass.com/

れっつじょいなす︕︕

#NervesJP#SWEST23

さんくす︕︕※各⾔語・フレームワーク等のロゴの権利はそれぞれの作成者に帰属しています