MicroPythonファームウェアをArduinoボードに書き込む

Arduino Nano 33 BLE SenseやArduino RP2040、Portenta H7にMicroPythonファームウェアをインストールし、MicroPython言語でボードを動作させるためのガイドです。

!
訳者註: このページはArduinoのファームウェアの書き換えに関する記載があります。利用方法を間違えると、Arduinoが起動できなくなる可能性があります。翻訳が間違っている可能性もあるので、ご自身の判断で利用してください。訳者は責任を取りません。

AUTHOR: Jacob Hylén


はじめに

かねてより、特定のArduinoボードでは、OpenMV IDEとMicroPythonを使ってプログラムを行うことができていました。

互換性のあるArduinoボード向けに公式のMicroPythonのファームウェアがリリースされ、マシンビジョンが必要でないときには、MicroPythonでプログラムを行うもう一つの選択肢ができました。

このファームウェアを実行するために、MicroPython向けの(実験的な)Arduino Labエディタを使うことができます。このチュートリアルでは、その始め方を説明します。このためには、各ボード向けに特別に開発されたMicroPythonファームウェアをボードに書き込む必要があります。

到達点

このチュートリアルを終えると、新しいファームウェアがArduinoボードに書き込まれ、MicroPython向けArduino Labを使って接続できるようになっています。

必要なもの

この記事に従い、ボードでMicroPythonを実行するには、以下のものが必要です。

Arduino Nano 33 BLE

Nano 33 BLEにファームウェアを書き込むための処理では、最初にブートローダーとSoftDeviceを更新する必要があります。その後、ボードにMicroPythonファームウェアを書きこみます。

コアをインストールする

各コアがインストールされているのを確認することから始めます。Arduino IDE(MicroPython用Arduino Labではありません)を開き、ボードマネージャーを起動します。利用しているボードを探し、最新のコアがインストールされていることを確認します。より詳細な情報はここを参照してください。

ボードマネージャー

ボードマネージャー

これは、次のスケッチのアップロードに必要なだけではなく、次のステージで、特定のツールを探すために、コアファイル自身を詳細に見ていくことになります。

ブートローダーを更新する

Nano 33 BLEでの中心は、、ブートローダーとSoftDeviceを更新するのに利用するスケッチ例です。Arduino IDEに戻り、ファイル > スケッチ例 > Nano33BLE_System > Nano33_updateBLandSoftDeviceと進み、スケッチを開きます。

スケッチ例

スケッチ例

スケッチをボードにアップロードします。注意してください。ブートローダーはまだ更新されていません。スケッチをアップロードすると、シリアルモニタを使ってボードとやり取りし、実際にブートローダーを更新することができます。

シリアルモニタで、ブートローダーを更新するかを尋ねられます。シリアルモニタの上部のメッセージテキストボックスに、“y"を投入後エンターキーを押し、ボードに送信します。

すると、ブートローダーの更新状況を見ることができます。このとき、ボードの接続を切り離したり、リセットしたりしないでください。そうしてしまうと、ボードを壊してしまいます。

更新が終わると、次の選択肢が提示されます。今回は、ボードのSoftDeviceを更新するか聞かれます。ボードに"y"を送り、これが進むのも見守ってください。

更新バーが一杯になり、SoftDeviceの更新が完了すると、ボードは再起動し、全ての手順が完了します。

i
注意: この時点でよく忘れてしまう重要なことは、シリアルモニタを閉じることです。この後すぐにシリアルポートを別のことに使う必要があるので、モニタを開いたままにしておくと、モニタはビジー状態になり、新しいデータを受信できなくなります。

ファームウェアをダウンロードする

次は、ボードに書き込む特定のファームウェアを見つける必要があります。利用可能なファームウェアを、MicroPythonのページで見つけることができます。

手持ちのボードに対応した.binファイルをダウンロードしてください。

BOSSACを見つける

このステップでは、最初のステップでダウンロードしたコアファイルを利用していきます。このプロセスは、Windowsを使っているのか、MacOSを使っているのかで異なります。

Windows

利用するファイルは以下にあり、名前は、bossac.exeです。

