海廢 × 聲音 × 電子學

把海邊的廢棄物
變成能進Mac DAW 的樂器

這是一本從零開始的電子學入門。我們不背公式,而是從「一個訊號怎麼從敲擊、撥弦、甚至一片葉子,最後變成電腦裡的一個音符」這條路徑,一步步認識沿途的每個電子元件——它為什麼存在、解決什麼問題,以及它對波形做了什麼。

壓電片 運算放大器 齊納二極體 ADC 取樣 555 振盪器 MIDI · 音訊
00
Introduction

一條貫穿全書的訊號鏈

在動手做任何樂器之前,先記住一個觀念:無論是敲、撥、還是量植物,所有電子樂器走的都是同一條路。差別只在「最左邊用什麼感測器」跟「中間要不要先放大」。把這條鏈記熟,後面每一章都只是在替換其中一塊。

① 感測器 物理 → 電 ② 訊號調理 保護 · 放大 ③ 微控制器 類比 → 數位 ④ Mac DAW 錄音 · 合成 壓電片 / 拾音器 / 電極 電阻 · 二極體 · 運放 Teensy / ESP32 USB-MIDI / 音訊
圖 0.1四段式訊號鏈。本書第 2、3、4 章分別替換最左邊的「感測器」,但 ②③④ 的原理一路共用。
學習地圖

先讀第 1 章打好「電」的直覺,再讀第 2 章——它把訊號鏈每一段都走過一次,是全書的骨幹。第 3、4 章是延伸,讀起來會輕鬆很多。

01
Chapter One

電的三個基本量

要看懂後面所有電路,只需要先建立三個量的直覺:電壓電流電阻。用水管比喻最快。

1.1水管比喻

電壓 (V,伏特) 是水壓——推動水流的力量。電流 (I,安培) 是水流量——單位時間流過多少水。電阻 (R,歐姆) 是水管的粗細——管子越細越難流。三者的關係就是整個電子學的第一條定律:

V  =  I × R 電壓 = 電流 × 電阻 (歐姆定律)

這條式子之後會一直出現。例如後面要「把高電壓降低保護晶片」,靠的就是用電阻去「擋掉」一部分電壓——因為電流流過電阻時,電壓會被消耗掉。

電流 I(水流量) 電阻 R(變窄處) 高壓側 低壓側 水流被擋 → 壓降
圖 1.1水管比喻:水壓(電壓)推動水流(電流),管子變窄處(電阻)會造成「壓降」。這正是降壓與保護電路的核心。

1.2類比與數位:兩種看待訊號的方式

樂器產生的是類比訊號——電壓隨時間連續變化,像聲波一樣平滑。但電腦只認得數位訊號——一格一格的數字。微控制器的工作,就是把連續的類比電壓「切成一格一格的數字」,這個動作叫做取樣 (sampling),第 2 章會細談。

類比:連續、平滑
數位:一格一格的階梯
圖 1.2同一段聲音,左邊是真實世界的連續電壓,右邊是電腦看到的離散階梯。把左變成右,就是微控制器的核心任務。
02
Chapter Two

訊號如何進入 DAW

在挑感測器之前,要先決定「訊號用什麼方式進電腦」,因為這個決定會影響你後面所有的零件選擇。基本上有三條路。

2.1三條進 DAW 的路

方式送的是什麼適合需要
USB-MIDI音符、力度等「指令」打擊、觸發合成器能當 USB 裝置的微控制器
音訊 (Audio)原始的聲音波形想保留海廢本身音色音訊介面
OSC / 藍牙網路訊息無線、感測器多WiFi / BLE 模組
為什麼這很重要

MIDI 送的是「請彈中央 Do、力度 80」這種指令,資料量小、乾淨,但聲音是電腦合成的。音訊送的是真實波形,能保留鐵罐、貝殼的真實質感,但需要音訊介面而且要處理雜訊。打擊和植物電通常走 MIDI;想要海廢「原音」就走音訊。

2.2微控制器:訊號鏈的大腦

