MicroPythonコントロールMCUをお試しください

1. まとめ

このドキュメントでは、STM32H43ボードを例として紹介し、Python環境で組み込みアプリケーションを開発する方法を主に紹介します。システム環境の構築からコンパイル、Pythonを使用したハードウェア制御の実現まで。入門チュートリアルとして使用できます。

2. 準備オーケー ##

2.1 開発環境のセットアップ

2.1.1 Win10にはLinuxシステムが付属しています

開発環境では、仮想マシンを単独で使用してubuntuシステムをインストールできます。また、Win10システムにはLinuxシステムが付属しており、有効にするだけで使用できるので便利なので、win10に付属のlinuxサブシステムを例にとります。

コントロールパネルでLinuxサブシステムを有効にし、クリックしてWindows機能を有効または無効にします。

以下に示すように、LinuxのWindowsサブシステムを確認してから、コンピューターを再起動します。

クリックして今すぐ再起動

再起動後、windows 10アプリケーションストアに入り、Ubuntuを検索し、18.04または20.02を選択してインストールできます

ダウンロードしてインストールしたら、クリックして開始します

ユーザー名とパスワードを設定し、

インストールのデフォルトパスは

C:Usershpp19AppDataLocalPackagesCanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgscLocalState ootfshome

パスは変更できないため、Linux環境は問題ありません。ls、cp、rm、その他のコマンドなど、いくつかの一般的なコマンドを入力して表示できます。

Win10でインストールされたLinuxサブシステムはコマンドラインのみをサポートし、仮想マシンでインストールするための包括的な機能はありませんが、micropythonの開発には十分です。

2.1.2 仮想マシンのインストール

windows10でインストールしたくない場合は、自分でビルドできます。仮想マシンをインストールし、ubunutのisoイメージファイルをダウンロードしてインストールする必要があります。インターネット上にはそのようなインストールが多数あります。詳細は説明しません。最初のインストールをお勧めします。

2.1.3 依存するソフトウェアのインストール

Gitのインストール、gitはパッケージの取得に使用されます

クローン化されたmicropythonソフトウェアパッケージを使用します。公式Webサイトにアクセスして自分でダウンロードし、Linux環境のホームディレクトリにコピーすることもできます。

gitを使用してパッケージのクローンを作成します

ネットワークが良くない場合は、しばらく待ちます。これは遅くなります。公式サイトにアクセスして自分でダウンロードすることもできます。すでにダウンロードしています。最新のボードmicropython-1.13をリクエストできます。

http://www.micropython.org/download/

2.1.4 Micropythonディレクトリ構造

ディレクトリ構造はより重要です。ディレクトリ構造がクリアされた場合にのみ、別のボードに移行できます。

ディレクトリ構造の詳細については、README.mdを参照してください。

主な焦点は、現在micropythonでサポートされているST開発ボードです。H7シリーズの方が関連性が高く、現在多くのSTチップがサポートされていることがわかります。

3. クロスコンパイルツールチェーン

ターミナルにsudoapt install gcc makeと入力して、gccをインストールします。

インストール後、バージョンを確認できます

sudo apt-get install gcc-arm-none-eabiと入力して、ARM用のコンパイラをインストールします

クロスツールチェーンのインストールとダウンロードが遅い場合は、以下の手順に従って変更してください。linuxに付属のソフトウェアソースアドレスはすべて外部であるため、国内アップデートのダウンロードインストールは遅くなります。リストを国内に更新する必要があります。

開いているファイルの内容をすべて削除し、次のミラーソースに置き換えます

deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse

deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse

deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

ソフトウェアソースを変更した後、ソフトウェアリストとソフトウェアを更新します。

sudo apt update

sudo apt upgrade

vimエディターのコマンドに慣れていない場合は、自分でBaiduするか、次のディレクトリに直接アクセスできます。

C:Usershpp19AppDataLocalPackagesCanonicalGroupLimited.Ubuntu20.04onWindows_79rhkp1fndgscLocalState ootfsetcaptで、sources.listファイルを次のAlibabaCloudミラーソースに置き換えます。これは非常に高速です。

