いろいろ自分用のメモ
sudo apt install -y python3-dev python3-pip
sudo pip3 install --upgrade pip3
sudo pip3 install pigpio
現在の大きな問題は、GPSとRaspberry Piの接続問題
下の内容をまとめると、以下をrc.localに仕込むのが良い
#!/bin/bash
sudo systemctl stop serial-getty@ttyS0.service
sudo chmod 666 /dev/ttyAMA0
sudo chmod 666 /dev/ttyS0
sudo chmod 666 /dev/ttyUSB0
stty -F /dev/serial0 115200
stty -F /dev/ttyAMA0 115200
stty -F /dev/ttyUSB0 115200
sudo chmod 666 /dev/ttyAMA0 /dev/ttyS0 /dev/ttyUSB0
1. 手順
1.1 新しいSDカードをつくる起動用のSDカード作ります
1.2 raspi-configでserial設定
5 Interfaceing Options > P6 Serial >
Would you like a login shell to be accessible over serial? Yes & No
基本は、Noだと思うけど、YESで説明しているブログもある
Would you like the serial port hardware to be enabled?
間違いなくYes
The serial login shell is disabled
The serial interface is enabled
<Ok>
1.3 /boot/cmdline.txt
結局、次の文字列を削除する。これにより tty1を使う設定をするconsole=serial0,115200
1.4 /boot/config.txt
enable_uart1 // raspi-config 設定値 1: serial enable 0: disabledtoverlay=pi3-disable-bt // bluetooth 無効
reboot後
/dev/ttyserial0, /dev/ttyAMA0 が、GPIO接続時の対象
/dev/ttyUSB0 これはシリアル通信用のUSB接続した時
例: TTL-232R-3V3
sudo systemctl stop serial-getty@ttyS0.service
1.5 chmod 再起動後は大事
sudo chmod 666 /dev/ttyAMA0 /dev/ttyS0 /dev/ttyUSB0この3つは、crw-rw---- なので、
/etc/rc.local に記述した方が良いです。
lrwxrwxrwx 1 root root 7 Mar 23 13:53 serial0 -> ttyAMA0
lrwxrwxrwx 1 root root 5 Mar 23 13:53 serial1 -> ttyS0
crw-rw---- 1 root dialout 204, 64 Mar 23 13:53 ttyAMA0
crw-rw---- 1 root dialout 4, 64 Mar 23 13:53 ttyS0
/dev/ttyUSB0は、使用する時のみ
一番簡単な確認方法は、、、cat/dev/ttyAMA0
1.6 python3
python3の開発環境を作り、pip3をインストールsudo apt install -y python3-dev python3-pip
??? sudo pip3 install --upgrade pip3
pip3 install pyserial
python の serial モジュールは手動でinstall してはいけない
もしinstallしてしまったら、、、 pip3 uninstall serial
sudo pip3 uninstall serial
下のスクリプトでテスト、、、でもうまくいかない
9600のGPSなら上手くいっている
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import serial
s = serial.Serial('/dev/ttyAMA0', 115200, timeout=1)
for i in range(10):
print(s.readline())
#include <stdio.h>
int main(int argc, char *argv[]) {
unsigned char szBuf[256];
int i = 0;
FILE *infl;
if ((infl = fopen("/dev/ttyAMA0", "rb")) == NULL) {
printf("file open error\n");
return -1;
}
printf("success file open\n");
while(fread(szBuf, sizeof( unsigned char ), 256, infl) != 0) {
printf("%5d: %s.\n", i++, szBuf);
}
return 0;
}
1.7 通信ソフトでの確認
通信ソフトでどうなんだろう?sudo apt -y install cu minicom
cu -s 115200 -l /dev/ttyAMA0
終わる時は、~.
ダメだー、、、、
sudo systemctl stop serial-getty@ttyS0.service
ダメだ―――
あとは、、、、
cu -s 115200 -l /dev/serial0
Connected.
ァァァァmォw褄pVY}ァァァァァァァ・_q[euァァeァァeァァeォ褄キeYqァY}ァァァァォ褄キeYqァY}ァァァァァ
ァァァァmォs褄・e?Y}ァァァァァァァァァ」ァァeァァeァァォ褄キ_q[euァァeァァeァァeォ褄キeYqァY}ァァァァ
ァァァァmォu褄クVY}ァァァァァァァァァ」ァァeァァeァァォ褄キ_q[euァァeァァeァァeォ褄キeYqァY}ァァァァ
ァァァァmォw褄p+e?Y}ァァァァァァァァァ」ァァeァァeァァォ褄キ_q[euァァeァァeァァeォ褄キeYqァY}ァァァァ
ァァァァmォw褄pVY}ァァァァァァァァァ」ァァeァァeァァォ褄キ_q[euァァeァァeァァeォ褄キeYqァY}ァァァァ
ァァァァmォu褄・e?Y}ァァァァァァァ」ァァeァァeァァォ褄キ_q[euァァeァァeァァeォ褄キeYqァY}ァァァァ
ァァァァmォw褄・e?Y}ァァァァァァァ」ァァeァァeァァォs褄キ_q[euァァeァァeァァeォ褄キeYqァY}ァァァァ
ァァァァmォu褄クVY}ァァァァァァァァァァァ」ァァeァァeァァォ褄キ_q[euァァeァァeァァeォ褄キeYqァY}ァァァァァ
TTL-232R-3V3で、USB接続時
cu -s 115200 -l /dev/ttyUSB0
Connected.
[VォョZォ[VォョZォe;睆mヨ・[ョナ・・煜v澵レレレv煜v・咩揵ヨレZヨレvmュルVo・m?;+;+;+ュ驎V・eYqァァァァァァァmァァァァ[VォョZォe;睆mヨ・カヨv-カv-煜v煜vュ・・レv・v-v-v-vュ・カv-カv-v-煜[VォョZォe;郞vュ・レ[V[Vォョ[ョナ・ヨ6煜v澵レレレv煜v・咩揵ヨレZヨレvmュYVo・m?;+;+;+ュ驎V・eYqァ[VォョZォe;郞vュ・[V[Vォ[VォョZォe;郞v[ョナ・カ6煜v澵レレレv煜v・咩揵ヨレZヨレvmュルVo・m?;+;+;+ュ驎V・eYqァY}ァォョZォe;郞vュ・レ[Vォ[VォョZォe;郞[VォョZォe;郞v[ョナ
~.
Disconnected.
minicom -b 115200 -D /dev/ttyUSB0 -8
1.8 その他
stty -F /dev/ttyUSB0 115200echo "Hello" > /dev/ttyUSB0
stty -a -F /dev/ttyUSB0 | grep speed
speed 115200 baud; rows 0; columns 0; line = 0;
minicom -s -c on
minicom -s 起動後パラメータ設定できる
cat /dev/ttyUSB0
Peace !!
参考
Linuxにおけるシリアルポートのトラブルシューティング
Raspberry Pi3のPythonでGPSを扱う
Pythonでシリアル通信
minicomの使い方
Raspberry Piに「みちびき」対応GPSモジュールを接続
Raspberry Pi Zero WH で「みちびき」対応 GPS を使う
------------------------------------------------------------------------------------
sudo blkid
/dev/mmcblk0p1: LABEL="boot" UUID="9304-D9FD" TYPE="vfat" PARTUUID="0527a029-01"
/dev/mmcblk0p2: LABEL="rootfs" UUID="29075e46-f0d4-44e2-a9e7-55ac02d6e6cc" TYPE="ext4" PARTUUID="0527a029-02"
/dev/mmcblk0: PTUUID="0527a029" PTTYPE="dos"
Linuxにおけるシリアルポートのトラブルシューティング
Raspberry Pi3のPythonでGPSを扱う
Pythonでシリアル通信
minicomの使い方
Raspberry Piに「みちびき」対応GPSモジュールを接続
Raspberry Pi Zero WH で「みちびき」対応 GPS を使う
------------------------------------------------------------------------------------
sudo blkid
/dev/mmcblk0p1: LABEL="boot" UUID="9304-D9FD" TYPE="vfat" PARTUUID="0527a029-01"
/dev/mmcblk0p2: LABEL="rootfs" UUID="29075e46-f0d4-44e2-a9e7-55ac02d6e6cc" TYPE="ext4" PARTUUID="0527a029-02"
/dev/mmcblk0: PTUUID="0527a029" PTTYPE="dos"
0 件のコメント:
コメントを投稿