タカラトミーから発売されている embot は
スクラッチにも似たGUIでプログラミングして
LEDの点灯消灯やブザー鳴らし、サーボの回転ができる製品です。
embot の中心である embotコア は BLE で通信可能のようなので
今回はブラウザの WebBluetooth でLチカしてみたいと思います。
本記事でブラウザは Win11 の Microsoft Edge 108 を使用しました。
下記のように index.html と index.js を作成し
index.html を Edge に読み込みます。
※エラー処理は省略しています。
index.html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8" />
<title>Lチカ</title>
</head>
<body>
<button onclick="_start()">開始する</button>
<button onclick="_on()">つける</button>
<button onclick="_off()">消す</button>
<script src="index.js"></script>
</body>
</html>
index.js
const _uuid = (s) => {
return `f7fce5${s}-7a0b-4b89-a675-a79137223e2c`;
};
let _char = null;
const _write = async (char, val) => {
const buf = new Uint8Array(1);
buf[0] = val;
await char.writeValueWithoutResponse(buf.buffer);
};
const _start = async () => {
const blue = window.navigator.bluetooth;
try {
const opt = {
optionalServices: [ _uuid('10') ],
filters: [{ namePrefix: 'EMBOT_' }]
};
const device = await blue.requestDevice(opt);
const server = await device.gatt.connect();
const service = await server.getPrimaryService(_uuid('10'));
const char = await service.getCharacteristic(_uuid('15'));
_char = char;
} catch(e) {
console.error(`_start catch`, e.message);
}
};
const _on = () => {
_write(_char, 1);
};
const _off = () => {
_write(_char, 2);
};
赤LEDを JP4 に差し込み embotコア の電源を入れます。
「開始する」をクリックすると embot をスキャンするので選択してペアリングします。
「つける」ボタンをクリックするとLEDがつきます
実行結果1 |
---|
ブラウザが BLE デバイスペア設定ダイアログを出します。 |
実行結果2 |
---|
ぴかー |
ボードとかには詳しくないので
分解したりはしていません、あしからず。
ぐぐってみたところ、先駆者によると
esp32のようでした。