Skip to main content

MicroBlocksでXIAO SAMD21を使用する

MicroBlocks

MicroBlocksは、初心者(9歳から大人まで)がマイクロコントローラーを簡単にプログラムできるブロック言語です。見た目の単純さにもかかわらず、MicroBlocksはMicroPythonよりも優れたパフォーマンスを持つ強力なプログラミング言語です。GPIOピンの制御やI2C、SPI、シリアル経由での周辺機器とのインターフェース、そして約200の拡張ライブラリを備えています。実際、一部のハードウェア設計者は、高速でインタラクティブな開発サイクルのため、ラピッドプロトタイピングやテストにMicroBlocksを好んで使用しています。

XIAO SAMD21のピン配置とハードウェア機能

すべてのXIAOボードと同様に、このボードには11個のGPIOピン(ピン0..10)があります。すべてのピンはアナログ入力、デジタル出力、アナログ出力に使用できます。 ピン1..10は、他のXiaoボードと同様にパルス幅変調(PWM)出力をサポートしています。

他のボードとは異なり、このボードのピン0は10ビットデジタル-アナログコンバーター(DAC)です。ピン0を0から1023の間の数値に設定すると、ピンは0から3.3ボルトの間の安定した電圧を出力します。(対照的に、PWM出力は数値がパルス幅を決定するデジタルパルスの連続です。)DACピンは、オーディオやその他のアナログ信号の生成に使用できます。

このボードには黄色のユーザーLED(ピン13)と青色のRX/TX LED(ピン11と12)があります。 すべてのLEDは反転しています:関連するピンをLOWに設定するとLEDが点灯します。

RX/TX LEDはMicroBlocksで使用できますが、注意点があります。 MicroBlocksは常にボードとデータを交換しているため、 MicroBlocksエディターを使用している際にRX/TX LEDが明るく点滅します。 その点滅が気を散らすため、RX/TX LEDはデフォルトで無効になっており、 スクリプトが関連するピンを設定した場合にのみ有効になります。 これを念頭に置くと、RX/TX LEDはIDEが接続されていない時に有用です。

MicroBlocksファームウェアのインストール

このボードにはブートボタンがないため、ブートローダーモードに入るのは少し複雑です。USBポートの左側にある2つのRSTピンの接点を、ワイヤーを使って素早く2回ショートさせます:

成功すると、黄色のユーザーLEDがゆっくりと点滅し、 Arduinoという名前の仮想USBドライブが表示されます。

MicroBlocksのファームウェアフォルダから ファームウェアファイルをダウンロードし、 そのファイルを仮想USBドライブにドラッグします。

ファームウェアがインストールされ、数秒後に仮想USBドライブが消えます。 ディスクが適切に取り出されなかったという警告は無視できます。

ボードをMicroBlocksに接続する

データUSBケーブル(電源専用ケーブルではない)でボードをコンピューターに接続します。

ChromeまたはEdgeブラウザでMicroBlocksエディターを実行します。 connect(プラグアイコン)ボタンをクリックします:

メニューから**connect (USB)**を選択します:

ダイアログからボードを選択し、connectボタンをクリックします:

ボードが接続されると、緑色の円とボード名が表示されます:

MicroBlocksでのコーディング

MicroBlocksはライブコーディング環境なので、コーディングしながらテストできます。 ブロックやスクリプトをクリックして実行します。 ブロックをスクリプトペインにドラッグして組み立て、スクリプトを作成します。

コードは永続的なフラッシュメモリに保存され、ボードがMicroBlocksエディターに接続されていなくても実行できます。 when startedブロックの下にあるスクリプトは、ボードに電源が供給されたときに実行されます。

MicroBlocksは並行処理をサポートしています。最大10個のスクリプトが同時に実行できます。

多くの組み込みブロックに加えて、MicroBlocksには追加機能や周辺機器をサポートする約200のライブラリがあります。 Add Libraryボタンをクリックしてライブラリを追加します。

このスクリプトは黄色のユーザーLEDを点滅させます:

ブロックリファレンスには、さらに多くの例が含まれています。

特別な謝辞

記事を執筆してくれたMicroBlocksのJohnに特別な感謝を。

MicroBlocksリソース

Loading Comments...