把海邊的廢棄物
變成能進Mac DAW 的樂器
這是一本從零開始的電子學入門。我們不背公式,而是從「一個訊號怎麼從敲擊、撥弦、甚至一片葉子,最後變成電腦裡的一個音符」這條路徑,一步步認識沿途的每個電子元件——它為什麼存在、解決什麼問題,以及它對波形做了什麼。
一條貫穿全書的訊號鏈
在動手做任何樂器之前,先記住一個觀念:無論是敲、撥、還是量植物,所有電子樂器走的都是同一條路。差別只在「最左邊用什麼感測器」跟「中間要不要先放大」。把這條鏈記熟,後面每一章都只是在替換其中一塊。
先讀第 1 章打好「電」的直覺,再讀第 2 章——它把訊號鏈每一段都走過一次,是全書的骨幹。第 3、4 章是延伸,讀起來會輕鬆很多。
電的三個基本量
要看懂後面所有電路,只需要先建立三個量的直覺:電壓、電流、電阻。用水管比喻最快。
1.1水管比喻
電壓 (V,伏特) 是水壓——推動水流的力量。電流 (I,安培) 是水流量——單位時間流過多少水。電阻 (R,歐姆) 是水管的粗細——管子越細越難流。三者的關係就是整個電子學的第一條定律:
這條式子之後會一直出現。例如後面要「把高電壓降低保護晶片」,靠的就是用電阻去「擋掉」一部分電壓——因為電流流過電阻時,電壓會被消耗掉。
1.2類比與數位:兩種看待訊號的方式
樂器產生的是類比訊號——電壓隨時間連續變化,像聲波一樣平滑。但電腦只認得數位訊號——一格一格的數字。微控制器的工作,就是把連續的類比電壓「切成一格一格的數字」,這個動作叫做取樣 (sampling),第 2 章會細談。
訊號如何進入 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(類比數位轉換器) 來「取樣」——每隔固定一小段時間,量一次當下的電壓並記成數字。取樣有兩個關鍵:多快量一次(取樣率)、量得多細(解析度)。
取樣率至少要是訊號最高頻率的兩倍,才不會失真。聲音最高約 20 kHz,所以音訊標準才用 44.1 kHz。做樂器時這提醒你:打擊那種又快又尖的訊號,ADC 要夠快才抓得到。
打擊樂器・壓電片
這一章是全書的骨幹。我們拿海邊的鐵罐當鼓,把一片壓電片黏在背後當感測器,然後走完整條訊號鏈——你會在這裡第一次碰到「保護電路」與「箝位」,也就是你最想搞懂的那個波形變化。
3.1壓電效應:敲擊為什麼會產生電
壓電片裡是一片壓電陶瓷。這種材料有個神奇特性:當它被擠壓或彎曲時,內部會瞬間產生電壓,這叫壓電效應。所以你一敲鐵罐,鐵罐震動 → 壓電片被反覆彎折 → 它就吐出一串電壓訊號。我們要做的,就是把這串電壓讀進微控制器。
它便宜、超薄、可以直接貼在任何海廢表面,而且不需要外接電源就能發電(它自己就是發電機)。同一片零件還能反過來當「接觸式麥克風」,第 3 章撥弦會再用到。
3.2問題來了:危險的電壓尖波
壓電片有個麻煩:你用力一敲,它會在極短時間內噴出非常高的電壓尖波——輕敲幾伏特,重敲可以衝到 40 伏特以上。而微控制器的輸入腳通常只能承受 3.3V 或 5V,超過就會把晶片燒壞。下圖就是壓電片原始輸出的樣子。
3.3第一道防線:分壓電阻
第一步是用兩顆電阻組成分壓器 (voltage divider),把整體電壓按比例縮小。回想歐姆定律——電流流過串聯的兩顆電阻時,電壓會依電阻比例分配。我們從中間「抽」出一個比較低的電壓給晶片:
調整 R1、R2 的比例,就能把輸入電壓縮到安全範圍。例如 R1、R2 相等時,輸出剛好是輸入的一半。
3.4核心:箝位電路與它對波形的改變
分壓能縮小一般訊號,但壓電那種「瞬間爆衝」的尖波還是可能穿過去。這時需要箝位 (clamping)——它像一道電壓天花板:訊號低於上限時讓它自由通過,一旦超過上限就強制「壓平」在安全值。負責這件事的零件是齊納二極體 (Zener diode)。
齊納二極體為什麼能當天花板?
一般二極體只讓電流單向通過。齊納二極體特別的地方在於:當反向電壓超過它的「崩潰電壓 (Vz)」時,它會突然導通並把電壓鎖死在 Vz。換句話說,選一顆 Vz = 4.7V 的齊納,任何超過 4.7V 的部分都會被它「吃掉」並導到地。看它的特性曲線最清楚:
箝位前 vs 箝位後:你最想看的對比
把齊納二極體(加上一顆 1MΩ 洩流電阻)並聯在訊號與地之間後,同一個敲擊尖波會發生這樣的變化:
它叫洩流電阻 (bleeder),並聯在壓電片兩端。壓電片本質上像個小電容,敲完會殘留電荷;1MΩ 提供一條路讓殘電慢慢放掉,讓訊號回到 0,下一次敲擊才量得準。沒有它,基線會亂飄。
3.4.1深入:洩流電阻到底怎麼洩流?
要懂洩流,先要知道一件事:壓電片本質上就是一顆電容。它的結構是兩片金屬電極夾著一層陶瓷——這正是電容器的構造。敲擊時陶瓷產生的電荷,就被「存」進了這顆電容裡。
電容的麻煩在於它會「記住」電荷。你敲一下,電荷灌進去;敲完之後這些電荷沒有路可以離開,電壓便卡在高點不歸零。下一擊疊上來,基線(baseline)越墊越高,ADC 讀到的值就整個亂掉。
洩流電阻的工作,就是在電容兩端並聯一條「會漏的縫」:殘留電荷順著這顆電阻慢慢流向地,電壓沿著一條指數曲線衰減回 0。這個「慢慢流光」的過程,就是洩流。
3.4.2為什麼偏偏是 1MΩ?
放電的快慢,由一個叫 RC 時間常數 的東西決定。每經過一個 τ,電壓會掉到原本的 37%;約 5 個 τ 之後幾乎完全歸零:
壓電片的電容大約 10–20 nF。搭配 1MΩ:
意思是敲完約 15 毫秒電壓掉到 37%、約 75 毫秒(5τ)幾乎歸零——這剛好短於兩次鼓擊之間的間隔,所以每一擊都能從乾淨的基線重新開始。下圖把太小、剛好、太大三種電阻疊在一起比較:
太小(如 10kΩ):τ 只有約 0.15 ms,電荷瞬間就漏光——連敲擊本身的訊號都被吃掉,峰值小到測不準,等於把訊號短路掉了。
太大(如 10MΩ):τ 長達約 150 ms,敲快一點基線還沒歸零下一擊就來了;而且高阻抗的節點像天線,容易拾到雜訊與漂移。
1MΩ 同時滿足兩端:大到不會把微弱訊號吸走(高輸入阻抗、保留訊號),又小到能在數十毫秒內把殘電放完。這就是它的甜蜜點。
3.5從波形到音符:峰值偵測與力度
訊號安全進晶片後,程式要做兩件事。第一是峰值偵測:抓出這個尖波的最高點,峰值越高代表敲得越用力,這個高度直接對應 MIDI 的力度 (velocity)——所以你輕敲小聲、重敲大聲。第二是去彈跳 (debounce)。
3.6接線:壓電觸發電路
把前面所有保護元件組起來,就是這張經典的「壓電觸發」電路。核心是一個節點(我們叫它 A 點),它同時接三樣東西:壓電片、洩流/箝位元件、以及通往 Teensy 的線。先看用標準符號畫的電路圖:
同樣的電路插在麵包板上會長這樣。麵包板讓你免焊接就能反覆嘗試,是原型階段必備:
接好先別急著插上 Teensy。用三用電表(或先接一顆便宜的微控制器)量 A 點對地的電壓,確認最用力敲時也不超過 3.3V,再正式接上 A0。先量、再接,是保護晶片最便宜的習慣。
到這裡,你已經完整走過一遍訊號鏈:壓電片 → 分壓 + 箝位保護 → ADC 取樣 → 峰值偵測 → MIDI 音符 → DAW。後面兩章只是替換最前面那一塊。
彈奏樂器・拾音與放大
把釣魚線、鐵絲繃在海廢框架上撥弦,你會遇到打擊沒碰過的新問題:訊號太微弱。這一章的主角是運算放大器——它負責把微弱訊號放大到能用。
4.1兩條路:保留原音,還是觸發合成器
第一條路是用壓電片當接觸式拾音器(原理同第 3 章,只是這次貼在共鳴箱上聽振動)。它收到的是真實的撥弦聲,但訊號非常微弱。第二條路是把弦做成觸控感應,撥到就觸發合成器發音——這條走 MIDI,下面 4.3 會講。
4.2運算放大器:為什麼非放大不可
拾音器吐出的訊號可能只有幾十毫伏,ADC 根本量不清楚,雜訊還會把它淹沒。運算放大器 (op-amp) 做兩件關鍵的事:把小訊號放大到足夠大;以及做阻抗緩衝——讓微弱的訊號源不會因為「被後面電路吸走電流」而垮掉。
最常見的接法叫「非反相放大」,只要兩顆電阻就能設定放大倍數:增益 = 1 + (Rf / Rg)。想放大 11 倍,就讓 Rf 是 Rg 的 10 倍。常用型號像 TL072,雜訊低又便宜。
4.3電容觸控:把海廢金屬變成琴鍵
另一種做弦/鍵的方式是電容觸控。原理是:任何導體(海廢的金屬片、鋁箔)本身都有微小的「電容」,而人的手指靠近時會讓這個電容值變大。微控制器透過量測「對這個導體充電要花多久」就能偵測到手指——充電變慢,就代表被碰到了。
4.4光感:做一把光弦
還有一種有趣的玩法是用光敏電阻 (LDR) 做「光弦」:用一道光照著 LDR,手撥動時遮住光,電阻隨之變化。LDR 的特性是光越強、電阻越小,把它接成分壓器就能把「光的明暗」變成「電壓的高低」讀進晶片。
植物電樂器
最後這章最像魔法:在一片葉子上夾兩個電極,把植物內部緩慢的電變化轉成旋律。它的挑戰是訊號極微弱又極緩慢,所以需要不同的量測手法。
5.1我們到底在量什麼
植物的葉片表面、組織含水量會隨著生理活動(水分輸送、氣孔開合)微微改變,這會反映成兩個電極之間電阻的緩慢漂移。我們量的不是「美妙的訊號」,而是這種漂移的波動,再把波動對應到音階上——所以同一株植物每次「演奏」都不一樣。
這個訊號既微弱、阻抗又非常高(植物不是好導體)。普通電路一接上去就會把它「壓垮」。儀表放大器 (instrumentation amplifier),如 INA128,專門處理這種高阻抗微弱訊號:它輸入阻抗極高(幾乎不從植物抽電流),又能精準放大兩電極間的微小差異。
5.2經典低成本做法:555 弛張振盪器
不想用昂貴的儀表放大器,有個很聰明的老方法:用 555 計時器接成弛張振盪器,把植物本身當成電路裡的一顆電阻。它的運作是讓一顆電容反覆充放電,在 ⅓ 與 ⅔ 電源電壓之間來回,輸出一連串方波。關鍵在於:充放電的快慢由電阻決定,而那顆電阻就是植物——植物電阻一變,振盪頻率就跟著變。
5.3從頻率漂移到旋律
微控制器持續測量這個頻率,先做平滑把雜訊濾掉,再把頻率的高低量化(對齊)到某個音階上的音符——例如五聲音階,這樣不論植物怎麼漂移,出來的音都會好聽。最後一樣透過 USB-MIDI 送進 DAW,交給你選的音色去發聲。
元件圖鑑
採購時,認得出實物比記得名字更重要。這裡把每個元件畫成帶標示的圖鑑——它長什麼樣、怎麼一眼認出、關鍵規格是什麼。(真實照片我已在對話中附給你對照。)
壓電片
黃銅圓盤中央鍍一層白色陶瓷,接出紅黑兩線。被擠壓或彎曲就發電(壓電效應),把敲擊、振動轉成電壓。同一片反過來也能當接觸式麥克風。
電阻
圓柱身上的彩色環是用顏色編碼阻值。本書用到 1MΩ(洩流)、1kΩ(限流)、以及放大器的增益電阻。讀法:前幾環是數字、倒數第二環是倍數、最後一環(常為金色)是誤差。
齊納二極體
外型像小顆深色圓柱,身上有一條銀/白色環標記陰極那一端。它的本事是在反向電壓達到崩潰電壓 Vz 時把電壓鎖死——這就是替壓電尖波設「天花板」的關鍵。接的方向不能反。
DIP 晶片
運算放大器(TL072)、555 計時器(NE555)、儀表放大器(INA128)外型幾乎一樣——都是黑色長方形、兩排接腳,靠上面印的型號區分。一端有半圓缺口或凹點,標記「第 1 腳」,插的方向不能搞錯。
光敏電阻 LDR
圓圓的頭上有蜿蜒的蛇形紋路,光照在這片紋路上電阻就會改變,特性是光越強、電阻越小。接成分壓器就能把明暗變成電壓,用來做「光弦」。
麵包板
滿是孔洞的白色板子,讓你不用焊接就能把元件插進去試接、隨時拔掉重來。紅藍邊條是電源排(+ / −),中間溝兩側的孔同一直行是相通的。原型階段最重要的工具。
Teensy 微控制器
一片郵票大小的電路板,一端是 USB 孔,兩側是接腳。A0–A9 是讀類比電壓的腳、GND 是地、3.3V 供電。插上 Mac 即被認成 USB-MIDI / 音訊裝置,免裝驅動。
海廢選材指南
不是每件海廢都適合做樂器。挑選的關鍵,在於你想要它「發聲」還是「當骨架」,以及它的材質會怎麼影響音色。
7.1先理解:材質如何決定聲音
一個物體被敲擊時的音高與音色,主要由三件事決定:剛性(硬度)、質量、以及阻尼(會不會把振動吸掉)。又硬又輕的東西振得快 → 音高、明亮;又重又軟、阻尼大的東西振一下就被吸住 → 低沉、悶。下圖把常見海廢放在這張地圖上:
7.2三類樂器的選材原則
| 樂器類型 | 想要的特性 | 適合的海廢 | 避免 |
|---|---|---|---|
| 打擊(發聲體) | 會響、餘音長、剛硬 | 金屬罐桶、玻璃瓶、硬塑膠容器、大貝殼、浮球 | 濕軟材、發泡塑膠(吸音) |
| 彈奏(骨架+共鳴箱) | 夠硬,能撐住弦的張力 | 木棧板、硬塑膠箱、金屬框;弦可用釣魚線、不鏽鋼絲、廢漁網線 | 易變形的薄軟材 |
| 植物電(外殼 / 容器) | 防水、能盛土種植 | 塑膠桶、玻璃罐;金屬件可順便當電極座 | 會滲水或鏽蝕污染的容器 |
7.3處理與安裝:海廢的三個前置步驟
除鹽、徹底乾燥
海水的鹽會腐蝕電子元件與金屬。先用清水沖掉鹽分與沙,再徹底陰乾;金屬件可順手除鏽。潮濕會讓電路短路或生鏽。
去除危險
修掉尖銳邊緣、生鏽穿孔處,戴手套處理。有油污或異味的塑膠先洗淨,避免黏膠黏不牢。
安裝感測器
壓電片要黏在「平整、剛硬」的面上(例如罐底中央),用環氧樹脂(AB 膠)或熱熔膠固定。貼在會振動、但又不會把聲音悶掉的位置,訊號最乾淨。
要做電容觸控(第 4 章)時,金屬海廢本身就能直接當觸點,很方便;但若金屬件是用在壓電打擊,記得讓壓電片與金屬之間隔一層絕緣(膠、膠帶),避免兩極短路。
動手做:讓海廢發出第一個音
前面把原理和接線都走過了。這一章把圖 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。
元件總表・學習起手式
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)為準。麵包板上先試、量過電壓再焊接,是最安全的習慣。