Wio TerminalのI2Sで音を鳴らす その2

2025年10月23日木曜日

マイコン工作

https://notyet-maker.blogspot.com/2025/10/wio-terminali2s-1.html

の続き。


https://notyet-maker.blogspot.com/2025/06/2.html

で、Teensyを使う選択肢を外していたが、Seeed_Arduino_Audioは、TeensyをWio Terminal用に移植したものらしい。


MX MIDI Guitarのコードと比較すると、

---

1. 実装難易度:MX MIDI Guitarは低レベルI²S/DMA制御が必要、Teensy互換は高レベルAPIで簡単。


2. ギター音の即効性:MX MIDI Guitarは専用コードですぐギター音、Teensy互換は自作合成が必要。


3. 拡張性:MX MIDI Guitarはギター特化、Teensy互換は多様な音や効果に応用可能。

---

ということなので、結果オーライか???



このまま、Arduino IDEを使い続けるつもりだったが、GPT-5-Codexの性能が良いということで、トライすることにした。


VScodeのインストールは、↓の記事を参考にさせてもらった。

https://qiita.com/mikuroa111/items/a43c45460d89a0b26d71


さらに、Codexを有効に。



日本語パックも入れておく。



↓の手順で、Arduino環境を構築した。


---

手順詳細

① ACE拡張の導入

VSCode を開く
拡張機能(サイドバー左の四角アイコン)を開く

検索欄に Arduino Community Edition と入力
Publisher: vscode-arduino-community を選び「インストール」

② arduino-cli の導入と設定

ターミナルを開く
cd ~/bin

wget https://downloads.arduino.cc/arduino-cli/arduino-cli_latest_Linux_64bit.tar.gz

tar -xzf arduino-cli_latest_Linux_64bit.tar.gz


バージョン確認
./arduino-cli version


初期設定
./arduino-cli config init


ボードパッケージを登録
./arduino-cli core update-index

./arduino-cli core install Seeeduino:samd


③ Wio Terminal 用ライブラリを追加

arduino-cli lib install "Seeed Arduino Audio"

arduino-cli lib install "Seeed Arduino SFUD"

arduino-cli lib install "Seeed Arduino FS"


④ スケッチのビルド(例:WioAudioTest)

arduino-cli compile --fqbn Seeeduino:samd:seeed_wio_terminal ~/Arduino/WioAudioTest


⑤ ISOファイルの作成(任意)

これは Arduinoプロジェクト全体を配布・バックアップ用にISO化する手順。

cd ~/Arduino

genisoimage -o WioAudioTest.iso WioAudioTest/


結果:
→ ~/Arduino/WioAudioTest.iso が生成され、他のPCでも再現可能な形で保存される。

---


早速、Codexの力を借りて、ビープ音を鳴らすところまで確認できた。

---

#include <Audio.h>

#include <Wire.h>


AudioSynthWaveformSine sine1;

AudioOutputI2S        i2s1;

AudioConnection       patchCordL(sine1, 0, i2s1, 0);

AudioConnection       patchCordR(sine1, 0, i2s1, 1);

AudioControlWM8960    codec;


void setup() {

 Wire.begin();

 AudioMemory(8);


 codec.enable();

 codec.volume(0.8f);


 sine1.frequency(440);

 sine1.amplitude(0.6f);

 delay(1000);

 sine1.amplitude(0.0f);

}


void loop() {}

---


今回は、ここまで。


このブログを検索

ブログ アーカイブ

幼少期からの浅い呼吸の改善

https://notyet-maker.blogspot.com/2025/11/14.html に関連。 ChatGPTから、横隔膜の動きを良くするなら胸部の弛緩だ、との回答があり、胸部に触れてから寝てみたら、胸あたりが重くなってHRVが急激に下がってしまった。 おそらく、...

QooQ