0
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.

MicroPython/CircuitPythonAdvent Calendar 2023

Day 16

Pybricks のブロックプログラミング環境

Last updated at Posted at 2023-12-17

はじめに

開発中の Pybricks v3.4.0 では、ブロックプログラミングが可能になりました。といいますか、もう ベータ2 まできているのに、追加された機能はほぼブロックプログラミング機能だけです。

ブロックプログラミングをはじめるには

開発中の Pybricks はベータ版リリースから Pybricks Code ベータ版で使えるようになります。

Pybrick にアクセスして新規ファイルの「+」記号をクリックすると、ファイル名入力のダイアログが現れますが、ここでブロックプログラミングか、Python プログラミングを選択することになります。

スクリーンショット 2023-12-17 19.48.40.png

ブロックプログラミングを選択すると「寄付」が要求されます。将来的にこれが解除されるのかは不明ですが、1週間の無料期間があるので、とりあえず登録して体験することは可能です。

※ 私は日頃楽しませてもらっているので 5$/月の寄付をすることにしました。

寄付の登録も終わって、ブロックプログラミングが可能になると、次のような画面になります。

スクリーンショット 2023-12-17 19.56.23.png

ブロックプログラミングによくある、セットアップ用(set up)と実処理用(program)のブロックがあります。

ファイルの拡張子はブロックプログラミングになっても .py です。

プログラミング

エディタ領域の左側にプログラミングで使うブロックを選択して配置します。

  • Setup -- ハブやデバイスの初期化用ブロックがあります
  • Output -- モーターやLED、送信用のブロックがあります
  • Input -- センサーやタイマー、受信用のブロックがあります
  • Flow -- 条件分岐やループのブロックがあります
  • Tasks -- マルチタスクや独自モジュール用のブロックがあります
  • Data -- データ値や演算子のブロックがあります
  • Variable -- 変数定義のブロックがあります

たとえば、ハブ内蔵の LED でLチカするプログラムは次のようになります。

スクリーンショット 2023-12-17 20.31.19.png

使ってみた感想

ブロックは Pybricks の API にや制御構造にほぼ1対1に対応しています。その分、抽象化不足でプログラミング初心者にはわかりずらいかもしれません。たとえば micro:bit の MakeCode では、メインの処理とボタンのイベント処理を別々にブロック配置すれば、自動的に並行して動いてくれますが、Pybricks Code だとイベントループを意識して作り込むか、マルチタスクのブロックを駆使しなければならないので、プログラミング初心者にはなかなかに難しいところです。

ドキュメントでの機能提示方法としては、API と対に示せばよいので楽でしょうね。たとえば、テクニックハブに内蔵 LED のAPIは次のように示されています。

スクリーンショット 2023-12-17 20.33.31.png

変換後の MicroPython スクリプトを見るには

現在のところ、ブロックから変換した MicroPython スクリプトを Pybricks コードで見る手段は提供されていないようです。プロックプログラミングでもファイルの拡張子は .py であることから、先ほどのLチカのブロックブログラムを PC にダウンロードしてきて中身を見てみることにします。

スクリーンショット 2023-12-17 21.36.25.png

中身は1行目にコメントでブロック情報のある MicroPython スクリプトでした。

2023/12/25 補足

その後、ブロックプログラミング環境を使ってみて、いちいちPCにダウンロードしなくても MicroPython コードを見る方法が見つかりました。編集領域の右側にある `>' をクリックするだけでした。

image.png

次のように、右側に MicroPython コードが現れます。残念ながら MicroPython 側のコードは編集できません。元の画面に戻すには、もう一度 `>' をクリックします。

image.png

0
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
0
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?