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のシリアルポートは、コンソールとして使用する設定になっているため、これを次の手順で止めます
- raspi-configを起動「$ sudo raspi-config」します。
- 5 Interfacing Options –>[Select]
- P6 Serial –> [Select]
- “Would you like a login shell to be accessible over serial?” –> [No]
- “Would you like the serial port hardware to be enabled” –> [Yes]
- The serial Login shell is disabled
The serial interface is enabled —> [OK] —> [Finish] - “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'