<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: 張旭豐</title>
    <description>The latest articles on DEV Community by 張旭豐 (@_0c004e5fde78250aee362).</description>
    <link>https://dev.to/_0c004e5fde78250aee362</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3835946%2F7b142c84-de05-4005-bda6-8f44d601df51.png</url>
      <title>DEV Community: 張旭豐</title>
      <link>https://dev.to/_0c004e5fde78250aee362</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/_0c004e5fde78250aee362"/>
    <language>en</language>
    <item>
      <title>Why does your Arduino project feel 'wrong' even when the code works?</title>
      <dc:creator>張旭豐</dc:creator>
      <pubDate>Sat, 11 Apr 2026 07:48:35 +0000</pubDate>
      <link>https://dev.to/_0c004e5fde78250aee362/why-does-your-arduino-project-feel-wrong-even-when-the-code-works-1hk7</link>
      <guid>https://dev.to/_0c004e5fde78250aee362/why-does-your-arduino-project-feel-wrong-even-when-the-code-works-1hk7</guid>
      <description>&lt;h1&gt;
  
  
  Why does your Arduino project feel 'wrong' even when the code works?
&lt;/h1&gt;

&lt;p&gt;You've been working on your interactive project for two weeks. The code compiles. The wiring looks correct. The serial monitor shows everything is running as expected.&lt;/p&gt;

&lt;p&gt;But something is off.&lt;/p&gt;

&lt;p&gt;When you demo it to someone, they don't react the way you imagined. You built something technically correct — but it doesn't &lt;em&gt;feel&lt;/em&gt; right.&lt;/p&gt;

&lt;h2&gt;
  
  
  The problem isn't your Arduino code
&lt;/h2&gt;

&lt;p&gt;Here's what usually happens: you start with a feeling you want to create. A sense of surprise, or tension, or delight. But somewhere between the idea and the finished project, that feeling got lost.&lt;/p&gt;

&lt;p&gt;The most common mistake makers make is confusing "does it work technically" with "does it work emotionally."&lt;/p&gt;

&lt;h2&gt;
  
  
  A real example
&lt;/h2&gt;

&lt;p&gt;Last year I built a buzzer game. The version that most tutorials teach you to build is simple: button press → buzzer sounds → score goes up.&lt;/p&gt;

&lt;p&gt;Technically, that's a working interactive project. But it's boring. You press a button, a sound plays, nothing memorable happens.&lt;/p&gt;

&lt;p&gt;The version that actually generated reactions was different. I watched people play it and noticed: the moment they missed, they flinched. So I added a visual "near miss" feedback — a light that almost lit up when you almost got it. That one change transformed a technical demo into an interactive experience.&lt;/p&gt;

&lt;p&gt;The key insight: I wasn't designing a buzzer game. I was designing the feeling of "almost."&lt;/p&gt;

&lt;h2&gt;
  
  
  How to diagnose this in your own project
&lt;/h2&gt;

&lt;p&gt;Before you wire anything, ask yourself:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;What feeling do I want the person to have?&lt;/li&gt;
&lt;li&gt;What is the &lt;em&gt;smallest&lt;/em&gt; interaction that produces that feeling?&lt;/li&gt;
&lt;li&gt;When the interaction happens, is there a moment of feedback that matches the feeling?&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;If you can answer all three clearly, your direction is solid. If you're vague on any of them, that's a signal — not a failure.&lt;/p&gt;

&lt;h2&gt;
  
  
  What to do next
&lt;/h2&gt;

&lt;p&gt;The first step is always the same: get your feeling goal out of your head and into something testable. A one-sentence description of the desired feeling works. Something like:&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I want the person to feel like they're discovering something hidden."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;or&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;"I want the moment they touch it to feel like a small surprise."&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;Once you can write that sentence, you have a way to test whether your project is moving toward the right direction.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;If you're stuck on clarifying your feeling goal for your current project, there's a worksheet that walks you through the process of translating "I have an idea" into "here's what I want the person to experience."&lt;/em&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>design</category>
      <category>iot</category>
      <category>ux</category>
    </item>
    <item>
      <title>震動馬達知多少？偏心馬達 vs 線性馬達 vs 伺服馬達</title>
      <dc:creator>張旭豐</dc:creator>
      <pubDate>Sun, 22 Mar 2026 11:14:01 +0000</pubDate>
      <link>https://dev.to/_0c004e5fde78250aee362/zhen-dong-ma-da-zhi-duo-shao-pian-xin-ma-da-vs-xian-xing-ma-da-vs-si-fu-ma-da-16h</link>
      <guid>https://dev.to/_0c004e5fde78250aee362/zhen-dong-ma-da-zhi-duo-shao-pian-xin-ma-da-vs-xian-xing-ma-da-vs-si-fu-ma-da-16h</guid>
      <description>&lt;h1&gt;
  
  
  震動馬達知多少？偏心馬達 vs 線性馬達 vs 伺服馬達
&lt;/h1&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftdss2avw1p5dyaqtomci.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ftdss2avw1p5dyaqtomci.jpeg" alt="遊戲手把震動體驗" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;圖1：遊戲手把的觸覺回饋，讓沉浸體驗大幅提升&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  1️⃣ 場景：觸手可及的震動體驗
&lt;/h2&gt;

