Milk-V Duo 256Mで.NETを動かした話を登壇しました
昨日、 なごあずの集い#7 に参加して、
「.NETでIoT開発 - Linuxと低価格ハードで実現する新しい選択肢」というタイトルで登壇しました。

なごあずはオフラインのミートアップイベントで、ほとんどの参加者がイベント後に懇親会で交流を深める(こちらが本番?)のですが、、、
当日に娘氏発熱してしまい、家から出れなくなったので、運営の方々に相談してオンラインで登壇させていただきました。急なお願いにもかかわらず対応いただいてとっても感謝です。
娘氏、インフルエンザでした😱
で、登壇内容は、
- IoTでC#.NETの実情
- 手ごろな価格のLinuxボードいろいろ
- 温湿度センサー+Milk-V Duo 256M->Azure IoT Centralしてみた
- わかったことと今後調べたいこと
でした。
登壇内容
登壇内容は上のドクセルのスライドを見てください。
以下は雑記。
IoTで.NETの実情

.NETでIoTやろう!みたいなのは、大きく2つのアプローチがあります。
1つは、パソコンをちっさくしてI/O機能を追加したシングルボードコンピュータ。具体的には、Raspberry PiやBeagleBone。.NETそのまま動くので安心安全。ただ、消費電力とか価格とかがもうすこし抑えられると多くの人に楽しんでもらえるんじゃないかなぁと思っています。
もう1つは、マイコンボード。基本、RTOSやOSレスだったりするので、通常の.NETは動かせず無理やりいい感じに小さくした.NET。いくつか挑戦的なプロジェクトや企業がありますが、.NETのサブセットなところが辛い。使いたい機能(例えばGeneric)が使えなかったりするとムキーってなります。
手ごろな価格のLinuxボードいろいろ

巷にはLinuxが動く安価なボードがゴロゴロしているので、.NETそのまま動かせるんじゃない?と。
- 入手性(日本で入手しやすい)
- 安価
- EthernetやWi-Fi、USB Host(USB Hostは、USB Wi-Fiドングルを使う想定)
という目線でざっと探してみたところ、Milk-Vシリーズが良さそうです。
Milk-V Duo 256MとMilk-V Duo Sのどちらを使うかは、かなり迷うところではありますが、、、
Milk-V Duo 256Mのほうがメモリが少ないので、こちらで動けばMilk-V Duo Sでも動くんじゃね?ということで、Milk-V Duo 256Mを使うことにしました。
温湿度センサー+Milk-V Duo 256M->Azure IoT Centralしてみた

ちゃんと動くぞこいつ!!

Milk-V Duo 256Mに.NET Runtime 8.0をインストールしておき、PCでビルドしたアプリケーションをコピーして動かしました。アプリケーションは、Azure IoT SDK for .NETのサンプルコードに.NET IoT Librariesを加えて、温湿度センサー(SHT31)から良い感じにデータを取って来るコードを追加しました。
このあたりの具体的な手順は、別記事を書きたいなと思っています。
わかったことと今後調べたいこと

動いたことは動いたのですが、より多くの人に楽しんでもらうにはいくつかフォローしたほうがいいことがいくつかあります。
短期的にはハードウェアの準備を容易にしたいところです。Ethernetコネクタ(RJ45)をはんだ付けできないとインターネットに繋がらないので、この部分はなにか対処したいです。
長期的には.NET10を動くようにしなければいけません。これ大事。
あと、リモートデバッグも必要ですね。Visual Studioの強力なデバッグ機能が使えないのは辛すぎ。
本日、.NET Runtime 10.0を動かすのに成功しました!やったー!
最後に
やってみたら思っていた以上に楽しくなってきたので、引き続きやっていこうと思う。
Discussion