Pro MicroとRaspberry Pi 3の各USBコネクタをケーブルで接続してシリアル転送を行います。Raspberry Pi 3のリリースは「2018-04-18-raspbian-stretch」です。

Raspberry Piのシリアルポートの設定

Raspberry Pi 3とパソコンとをシリアル接続」でRaspberry Pi 3とパソコン間でシリアル転送を行いました。まず、Pro MicroがRaspberry Pi 3に接続されているかを次のコマンドで確認します。コマンドの実行結果で「Arduino SA Leonardo」が表示されています。

 $ lsusb
Bus 001 Device 006: ID 2341:8036 Arduino SA Leonardo (CDC ACM, HID)
Bus 001 Device 005: ID 046d:c018 Logitech, Inc. Optical Wheel Mouse
Bus 001 Device 004: ID 0566:3107 Monterey International Corp. Keyboard
Bus 001 Device 003: ID 0424:ec00 Standard Microsystems Corp. SMSC9512/9514 Fast Ethernet Adapter
Bus 001 Device 002: ID 0424:9514 Standard Microsystems Corp. SMC9514 Hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Raspberry Pi 3のシリアルポートは、コンソールとして使用する設定になっているため、これを次の手順で止めます

  1. raspi-configを起動「$ sudo raspi-config」します。
  2. 5 Interfacing Options –>[Select]
  3. P6 Serial –> [Select]
  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. The serial Login shell is disabled
    The serial interface is enabled —> [OK] —> [Finish]
  7. “Would you like to reboot now?” –> [No]

Raspberry Pi 3をreboot「$ sudo reboot」します。

起動後、次のコマンドでシリアルデバイスを確認します。

$ ls /dev/tty*
/dev/tty    /dev/tty16  /dev/tty24  /dev/tty32  /dev/tty40  /dev/tty49  /dev/tty57  /dev/tty8
/dev/tty0   /dev/tty17  /dev/tty25  /dev/tty33  /dev/tty41  /dev/tty5   /dev/tty58  /dev/tty9
/dev/tty1   /dev/tty18  /dev/tty26  /dev/tty34  /dev/tty42  /dev/tty50  /dev/tty59  /dev/ttyACM0
/dev/tty10  /dev/tty19  /dev/tty27  /dev/tty35  /dev/tty43  /dev/tty51  /dev/tty6   /dev/ttyAMA0
/dev/tty11  /dev/tty2   /dev/tty28  /dev/tty36  /dev/tty44  /dev/tty52  /dev/tty60  /dev/ttyprintk
/dev/tty12  /dev/tty20  /dev/tty29  /dev/tty37  /dev/tty45  /dev/tty53  /dev/tty61  /dev/ttyS0
/dev/tty13  /dev/tty21  /dev/tty3   /dev/tty38  /dev/tty46  /dev/tty54  /dev/tty62
/dev/tty14  /dev/tty22  /dev/tty30  /dev/tty39  /dev/tty47  /dev/tty55  /dev/tty63
/dev/tty15  /dev/tty23  /dev/tty31  /dev/tty4   /dev/tty48  /dev/tty56  /dev/tty7

Pro Microのシリアル転送スケッチの作成

Pro MicroからRaspberry Pi 3にシリアルデータを送信するスケッチ「serialtrns.ino」を次に示します。

serialtrns.ino

void setup(){
  // シリアルポートを115200 bps[ビット/秒]で初期化
  Serial.begin(115200);
}

void loop(){
  Serial.print("Start Loop\n");
  delay(3000);
}

Raspberry Pi 3のシリアル転送プログラムの作成

Raspberry Pi 3でPro Microからシリアルデータを受信するプログラム「serialtrns.py」を次に示します。

serialtrns.py

import serial
import time
  
def main():
    con=serial.Serial('/dev/ttyACM0', 115200)
    print (con.portstr)
    while 1:
        str=con.readline()
        print (len(str))
        print (str)
  
if __name__ == '__main__':
    main()

シリアル転送の実行

Pro Microのシリアル転送スケッチ「serialtrns.ino」とRaspberry Pi 3のシリアル転送プログラム「serialtrns.py」を実行すると、次のメッセージがRaspberry Pi 3に表示されます。

$ python3 serialtrns.py
/dev/ttyACM0
11
b'Start Loop\n'
11
b'Start Loop\n'
11
b'Start Loop\n'
11
b'Start Loop\n'
11
b'Start Loop\n'