2021年12月13日月曜日

M5Stack 空のEEPROM.get

 M5Stack 何も入っていない場所をEEPROM.getすると「-1」が返ってくる。

2021年12月2日木曜日

[M5Stack Core2 x UIFlow] microSDで改行と追記

改行は「\n」
追記はmodeで「a」

[M5Stack Core2 x UIFlow] microSDに書き込み出来ない

色々試してみたが、microSDを差し込んだ状態で電源を入れ直してから「RUN」を選ぶとちゃんと書き込まれた。

microSDを取り出して書き込まれたかPCでチェックする度に電源入れ直しは面倒くさい。
何か良い方法ないかな〜〜



2021年9月2日木曜日

Arduino 'XXX' was not declared in this scope

'XXX' was not declared in this scope

 

'XXX'が関数名であれば、その関数を実行した位置では、まだXXXは定義されていない。

XXX関数を実行箇所より前に持ってくる。
タブで管理しているなら左に来るようにタブ名に数値を入れるなどして調整する。
※タブ位置はすぐには反映されない。ファイルを開き直す必要あり。

2021年9月1日水曜日

Arduinoブロックプログラミング BlocklyDuino Editor[1.7.0]を使ってみて

BlocklyDuino Editor ブロック画面
BlocklyDuino Editor Arduino画面



いつもはArduino IDEで書いているが、
中規模くらいの内容なのでブロックプログラミングで書いてみようと思い
BlocklyDuino Editorを試した。

ver1.7.0で気になった点
  1. アナログ入力(analogRead)デジタル入力(digitalRead)で変数を指定出来ない。
    配列にPIN番号を入れて使う事が出来ない。
    ※デジタル出力(digitalWrite)は変数を指定出来る。
  2.  macだからか設定でOKボタンを押すと落ちる。
  3. 繰り返しの設定(i from 値1 to 値2)で値に変数を使用すると処理が止まる。(操作はできるが、保存もされない)
    繰り返しを削除するか値を変数ではなく数値を入れると動き出す。

  • 配列にPIN番号を入れない
  • Arduino UNOを使用する(ピンはArduino UNOの番号までしか選択出来ないが、保存されるxmlを書き換えればArduino megaでも使えなくもない)
  • 簡単な内容
であればBlocklyDuino Editor[1.7.0]で書くのもありかも。

自分の使い方が悪いだけかなぁ。。
残念ながら今回はBlocklyDuino Editorで書くことは出来なそうですが
いつかブロックプログラミングで書いてみたいのでアップデートが楽しみです。

2021年8月11日水曜日

SC-03 コイルAC100 消費電流

調べてみても見当たらなかったのでテスターで測ってみました。

AC-03 コイルAC100の消費電流:92mA
※参考程度に。

2021年6月12日土曜日

RaspberryPi タッチパネル(UCTRONICS-U6104)の回転

 設定>Screen Configurationから回転させてみたが、画面だけ回転してタッチ位置がずれていた。
/boot/config.txt
/boot/cmdline.txt
に色々書いて試してみてもダメ。

少し古い記事でしたが、@pirozさんの
ラズベリーパイを縦置きのタッチスクリーンで使用する設定

の通り、autostartでタッチデバイスの回転を行い無事動作しました。

UCTRONICS-U6104は
xinput --list
で調べたら
'wch.cn USB2IIC_CTP_CONTROL'
と表示されていました。

2021年6月9日水曜日

Arduino エラー "scalar object 'xxxx' requires one element in initializer"

宣言時配列に[]を付け忘れると出る。

誤)
int secondsList = {0,0};

正)
int secondsList[] = {0,0};
または
int secondsList[2] = {0,0};

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」を追加

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

2021年4月3日土曜日

Raspberry Pi にRTC(DS3231)

 Raspberry Pi 4 Model B にRTC(DS3231)を繋ぐ。

今回はスイッチサイエンスで購入した
DS3231搭載 高精度RTCモジュール
を使用した。

設定>RaspberryPiの設定>インターフェイス
でi2cを有効にする。

RTCとラズパイを繋ぐ
Vin→3.3V
GND→GND
SCL→SCL(GPIO 3)
SDA→SDA(GPIO 2)

コマンドプロンプトで
i2cdetect -y 1
を実行してi2cアドレスを確認
(0x68だった。)

コマンドプロンプトで
echo ds3231 0x68 | sudo tee /sys/class/i2c-adapter/i2c-1/new_device
を実行し
sudo hwclock -r
で時間が取得出来た。

RTCにラズパイの時間を設定する場合は
sudo hwclock -w

RTCの時間をラズパイに設定する場合は
sudo hwclock -s

インターネット環境がない場所で使う時は起動時にこれを実行するようにする。
echo ds3231 0x68 | sudo tee /sys/class/i2c-adapter/i2c-1/new_device
sleep 1
sudo hwclock -s

参考にしたサイト
Raspberry Pi 3の GPIOに I2C通信方式の RTC リアルタイムクロックを接続する方法
Raspberry PiにRTC(DS1307)を接続
「Raspberry Pi」(ラズベリーパイ)Linuxコマンド集・基本編
いつもありがとうございます。

時間を手動で設定するには
sudo date --set='yyyy/mm/dd hh:mm:ss'

ModuleNotFoundError:No module named 'board'

Raspberry Pi 4 Model B(Python3.7.3)でboardモジュールのインストールにつまずいたのでメモ。

import board
を含むプログラムを実行してみたらエラー

あ、モジュールがインストールされていないんだなとコマンドプロンプトで
sudo apt-get install board
「パッケージboardが見つかりません」
と出たのでPipでのインストールに変更

まずはPipをインストール
sudo apt-get install python-pip

pipでboardをインストール
pip install board

しかしプログラムを実行したら再度エラー
ModuleNotFoundError:No module named 'board'

ちゃんとインストールされなかったのかな?と思い
pip install board
を再度実行すると
python2.7/site-packages
の文字が。。
python3用ではなかったみたい。

pip3 install board
を実行したらエラー出なくなりました。

----------

後日adafruitのモジュールを使ってみたら
インストールしたboardじゃなくadafruit-blinkaをインストールしなければならないみたい。

pip3 uninstall board

pip3 install adafruit-blinka_

これでダメなら強制再インストール
私はこれで無事動きました。

sudo python3 -m pip install --force-reinstall adafruit-blinka