4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

ハード その他Advent Calendar 2022

Day 12

embotをブラウザからLチカ

Last updated at Posted at 2022-12-11

タカラトミーから発売されている 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
embot03.png
ブラウザが BLE デバイスペア設定ダイアログを出します。
実行結果2
embotl04.jpg
ぴかー

ボードとかには詳しくないので
分解したりはしていません、あしからず。
ぐぐってみたところ、先駆者によると
esp32のようでした。

4
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?