微控制器 (microcontroller) 是一顆小電腦,負責讀感測器電壓、做運算、再輸出 MIDI 或音訊。做樂器最推薦 Teensy 4.x:它插上 Mac 就直接被認成 USB-MIDI / USB 音訊裝置,免裝驅動;而且內建的 Audio Library 已經幫你寫好了 FFT、包絡偵測、合成器模組。你熟悉的 ESP32 也能用,但要走 USB-MIDI 得選 ESP32-S3,否則就改走藍牙 BLE-MIDI 或 WiFi OSC。

2.3取樣:把連續變成數字

微控制器靠內建的 ADC(類比數位轉換器) 來「取樣」——每隔固定一小段時間,量一次當下的電壓並記成數字。取樣有兩個關鍵:多快量一次(取樣率)、量得多細(解析度)。

時間 → 每個紅點=一次取樣 連續 階梯=數位近似
圖 2.1綠線是真實的連續訊號,紅點是 ADC 在固定間隔抓下的取樣值,藍色階梯則是電腦最後存下的數位版本。取樣越密、階梯越細,就越接近原訊號。
奈奎斯特定律

取樣率至少要是訊號最高頻率的兩倍,才不會失真。聲音最高約 20 kHz,所以音訊標準才用 44.1 kHz。做樂器時這提醒你:打擊那種又快又尖的訊號,ADC 要夠快才抓得到。

03
Chapter Three

打擊樂器・壓電片

這一章是全書的骨幹。我們拿海邊的鐵罐當鼓,把一片壓電片黏在背後當感測器,然後走完整條訊號鏈——你會在這裡第一次碰到「保護電路」與「箝位」,也就是你最想搞懂的那個波形變化。

3.1壓電效應:敲擊為什麼會產生電

壓電片裡是一片壓電陶瓷。這種材料有個神奇特性:當它被擠壓或彎曲時,內部會瞬間產生電壓,這叫壓電效應。所以你一敲鐵罐,鐵罐震動 → 壓電片被反覆彎折 → 它就吐出一串電壓訊號。我們要做的,就是把這串電壓讀進微控制器。

為什麼選壓電片

它便宜、超薄、可以直接貼在任何海廢表面,而且不需要外接電源就能發電(它自己就是發電機)。同一片零件還能反過來當「接觸式麥克風」,第 3 章撥弦會再用到。

3.2問題來了:危險的電壓尖波

壓電片有個麻煩:你用力一敲,它會在極短時間內噴出非常高的電壓尖波——輕敲幾伏特,重敲可以衝到 40 伏特以上。而微控制器的輸入腳通常只能承受 3.3V5V,超過就會把晶片燒壞。下圖就是壓電片原始輸出的樣子。

晶片上限 ~5V ↑ +40V 重敲 +18V 輕敲 時間 → 每次敲擊:一個尖波 + 逐漸衰減的餘震 高壓
圖 3.1壓電片原始輸出:每次敲擊產生一個極尖、極高的電壓尖波,後面跟著衰減的「餘震」。紅色尖峰遠遠超過微控制器能承受的藍色虛線上限——直接接上去會燒晶片。

3.3第一道防線:分壓電阻

第一步是用兩顆電阻組成分壓器 (voltage divider),把整體電壓按比例縮小。回想歐姆定律——電流流過串聯的兩顆電阻時,電壓會依電阻比例分配。我們從中間「抽」出一個比較低的電壓給晶片:

壓電輸入 (高) R1 → 給晶片 Vout (低) R2 接地 GND
Vout = Vin × R2R1 + R2

調整 R1、R2 的比例,就能把輸入電壓縮到安全範圍。例如 R1、R2 相等時,輸出剛好是輸入的一半。

圖 3.2分壓器:兩顆串聯電阻把高電壓按比例分掉,從中間抽出較低的 Vout。但分壓對「瞬間尖波」反應不夠快,所以還需要第二道防線。

3.4核心:箝位電路與它對波形的改變

分壓能縮小一般訊號,但壓電那種「瞬間爆衝」的尖波還是可能穿過去。這時需要箝位 (clamping)——它像一道電壓天花板:訊號低於上限時讓它自由通過,一旦超過上限就強制「壓平」在安全值。負責這件事的零件是齊納二極體 (Zener diode)

齊納二極體為什麼能當天花板?

