2021年2月19日金曜日

MicroPythonでmicrobitのGrove Shieldに接続したGrove LEDを、USBシリアル通信を通して光らせる

MicroPythonでmicrobitのGrove Shieldに接続したGrove LEDを、USBシリアル通信を通して光らせるには、以下の手順を実行します(制御側はPC側)。

実行手順

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側送信プログラムの保存
以下をcontrol_led.pyとして保存します。
import serial
import time

try:
  ser = serial.Serial('/dev/ttyACM0',115200,timeout=None)
  ser.write(b"led_on")
  time.sleep(3)
  ser.write(b"led_off")
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 == b'led_on':
        pin0.write_digital(1)
    if line == b'led_off':
        pin0.write_digital(0)
    if button_a.is_pressed() and button_b.is_pressed():
        display.clear()
        break
    sleep(1000)
uart.init(115200)

5. PC側の受信プログラムの実行
シェルで以下を実行後、LEDが3秒間点灯後に消灯することを確認します。AボタンとBボタンを同時押してmicro:bit側のプログラムを終了します。
python control_led.py

関連情報

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

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

Groveデバイスまとめ

0 件のコメント:

コメントを投稿