1
C:\Users\{your-username}\AppData\Local\Arduino15\staging\packages\bossac-1.9.1-arduino2-windows.tar.gz\bossac-1.9.1-arduino2-windows.tar\bin\`

このファイルを見つければ、.tarアーカイブから取り出し、例えば、デスクトップなどにコピーしてください。

コマンドターミナルを開き、startとタイプしてください。その後、見つけたbossac.exeファイルをターミナルにドラッグ&ドロップし、エンターキーを押してください。

成功すると、別のコマンドターミナルウインドウが開き、MicroPythonファームウェアをボードに書き込むためのコマンドを実行できるようになります。

以下のコマンドを実行してください。ただし、ポートはボードがつながっているポート名に、ファームウェアファイルは、先ほどダウンロードしたファームウェアを配置したディレクトリ名付きのファームウェアファイルに変更してください。

1
bossac -e -w --offset=0x16000 --port={port} -i -d -U -R {firmware}

再度書きますが、この処理を行っている間は、ボードを切り離したり電源を切ったりしないで、ファームウェアがボードに書き込まれる進捗を見てください。完了すると、MicroPythonでボードをプログラムできるようになっています。

Arduino Lab MicroPython IDEで、左上の接続ボタンを押し、ポートを選択すると、Nano BLE Senseでプログラムができます。

MacOS

必要なファイルは以下にあります。

1
Users/{your-user}/Library/Arduino15/packages/arduino/tools/bossac/1.9.1-arduino2

必要なファイルは、bossacです。

i
注意: "Library"ディレクトリは隠しディレクトリです。`Shift + Command + .`を押すと、隠しディレクトリが表示されます。

ターミナルウインドウを開き、bossacファイルをターミナルウインドウにドラッグ&ドロップしてください。

MicroPythonファームウェアをボードに書き込むためのコマンドを実行できるようになります。

以下のコマンドを実行してください。ただし、ポートはボードがつながっているポート名に、ファームウェアファイルは、先ほどダウンロードしたファームウェアを配置したディレクトリ名付きのファームウェアファイルに変更してください。

1
bossac -e -w --offset=0x16000 --port={port} -i -d -U -R {firmware}

再度書きますが、この処理を行っている間は、ボードを切り離したり電源を切ったりしないで、ファームウェアがボードに書き込まれる進捗を見てください。完了すると、MicroPythonでボードをプログラムできるようになっています。

Arduino Lab MicroPython IDEで、左上の接続ボタンを押し、ポートを選択すると、Nano BLE Senseでプログラムができます。

Arduino Nano RP2040 Connect

Arduino Nano RP2040ボードでMicroPythonのプログラムを行うには、以下の手順に従ってください。Nano RP2040はMicroPythonを始めるのにもっとも簡単なボードです。インストールに追加のソフトウェアツールは必要ないからです。

以下を実行するだけです。

  1. MicroPythonページから、.uf2ファームウェアファイルをダウンロードしてください。
  2. RECピンをGNDに接続して、ボードのファイルシステムがPCに見えるようにしてください。ブレッドボードにボードを指すと簡単にできます。
  3. PCに表れる外部ストレージデバイスとして見えるボードのフラッシュストレージにファームウェアファイルをドラッグ&ドロップしてください。以上です。

Arduino Lab MicroPython IDEで、左上の接続ボタンを押し、ポートを選択すると、Nano RP2040でプログラムができます。

Arduino Portenta H7

MicroPythonをPortenta H7にインストールするには、関連するコアをインストールする必要があります。このコアは、必要なコマンドラインツールを淳にインストールします。Arduino IDE(Arduino Lab for MicroPythonではありません)を起動して、ボードマネージャを開いてください。“Portenta H7"を探し、最新のコアがインストールされていることを確認してください。

Portentaコアをインストールする

Portentaコアをインストールする

このボードは、dfu-utilを使って、DFUブートローダ経由でプログラムすることができます。DFUブートローダに入るには、ボードのリセットボタンを2回クリックしてください。

ファームウェアをダウンロードする

ボードに書き込む特定のファームウェアを見つける必要があります。利用可能なファームウェアを、MicroPythonのドキュメントサイトで見つけることができます。Portenta H7用のファームウェアは、.dfuファイルとして利用可能です。

dfu-utilを見つける

このステップでは、最初のステップでダウンロードしたコアファイルを利用していきます。このプロセスは、Windowsを使っているのか、MacOSを使っているのかで異なります。

Windows

利用するファイルは以下にあり、名前は、dfu-util.exeです。

1
C:\Users\{your username}\AppData\Local\Arduino15\staging\packages\dfu-util-0.10.0-arduino1-windows.tar.bz2\dfu-util-0.10.0-arduino1-windows.tar\windows\

このファイルを見つければ、.tarアーカイブから取り出し、例えば、デスクトップなどにコピーしてください。

コマンドターミナルを開き、startとタイプしてください。その後、見つけたdfu-util.exeファイルをターミナルにドラッグ&ドロップし、エンターキーを押してください。

成功すると、別のコマンドターミナルウインドウが開き、MicroPythonファームウェアをボードに書き込むためのコマンドを実行できるようになります。

ボードのリセットボタンを2回押してDFUモードに入り、以下のコマンドを実行してください。ただし、ファームウェアファイルは、先ほどダウンロードしたファームウェアを配置したディレクトリ名付きのファームウェアファイルに変更してください。

1
dfu-util -a 0 -d 0x2341:0x035b -D {firmware.dfu}

再度書きますが、この処理を行っている間は、ボードを切り離したり電源を切ったりしないで、ファームウェアがボードに書き込まれる進捗を見てください。

すると2つのプログレスバーが順に現れるはずです。最初のバーは、ボードにある書き込み前のファームウェアの削除の進捗を示し、2番目のバーは、新しいファームウェアの書き込みの進捗を示します。

完了すると、MicroPythonでボードをプログラムできるようになっています。

Arduino Lab MicroPython IDEで、左上の接続ボタンを押し、ポートを選択し、コーディングしてください。

MacOS

利用するファイルは以下にあり、名前は、dfu-utilです。

1
Users/{your-user}/Library/Arduino15/packages/arduino/tools/dfu-util/0.10.0-arduino1/dfu-util
i
注意: "Library"ディレクトリは隠しディレクトリです。`Shift + Command + .`を押すと、隠しディレクトリが表示されます。

ターミナルウインドウを開き、dfu-utilファイルをターミナルウインドウにドラッグ&ドロップしてください。

MicroPythonファームウェアをボードに書き込むためのコマンドを実行できるようになります。

ボードのリセットボタンを2回押してDFUモードに入り、以下のコマンドを実行してください。ただし、ファームウェアファイルは、先ほどダウンロードしたファームウェアを配置したディレクトリ名付きのファームウェアファイルに変更してください。

1
dfu-util -a 0 -d 0x2341:0x035b -D {firmware.dfu}

再度書きますが、この処理を行っている間は、ボードを切り離したり電源を切ったりしないで、ファームウェアがボードに書き込まれる進捗を見てください。

すると2つのプログレスバーが順に現れるはずです。最初のバーは、ボードにある書き込み前のファームウェアの削除の進捗を示し、2番目のバーは、新しいファームウェアの書き込みの進捗を示します。

完了すると、MicroPythonでボードをプログラムできるようになっています。

Arduino Lab MicroPython IDEで、左上の接続ボタンを押し、ポートを選択し、コーディングしてください。

ファームウェアを書き込む

ツールをインストールして、次のコマンドを実行してください。dfu-util -a 0 -d 0x2341:0x035b -D firmware.dfu

訳者註: このセクションの必要性が不明です。

おわりに

これで、ArduinoボードにMicroPython言語でプログラムするのに必要なファームウェアを書き込みました。多くのエキサイティングなプロジェクトへの扉が開かれました。Arduinoボードの新たな可能性を楽しんで探求してください。

オリジナルのページ

https://docs.arduino.cc/tutorials/nano-33-ble-sense/micropython-installation

最終更新日

March 7, 2023

inserted by FC2 system