STM32 MicroPythonのプログラムを書き込む

STM32 MicroPythonのプログラムを書き込む

今回はMicroPythonのコードをSTM32マイコンに書き込んで動かしてみます。

投稿時の開発環境を記しておきます。

PC:Windows10 OS
Board: STM32Nucleo-F401RE

概要

最近では機械学習の開発用として使われるなど注目を浴びているPythonですが、今回は組み込み用としての実装であるMicroPythonを使ってSTM32マイコンを動かしてみます。

MicroPythonについて詳しく知りたい方は MicroPython Webサイト をご覧になってください。

Pythonはインタプリタを使うことができる言語です。インタプリタは処理系の一種で「プログラミング言語で書かれたプログラムを解釈しながら実行するためのしくみ」になります。
インタプリタ(interpreter)は翻訳を意味します。

STM32 MicroPythonでLチカしてみる の記事ではインタプリタの REPL という機能を使ってMicroPythonを体験してみました。

今回はMicroPythonのコードを実際にマイコンのフラッシュメモリーに書き込んで動作させてみます。

環境を構築する

Windowsの環境ではPythonをインストールしなければなりません。
Pythonをインストールされていない方は以下のサイトからダウンロードしてインストールしてください。

anaconda3をインストールする

anaconda3は最近人気の言語、Pythonの拡張版です。標準のPythonにライブラリを同梱したものになります。
以下のサイトから64ビットの最新版をインストールすれば良いでしょう。

anaconde3のダウンロード

インストール手順は省略します。

ampyをインストールする

ampy は Adafruit社が開発したツールで Adafruit MicroPython Toolの略称と言われています。

まず anaconda3 を起動します。

スタートメニューに anaconda と入力し検索結果から出てきた anaconda Prompt (anaconda3)を選択します。

Anaconda Prompt が出たら pip install adafruit-ampy と入力し Enterします。

ampyを使ってみる

ampyはコマンドプロンプト(Anaconda Prompt)上で実行するコマンドです。

まずボードの方は、

STM32 MicroPythonでLチカしてみる で紹介した方法で hexファイルを書き込んだ状態にしておいてください。

ampyはシリアルポートを使って通信するので、Tera Term等の通信アプリは閉じてください。

まずボードを USBケーブルでPCとつなぎます。

そこで一度、Tera Termを立ち上げてください。これはボードの仮想COMポート番号がいくつなのかを調べるためです。

新しい接続でラジオボタンをシリアルに設定します。そして STLink Virtual COMポート番号がいくつなのかを確認しておきます。

こちらの環境では COM5 でした。

それでは Tera Term を終了し、Anaconda Prompt に以下の文字列を打ち込み Enter します。

ampy -p COM5 -b 115200 ls

/flash が返ってきました。

ここで ampy のコマンドを紹介しておきます。
コマンドは

ampy -p SP -b BR COMMAND Enterキー という形式です。

SP : シリアルポートで COMn n=ポート番号を指定
BR : ボーレートで今回は 115200 固定

ampyのコマンド一覧

コマンド 機能
ls /flash フラッシュメモリー上のファイルを一覧する
put file フラッシュメモリー上にfileを書き込む
get file フラッシュメモリー上のファイルを閲覧する
rm file フラッシュメモリー上のファイルを削除する
mkdir dir ディレクトリdirを作成する
rmdir dir ディレクトリdirを削除する
run file fileを実行する
reset マイコンをリセットする

それでは次のコマンドを実行してください。(COM5はそちらの環境のポート番号に合わせます)

ampy -p COM5 -b 115200 ls /flash

以下の返事が返ってきます。

/flash/boot.py
/flash/main.py

main.pyがboot.pyに続いて実行されるMicroPythonのコードになります。

以下のコードをメモ帳などのエディタで編集し、main.pyというファイル名で保存します。

while True:
	pyb.LED(1).on()
	pyb.delay(1000)
	pyb.LED(1).off()
	pyb.delay(1000)

見ておわかりの通り、Lチカのコードですね。

保存したファイルを C:\Users\nnnn に移動します。

nnnnはそちらの環境のユーザー名です。

そしてこのファイルを書き込みます。

ampy -p COM5 -b 115200 put main.py /flash/main.py

黒いリセットスイッチを押すとLD2が点滅します。

いかがでしたか。うまくLチカできたでしょうか。

Pythonカテゴリの最新記事