&lt;p&gt;你拿起身機滑動機台，手機輕輕震了一下；&lt;br&gt;
你拿起遊戲手把開槍，槍托傳來一陣後座力回饋；&lt;br&gt;
智慧手錶的鬧鐘響起，輕敲手腕提醒你起床。&lt;/p&gt;

&lt;p&gt;這些日常場景的背後，都有同一個關鍵元件在默默運作——&lt;strong&gt;震動馬達&lt;/strong&gt;。&lt;/p&gt;

&lt;p&gt;從手機、遊戲手把、穿戴裝置，到工業設備的警示系統，震動馬達無所不在。它讓冰冷的電子產品有了「觸覺」，成為人機介面中不可或缺的一環。&lt;/p&gt;




&lt;h2&gt;
  
  
  2️⃣ 需求：為什麼需要震動回饋？
&lt;/h2&gt;

&lt;p&gt;震動回饋不是花俏功能，而是&lt;strong&gt;實用剛需&lt;/strong&gt;。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;通知與警示&lt;/strong&gt;：在吵雜環境或會議中，視覺與聽覺通知可能失效，但震動觸感幾乎必定被察覺。這是手機「靜音模式」依然能靠震動提醒你的原因。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;沉浸式體驗&lt;/strong&gt;：遊戲手把的震動回饋，讓槍戰、賽車、格鬥遊戲的衝擊感大幅提升。少了震動，遊戲體驗就像看無聲電影。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;操作確認&lt;/strong&gt;：ATM 按鍵、遙控器、醫療器材的按鈕，透過震動讓使用者確認「按下去了」，提升操作信心。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;無障礙輔助&lt;/strong&gt;：對聽覺或視覺有障礙的使用者而言，震動是重要的訊息傳遞管道。&lt;/p&gt;

&lt;p&gt;簡單說：震動是電子設備「說話」的方式之一，而且是那種你很難忽略的語言。&lt;/p&gt;




&lt;h2&gt;
  
  
  3️⃣ 感知：馬達如何產生震動？
&lt;/h2&gt;

&lt;p&gt;震動的本質是&lt;strong&gt;物理運動的慣性&lt;/strong&gt;。&lt;/p&gt;

&lt;p&gt;馬達通電後，內部轉子開始旋轉（或直線來回運動）。當轉子質量分布不對稱時，旋轉會產生離心力；這個離心力傳遞到外殼，再傳遞到整個裝置——你就感受到震動了。&lt;/p&gt;

&lt;p&gt;影響「震動感」的變數主要有三個：&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;變數&lt;/th&gt;
&lt;th&gt;說明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;頻率&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;震動的快慢，決定了感知的「粗細」——低頻粗獷有力，高頻細膩輕柔&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;振幅&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;震動的幅度，直接影響感受的強度&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;響應時間&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;從訊號輸入到馬達啟動的延遲，決定了回饋是否「跟手」&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;這三個變數的組合，就構成了三種主流震動馬達各自的性格。&lt;/p&gt;




&lt;h2&gt;
  
  
  4️⃣ 原理：三種馬達怎麼動？
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🔵 偏心馬達（Eccentric Rotating Mass, ERM）
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frje20la9hs835ow5f2zk.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frje20la9hs835ow5f2zk.gif" alt="ERM 偏心馬達" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;圖2：ERM 偏心馬達，透過偏心質量塊旋轉產生震動（Source: iNeedMotors）&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;最傳統、也最常見的震動馬達。&lt;/p&gt;

&lt;p&gt;內部有一個&lt;strong&gt;偏心轉子&lt;/strong&gt;——轉子軸心不在幾何中心上，因此旋轉時重心始終偏離旋轉軸，持續產生單一方向的離心力。&lt;/p&gt;

&lt;p&gt;這股離心力推動外殼，外殼帶動整個裝置，就形成了震動。&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;特點：通電就轉、斷電靠摩擦慢慢停、&lt;strong&gt;無法精準控制&lt;/strong&gt;起點與力道&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  🟢 線性馬達（Linear Resonant Actuator, LRA）
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg75069yolj5rq8niab3x.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg75069yolj5rq8niab3x.gif" alt="LRA 線性馬達" width="600" height="317"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;圖3：LRA 線性馬達，質量塊在直線方向來回移動產生震動（Source: TradeW）&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;一種利用&lt;strong&gt;電磁彈簧系統&lt;/strong&gt;實現直線運動的馬達。&lt;/p&gt;

&lt;p&gt;內部有一塊質量塊（mass）懸掛在彈簧上，線圈通電後產生磁場，推動質量塊沿直線來回移動。當驅動頻率與彈簧固有頻率吻合時，產生共振，震動效率最大化。&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;特點：&lt;strong&gt;響應速度快&lt;/strong&gt;，可透過調整頻率與振幅控制震動細節，但行程固定，輸出力道有上限&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h3&gt;
  
  
  🟠 伺服馬達（Servo Motor）
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm4dkd2olksv37mfh3kch.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fm4dkd2olksv37mfh3kch.jpg" alt="Arduino 伺服馬達控制" width="800" height="1066"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;圖4：Arduino 伺服馬達，可精準控制角度與速度（Source: Wikimedia Commons）&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;結合了馬達、減速機與回饋感測器的整合系統。&lt;/p&gt;