一般二極體只讓電流單向通過。齊納二極體特別的地方在於:當反向電壓超過它的「崩潰電壓 (Vz)」時,它會突然導通並把電壓鎖死在 Vz。換句話說,選一顆 Vz = 4.7V 的齊納,任何超過 4.7V 的部分都會被它「吃掉」並導到地。看它的特性曲線最清楚:

電壓 V 電流 I 正向導通 −Vz 崩潰電壓 超過 Vz 後 電壓被鎖死
圖 3.3齊納二極體的電壓—電流特性。反向電壓一旦達到崩潰電壓 Vz(藍虛線),曲線幾乎垂直——代表電壓被牢牢鎖在 Vz,再大的電流也無法把電壓推更高。這就是「天花板」的物理來源。

箝位前 vs 箝位後:你最想看的對比

把齊納二極體(加上一顆 1MΩ 洩流電阻)並聯在訊號與地之間後,同一個敲擊尖波會發生這樣的變化:

箝位前 危險區 +40V 尖峰衝破上限
箝位後 Vz 上限 安全區 削平 = Vz 頂端被壓平在安全值
圖 3.4 ★箝位的核心效果。左圖尖峰衝進危險區、會燒晶片;接上齊納後(右圖),超過 Vz 的部分被「削平」成一條水平頂——尖波被切掉頭,整段訊號被關進安全區內。注意波形的「形狀」與「時機」都保留了,只有過高的振幅被砍掉,所以力度資訊仍然讀得到。
那顆 1MΩ 電阻在做什麼

它叫洩流電阻 (bleeder),並聯在壓電片兩端。壓電片本質上像個小電容,敲完會殘留電荷;1MΩ 提供一條路讓殘電慢慢放掉,讓訊號回到 0,下一次敲擊才量得準。沒有它,基線會亂飄。

3.4.1深入:洩流電阻到底怎麼洩流?

要懂洩流,先要知道一件事:壓電片本質上就是一顆電容。它的結構是兩片金屬電極夾著一層陶瓷——這正是電容器的構造。敲擊時陶瓷產生的電荷,就被「存」進了這顆電容裡。

+ + + + + − − − − − 陶瓷 黃銅電極 黃銅電極 一顆電容
圖 3.5壓電片的物理結構就是一顆電容:兩片黃銅電極夾住陶瓷。理解這一點,才懂為什麼一定要洩流。

電容的麻煩在於它會「記住」電荷。你敲一下,電荷灌進去;敲完之後這些電荷沒有路可以離開,電壓便卡在高點不歸零。下一擊疊上來,基線(baseline)越墊越高,ADC 讀到的值就整個亂掉。

洩流電阻的工作,就是在電容兩端並聯一條「會漏的縫」:殘留電荷順著這顆電阻慢慢流向地,電壓沿著一條指數曲線衰減回 0。這個「慢慢流光」的過程,就是洩流。

3.4.2為什麼偏偏是 1MΩ?

放電的快慢,由一個叫 RC 時間常數 的東西決定。每經過一個 τ,電壓會掉到原本的 37%;約 5 個 τ 之後幾乎完全歸零:

τ  =  R × C 時間常數 = 電阻 × 電容

壓電片的電容大約 10–20 nF。搭配 1MΩ:

τ  =  1 MΩ × 15 nF  ≈  15 ms

意思是敲完約 15 毫秒電壓掉到 37%、約 75 毫秒(5τ)幾乎歸零——這剛好短於兩次鼓擊之間的間隔,所以每一擊都能從乾淨的基線重新開始。下圖把太小、剛好、太大三種電阻疊在一起比較:

37%(1τ) 下一次敲擊 10kΩ 太快 1MΩ 剛好 10MΩ 太慢 峰值 0V 時間 → 同一次敲擊後,電壓如何衰減回 0
圖 3.6同一個敲擊後的放電曲線。10kΩ(紅)幾乎瞬間漏光,連訊號本身都吃掉;10MΩ(藍)放得太慢,下一擊來時基線還沒回到 0;只有 1MΩ(綠)剛好在數十毫秒內歸零。
兩個極端為什麼不行

太小(如 10kΩ):τ 只有約 0.15 ms,電荷瞬間就漏光——連敲擊本身的訊號都被吃掉,峰值小到測不準,等於把訊號短路掉了。

太大(如 10MΩ):τ 長達約 150 ms,敲快一點基線還沒歸零下一擊就來了;而且高阻抗的節點像天線,容易拾到雜訊與漂移。

