Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
ハードウェアを動かす TypeScriptの世界
Slide 2
Slide 2 text
はじめに 2 スライド 98枚あります 1スライドあたり18秒 スライドは事前公開済みです
Slide 3
Slide 3 text
セッション概要 3 TypeScriptならフロントエンドも バックエンドもインフラも! ついでにハードウェアも TypeScriptでやろう!
Slide 4
Slide 4 text
本スライドのゴール 4 TypeScriptでハードウェアを動かすとき、 ● ハードウェアとはどんなものか ● 作る際にどんな選択肢があるのか ● どの選択肢がよさそうなのか をなんとなくイメージできるようになる
Slide 5
Slide 5 text
5 木戸康平 きど こうへい https://qiita.com/wicket https://github.com/9wick https://speakerdeck.com/9wick https://twitter.com/9wick https://9wick.com ハードウェアとソフトウェアの世界を いったりきたりしてます。 obniz(オブナイズ)というIoTツールを 開発しています
Slide 6
Slide 6 text
6 ハードウェアってなに?
Slide 7
Slide 7 text
7 ハードウェアってなに? ソフトウェア vs ハードウェア ではない キーボードもマウスも物理的に存在する
Slide 8
Slide 8 text
8 ハードウェアってなに? ハードウェアプログラミングの文脈では 「入出力が定型化されていないもの」(個人見解)
Slide 9
Slide 9 text
9 ハードウェアってなに? ソフトっぽい ハードっぽい ハードウェアプログラミングの文脈では 「入出力が定型化されていないもの」(個人見解)
Slide 10
Slide 10 text
10 ハードウェアってなに? ソフトっぽい ハードっぽい ハードウェアプログラミングの文脈では 「入出力が定型化されていないもの」(個人見解)
Slide 11
Slide 11 text
11 ハードウェアってなに? ソフトっぽい ハードっぽい ハードウェアプログラミングの文脈では 「入出力が定型化されていないもの」(個人見解)
Slide 12
Slide 12 text
12 ハードウェアってなに? ソフトっぽい ハードっぽい ハードウェアプログラミングの文脈では 「入出力が定型化されていないもの」(個人見解)
Slide 13
Slide 13 text
13 ハードウェアってなに? ソフトっぽい ハードっぽい ハードウェアプログラミングの文脈では 「入出力が定型化されていないもの」(個人見解)
Slide 14
Slide 14 text
14 ハードウェアってなに? ソフトっぽい ハードっぽい ハードウェアプログラミングの文脈では 「入出力が定型化されていないもの」(個人見解)
Slide 15
Slide 15 text
15 ハードウェアってなに? ソフトっぽい ハードっぽい ハードウェアプログラミングの文脈では 「入出力が定型化されていないもの」(個人見解) 昔はハード寄りだった 一般普及されてソフト寄りに
Slide 16
Slide 16 text
16 ハードウェアができると 何がいいの?
Slide 17
Slide 17 text
17 圧倒的自由度🙌
Slide 18
Slide 18 text
18 ハードウェアができると何がいいの?
Slide 19
Slide 19 text
19 ハードウェアができると何がいいの? これが作れるようになる!
Slide 20
Slide 20 text
20 ハードウェアができると何がいいの? 定型化された形状
Slide 21
Slide 21 text
21 ハードウェアができると何がいいの? 他人が作った ハードを選ぶ 定型化された形状
Slide 22
Slide 22 text
22 ハードウェアができると何がいいの? 自分で形を決める 他人が作った ハードを選ぶ 定型化された形状
Slide 23
Slide 23 text
23 自由だからこそ より良いものを目指せる
Slide 24
Slide 24 text
24 ハードウェアができると何がいいの? 結局、我々は現実のものに慣れている 紙の書き心地を再現するタブレット 他、マテリアルデザイン/タンジブル等も 紙に書くとデジタル化されるペン 360life.shinyusha.co.jp/articles/-/3465 より https://nuwapen.com/products/nuwa-pen より
Slide 25
Slide 25 text
25 ハードウェアができると何がいいの? ソフトとハードでは受ける印象が違う https://aibo.sony.jp/store/ より https://lovot.life/ より
Slide 26
Slide 26 text
26 ハードウェアができると何がいいの? できる領域もちがう
Slide 27
Slide 27 text
27 ハードウェアで 世界が広がる! 👍
Slide 28
Slide 28 text
28 でも どうやって作ったらいいの?
Slide 29
Slide 29 text
定型化されてない ムズカシイ🫠 =
Slide 30
Slide 30 text
30 どうやって作ったらいいの? 定型化されていないということは難易度が高い 同じことをやろうと思っても複数のやり方があり 技術選定が難しい
Slide 31
Slide 31 text
31 たとえば
Slide 32
Slide 32 text
32 この会場でセッションの 聴講人数を計測したい! あなたならどうしますか
Slide 33
Slide 33 text
33 人数カウント方法 カメラで 画像分析
Slide 34
Slide 34 text
34 人数カウント方法 カメラで 画像分析 駅の 改札方式
Slide 35
Slide 35 text
35 人数カウント方法 カメラで 画像分析 駅の 改札方式 椅子で 体重を測る
Slide 36
Slide 36 text
36 人数カウント方法 カメラで 画像分析 駅の 改札方式 椅子で 体重を測る 無線タグを配り 電波を見る
Slide 37
Slide 37 text
37 人数カウント方法 カメラで 画像分析 駅の 改札方式 椅子で 体重を測る 無線タグを配り 電波を見る どれも「技術的には」可能そう
Slide 38
Slide 38 text
38 人数カウント方法 カメラで 画像分析 駅の 改札方式 椅子で 体重を測る 無線タグを配り 電波を見る ボツ案:CO2濃度の変化を測る どれも「技術的には」可能そう
Slide 39
Slide 39 text
39 精度ちゃんと出るかな?
Slide 40
Slide 40 text
40 人数カウント方法 精度 カメラ画像分析 そこそこ 駅の改札方式 かなり良い 椅子で体重計測 立ち見問題 無線タグを配る 悪い
Slide 41
Slide 41 text
41 それぞれ どれ らいコストかかるかな? 自分で形を決 める 他人が作った ハードを選ぶ 定型化された 形状
Slide 42
Slide 42 text
42 人数カウント方法 精度 コスト カメラ画像分析 そこそこ 1部屋5万円〜 駅の改札方式 かなり良い 1台10万円〜 椅子で体重計測 立ち見問題 1座席1000円〜 無線タグを配る 悪い 1人数百円 Alibaba(中国のEC) で売ってた 売ってないから 自作想定
Slide 43
Slide 43 text
43 開発難し ない?
Slide 44
Slide 44 text
44 人数カウント方法 精度 コスト 開発 カメラ画像分析 そこそこ 1部屋5万円〜 大変 駅の改札方式 かなり良い 1台10万円〜 楽 椅子で体重計測 立ち見問題 1座席1000円〜 少し大変 無線タグを配る 悪い 1人数百円 少し大変
Slide 45
Slide 45 text
45 運用できる?
Slide 46
Slide 46 text
46 人数カウント方法 精度 コスト 開発 運用 カメラ画像分析 そこそこ 1部屋5万円〜 大変 楽 駅の改札方式 かなり良い 1台10万円〜 楽 待ち行列計算 設置大変 椅子で体重計測 立ち見問題 1座席1000円〜 少し大変 設置大変 無線タグを配る 悪い 1人数百円 少し大変 回収大変 紛失リスク
Slide 47
Slide 47 text
47 会場が大き なっても大丈夫?
Slide 48
Slide 48 text
48 人数カウント方法 精度 コスト 開発 運用 スケール カメラ画像分析 そこそこ 1部屋5万円〜 大変 楽 画角重複問題 駅の改札方式 かなり良い 1台10万円〜 楽 待ち行列計算 設置大変 しやすい 椅子で体重計測 立ち見問題 1座席1000円〜 少し大変 設置大変 しやすい 無線タグを配る 悪い 1人数百円 少し大変 回収大変 紛失リスク 電波混信
Slide 49
Slide 49 text
49 このバランスを とらないといけない
Slide 50
Slide 50 text
考えることが多すぎる😡 だからムズカシイ
Slide 51
Slide 51 text
51 どれが正解かは ケースバイケース
Slide 52
Slide 52 text
52 ちなみに、自分ならどうするか
Slide 53
Slide 53 text
53 自分ならどうするか これを買ってきて 入口/出口で押して貰う https://www.amazon.co.jp/dp/B0C36Y3RPK
Slide 54
Slide 54 text
54 自分ならどうするか 精度 センサコスト 開発 運用 スケール カメラ画像分析 そこそこ 1部屋5万円〜 大変 楽 画角重複問題 駅の改札方式 かなり良い 1台10万円〜 楽 待ち行列計算 設置大変 しやすい 椅子で体重計測 立ち見問題 1座席1000円〜 少し大変 設置大変 しやすい 無線タグを配る 悪い 1人数百円 少し大変 回収大変 紛失リスク 電波混信 ボタン 参加者 リテラシー依存 1部屋1500円〜 楽 待ち行列計算 しやすい
Slide 55
Slide 55 text
55 「いい方法」に後で気づくのも ハードウェアあるある😔
Slide 56
Slide 56 text
56 でもそこが面白い😆
Slide 57
Slide 57 text
57 ひときゅう い 途中までのまとめ ● ハードウェアは入出力が不定形。圧倒的自由度がある ● 一つのことをやるにも複数のやり方がある ● 選択肢のメリット・デメリットバランスを取るのが大変 ここまでで18分切りたい
Slide 58
Slide 58 text
58 TypeScriptで ハードウェアをやるメリット
Slide 59
Slide 59 text
59 TypeScriptでやるメリット 開発難易度が劇的に下がる(vs C言語) 精度 センサコスト 開発 運用 スケール カメラ画像分析 そこそこ 1部屋5万円〜 大変 楽 画角重複問題 駅の改札方式 かなり良い 1台10万円〜 楽 待ち行列計算設 置大変 しやすい 椅子で体重計測 立ち見問題 1座席1000円〜 少し大変 設置大変 しやすい 無線タグを配る 悪い 1人数百円 少し大変 回収大変 紛失リスク 電波混信 ボタン 参加者 リテラシー依存 1部屋1000円〜 楽 待ち行列計算 しやすい 上記は全部TypeScriptで実現可能
Slide 60
Slide 60 text
60 C言語でできることは TypeScriptでもできる! ※個人の感想です
Slide 61
Slide 61 text
ただし コンピューティングコストも 考えないといけない 💰💰💰
Slide 62
Slide 62 text
62 具体例
Slide 63
Slide 63 text
処理性能 メモリ ストレージ 値段 C言語 TypeScript MacBookPro 動く 動く ESP32 動く ぎり動く PIC 動く 動かない 63 TypeScript vs C言語 ※単純比較できるものではないですがイメージのための概要として
Slide 64
Slide 64 text
処理性能 メモリ ストレージ 値段 C言語 TypeScript MacBookPro M3 4.05GHz 8コアCPU 16GB 255GB 248,800円 動く 動く ESP32 動く ぎり動く PIC 動く 動かない 64 TypeScript vs C言語 ※単純比較できるものではないですがイメージのための概要として
Slide 65
Slide 65 text
処理性能 メモリ ストレージ 値段 C言語 TypeScript MacBookPro M3 4.05GHz 8コアCPU 16GB 255GB 248,800円 動く 動く ESP32 240MHz 536kB 4MB 530円 動く ぎり動く PIC 動く 動かない 65 TypeScript vs C言語 ※単純比較できるものではないですがイメージのための概要として
Slide 66
Slide 66 text
処理性能 メモリ ストレージ 値段 C言語 TypeScript MacBookPro M3 4.05GHz 8コアCPU 16GB 255GB 248,800円 動く 動く ESP32 240MHz 536kB 4MB 530円 動く ぎり動く PIC 32MHz 2kB 3.5kB 160円 動く 動かない 66 TypeScript vs C言語 ※単純比較できるものではないですがイメージのための概要として
Slide 67
Slide 67 text
処理性能 メモリ ストレージ 値段 C言語 TypeScript MacBookPro M3 4.05GHz 8コアCPU 16GB 255GB 248,800円 動く 動く ESP32 240MHz 536kB 4MB 530円 動く ぎり動く PIC 32MHz 2kB 3.5kB 160円 動く 動かない 67 TypeScript vs C言語 ※単純比較できるものではないですがイメージのための概要として
Slide 68
Slide 68 text
68 コストか て良 れば すべてTypeScriptでできる
Slide 69
Slide 69 text
69 できるだ コストもか た ない ↓ 動作の仕組みで工夫できる
Slide 70
Slide 70 text
70 TypeScriptはどこで動 のか
Slide 71
Slide 71 text
71 TypeScriptのコンパイル(tsc)は 本番環境CPUでやっていますか?
Slide 72
Slide 72 text
72 TypeScriptはどこで動 のか 大抵の場合はtscは別の場所でやっている 本番環境 コンパイル済 プログラム (JavaScript) Local / CD上 tscで使うCPUは こっち
Slide 73
Slide 73 text
73 TypeScriptを動かす場所に 種類がある
Slide 74
Slide 74 text
75 TypeScriptはどこで動 のか デバイス サーバー Cloud デバイス クラウド接続型 有線接続型 スタンドアロン型 デバイス PC 常時通信 デバイス JSデプロイ型 PC PC デバイス バイナリデプロイ型 常時通信 専用 OS 専用 OS 専用 OS 機能特化型デバイスで ・Webhook型 ・API型 ・BLE通信型 などなど
Slide 75
Slide 75 text
76 デバイス比較(一部) 汎用性 デバイス単価 開発 運用 スケール Raspberry Pi スタンドアロン型 大 高い 楽 しにくい しやすい Moddable スタンドアロン型 大 普通 楽 しにくい しやすい MakeCode バイナリデプロイ型 小 安い 楽 しにくい しやすい Johnny Five 有線接続型 中 普通 楽 しやすい しにくい obniz クラウド接続型 大 高め 楽 しやすい しやすい ※個人の感覚です やりたいことが できるか?の列
Slide 76
Slide 76 text
77 デバイスマップ 専用機 汎用機 デバイスコスト 高 デバイスコスト 安 Arduino RaspberryPi obniz Moddable Johnny Five PIC STM webiot C言語ゾーン TypeScriptゾーン Toio SH /H8 mbed ※個人の感覚です スマスピ Edison.js
Slide 77
Slide 77 text
78 1台なら高級でもいい ど 100万台作るなら1円でも安 したい…
Slide 78
Slide 78 text
79 デバイスマップ 専用機 汎用機 デバイスコスト 高 デバイスコスト 安 Arduino RaspberryPi obniz Moddable Johnny Five PIC STM webiot C言語ゾーン TypeScriptゾーン Toio SH /H8 mbed ※個人の感覚です スマスピ Edison.js
Slide 79
Slide 79 text
80 TypeScriptは少量多品種に向いている =ハードウェア入門には最適!
Slide 80
Slide 80 text
81 ピックアップ紹介
Slide 81
Slide 81 text
82 ピックアップ紹介 - RaspberryPi デバイス スタンドアロン型 ⦿ 小型のコンピューター ⦿ IoT以外でもよく使われる ⦿ PCでTSを動かすのと同じようにできる ⦿ 最近RaspberryPi5がでた ⦿ ¥11,000~15,000/台
Slide 82
Slide 82 text
83 ピックアップ紹介 - obniz デバイス サーバー Cloud クラウド接続型 常時通信 専用 OS ⦿ 各デバイスについたIDでインターネット越しに 接続して操作するデバイス ⦿ クラウド接続型なので、AWSなどから動かせる ⦿ アプリアップデートなどがクラウドと同様にで きて楽 ⦿ ¥6,000~¥22,000/台
Slide 83
Slide 83 text
84 ピックアップ紹介 - DeviceScript PC デバイス バイナリデプロイ型+α もどき 専用 VM Bin ⦿ Microsoftが2023年に唐突に出した ⦿ TS”もどき”をコンパイルしてバイナリ を生成 / 専用VMで実行 ⦿ まだExperimental Project ⦿ VSCodeとの連携/デバッグがしやすい ⦿ ¥600~2,000/台 https://microsoft.github.io/devicescript
Slide 84
Slide 84 text
85 ピックアップ紹介 - moddable ⦿ Embedded JavaScript (組み込み向けJSランタイム) ⦿ スタックチャンで使われている ⦿ バイナリデプロイが主体だがevalもできる ⦿ ¥600~2,000/台 ⦿ 詳しくは16:40からのセッションを 聞こう! PC デバイス バイナリデプロイ型 | JSデプロイ型 専用 VM
Slide 85
Slide 85 text
86 ピックアップ紹介 - Edison.js ⦿ FirmataというPC/マイコンの 通信プロトコルを使っている ⦿ ¥1,500~6,000/台 ⦿ 詳しくは17:20からのセッションを 聞こう! 有線接続型 デバイス PC 常時通信 専用 OS
Slide 86
Slide 86 text
87 デバイスマップ 専用機 汎用機 デバイスコスト 高 デバイスコスト 安 Arduino RaspberryPi obniz Moddable Johnny Five PIC STM webiot C言語ゾーン TypeScriptゾーン Toio SH /H8 mbed ※個人の感覚です スマスピ Edison.js
Slide 87
Slide 87 text
88 あくまでこれは コンピューティングコストの話
Slide 88
Slide 88 text
89 精度 センサコスト 開発 運用 スケール カメラ画像分析 そこそこ 1部屋5万円〜 大変 楽 画角重複問題 駅の改札方式 かなり良い 1台10万円〜 楽 待ち行列計算設 置大変 しやすい 椅子で体重計測 立ち見問題 1座席1000円〜 少し大変 設置大変 しやすい 無線タグを配る 悪い 1人数百円 少し大変 回収大変 紛失リスク 電波混信 ボタン 参加者 リテラシー依存 1部屋1000円〜 楽 待ち行列計算 しやすい これは センサの話
Slide 89
Slide 89 text
90 これは 頭脳の話 専用機 汎用機 デバイスコスト 高 デバイスコスト 安 Arduino RaspberryPi obniz Moddable Johnny Five PIC STM webiot C言語ゾーン TypeScriptゾーン Toio SH /H8 mbed ※個人の感覚です スマスピ
Slide 90
Slide 90 text
91 精度 センサコスト 開発 運用 スケール カメラ画像分析 そこそこ 1部屋5万円〜 大変 楽 画角重複問題 駅の改札方式 かなり良い 1台10万円〜 楽 待ち行列計算設置 大変 しやすい 椅子で体重計測 立ち見問題 1座席1000円〜 少し大変 設置大変 しやすい 無線タグを配る 悪い 1人数百円 少し大変 回収大変 紛失リスク 電波混信 ボタン 参加者 リテラシー依存 1部屋1000円〜 楽 待ち行列計算 しやすい 組み合わせ 専用機 汎用機 デバイスコスト高 デバイスコスト安 Arduino RaspberryPi obniz Moddable Johnny Five PIC STM webiot C言語ゾーン TypeScriptゾーン Toio SH /H8 mbed スマスピ
Slide 91
Slide 91 text
92 デバイスコスト コンピューティングコスト + センサコスト + 筐体コスト + …… =
Slide 92
Slide 92 text
93 トータルコストを踏まえた 選定が必要
Slide 93
Slide 93 text
考えることが多すぎる😡 (再掲)
Slide 94
Slide 94 text
95 でも やれることは広い😆
Slide 95
Slide 95 text
96 やってみると楽しいはず!
Slide 96
Slide 96 text
97 ぜひハードウェアも 触ってみて ださい
Slide 97
Slide 97 text
ハードウェアを動かす TypeScriptの世界
Slide 98
Slide 98 text
99 Fin