&lt;p&gt;透過回饋控制，&lt;strong&gt;精準控制轉速與角度&lt;/strong&gt;，甚至可以回傳位置資訊。這讓震動模式可以非常複雜——不只是「轉快 / 轉慢」，而是能做到波形控制、漸強漸弱、特定節奏。&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;特點：&lt;strong&gt;精度最高&lt;/strong&gt;，可回饋、可編程，缺點是體積大、功耗高，成本貴&lt;/p&gt;
&lt;/blockquote&gt;




&lt;h2&gt;
  
  
  5️⃣ 比較：三種馬達比一比
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;項目&lt;/th&gt;
&lt;th&gt;偏心馬達 (ERM)&lt;/th&gt;
&lt;th&gt;線性馬達 (LRA)&lt;/th&gt;
&lt;th&gt;伺服馬達 (Servo)&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;響應速度&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;慢&lt;/td&gt;
&lt;td&gt;快&lt;/td&gt;
&lt;td&gt;中等&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;控制精度&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;低（僅開/關）&lt;/td&gt;
&lt;td&gt;中（頻率+振幅）&lt;/td&gt;
&lt;td&gt;高（位置+速度+力矩）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;體積&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;小&lt;/td&gt;
&lt;td&gt;薄型&lt;/td&gt;
&lt;td&gt;大&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;功耗&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;低&lt;/td&gt;
&lt;td&gt;中&lt;/td&gt;
&lt;td&gt;高&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;成本&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;便宜&lt;/td&gt;
&lt;td&gt;中等&lt;/td&gt;
&lt;td&gt;昂貴&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;常見應用&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;手機、遙控器&lt;/td&gt;
&lt;td&gt;旗艦手機，遊戲手把&lt;/td&gt;
&lt;td&gt;機械設備、機器人、特殊遊戲周邊&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  6️⃣ 實作：常用 IC 與控制方式
&lt;/h2&gt;

&lt;p&gt;如果你想動手做專案，以下是幾個常見方案：&lt;/p&gt;

&lt;h3&gt;
  
  
  驅動 IC 推薦
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;IC 型號&lt;/th&gt;
&lt;th&gt;適用馬達&lt;/th&gt;
&lt;th&gt;特點&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;DRV2605&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;LRA / ERM&lt;/td&gt;
&lt;td&gt;I2C 控制，內建音圈馬達驅動電路，支援 haptic 波形&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;AD7298&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;ERM&lt;/td&gt;
&lt;td&gt;簡單 PWM 控制，便宜好取得&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;L293D / TB6612&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;伺服馬達&lt;/td&gt;
&lt;td&gt;雙H橋驅動，可控制方向與速度&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;ESP32 / Arduino&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;通用&lt;/td&gt;
&lt;td&gt;搭配上述 IC 即可用程式控制震動模式&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;圖5：驅動電路圖&lt;/strong&gt;&lt;br&gt;
左側為 ESP32/Arduino MCU，中間為 DRV2605 驅動晶片，右側連接線性馬達（LRA）或偏心馬達（ERM）。電路包含：3.3V/5V 電源、RST 腳位上拉電阻、SDA/SCL I2C 訊號線，以及馬達兩端並聯的二極體（防反向電動勢）&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  控制邏輯簡述
&lt;/h3&gt;

&lt;p&gt;偏心馬達的控制最簡單：PWM 訊號控制轉速，佔空比越高，震動越強。&lt;/p&gt;

&lt;p&gt;線性馬達需要&lt;strong&gt;特定頻率驅動&lt;/strong&gt;（通常 150～300Hz），偏離諧振頻率效果會大打折扣，建議使用 DRV2605 這類專用 IC 處理。&lt;/p&gt;

&lt;p&gt;伺服馬達則需要&lt;strong&gt;角度指令&lt;/strong&gt;：發送 PWM 或 UART 訊號指定目標位置，馬達內建回饋會自動修正。&lt;/p&gt;




&lt;h2&gt;
  
  
  7️⃣ 結尾：一句話總結
&lt;/h2&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;偏心馬達便宜實用，線性馬達是目前旗艦設備的主流選擇，伺服馬達則在需要精準控制的專業場景無可取代。&lt;/strong&gt; 選對馬達，讓你的產品「震」到點上！&lt;/p&gt;
&lt;/blockquote&gt;




&lt;p&gt;&lt;em&gt;標籤：#震動馬達 #ERM #LRA #Arduino #觸覺回饋 #人機互動&lt;/em&gt;&lt;/p&gt;

</description>
      <category>gamedev</category>
      <category>mobile</category>
      <category>ui</category>
      <category>ux</category>
    </item>
    <item>
      <title>HC-SR04 超聲波感測器完整教學：從接線到程式</title>
      <dc:creator>張旭豐</dc:creator>
      <pubDate>Sun, 22 Mar 2026 11:06:44 +0000</pubDate>
      <link>https://dev.to/_0c004e5fde78250aee362/hc-sr04-chao-sheng-bo-gan-ce-qi-wan-zheng-jiao-xue-cong-jie-xian-dao-cheng-shi-2m68</link>
      <guid>https://dev.to/_0c004e5fde78250aee362/hc-sr04-chao-sheng-bo-gan-ce-qi-wan-zheng-jiao-xue-cong-jie-xian-dao-cheng-shi-2m68</guid>
      <description>&lt;h1&gt;
  
  
  HC-SR04 超聲波感測器：原理與接線圖