1MΩ 同時滿足兩端:大到不會把微弱訊號吸走(高輸入阻抗、保留訊號),又小到能在數十毫秒內把殘電放完。這就是它的甜蜜點。

3.5從波形到音符:峰值偵測與力度

訊號安全進晶片後,程式要做兩件事。第一是峰值偵測:抓出這個尖波的最高點,峰值越高代表敲得越用力,這個高度直接對應 MIDI 的力度 (velocity)——所以你輕敲小聲、重敲大聲。第二是去彈跳 (debounce)

觸發門檻 峰值 → 力度 鎖定窗(忽略餘震) 餘震也會超過門檻,但在鎖定窗內一律忽略,才不會一敲變很多下
圖 3.7程式抓到峰值後換算成力度送出一個音符;接著開一段「鎖定窗」,把後面的衰減餘震全部忽略——這就是去彈跳,避免一次敲擊被誤判成連續好幾下。

3.6接線:壓電觸發電路

把前面所有保護元件組起來,就是這張經典的「壓電觸發」電路。核心是一個節點(我們叫它 A 點),它同時接三樣東西:壓電片、洩流/箝位元件、以及通往 Teensy 的線。先看用標準符號畫的電路圖:

A 點(訊號節點) 接地 GND PZ 壓電片 1MΩ 洩流 5.1V 齊納 1kΩ 限流 Teensy A0 GND 讀 A0 電壓 → 轉 MIDI
圖 3.8壓電觸發電路圖。A 點同時連著壓電片正極、1MΩ 洩流電阻、5.1V 齊納二極體(後兩者都接地),再經一顆 1kΩ 限流電阻送進 Teensy 的 A0 腳。那顆 1kΩ 是最後一道保險:萬一仍有殘餘尖波,它會限制衝進晶片的電流。

同樣的電路插在麵包板上會長這樣。麵包板讓你免焊接就能反覆嘗試,是原型階段必備:

紅線 = 訊號 / 正極 黑線 = 接地 GND
GND 排(負極) A 點 壓電片 1MΩ 5.1V Z 1kΩ Teensy A0 GND
圖 3.9麵包板實體接線示意。壓電片紅線拉到 A 點、黑線拉到藍色 GND 排;A 點上插著 1MΩ 與 5.1V 齊納(另一腳都插進 GND 排),再用 1kΩ 接到 Teensy 的 A0;Teensy 的 GND 也接回 GND 排。
焊接前一定先在麵包板上量過

接好先別急著插上 Teensy。用三用電表(或先接一顆便宜的微控制器)量 A 點對地的電壓,確認最用力敲時也不超過 3.3V,再正式接上 A0。先量、再接,是保護晶片最便宜的習慣。

到這裡,你已經完整走過一遍訊號鏈:壓電片 → 分壓 + 箝位保護 → ADC 取樣 → 峰值偵測 → MIDI 音符 → DAW。後面兩章只是替換最前面那一塊。

04
Chapter Four

彈奏樂器・拾音與放大

把釣魚線、鐵絲繃在海廢框架上撥弦,你會遇到打擊沒碰過的新問題:訊號太微弱。這一章的主角是運算放大器——它負責把微弱訊號放大到能用。

4.1兩條路:保留原音,還是觸發合成器

第一條路是用壓電片當接觸式拾音器(原理同第 3 章,只是這次貼在共鳴箱上聽振動)。它收到的是真實的撥弦聲,但訊號非常微弱。第二條路是把弦做成觸控感應,撥到就觸發合成器發音——這條走 MIDI,下面 4.3 會講。

4.2運算放大器:為什麼非放大不可

拾音器吐出的訊號可能只有幾十毫伏,ADC 根本量不清楚,雜訊還會把它淹沒。運算放大器 (op-amp) 做兩件關鍵的事:把小訊號放大到足夠大;以及做阻抗緩衝——讓微弱的訊號源不會因為「被後面電路吸走電流」而垮掉。

微弱輸入(幾十 mV) 運放 增益 ×N 放大輸出(夠 ADC 讀)
圖 4.1運算放大器把幾乎看不見的微弱訊號(左)放大成飽滿、清楚的波形(右)。波形形狀不變,只是振幅被乘上一個倍數(增益)。
非反相放大的增益

