isr interrupt service routineにはハードウエア(GPIO,TouchSensor)とソフトウエア(WDT、タイマー)の4種あり
ESP32 GPIO割込みテスト - JH7UBCブログ (goo.ne.jp)
ESP32の静電容量タッチインターフェースを使ってLチカ - Qiita
WatchdogTimer (fc2.com) はバグあり、 ARDUINO_ISR_ATTRはIRAM_ATTRに!
(Arduino-ESP32 WatchDogTimer - Qiitaを参考に)
タイマー割り込みはバイブルのとおり
---------------------------------------------------------
atp3011:: esp32でも動いたぞ!Nanoでも動いた!
esp8266はだめ。ラズピコ、シャオピコもだめ。ラズパイは動くらしいがそのまま音でる!
Unocloneでは単三x3の補充が正解だった。単三x4はだめ!日本語LSIが壊れる!
#include <SoftwareSerial.h>
SoftwareSerial softSerial(2,4); //RX, TX
void setup() {
softSerial.begin(9600);
softSerial.print("?");
}
void loop() {
softSerial.print("ie'----i\r");
delay(2000);
}
----------------------------------------------------------
ESP32とBluetoothSerialで文字列を送受信する - Qiitaで手軽にできた
つぎにdrv8835と連携してみる バイブルにあったarduino bluetooth controllerでも
操縦できた(bluetooth serial terminalはもちろんOKだった)
--------------------------isd 1820 recording module-----------------------
まず、電池 単三x3 で、Recで10秒録音して
ISD1820 レコーディングモジュールの使用方法 - 電子工作入門 - 基礎からの IoT 入門 (keicode.com) を参考にして、PLをHighにしてdelayかけてLowにすると再生できた
動作電圧も5v直接でOKだった(分圧必要と書いてあるが、Amazon商品で3~5Vだった)
ーーーーーーーーーdfplayer miniーーーーーーーーーーーーーーーーーー
小型のMP3プレーヤーモジュールDFPLayerの使い方 - hrendoh's tech memo
アルディーノ系の解説、未体験状態!
【Raspberry Pi Pico】UART通信でDFPlayerを制御する – マイコン技術Navi (ekit-tech.com)
mp3/0001.mp3と命名しないと成功しなかった!ラズピコは3vから取ること!
xiao rp2040は5vからとること!
ーーーーーーラズピコの場合ーーーーーーーーーーーーーーーーーーー
from machine import UART,Pin
uart=UART(1,baudrate=9600,tx=
sdata=bytearray([0x7E,0xFF,
uart.write(sdata)
xiao rp2040は以下のようにUARTを変更して成功
# ハードウェア関連のライブラリを読み
from machine import Pin,UART
import utime
# UART初期設定(UART番号,クロックレート,TXピン:GP4/6Pin,RXピン:GP5/7Pin)
# uart = UART(1,baudrate=9600,tx = Pin(4),rx = Pin(5)) # for pico
uart = UART(0,baudrate=9600,tx = Pin(0),rx = Pin(1)) # for xiao
# シリアルデータの作成(一曲だけを再生)
#sdata = bytearray([0x7E,0xFF,0x06,0x01,0x00,0x00,0x00,0xEF]) # 01::next command
# 曲を指定して再生
# コマンド:0x03(ダイレクト再生コマンド)
# 下位ビット:0x02(曲の番号を指定)
sdata = bytearray([0x7E,0xFF,0x06,0x03,0x00,0x00,0x02,0xEF])
# シリアルデータの送信
uart.write(sdata)
utime.sleep(3)
# command : 0x0E is pause
sdata = bytearray([0x7E,0xFF,0x06,0x0E,0x00,0x00,0x00,0xEF])
uart.write(sdata)
utime.sleep(2)
# command : 0xD is playback
sdata = bytearray([0x7E,0xFF,0x06,0x0D,0x00,0x00,0x00,0xEF])
uart.write(sdata)
utime.sleep(3)
# command : 0x0A is standby
sdata = bytearray([0x7E,0xFF,0x06,0x0A,0x00,0x00,0x00,0xEF])
uart.write(sdata)