&lt;/h1&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmfz7v3rfyypqo63e1d08.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fmfz7v3rfyypqo63e1d08.jpeg" alt="倒車雷達場景" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;圖1：倒車雷達是超聲波感測器最為人熟知的應用場景&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🚗 場景
&lt;/h2&gt;

&lt;p&gt;倒車雷達「嗶嗶嗶」響起時，你知道車子離牆面還有多近嗎？&lt;/p&gt;

&lt;p&gt;答案就藏在今天的主角裡——&lt;strong&gt;HC-SR04 超聲波感測器&lt;/strong&gt;。&lt;/p&gt;




&lt;h2&gt;
  
  
  🎯 需求
&lt;/h2&gt;

&lt;p&gt;這篇要解決一個問題：&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;HC-SR04 是什麼？它怎麼測量距離？ Arduino 又怎麼接線與讀取數據？&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;不管你是 Maker 新手還是想搞懂原理的玩家，看完這篇就能動手做距離感測專案囉！&lt;/p&gt;




&lt;h2&gt;
  
  
  👀 感知
&lt;/h2&gt;

&lt;p&gt;HC-SR04 使用的感知方式是&lt;strong&gt;超聲波測距&lt;/strong&gt;。&lt;/p&gt;

&lt;p&gt;就像蝙蝠在黑暗中飛行，靠的不是眼睛，而是&lt;strong&gt;發射超聲波 + 接收回聲&lt;/strong&gt;來判斷障礙物的位置。&lt;/p&gt;

&lt;p&gt;人類耳朵能聽到的聲音頻率約 20Hz～20kHz，而 HC-SR04 發射的超聲波頻率是 &lt;strong&gt;40kHz&lt;/strong&gt;——超出人類聽覺範圍，所以我們完全聽不到。&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpjiwfez4s77doj4x15ez.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fpjiwfez4s77doj4x15ez.jpg" alt="HC-SR04 超聲波感測器模組" width="600" height="600"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;圖2：HC-SR04 超聲波感測器模組，發射器（T）與接收器（R）分列兩端（Source: SparkFun, via Wikimedia Commons）&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚙️ 原理
&lt;/h2&gt;

&lt;h3&gt;
  
  
  🔊 怎麼測距離？
&lt;/h3&gt;

&lt;p&gt;原理很簡單，分成三步：&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;
&lt;strong&gt;發射&lt;/strong&gt;：控制板發送一個 &lt;strong&gt;10μs 的觸發脈衝&lt;/strong&gt;給感測器&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;飛行&lt;/strong&gt;：感測器的超聲波發射器（Trig）發出超聲波，聲波向前跑，遇到障礙物反彈回來&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;接收&lt;/strong&gt;：感測器的超聲波接收器（Echo）收到反射回來的超聲波&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;關鍵來了——&lt;strong&gt;聲波來回花了多少時間&lt;/strong&gt;，我們是知道的！只要知道時間，就能算出距離。&lt;/p&gt;

&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;簡單比喻&lt;/strong&gt;：就像你在山谷裡喊「喂～」，2 秒後聽到回音，聲音來回花了 2 秒，聲速約 340m/s，所以山谷深度就是 &lt;code&gt;340 × 2 / 2 = 340 公尺&lt;/code&gt;。&lt;/p&gt;
&lt;/blockquote&gt;

&lt;p&gt;公式如下：&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;距離（cm）= (飛行時間 μs ÷ 2) × 0.0343
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;為什麼要除以 2？因為時間是&lt;strong&gt;來回&lt;/strong&gt;的距離，我們只需要&lt;strong&gt;單程&lt;/strong&gt;。&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flzm2dvsamukr6l7qbaq8.JPG" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Flzm2dvsamukr6l7qbaq8.JPG" alt="超聲波感測器全家福" width="613" height="459"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;圖3：各式超聲波感測器，HC-SR04 是其中最常見的型號之一（Source: Wikimedia Commons）&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🛠️ 實作
&lt;/h2&gt;

&lt;h3&gt;
  
  
  接線圖
&lt;/h3&gt;

&lt;p&gt;HC-SR04 共有 &lt;strong&gt;4 支針腳&lt;/strong&gt;，與 Arduino 的連接非常直覺：&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;HC-SR04 針腳&lt;/th&gt;
&lt;th&gt;Arduino 接腳&lt;/th&gt;
&lt;th&gt;說明&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;VCC&lt;/td&gt;
&lt;td&gt;5V&lt;/td&gt;
&lt;td&gt;電源正極&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;GND&lt;/td&gt;
&lt;td&gt;GND&lt;/td&gt;
&lt;td&gt;接地&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Trig&lt;/td&gt;
&lt;td&gt;Pin 9&lt;/td&gt;
&lt;td&gt;觸發訊號（發射控制）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Echo&lt;/td&gt;
&lt;td&gt;Pin 10&lt;/td&gt;
&lt;td&gt;回聲訊號（接收讀取）&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;h3&gt;
  
  
  程式碼
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="c1"&gt;// HC-SR04 超聲波測距範例&lt;/span&gt;
&lt;span class="c1"&gt;// VCC → 5V, GND → GND, Trig → Pin 9, Echo → Pin 10&lt;/span&gt;

&lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;trigPin&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;9&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;   &lt;span class="c1"&gt;// 發射超聲波的針腳&lt;/span&gt;
&lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;echoPin&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  &lt;span class="c1"&gt;// 接收回聲的針腳&lt;/span&gt;

&lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;duration&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  &lt;span class="c1"&gt;// 飛行時間（微秒）&lt;/span&gt;
&lt;span class="kt"&gt;float&lt;/span&gt; &lt;span class="n"&gt;distance&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;  &lt;span class="c1"&gt;// 距離（公分）&lt;/span&gt;

&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;setup&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;begin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;9600&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;           &lt;span class="c1"&gt;// 啟動序列埠，速率 9600&lt;/span&gt;
  &lt;span class="n"&gt;pinMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;trigPin&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;OUTPUT&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;    &lt;span class="c1"&gt;// 設定 Trig 為輸出模式&lt;/span&gt;
  &lt;span class="n"&gt;pinMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;echoPin&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;INPUT&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;     &lt;span class="c1"&gt;// 設定 Echo 為輸入模式&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;loop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// Step 1：發射超聲波&lt;/span&gt;
  &lt;span class="n"&gt;digitalWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;trigPin&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;LOW&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;delayMicroseconds&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;digitalWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;trigPin&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;HIGH&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;delayMicroseconds&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;10&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;        &lt;span class="c1"&gt;// 發送 10μs 的觸發脈衝&lt;/span&gt;
  &lt;span class="n"&gt;digitalWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;trigPin&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;LOW&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="c1"&gt;// Step 2：讀取回聲時間&lt;/span&gt;
  &lt;span class="n"&gt;duration&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;pulseIn&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;echoPin&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;HIGH&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="c1"&gt;// Step 3：計算距離&lt;/span&gt;
  &lt;span class="n"&gt;distance&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;duration&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="mf"&gt;0.0343&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;/&lt;/span&gt; &lt;span class="mi"&gt;2&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

  &lt;span class="c1"&gt;// Step 4：輸出到序列埠&lt;/span&gt;
  &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;"距離："&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;print&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;distance&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;println&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="s"&gt;" cm"&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;

  &lt;span class="n"&gt;delay&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  &lt;span class="c1"&gt;// 每 0.5 秒測量一次&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;上傳燒錄程式碼後，打開 &lt;strong&gt;工具 → 序列埠監控視窗&lt;/strong&gt;，就能看到距離數值持續更新。&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9tki2bai9h11k4c5c8rx.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F9tki2bai9h11k4c5c8rx.jpg" alt="Arduino 超聲波電路示意" width="800" height="373"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;圖4：Arduino 電路接線示意圖（Source: Wikimedia Commons）&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  ⚖️ 比較
&lt;/h2&gt;

&lt;h3&gt;
  
  
  HC-SR04 vs 紅外線感測器（IR）
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;維度&lt;/th&gt;
&lt;th&gt;HC-SR04 超聲波&lt;/th&gt;
&lt;th&gt;紅外線 IR&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;測量距離&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;2cm～400cm&lt;/td&gt;
&lt;td&gt;通常 &amp;lt; 80cm&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;精準度&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;±3cm&lt;/td&gt;
&lt;td&gt;易受顏色/光線影響&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;測量介質&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;不受顏色影響&lt;/td&gt;
&lt;td&gt;深色表面表現差&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;成本&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;便宜（≈ $1-2）&lt;/td&gt;
&lt;td&gt;也便宜&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;適用場景&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;戶外、液位、robot&lt;/td&gt;
&lt;td&gt;室內，近距離&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;結論&lt;/strong&gt;：測距範圍大、精度高，而且&lt;strong&gt;不受障礙物顏色影響&lt;/strong&gt;——這就是 HC-SR04 能廣泛用於倒車雷達、液位檢測、機器人避障的原因。&lt;/p&gt;




&lt;h2&gt;
  
  
  ✅ 結尾
&lt;/h2&gt;

&lt;p&gt;HC-SR04 是 CP 值最高的測距感測器之一，&lt;strong&gt;理解原理後你就能用它做出倒車雷達、液位計，甚至避障小車&lt;/strong&gt;。&lt;/p&gt;

&lt;p&gt;下一步，建議你試試看結合 Servo 馬達做一個&lt;strong&gt;超聲波雷達掃描器&lt;/strong&gt;，用 Processing 畫出即時地形圖——保證驚豔！&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F008c9uh6a80oig7rxobl.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F008c9uh6a80oig7rxobl.jpg" alt="停車場感測器應用" width="800" height="449"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;圖5：停車場的車位感測器，就是超聲波測距技術的實際應用（Source: Wikimedia Commons）&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  🛒 所需零件
&lt;/h2&gt;