最常見的接法叫「非反相放大」,只要兩顆電阻就能設定放大倍數:增益 = 1 + (Rf / Rg)。想放大 11 倍,就讓 Rf 是 Rg 的 10 倍。常用型號像 TL072,雜訊低又便宜。

4.3電容觸控:把海廢金屬變成琴鍵

另一種做弦/鍵的方式是電容觸控。原理是:任何導體(海廢的金屬片、鋁箔)本身都有微小的「電容」,而人的手指靠近時會讓這個電容值變大。微控制器透過量測「對這個導體充電要花多久」就能偵測到手指——充電變慢,就代表被碰到了。

判定門檻 沒碰:充電快 手指靠近:電容變大、充電變慢 時間 → 量「到達門檻要多久」就能判斷有沒有被碰
圖 4.2電容觸控:沒被碰時導體充電很快(綠線),手指靠近增加了電容、使充電明顯變慢(紅線)。微控制器只要比較充電時間就能知道弦被撥了。

4.4光感:做一把光弦

還有一種有趣的玩法是用光敏電阻 (LDR) 做「光弦」:用一道光照著 LDR,手撥動時遮住光,電阻隨之變化。LDR 的特性是光越強、電阻越小,把它接成分壓器就能把「光的明暗」變成「電壓的高低」讀進晶片。

05
Chapter Five

植物電樂器

最後這章最像魔法:在一片葉子上夾兩個電極,把植物內部緩慢的電變化轉成旋律。它的挑戰是訊號極微弱又極緩慢,所以需要不同的量測手法。

5.1我們到底在量什麼

植物的葉片表面、組織含水量會隨著生理活動(水分輸送、氣孔開合)微微改變,這會反映成兩個電極之間電阻的緩慢漂移。我們量的不是「美妙的訊號」,而是這種漂移的波動,再把波動對應到音階上——所以同一株植物每次「演奏」都不一樣。

為什麼需要儀表放大器

這個訊號既微弱、阻抗又非常高(植物不是好導體)。普通電路一接上去就會把它「壓垮」。儀表放大器 (instrumentation amplifier),如 INA128,專門處理這種高阻抗微弱訊號:它輸入阻抗極高(幾乎不從植物抽電流),又能精準放大兩電極間的微小差異。

5.2經典低成本做法:555 弛張振盪器

不想用昂貴的儀表放大器,有個很聰明的老方法:用 555 計時器接成弛張振盪器,把植物本身當成電路裡的一顆電阻。它的運作是讓一顆電容反覆充放電,在 ⅓ 與 ⅔ 電源電壓之間來回,輸出一連串方波。關鍵在於:充放電的快慢由電阻決定,而那顆電阻就是植物——植物電阻一變,振盪頻率就跟著變。

⅔ Vcc ⅓ Vcc 電容充放電(鋸齒) 植物電阻↑ → 變慢 時間 → 電容在 ⅓~⅔ Vcc 間來回;植物電阻越大,來回越慢、頻率越低
圖 5.1555 弛張振盪器:電容在 ⅓ 與 ⅔ 電源電壓間反覆充放電。充放電速度由電阻(此處=植物)決定,所以植物狀態一變化,輸出頻率就跟著漂移——這份漂移就是我們的「演奏資料」。

5.3從頻率漂移到旋律

微控制器持續測量這個頻率,先做平滑把雜訊濾掉,再把頻率的高低量化(對齊)到某個音階上的音符——例如五聲音階,這樣不論植物怎麼漂移,出來的音都會好聽。最後一樣透過 USB-MIDI 送進 DAW,交給你選的音色去發聲。

07
Material Guide

海廢選材指南

不是每件海廢都適合做樂器。挑選的關鍵,在於你想要它「發聲」還是「當骨架」,以及它的材質會怎麼影響音色。

7.1先理解:材質如何決定聲音

一個物體被敲擊時的音高與音色,主要由三件事決定:剛性(硬度)質量、以及阻尼(會不會把振動吸掉)。又硬又輕的東西振得快 → 音高、明亮;又重又軟、阻尼大的東西振一下就被吸住 → 低沉、悶。下圖把常見海廢放在這張地圖上:

高音 / 明亮 低沉 阻尼低(會響) 阻尼高(吸音) 響亮・餘音長 → 適合打擊 悶・吸音 → 不適合當發聲體 金屬罐 / 桶 玻璃瓶 大貝殼 硬塑膠容器 木板 / 棧板 軟 / 發泡塑膠
圖 7.1海廢材質地圖。左上角又硬又會響的(金屬、玻璃、硬貝殼)最適合當打擊發聲體;右下角阻尼大、會把振動吸掉的軟質與發泡材,敲起來悶,不適合當發聲體(但可拿來當吸震墊或外殼)。

7.2三類樂器的選材原則

樂器類型想要的特性適合的海廢避免
打擊(發聲體)會響、餘音長、剛硬金屬罐桶、玻璃瓶、硬塑膠容器、大貝殼、浮球濕軟材、發泡塑膠(吸音)
彈奏(骨架+共鳴箱)夠硬,能撐住弦的張力木棧板、硬塑膠箱、金屬框;弦可用釣魚線、不鏽鋼絲、廢漁網線易變形的薄軟材
植物電(外殼 / 容器)防水、能盛土種植塑膠桶、玻璃罐;金屬件可順便當電極座會滲水或鏽蝕污染的容器

7.3處理與安裝:海廢的三個前置步驟

除鹽、徹底乾燥

海水的鹽會腐蝕電子元件與金屬。先用清水沖掉鹽分與沙,再徹底陰乾;金屬件可順手除鏽。潮濕會讓電路短路或生鏽。

去除危險

修掉尖銳邊緣、生鏽穿孔處,戴手套處理。有油污或異味的塑膠先洗淨,避免黏膠黏不牢。

安裝感測器

壓電片要黏在「平整、剛硬」的面上(例如罐底中央),用環氧樹脂(AB 膠)或熱熔膠固定。貼在會振動、但又不會把聲音悶掉的位置,訊號最乾淨。

導電性的小提醒

要做電容觸控(第 4 章)時,金屬海廢本身就能直接當觸點,很方便;但若金屬件是用在壓電打擊,記得讓壓電片與金屬之間隔一層絕緣(膠、膠帶),避免兩極短路。

08
Hands-On

動手做:讓海廢發出第一個音

前面把原理和接線都走過了。這一章把圖 3.8 的電路接上 Teensy、寫一段程式,讓「敲一下海廢罐 → Logic 響一聲鼓」真的發生。這是整本書的終點,也是你所有後續樂器的起點。

8.1環境準備

裝 Arduino IDE + Teensyduino

先裝 Arduino IDE,再裝 PJRC 的 Teensyduino 附加套件——它讓 IDE 認得 Teensy,也帶來 usbMIDI 這組函式。

選對板子與 USB 類型

在「工具」選單把開發板設成你的 Teensy 型號,並把 USB Type 設為 MIDI(或含 MIDI 的組合)。這一步是 Teensy 能被 Mac 直接認成 MIDI 裝置的關鍵。

接好圖 3.8 的電路

壓電片經 1MΩ 洩流、5.1V 齊納箝位、1kΩ 限流後接到 A0,Teensy 的 GND 接電路的地。先在麵包板上接、量過電壓再上電。

8.2程式碼:壓電觸發 → USB-MIDI

這段程式做四件事:讀 A0 的電壓、抓出敲擊的峰值、把峰值換算成 MIDI 力度、送出音符;並用鎖定窗忽略餘震(去彈跳)。對應的正是第 3 章每一個觀念。

// 海廢壓電鼓 → USB-MIDI(Teensy 4.x)
// 工具選單:開發板選 Teensy、USB Type 選「MIDI」

const int PIEZO_PIN  = A0;     // 壓電片(經保護電路)接 A0
const int MIDI_NOTE  = 38;     // 38 = General MIDI 軍鼓
const int MIDI_CHAN  = 10;     // 第 10 軌 = 打擊樂

const int THRESHOLD   = 60;    // 觸發門檻(依壓電片調)
const int MAX_READING = 700;   // 最用力敲時的峰值讀數
const unsigned long MASK_MS = 30;  // 鎖定窗:忽略餘震(毫秒)

unsigned long lastHit = 0;

