obnizというマイコンボードを買ってみた.値段は結構高くて,ESP32のボードに液晶とボタン,ピンソケットがついただけなのに6,000円もする.
Raspberry Pi 3Bと4Bの間くらいの値段だ.
このボードの特徴的なところは,以下のようなものらしい.
- 開発環境がWeb上で動いており,パソコンにインストールする必要がないこと.
- Web上ではブロックベースのエディタとJavaScriptベースのエディタが動いており,どちらでもプログラミングできること.
- obniz OSというOSがESP32で使えるため,公式のobnizボード以外でも使用可能なこと.
- ピン配置に制約が全くなく,電源,I/Oを全てプログラムから制御できることである(すべてのピンから1Aの出力ができるため,ピンから5Vを出すだけで電源ピンとして使用できる).
- どうもクラウドのライセンスも込み込みみたいで,クラウド環境をそのまま使用できる.
電源を入れると,いきなりWi-Fiを探しに行く.
Wi-Fiが無いと使えないらしい.
Wi-Fiアクセスポイントの一覧が表示されるので,アクセスポイントの接続パスワードを入れる.これは,左上の左右ダイヤル+クリックで入力する.このサイズで文字入力ができるようにしてあるのは賢い.
無事にWi-Fiアクセスポイントに接続できると,QRコードが表示される.また,右にはobnizIDという8桁の機器番号(obniz id)が表示される.
QRコードをスマホで読み取ると,いきなりプログラミングするためのWebサイトに飛ぶようになっている.
HTMLプログラム(JavaScript)とブロックプログラム(
Scratchのようなもの)が使えるらしい.
「ブロックプログラムを開く」をタップすると,いきなり次の画面のようなプログラムが表示される.
画面の右上に実行ボタン「▶︎」があるので,これをタップすると,obniz上でプログラムが実行される.
ちなみに,メニューから「コードを見る」を選択すると,同じプログラムのJavaScript版を読むことができる.
このサンプルプログラムの場合,以下のようなソースコードが表示される.
<html lang="en">
<head>
<meta charset="utf-8" /&tt;
<meta name="viewport" content="width=device-width, initial-scale=1" />
<script src="https://code.jquery.com/jquery-3.2.1.min.js"></script>
<script
src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js"
integrity="sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q"
crossorigin="anonymous"
></script>
<script
src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js"
integrity="sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl"
crossorigin="anonymous"
></script>
<link
rel="stylesheet"
href="https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css"
/>
</head>
<body>
<h3 id="bploading" style="text-align:center;">LOADING...</h3>
<div id="OBNIZ_OUTPUT"></div>
<br />
<script
src="https://unpkg.com/obniz@latest/obniz.js"
crossorigin="anonymous"
></script>
<script
src="https://unpkg.com/obniz-parts-kits@0.16.0/iothome/index.js"
crossorigin="anonymous"
></script>
<script
src="https://unpkg.com/obniz-parts-kits@0.16.0/airobot/index.js"
crossorigin="anonymous"
></script>
<script
src="https://unpkg.com/obniz-parts-kits@0.16.0/ui/index.js"
crossorigin="anonymous"
></script>
<script
src="https://unpkg.com/obniz-parts-kits@0.16.0/ai/howler2.1.2/howler.js"
crossorigin="anonymous"
></script>
<script
src="https://unpkg.com/obniz-parts-kits@0.16.0/ai/opencv3.4/opencv.js"
crossorigin="anonymous"
></script>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow/tfjs@3.3.0"></script>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow-models/mobilenet@2.1.0"></script>
<script src="https://cdn.jsdelivr.net/npm/@tensorflow-models/posenet@2.2.2"></script>
<script
src="https://unpkg.com/obniz-parts-kits@0.16.0/ai/clmtrackr/clmtrackr.js"
crossorigin="anonymous"
></script>
<script
src="https://unpkg.com/obniz-parts-kits@0.16.0/ai/clmtrackr/emotion_classifier.js"
crossorigin="anonymous"
></script>
<script
src="https://unpkg.com/obniz-parts-kits@0.16.0/ai/clmtrackr/emotionmodel.js"
crossorigin="anonymous"
></script>
<script
src="https://unpkg.com/obniz-parts-kits@0.16.0/ai/clmtrackr/model_pca_20_svm.js"
crossorigin="anonymous"
></script>
<script
src="https://unpkg.com/obniz-parts-kits@0.16.0/ai/index.js"
crossorigin="anonymous"
></script>
<script
src="https://unpkg.com/obniz-parts-kits@0.16.0/storage/index.js"
crossorigin="anonymous"
></script>
<script>
$("#bploading").text("RUNNING...");
(async function(){
var obniz, led;
obniz = new Obniz('2040-XXXX');
await obniz.connectWait();
obniz.display.print('Hello, World!')
led = obniz.wired("LED",{"anode":0, "cathode":1});
while (true) {
await ObnizUI.Util.wait(0);
led.on();
await ObnizUI.Util.wait(500);
led.off();
await ObnizUI.Util.wait(500);
}
})();
</script>
</body>
</html>
パソコンのWebブラウザからもプログラミングできる.JavaScriptの場合には
https://obniz.io/ja/console/programに,ブロックプログラムの場合には
に接続する.機器番号(onniz id)を聞かれるので,8桁の機器番号(obniz id)を入力するだけでプログラムを書くことができる.
機器番号(obniz id)を入れているため,クラウドからネット経由でこのボードにアクセスしてプログラムを動かしているようだ.