2021年2月16日火曜日

MicroPythonを使用してUSBシリアルで送信した文字列をmicro:bitのLEDマトリックスに表示する

micro:bitはMicroPythonでプログラミングする事もできます。MicroPythonを使用してUSBシリアルで送信した文字列をmicro:bitのLEDマトリックスに表示するには、以下の手順を実行します。

実行手順

1.pipenvのインストール
pipenvをインストール済みでない場合は、以下のコマンドでインストールします。
sudo dnf -y install python3

sudo pip3 install --upgrade pip

sudo pip3 install --upgrade setuptools

sudo pip3 install pipenv

echo "export PIPENV_VENV_IN_PROJECT=true" >> ~/.bashrc

source ~/.bashrc

2. pyserialのインストール
以下のコマンドでpyserialをインストールした仮想環境を作成します
mkdir -p ~/pyserial

cd ~/pyserial

pipenv --python 3

pipenv install pyserial

pipenv shell

3. PC側送信プログラムの保存
以下をsend_message.pyとして保存します。
import serial

try:
  ser = serial.Serial('/dev/ttyACM0',115200,timeout=None)
  ser.write(b"microbit sample")
finally:
  ser.close()

4. micro:bitとPCを接続して、Thonnyなどで以下のプログラムをmain.pyとして保存します。
from microbit import *

uart.init(115200)
display.show(Image.HEART)
while True:
    line = uart.readline()
    if line is not None:
        display.scroll(line)
    if button_a.is_pressed() and button_b.is_pressed():
        display.clear()
        break
    sleep(100)
uart.init(115200)

プログラムをmicrobitに保存後、Thonnyを閉じておきます(※受信プログラムを使用せずにUSBシリアルの出力を見たい場合は、閉じないでおきます)
Micro:bitが反応しなくなった場合は「ThonnyからMicoPythonのプログラムをmicro:bitに転送する設定」の手順でMicroPythonを再インストールします。

5. PC側の送信プログラムの実行
シェルで以下を実行後、micro:bitのLEDマトリックスに文字列が表示されることを確認します。AボタンやBボタンを押したときのメッセージが表示されることを確認します。最後にAボタンとBボタンを同時押してmicro:bit側のプログラムを終了します。
python send_message.py

関連情報

・Thonnyに関する記事は、こちらを参照してください。

・Micro:bitに関する記事は、こちらを参照してください。

0 件のコメント:

コメントを投稿