void setup() {
  analogReadResolution(10);    // 讀值範圍 0–1023
}

void loop() {
  int v = analogRead(PIEZO_PIN);

  if (v > THRESHOLD && (millis() - lastHit) > MASK_MS) {
    // 抓峰值:5ms 內持續取樣,留住最大值
    int peak = v;
    unsigned long t0 = millis();
    while (millis() - t0 < 5) {
      int r = analogRead(PIEZO_PIN);
      if (r > peak) peak = r;
    }

    // 峰值 → MIDI 力度(1–127)
    int velocity = map(peak, THRESHOLD, MAX_READING, 1, 127);
    velocity = constrain(velocity, 1, 127);

    usbMIDI.sendNoteOn(MIDI_NOTE, velocity, MIDI_CHAN);
    usbMIDI.sendNoteOff(MIDI_NOTE, 0, MIDI_CHAN);
    usbMIDI.send_now();

    lastHit = millis();        // 開始鎖定窗
  }

  while (usbMIDI.read()) {}    // 清掉接收佇列,保持穩定
}

8.3三個要自己調的數字

  • THRESHOLD(觸發門檻):太低會被雜訊誤觸發、太高要很用力才響。先設 60,邊敲邊用序列繪圖器看 A0 讀值來微調。
  • MAX_READING(最大力度讀值):你「最用力」敲時的峰值。設準了,力度 1–127 才會對應得剛好。
  • MASK_MS(鎖定窗):忽略餘震的毫秒數。太短會一敲變連擊、太長會漏接快速連打,30ms 是不錯的起點。

8.4在 DAW 裡測試

插上 USB

Teensy 接上 Mac,它會以 MIDI 裝置出現,免裝驅動。

開一軌軟體鼓

在 Logic / Ableton 開一軌、載入鼓組音色,確認該軌接收 MIDI 輸入。程式送的是音符 38(GM 軍鼓)、第 10 軌。

敲下去

敲海廢罐,鼓聲就出來,而且輕敲小聲、重敲大聲。恭喜——你的第一件海廢電子樂器完成了。

接著往哪走

把同一套骨架複製、換不同音符就成了多顆鼓的鼓組;把感測器換成拾音器配運放(第 4 章)就成了彈奏樂器;換成 555 + 植物(第 5 章)就成了植物電樂器。訊號鏈不變,你只是一直在替換最前面那一塊。

想邊看邊練接線,我另外做了一個互動式麵包板模擬器:可以把元件一個個裝上模擬麵包板、透視它內部怎麼連通,再把訊號從海廢一路送到 DAW。

09
Appendix

元件總表・學習起手式

A.1該認識的元件一覽

元件它解決什麼問題出現章節
壓電片把敲擊/振動轉成電壓(也能當接觸麥)3 · 4
電阻分壓、洩流、限流、設定增益1 · 3 · 4
齊納二極體箝位:設一道電壓天花板保護晶片3
電容濾波、交流耦合、觸控感應、振盪計時4 · 5
運算放大器放大微弱訊號、做阻抗緩衝(TL072)4
儀表放大器放大高阻抗的極微弱訊號(INA128)5
光敏電阻 LDR把光的明暗變成電阻變化(光弦)4
555 計時器做弛張振盪器,把電阻變化變成頻率5
微控制器讀電壓、運算、輸出 MIDI/音訊(Teensy 4.x)2

A.2建議的學習順序

先把「最小可動原型」跑通

一片壓電片 + 一顆 1MΩ 電阻 + 一顆齊納 + Teensy。目標:敲一下海廢,Logic 裡響一個音。整條訊號鏈跑通比讀十章都有用。

玩力度與去彈跳

讓輕敲小聲、重敲大聲,並調鎖定窗讓一敲只響一下。這一步你會真正理解第 3 章。

加入第二種樂器

把拾音器接上運放,體會「放大」的必要性;或做電容觸控的光弦/琴鍵。

挑戰植物電

用 555 方案最便宜:把植物當電阻,聽頻率漂移變成旋律,再量化到五聲音階。

給自學者的提醒

所有圖表裡的數值(40V、Vz、增益倍數)都是示意,實作時請依你手上零件的規格書(datasheet)為準。麵包板上先試、量過電壓再焊接,是最安全的習慣。