2021年5月17日月曜日

RaspberryPi Python Error "backend terminated or disconnected"

RaspberryPiとArduinoを接続して動作テストしていたら

backend terminated or disconnected.

を出してPythonが落ちた。
Arduinoの入力を行うと良く落ちるので、Arduinoが原因かと色々したが直らない。
今まではこのような事がなかったので、今日初めて使用する

Raspberry Pi B+用T型I/O延長基板

を調べてみたら差す向きを間違えてる。。。
そんな訳でラズパイに繋いでいるRTCなんか全く違うところに差しちゃってました。
見た事ないエラーで慌てずに冷静になってから繋いでいるピンを確認しましょう。
私はこれで3時間無駄にしました。

2021年5月9日日曜日

RaspberryPi Python3 Tkinter Button 背景色が変わらない

タッチパネルでボタンをタップしたらボタンの背景色が変わるように書いたものの全然変わらない。
しかし、ボタンを押した後に他の場所をタップしてみたら色が変わる。
処理の仕方がいけないのかと思って色々調べたがそれでもダメ。

ひょっとしたらホバー時の色も設定できるのでは?と思い調べてみたらありました。
["bg"]と同じように["activebackground"]の色も設定したら無事思い通りの動きに。
ホバー時の文字色も変えたかったら["activeforeground"]も変更しましょう。

タッチパネル操作だとタップしたらカーソル位置をボタン上に置いたままになるので気がつくのに時間がかかりました。。

2021年4月26日月曜日

Mac Python3 で pip3を実行するとSyntaxError

import serialでエラーが出たのでターミナルを使いpipでインストールしようしたらエラー

pip3 install pyserial

Pythonを起動してから実行するとSyntaxErrorが出る。

Pythonを終了させてから実行したら出来た。

2021年4月21日水曜日

Python3 JSON 読み込みエラー

調べてみたら、JSONファイルに問題があり、シングルクォーテーションをダブルクォーテーションにしたら動きました。

<Python>
import json
from os import path

a = path.join(path.dirname(__file__), 'test.json')
json_open = open(a, 'r')
json_load = json.load(json_open)
print(json_load)

<エラー内容>

Traceback (most recent call last):
File "/Users/xxxx/JSON01.py", line 12, in <module>

    json_load = json.load(json_open)

File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/__init__.py", line 293, in load

    return loads(fp.read(),

File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/__init__.py", line 346, in loads

    return _default_decoder.decode(s)

File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/decoder.py", line 337, in decode

    obj, end = self.raw_decode(s, idx=_w(s, 0).end())

File "/Library/Frameworks/Python.framework/Versions/3.9/lib/python3.9/json/decoder.py", line 353, in raw_decode

    obj, end = self.scan_once(s, idx)

json.decoder.JSONDecodeError: Expecting property name enclosed in double quotes: line 2 column 3 (char 4)

2021年4月19日月曜日

Python3 Tkinter ボタンの色が変わらない。

他にも原因はあると思いますが、Macだと変わらなかった。
RaspberryPiだと問題なく動く。

button.config(bg='RoyalBlue3')

2021年4月15日木曜日

ArduinoUNO x Python3のSerial通信[read_until]が上手くいかない

Python2では

ser = serial.Serial( "/dev/ttyACM0" , 115200 , timeout = 0.01)
〜〜省略〜〜
received = ser.read_until("k")
str_value = re.sub(r'\D' , '' , received)
num = int(str_value)

で"k"区切りになっていた値を受け取れていたのにPython3では

NameError : name 'received' is not defined

と出る。。。
調べてみたら「python3では、文字列とバイト列の区別が明確になりました。」との事。
どうやらこいつの影響っぽい。

Python2
received = ser.read_until("k")

Python3
received = ser.read_until(b'\x6b')#kをbytes型で指定

これだと b'a200k' のような状態なので、これをそのままstr型の文字列に変換して
余計なものを取る。
received = str( ser.read_until(b'\x6b') )
received = received[ 2 : len(received)-1 ]

とっても後味悪い方法に。。

以下、参考にしたサイト
python3のbytes型とstr型の比較と変換方法
Python3での文字列のstr型とbytes型のまとめ
Raspberry Pi と Arduino でUSBシリアル通信(複数の値を送受信)(第二弾)


2021年4月7日水曜日

ArduinoUNOからRaspberryPiへUART通信(TXD・RXD)/dev/ttyS0

RaspberryPiとArduinoUNOのシリアル通信で
USBシリアル通信時 /dev/ttyACM0で問題なく通信できたが
UART通信時 /dev/ttyS0にしても通信出来てる気配がない。 

 調べてみたら以下の作業が必要との事
・/boot/cmdline.txtの「console=serial0,115200」を削除 
・/boot/config.txtに「enable_uart=1」を追加

こちらに詳しく書いてあります。