2021年6月17日木曜日

Raspberry Pi ZeroとLazurite MJ2001を接続して、Lazurite上の青LEDをLチカする

Lazurite MJ2001は低消費電力で920MHz無線に対応したマイコンモジュールです。Raspberry Pi ZeroとLazurite MJ2001を接続して、Lazurite上の青LEDをLチカするには、以下の手順を実行します。

〇Raspberry Pi ZeroとLazurite MJ2001を接続した写真

開発手順

1. 必要部品の準備
・MJ2001(Lazurite Miniシリーズ、920J後継品)
https://www.switch-science.com/catalog/7162/

・Lazurite Mini writer Type B(Lazurite Miniシリーズ)
https://www.switch-science.com/catalog/2956/
※MJ2001にプログラムを書き込むのに必要です。

・ピッチ変換基板 2×5⇔1×10
https://akizukidenshi.com/catalog/g/gP-14224/
※ハーフピッチ(1.27mm)を2.54mmピッチに変換してくれる基板です。

・ピンソケット 1.27mm 2×5(10P)
https://akizukidenshi.com/catalog/g/gC-13806/

・分割ロングピンソケット 1×42 (42P)
https://akizukidenshi.com/catalog/g/gC-05779/
※10ピン分に切っておきます。

あと、Raspberry Pi Zeroも用意します。

2. 変換基板の作成
ピッチ変換基板・ピンソケット1.27mm 2×5(10P)と10ピンにカットした分割ロングピンソケットをハンダ付けします。コネクタはいずれとも文字が印刷されている面に取り付けます。

〇ピッチ変換基板・ピンソケット1.27mm 2×5(10P)と10ピンにカットした分割ロングピンソケット

〇ピッチ変換基板・ピンソケット1.27mm 2×5(10P)と10ピンにカットした分割ロングピンソケットをハンダ付けした写真(とMJ2001)

3. Lazurite MJ2001にtest920jプログラムを書き込み
Lazurite IDEを以下からダウンロードしてWindowsマシンにインストールします。example/10.920j/test920jのプログラムを開いて、MJ2001に書き込みます。
https://www.lapis-tech.com/lazurite-jp/download

WindowsマシンとLazurite MJ2001の接続は以下のページにある「インターフェイス仕様」のPDFを参照します。
Lazurite mini writer (Type B)ラズライト
https://www.lapis-tech.com/lazurite-jp/products/lazurite-mini-writer-type-b

4. Raspberry Pi Zero側:raspi-configでSerial Portの有効化
Serialポートを有効化するために以下を実行します。
1) 以下のコマンドを実行します。
sudo raspi-config

2) Interface Optionsを選択します

3) P6 Serial Portを選択します

4) Would you like a login shell to be accessible over serial?にNoと答えます

5) Would you like the serial port hardware to be enabled?にYesと答えます

6) Okを選択します

7) Finishを選択します

8 ) Would you like to reboot now?でYesを選択して、リブートします

5. Raspberry Pi ZeroとMJ2001の接続
・以下の様にRaspberry Pi Zeroと変換コネクタを接続します。
Raspberry Pi Zero 3.3Vピン(SDカードスロットを上方向にした時、左列のピンの一番上) -> 変換ピンの10番ピン
Raspberry Pi Zero GNDピン(SDカードスロットを上方向にした時、右列のピンの上から3番目) -> 変換ピンの8番ピン
Raspberry Pi Zero GPIO15/Txピン(SDカードスロットを上方向にした時、右列のピンの上から4番目) -> 変換ピンの1番ピン
Raspberry Pi Zero GPIO16/Rxピン(SDカードスロットを上方向にした時、右列のピンの上から5番目) -> 変換ピンの2番ピン

変換コネクタとMJ2001は2x5ピンを合わせて接続します。ピンの位置などがずれないように合わせます。

6. Raspberry Pi Zero側:pipenvのインストール
sudo apt-get -y install python3-pip python3-distutils python3-dev python3-testresources

sudo pip3 install --upgrade setuptools

sudo pip3 install pipenv

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

source ~/.bashrc

7. Raspberry Pi Zero側:pyserialのインストール
以下のコマンドで、pyserialをインストールした仮想環境を作成します。
mkdir -p ./pyserial

cd ./pyserial

pipenv --python 3

pipenv install pyserial

pipenv shell

8. Raspberry Pi Zero側:Raspberry Piでプログラムの実行
以下のプログラムをmj2001blink.pyとして、保存し実行します。
※プログラムでシリアル通信で送信しているコマンドは以下のページを参照してください。
Lazurite920J 初期プログラム、インタフェース仕様
https://www.lapis-tech.com/lazurite-jp/contents/Serial920J/Serial920J.html

import serial
import time

try:
    ser = serial.Serial(port='/dev/serial0',baudrate=115200,timeout=None)
    ser.write("pm,26,o\n".encode("utf-8"))
    ser.flush()
    line = ser.readline()
    print("result:{}".format(line.decode('utf-8').strip()))
    time.sleep(2)
    print("setup")
    while True:
        ser.write("dw,26,0\n".encode("utf-8"))
        ser.flush()
        line = ser.readline()
        print("result:{}".format(line.decode('utf-8').strip()))
        print("on")
        time.sleep(2)

        ser.write("dw,26,1\n".encode("utf-8"))
        ser.flush()
        line = ser.readline()
        print("result:{}".format(line.decode('utf-8').strip()))
        print("off")
        time.sleep(2)
finally:
    ser.close()

・実行コマンド
以下のコマンドを実行して、MJ2001の青色LEDが2秒おきに点滅する事を確認します。
python3 mj2001blink.py

関連項目

Raspberry Pi Zero/Raspberry Pi PicoとLazurite MJ2001を接続して、920MHz無線で通信する

Raspberry Pi Zeroと小型ターンテーブルをREST APIで制御する

0 件のコメント:

コメントを投稿