mpy-crossをコンパイルします。mpy-crossはmicropython補助ツールであり、コンパイルプロセス中に使用されます。micropythonのソースコードのルートディレクトリにコマンドmake -Cmpy-crossを入力します。

この時点で、クロスコンパイルツールチェーンがインストールされ、STM32プログラムをコンパイルできます。

4. プログラムをコンパイルする

ソースコードのルートディレクトリにコマンドmake-C ports / stm32を入力します。BOARDが指定されていない場合、ports / stm32の下のPYBV10ボードはデフォルトでコンパイルされ、必要なのはH743で実行することなので、H743を切り取って移植する必要があります。ボード上で、micropythonで現在サポートされているSTM32ボードは、F091、F401、F429、F446、F746、H743などであることがわかります。

NUCLEO_H743ZIをコピーして、BODEBOARDという名前を付けます

コマンドlsを入力して、BODEBOARDフォルダーとファイルを表示し、ビューを入力します

主に5つのファイルがあり、内部のファイルを変更する必要があります

最初にクロックを25000000に変更し、主にstm32h7xx_hal_conf.hファイルを変更します

mpconfigboard.hを変更します

クロックを次の構成に変更します。以前のIARプロジェクトでクロック構成をコピーできます。

他のピンを変更するこのセクションでは、例として3つのLEDピンとUART1ピンのみを変更します。ドキュメントの次のバージョンの更新では、使用されるすべてのハードウェアピンが更新されるか、このファイルの対応するピンを引き続き変更します。ハードウェアピン

保存して終了

Pins.csvファイルを変更します

LEDピンとUART1ピンを追加します

保存して終了。

NUCLEO_H743ZIを参照しているため、mpconfigboard.mkファイルを変更する必要はありません。変更が完了したので、コンパイルして、micropythonのルートディレクトリにコマンドmake -C ports / stm32 BOARD = BODEBOARDを入力できます。

コンパイルが完了するのを待ちます。

.hexおよび.dfuファームウェアが生成されていることがわかります。そのうちのいずれかを選択し、H743ボードにダウンロードしてください。ボードには、python言語を認識できるpythonパーサーがあります。

コンパイルされたファームウェアをWindowsホストにコピーする方法は?もちろん、生成されたディレクトリに直接移動してコピーすることもできます。Windowsパーティションはデフォルトでwin10のlinuxサブシステムにマウントされ、/ mntディレクトリに表示されます。

このように、コマンドcpを直接使用してWindowsにコピーできます。もちろん、コマンドライン操作に慣れていない場合は、ファイルを簡単に管理できるmidinight commanderソフトウェアをインストールできます。コマンドsudoapt install mcを入力してインストールします。インストール後、mcと入力します。ソフトウェアを直接開きます。

どちらの方法を使用する場合でも、Hexファイルをハードウェアボードにダウンロードします。ダウンロードが完了したら、ボードの電源を再度入れます。Uディスクドライブの文字に似たPYBFLASHが表示され、内部のboot.pyが開きます。

Main.pyと他の4つのファイル、main.pyに直接書き込むことで、最終的なアプリケーションを実行できます。

5. テスト

まず、パテを使用してボード上のLEDライトを制御し、パテをオンにして、ボーレートとシリアルポート番号を構成する方法を示しましょう。

LEDライブラリをインポートすると、LEDを制御できます

H743ボードの3つのLEDライトが順番に点灯し、パテを介してハードウェアを制御できることがわかります。次に、パテを制御せずにボードの電源をオンにし、3つのLEDライトを点灯させる方法。 ?

これは、前述のmain.pyファイルを編集し、任意のテキストエディターで開き、pythonコードを記述し、保存して終了するために必要です。これを実行できます。

LED照明制御は上記のコードで実現され、シングルチップマイクロコンピュータはpythonで制御されます。これまでのところ、Pythonでたくさんの楽しいことを書いて、マイクロプロセッサで実行することができます。

6. 参考資料

シリアル番号 ドキュメント
1 www.micropython.org

Recommended Posts

MicroPythonコントロールMCUをお試しください