&lt;p&gt;如果你還沒準備零件，以下是這篇教學需要的清單：&lt;/p&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;零件&lt;/th&gt;
&lt;th&gt;用途&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;HC-SR04 超聲波感測器&lt;/td&gt;
&lt;td&gt;本文主角&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;Arduino Uno R3&lt;/td&gt;
&lt;td&gt;控制板&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;母對母杜邦線&lt;/td&gt;
&lt;td&gt;接線必備&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;迷你麵包板&lt;/td&gt;
&lt;td&gt;方便接線&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;p&gt;&lt;em&gt;閱讀時間約 4 分鐘｜字數：約 1,100 字&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;標籤：#HC-SR04 #超聲波感測器 #Arduino #測距 #倒車雷達 #Maker&lt;/em&gt;&lt;/p&gt;

</description>
      <category>beginners</category>
      <category>cpp</category>
      <category>iot</category>
      <category>tutorial</category>
    </item>
    <item>
      <title>觸覺回饋是什麼？讓科技觸摸你的感受</title>
      <dc:creator>張旭豐</dc:creator>
      <pubDate>Sun, 22 Mar 2026 10:21:59 +0000</pubDate>
      <link>https://dev.to/_0c004e5fde78250aee362/chu-jue-hui-kui-shi-shi-mo-rang-ke-ji-chu-mo-ni-de-gan-shou-oab</link>
      <guid>https://dev.to/_0c004e5fde78250aee362/chu-jue-hui-kui-shi-shi-mo-rang-ke-ji-chu-mo-ni-de-gan-shou-oab</guid>
      <description>&lt;h1&gt;
  
  
  觸覺回饋是什麼？讓科技觸摸你的感受
&lt;/h1&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F76rnry68u4jj8n071pyf.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F76rnry68u4jj8n071pyf.jpeg" alt="遊戲手把震動情境" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;圖1：握持遊戲手把，體驗觸覺回饋帶來的沉浸感&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  一、場景：你已經用過觸覺回饋，只是沒發現
&lt;/h2&gt;

&lt;p&gt;玩手機遊戲時，每次按下虛擬按鈕，手機就輕輕震一下——那不是手機壞了，是觸覺回饋在作用。&lt;/p&gt;

&lt;p&gt;拿 iPhone 打字時，鍵盤短暫的輕震讓你確認「有按到」；PS5 手把的回饋震動，讓格鬥遊戲的每一拳都像真的打在敵人身上；Apple Watch 收到通知時那一陣輕敲，像極了手指碰了碰你的手腕。這些，全都是觸覺回饋（Haptic Feedback）。&lt;/p&gt;

&lt;p&gt;你幾乎每天都在和它互動，卻很少停下來想：這個「震一下」背後，到底藏著什麼科技？&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwx8rlm9p38eidi3u2prb.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fwx8rlm9p38eidi3u2prb.jpeg" alt="VR遊戲沉浸體驗" width="433" height="650"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;圖2：VR 遊戲中的觸覺回饋，大幅提升沉浸體驗&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  二、需求：為什麼觸覺回饋這麼重要？
&lt;/h2&gt;

&lt;p&gt;視覺和聽覺是人機介面的老大哥，但觸覺安靜地補上了最後一塊拼圖。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;確認操作有被接收&lt;/strong&gt;——當你按下觸控螢幕，視覺可能來不及反饋，但震動告訴你「系統收到了」。這在駕駛或工廠操作時特別關鍵，眼睛不能離開前方，但觸覺即時告訴你指令是否執行。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;增加沉浸感&lt;/strong&gt;——在 VR 遊戲裡，被怪物攻擊時頭盔或手把的震動，讓你真的感覺到被碰撞。少了這個，虛擬世界就只是銀幕上的畫面；多了這個，遊戲體驗立刻分出高下。&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;觸發情緒反應&lt;/strong&gt;——研究顯示，適當的觸覺回饋能提升記憶度、加速學習，甚至增加使用者的信任感。蘋果願意在 Taptic Engine 投入大量研發資源，就是看見了觸覺回饋背後的這層價值。&lt;/p&gt;




&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhhujib7nsm8uijcsju0t.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhhujib7nsm8uijcsju0t.png" alt="皮膚觸覺受器結構圖" width="800" height="800"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;圖3：皮膚觸覺受器結構圖，顯示不同類型的機械受器分布（Source: Blausen, via Wikimedia Commons）&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  三、感知：觸覺回饋是怎麼運作的？
&lt;/h2&gt;

&lt;p&gt;觸覺感知來自於皮膚下的機械受器，主要分為三種：&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;梅斯納小體（Meissner's corpuscles）&lt;/strong&gt;：感測輕觸和低頻振動，集中在指尖，是觸控螢幕「輕觸感」的主要來源。&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;帕西尼安小體（Pacinian corpuscles）&lt;/strong&gt;：感測高頻振動和壓力變化，深層震動靠它。&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;魯菲尼終末器官（Ruffini endings）&lt;/strong&gt;：感測皮膚拉伸，與手部姿勢感知有關。&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;觸覺回饋系統的核心邏輯是：&lt;strong&gt;用人造刺激欺騙這些受器，讓大腦以為發生了真實的觸摸事件。&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;當你玩格鬥遊戲出拳，手把在 50 毫秒內快速來回震動兩次，大腦的帕西尼安小體被激活，於是你「感覺」到了那一記重拳。&lt;/p&gt;




&lt;h2&gt;
  
  
  四、原理：馬達震動、線性馬達、壓電效應
&lt;/h2&gt;

