🐝

bipes.net.brでESP32をコントロール

2024/12/30に公開

はじめに

bipes.net.br(以下BIPES)はGoogle Blocklyをベースにした組み込みシステムやIoTデバイスをプログラムするためのGitHubに公開されたオープンソースのプラットフォームで、ユーザーが簡単にデバイスを設計、プログラム、構築、展開、テストできるように設計されています。

BIPES(Block Based Integrated Platform for Embedded Systems)はMicroPythonと連携しており、ブロックで作成したプログラムは自動的にPythonコードに変換され、ターゲットハードウェアに送信されます。これにより、プログラムは数ミリ秒で実行され、ブラウザを閉じても動作し続けます。
BIPESはGoogle Cloud上でホスティングされています。(記事執筆時)

BIPESはESP32ESP8266をはじめ、m5stickRaspberry Pi Pico Wなど多数のハードウェアに対応しています。

BIPESは特定のソフトウェアは不要で、Web Serial APIが使えるブラウザ、Google Chrome(正式サポート)、Microsoft Edge(正式サポート)、Brave(動作確認済)などで実行させることができます。
Vivaldi、DuckduckGO、Safariなどは記事執筆時は動作しませんでした。

BIPES最初の一歩

Webサイトへの接続

https://bipes.net.br/ide/にアクセスすると図のようの画面が表示されます。
Do not show this screen ajgainにチェックを入れてCloseボタンを押しましょう。

ユーザ登録などは一切不要です。

最初の画面

ESP32ボードの接続

  1. ESP32開発ボードをUSBケーブルでパソコンと接続します。

  2. ブラウザ上部のUSBのアイコンをクリックし、Serialをクリックします。
    USBアイコン

Serial

  1. パソコンが認識しているシリアルポートの一覧が表示されるので、適切なものを選択し、接続ボタンをクリックします。
    下の図はMacの例ですが、WindowsではCOM3のような文字列で表示されます。
    Serial

  2. シリアルポートと接続されると下の図のようにコネクタのアイコンの表示が変わります。
    Serial

  3. デバイス名をクリックして使用するデバイスを選択します。上の図ではESP32を選択しています。

オンボードLEDの点滅

ESP32のGPIO2に接続されているオンボードLEDを1秒ごとに点滅させるブロックを作成します。

  1. 画面左側にあるMachineの黒三角(▶︎)をクリックして展開し、In/Out Pinsをクリックすると下図のようなブロックが表示さるので、set output pinのブロックを画面中央までドラッグします。
    inoutpins

  2. 次に1秒のDelayを設定するためにTimingをクリックし、delay 1 secondsのブロックを画面中央までドラッグし、set output pinの下にブロックの凹凸が合うように配置します。
    inoutpins

  3. この状態で画面上部のデバイス名の右にある▶︎をクリックするとブロックが実行され、オンボードLEDが点灯します。

  4. 同様にしてLEDをオフにするブロックを図のように追加します。
    inoutpins

  5. 続いて画面左側のLoopをクリックしてrepeat 10 timesのブロックを画面中央までドラッグして、LED ON/OFFのブロックを10回繰り返すループブロックを図のように組み合わせます。
    inoutpins
    inoutpins

  6. 画面上部のデバイス名の右側の▶︎をクリックするとブロックが実行され、オンボードLEDが10回点滅します。

コメントの挿入

コメントを入れたいブロックを右クリックするとプルダウンメニューが表示されるので、Add Commentをクリックしコメントを入力します。
inoutpins
inoutpins

printブロック

LEDが点灯している時はLED ONと消灯している時はLED OFFとconsoleに表示させます。

  1. 画面左側のTextをクリックし、**print "abc"**のブロックを画面中央部にドラッグし、abcの部分をLED ONに変更します。
    inoutpins

  2. printブロックを右クリックして表示されたプルダウンメニューのDuplicateを選ぶとコピーされるので、LED ONの部分をLED OFFに書き換えます。

  3. それぞれのprintブロックを下図の位置にはめ込みます。
    inoutpins

  4. 画面上部のデバイス名の右側の▶︎をクリックするとブロックが実行されるので、下図のように画面上部のconsoleをクリックするとLEDの状態が表示されます。
    inoutpins

ファイルの保存

作成したブロックをダウンロードしてローカルPCに保存する方法について解説します。

  1. 図のように、画面上部にあるダウンロードボタンを右クリックしてプルダウンメニューを表示させ、別名で保存を選択肢ます。
    inoutpins

  2. 保存するフォルダとファイル名を指定して保存ボタンを押せば保存されます。
    ファイルはxml形式で保存されます。

おわりに

BIPESは多くのセンサやアクチュエータのブロックも用意されています。また、LoRAやGSM modemなどの通信回線、MQTTやGoogle Sheetなどのブロックも用意されていて、そこそこのシステムが簡単に組めそうです。

ブロックを組み合わせて作成したプログラムのpythonコードもconsoleに吐き出してくれるので、pythonの勉強にも有用だと思います。

この記事で紹介したプログラムはhttps://bipes.net.br/ide/#orzh6gから参照できます。

Discussion