&lt;p&gt;觸覺回饋的硬體原理主要有三種層次：&lt;/p&gt;

&lt;h3&gt;
  
  
  4.1 離心馬達（ERM）——最傳統的震動
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frje20la9hs835ow5f2zk.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Frje20la9hs835ow5f2zk.gif" alt="ERM 震動馬達模組" width="800" height="450"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;圖4：ERM 離心馬達模組，透過偏心質量塊旋轉產生震動，是最傳統的觸覺回饋元件&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;手機早期時代的老大哥。用一個偏心輪（偏離中心的重塊）連接馬達軸心，轉動時因為重心偏移產生全向振動。&lt;strong&gt;便宜、耐用、專利成熟&lt;/strong&gt;，但響應慢、無法精準控制頻率，震起來是「嗡嗡嗡」一片。&lt;/p&gt;

&lt;h3&gt;
  
  
  4.2 線性馬達（LRA）——旗艦手機的最愛
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg75069yolj5rq8niab3x.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fg75069yolj5rq8niab3x.gif" alt="LRA 線性震動馬達模組" width="600" height="317"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;圖5：LRA 線性震動馬達模組，質量塊在直線方向來回移動產生震動，廣泛用於旗艦手機&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;蘋果的 Taptic Engine、三星的 X軸線性馬達，都屬於這類。原理很優雅：&lt;strong&gt;線圈帶動質量塊在直線上來回快速移動，因為慣性產生震動。&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;響應速度比 ERM 快上 10 倍以上，能做到 10ms 以下的觸發延遲。可以輸出精確的波形——輕敲、長震、節奏脈動統統可以編程控制。這就是為什麼 iPhone 的 Home 鍵「按下去」其實是固態的（全靠 LRA 模擬出按鍵感）。&lt;/p&gt;

&lt;h3&gt;
  
  
  4.3 壓電效應（Piezoelectric）——最精細的新勢力
&lt;/h3&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fstgxfm519jf777j3u6bs.gif" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fstgxfm519jf777j3u6bs.gif" alt="壓電效應示意圖" width="810" height="415"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;圖6：壓電雙晶片示意圖，通電後上下層交替收縮與膨脹，帶動中央區域來回彎曲——這就是壓電效應的核心原理（Source: Wikimedia Commons）&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;利用某些晶體通電後會物理形變的特性，施加電壓讓壓電材料彎曲。&lt;strong&gt;響應最精細（1ms 以內）、功耗低，可做極小幅度的微觸覺輸出&lt;/strong&gt;，常用於汽車中控台、醫療設備的細膩觸控回饋。缺點是行程短、驅動電壓高，硬體設計複雜度較高。&lt;/p&gt;




&lt;h2&gt;
  
  
  五、比較：不同觸覺技術對比
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;特性&lt;/th&gt;
&lt;th&gt;離心馬達（ERM）&lt;/th&gt;
&lt;th&gt;線性馬達（LRA）&lt;/th&gt;
&lt;th&gt;壓電（Piezo）&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;響應速度&lt;/td&gt;
&lt;td&gt;慢（50-100ms）&lt;/td&gt;
&lt;td&gt;快（5-20ms）&lt;/td&gt;
&lt;td&gt;極快（&amp;lt;1ms）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;控制精度&lt;/td&gt;
&lt;td&gt;低&lt;/td&gt;
&lt;td&gt;高&lt;/td&gt;
&lt;td&gt;極高&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;功耗&lt;/td&gt;
&lt;td&gt;中&lt;/td&gt;
&lt;td&gt;低&lt;/td&gt;
&lt;td&gt;極低&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;成本&lt;/td&gt;
&lt;td&gt;$&lt;/td&gt;
&lt;td&gt;$$&lt;/td&gt;
&lt;td&gt;$$$&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;觸覺體驗&lt;/td&gt;
&lt;td&gt;基本震動提示&lt;/td&gt;
&lt;td&gt;多樣化波形，高級感&lt;/td&gt;
&lt;td&gt;細膩微觸覺，極度精準&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;適用手感&lt;/td&gt;
&lt;td&gt;入門級、價格敏感產品&lt;/td&gt;
&lt;td&gt;旗艦手遊、高階手把&lt;/td&gt;
&lt;td&gt;汽車、醫療、精密儀器&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;產品定位聯想&lt;/td&gt;
&lt;td&gt;基本功能&lt;/td&gt;
&lt;td&gt;精緻、旗艦、高端&lt;/td&gt;
&lt;td&gt;專業、精密、科技前沿&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;&lt;strong&gt;選哪種，取決於產品想要傳遞什麼觸感。&lt;/strong&gt; 想做高檔旗艦體驗，選 LRA；成本敏感的消費電子，ERM 依然佔有一席之地；需要極高精細度的工業場景，壓電是未來方向。&lt;/p&gt;




&lt;h2&gt;
  
  
  六、實作：Arduino / ESP32 控制震動馬達
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhfbru6bfkr3ybzlneq0m.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fhfbru6bfkr3ybzlneq0m.jpeg" alt="Arduino 開發板" width="800" height="1066"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;圖7：Arduino UNO，是觸覺回饋專案最常用的開發板之一（Source: Wikimedia Commons）&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;想自己動手玩觸覺回饋？門檻比你想的低。&lt;/p&gt;

&lt;h3&gt;
  
  
  硬體準備（💰含聯盟行銷掛點）
&lt;/h3&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;元件&lt;/th&gt;
&lt;th&gt;用途&lt;/th&gt;
&lt;th&gt;推薦型號&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;開發板&lt;/td&gt;
&lt;td&gt;系統核心&lt;/td&gt;
&lt;td&gt;Arduino Uno / ESP32 DevKit&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;震動馬達&lt;/td&gt;
&lt;td&gt;提供震動輸出&lt;/td&gt;
&lt;td&gt;ERM 5V / LRA 3V&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;驅動晶片&lt;/td&gt;
&lt;td&gt;精準控制波形&lt;/td&gt;
&lt;td&gt;DRV2605（支援 ERM+LRA）&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;週邊&lt;/td&gt;
&lt;td&gt;電路搭建&lt;/td&gt;
&lt;td&gt;麵包板、跳線&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;

&lt;blockquote&gt;
&lt;p&gt;📦 &lt;strong&gt;推薦購買&lt;/strong&gt;：&lt;a href="https://www.sparkfun.com/products/14538" rel="noopener noreferrer"&gt;SparkFun DRV2605L 觸覺馬達驅動模組&lt;/a&gt;（待補聯盟連結）&lt;/p&gt;
&lt;/blockquote&gt;

&lt;h3&gt;
  
  
  基礎程式（Arduino）
&lt;/h3&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="c1"&gt;// 讓馬達震動 200ms，停 100ms，再震 200ms&lt;/span&gt;
&lt;span class="k"&gt;const&lt;/span&gt; &lt;span class="kt"&gt;int&lt;/span&gt; &lt;span class="n"&gt;motorPin&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="mi"&gt;3&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;setup&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;pinMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;motorPin&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;OUTPUT&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;loop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;digitalWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;motorPin&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;HIGH&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  &lt;span class="c1"&gt;// 馬達 ON&lt;/span&gt;
  &lt;span class="n"&gt;delay&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;200&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;digitalWrite&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;motorPin&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="n"&gt;LOW&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;   &lt;span class="c1"&gt;// 馬達 OFF&lt;/span&gt;
  &lt;span class="n"&gt;delay&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;h3&gt;
  
  
  進階控制（DRV2605 觸覺驅動晶片）
&lt;/h3&gt;

&lt;p&gt;DRV2605 內建了大量預設震動波形（click、buzz、squeeze、transition），用 I2C 通訊，只要兩根線就能控制豐富的觸覺效果：&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8ps3f6xmc44yrfhko81p.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F8ps3f6xmc44yrfhko81p.jpg" alt="SparkFun DRV2605L 觸覺馬達驅動模組" width="700" height="700"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;圖8：SparkFun DRV2605L 觸覺馬達驅動模組，支援 ERM 與 LRA，可透過 I2C 編程控制多種震動波形（Source: SparkFun）&lt;/em&gt;&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight cpp"&gt;&lt;code&gt;&lt;span class="cp"&gt;#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;Wire.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
#include&lt;/span&gt; &lt;span class="cpf"&gt;&amp;lt;DRV2605.h&amp;gt;&lt;/span&gt;&lt;span class="cp"&gt;
&lt;/span&gt;
&lt;span class="n"&gt;DRV2605&lt;/span&gt; &lt;span class="n"&gt;haptic&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;

&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;setup&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="n"&gt;Serial&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;begin&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;9600&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
  &lt;span class="n"&gt;haptic&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;begin&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="n"&gt;haptic&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;setMode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;MODE_INTTRIG&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  &lt;span class="c1"&gt;// 內建觸發模式&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="kt"&gt;void&lt;/span&gt; &lt;span class="nf"&gt;loop&lt;/span&gt;&lt;span class="p"&gt;()&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
  &lt;span class="c1"&gt;// 選擇波形：1=click, 3=buzz, 118=smooth&lt;/span&gt;
  &lt;span class="n"&gt;haptic&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;setWaveform&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="mi"&gt;118&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;  
  &lt;span class="n"&gt;haptic&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="n"&gt;go&lt;/span&gt;&lt;span class="p"&gt;();&lt;/span&gt;
  &lt;span class="n"&gt;delay&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="mi"&gt;500&lt;/span&gt;&lt;span class="p"&gt;);&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;






&lt;h2&gt;
  
  
  七、結尾
&lt;/h2&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F342ve88qy6ud21nbqb3v.jpeg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F342ve88qy6ud21nbqb3v.jpeg" alt="人與科技互動的溫度" width="800" height="533"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;圖9：人與科技的互動，觸覺讓冰冷裝置有了溫度&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;觸覺回饋讓冰冷的螢幕有了溫度——下次手機震一下，試著感受一下：那一下，就是科技在觸摸你。&lt;/p&gt;




&lt;p&gt;&lt;em&gt;標籤：#觸覺回饋 #HapticFeedback #Arduino #線性馬達 #人機互動 #觸控技術 #科技原理&lt;/em&gt;&lt;/p&gt;

</description>
      <category>gamedev</category>
      <category>mobile</category>
      <category>ui</category>
      <category>ux</category>
    </item>
  </channel>
</rss>
