新書預告:超圖解Arduino互動設計入門(暫定)

文∕趙英傑

約莫一年前的今天,我開始著手規劃有關Arduino互動設計的書籍,期間經歷一些事情,工作斷斷續續,最近終於陸續將稿件交給編輯審閱,在撰寫的過程中,我也曾將幾個單元請沒有電子、電機背景的人士試讀,並獲得許多寶貴的意見。

本書將由《旗標出版股份有限公司》出版發行,採雙色印刷,適合高中以上,沒有電子電路基礎,對微電腦、電子DIY及互動裝置有興趣的人士閱讀。

打好基礎,超圖解電子電路觀念

對於實驗用到的電子電路觀念,本書以圖解的方式解說,清楚易懂。例如以下是二級體元件的概念圖解:

二極體元件圖解

又如,書本範例採用一個「串列轉並列」的74595 IC,有別於傳統使用時脈圖的解說方式,筆者用工廠的生產線來比喻此IC的內部運作情況,最後再導入時脈圖並加註說明,此為系列解說圖中的一張:

74595 IC內部運作方式

超圖解程式設計觀念

對於Arduino用到的程式設計觀念,一樣使用圖解的方式讓讀者了解,例如以下是解說字元與字串陣列的圖解:

字元與字串陣列圖說

底下則是處理「拍手控制」的程式流程圖解:

偵測拍手的程式流程

擬真手繪電路組裝圖

本書以手繪方式呈現各式電子元件以及接線,並提示元件的辨識方法(如:電阻的色環),讓讀者按圖完成接線。同時,書本也會提供對照的電路圖,讓讀者熟悉正規的電路圖,以便能看懂其他電子電路相關資源,進而自行組裝電路。此為聲音感測(麥克風訊號放大)電路的圖解:

麥克風放大器的麵包板組裝電路

有個知名的繪製麵包板電路的免費軟體,稱為"Fitzing",能輕易地完成麵包板電路上的佈線圖,但我想要在書本上強調手繪與DIY的質感,所以並未採用這個軟體,也因此增長寫作時間。

素材不設限、創意大無限

有人拿Arduino和樂高機器人(LEGO MINDSTORMS)套件來比較。

樂高積木可以堆積出千變萬化的創作,但前提是,所有零件的規格都必須是「樂高積木」。以馬達為例,樂高公司只提供幾種選擇。

相較之下,在Arduino上,我們可以轉接任何形式的馬達(甚至油壓動力裝置),表現形式也較不受限。你可以拆解電器或玩具,將它改造或添加新的功能,甚至運用廢棄的材料,用最廉價的方式,展現與眾不同的驚豔。例如,把電動挖土機玩具,改裝成手機藍牙遙控車,或者替家裡的電器加上Arduino與網路卡,從遠端遙控或監控。

原本平凡無奇的玩具或電器,會因為你的巧思灌注,在你的手中獲得新的生命。它可以是具有正經、嚴肅的實際功用,也可以是很單純、童稚的趣味。

下圖是改造田宮模型出品的六腳昆蟲,將原本的線控改成手機藍牙無線遙控的樣子:

藍牙遙控田宮六腳昆蟲

正因為Arduino沒有嚴格限制周邊介面的規格,即便是相同系列的商品,控制方式(程式碼寫法)可能不一樣。

例如,有個常見的馬達控制IC,型號是L298N。市面上採用這一款IC的馬達控制板有數種不同的形式。為了避免讀者買到的控制板和筆者的不同,本書除了介紹橋式馬達控制介面原理,以及L298N的接腳與功能之外,也列舉兩種常見的接線方式與控制板:

L298N馬達控制板之一

L298N馬達控制板之二

如此一來,讀者可以使用現成的馬達控制板來組裝,也能自行DIY。

樂高積木的感應器和控制器都是「黑盒子」,使用者不需要了解其內部的原理,只要辨別「信號輸入」和「訊號輸出」端子。相較之下,Arduino的玩家多少都要懂一點電子電路。

沒有僵化的規則、沒有標準答案

筆者最初的規劃與寫作方向側重於DIY:自己組裝Arduino微電腦控制板、自己組裝網路卡、各種感測器與控制器、改造現有的玩具和家電…等等。但有鑑於本書的讀者定位在高中職以上的初學人士,要讓設計學院的學生自行焊接每個元件,無論是在課堂或者家裡,對教師和學生,都是一大挑戰。

底下是筆者製作的幾個小型Arduino微電腦控制板,我大都採用俗稱「洞洞板」的萬用電路板來製作,這樣可以省去佈線、感光、蝕刻、裁切和鑽孔等繁瑣的步驟(註:感光和蝕刻過程使用的化學藥劑也有害環境)。

各種自製的Arduino微電腦板

底下這一款則是用現成的IC轉接板來改造、製作微型的Arduino微電腦板:

自製的微型Arduino板

這些自製的板子,除了一個之外,都沒有出現在書裡面。為了降低讀者學習Arduino的門檻,書本的實作單元,幾乎都採用市面販售的標準Arduino微電腦板

市售的Arduino微電腦板

本書的核心是Arduino微電腦,但每個單元所涉及的背景知識並不限於微電腦,以「網路控制家電」或者「家庭自動化」為例,書本內容不只是介紹如何組裝硬體,然後開始寫程式。

關於製作網頁所需的HTML語言概念、網頁表單,還有網路的基礎概念,像是通訊協定、IP位址和MAC實體位址、傳遞訊息的GET和POST方法…等等,都要有一定的基礎,才能通盤了解從瀏覽器連線到Arduino微型網站伺服器之間的控制過程。

底下是筆者在「網路控制家電」單元中的網路基礎部分所繪製的一張圖解說明:

網路裝置連線

這張圖後來被拆分,並補充其他圖解來說明網路連線的相關概念。

Arduino + Flash 互動更精采

Flash是一款優秀的多媒體開發工具,它具備存取電腦上的麥克風攝影機的功能,因此,互動設計師可以用Flash製作出體感互動影片,例如「擴增實境版的時尚魔女遊戲機台」,以及「把Webcam網路攝影機畫面轉換成ASCII文字的Flash影片」(雖然和本書無絕對關係,但筆者要強調,Flash不只能做網頁動畫,也可以用來開發iPhone, iPad和Android等行動電話和平板電腦的App,請參閱:Android手機系統適用的開放原始碼紅外線快門與縮時攝影控制器)。

有些互動效果是Flash本身辦不到的,例如,隨著環境光源或者溫度變化的互動影片。替Arduino接上光敏電阻並與Flash連結,就能讓電腦隨著光線強弱,展現撥雲見日的動畫效果,抑或讓荷花動畫隨著光線逐漸明亮而張開花瓣,甚至讓小女生表現從「雙手掩面」到展現「陽光般燦爛的笑容」等互動影片效果。

隨著環境光源變化的荷花

本書將以Flash的ActionScript 3.0語言以及三個互動影片,示範與說明Flash和Arduino的整合互動方式。Flash部分的主程式碼,筆者已包裝成獨立的外部類別程式檔(.as檔),本單元著重在Flash與Arduino的溝通介面程式解說。

書本目錄

目錄與章節名稱暫定如下,除第一章尚未動筆,其餘章節各約完成90%,實際內容將視編輯需要而調整。書名、頁數和定價都未定案。

  • Ch1 Arduino掀起微革命
  • Ch2 認識電子零組件
    電子工作入門
    圖說電子零件
    認識與使用萬用電錶
    基礎焊接
  • Ch3 Arduino程式設計入門
    開關電路
    人體紅外線感應電路
  • Ch4 霹靂燈與控制結構程式
    跑馬燈與LED七段顯示器
  • Ch5 序列埠通信
  • Ch6 條碼音樂盒與拍手控制開關
    光感應與聲音互動實驗
    類比信號處理
  • Ch7 LED廣告看板動畫
    LED矩陣與SPI通訊
  • Ch8 LCD顯示器實驗
  • Ch9 製作數位量尺與環境監測器
  • Ch10 製作自走車
    直流馬達與變頻控制技術
  • Ch11 用Wii控制器操控機器手臂
  • Ch12 萬用紅外線遙控器製作
  • Ch13 手機藍牙遙控機器人製作
    物聯網與無線電波通訊實驗
  • Ch14 RFID與Flash互動遊戲製作
    自訂Flash通訊格式
    使用標準Firmata通訊格式
    Flash調光旋鈕
    Arduino + Flash互動遊戲
  • Ch15 微網站與網路遙控家電實驗

132 thoughts on “新書預告:超圖解Arduino互動設計入門(暫定)

    1. 感謝各位,wow~壓力好大。
      我現在還在整理、補充各章節內容,有些部分可能會改寫,所以我目前也不好意思跟編輯聯絡 :-p

      thanks,
      jeffrey

    1. hi andy:

      目前仍在校閱並修改部分單元內容,
      加上美術編排時間,
      保守估計大約明年一月上市,
      謝謝!

      thanks,
      jeffrey

  1. 老師好久不見

    前幾個星期剛買一塊2012R3版的Arduino實驗板

    不過一直沒空去玩

    比較想了解Arduino實驗板和flash做通訊

    網路上這方面的資料好像不多

    期待老師新書上市喲 :D

  2. 老師我最近買了一個VGA轉USB的東西

    這是一種從A電腦輸出的VGA訊號轉成USB訊號

    再由B電腦端,擷取網路攝影機訊號畫面用的應用程式,顯示出A電腦的VGA訊號

    用flash的抓取網路攝影機,卻怎麼也抓不到他的訊號畫面

    可是網路攝影機的電腦端應用程式,卻又可以抓到這個VGA轉USB的畫面?

    在網路上找不到這方面的資料,因此求助老師

    1. ActionScript 3.0的Camera類別有個names屬性,包含所有連結到本機的webcam名稱,程式邏輯大致如下:

      1. 請先用length屬性查看有幾個webcam:

      Camera.names.length;

      2. 假設index儲存目前使用的webcam編號,底下的敘述將能取得它的名稱並引用該webcam:

      var name:String = Camera.names[index];
      var cam:Camera = Camera.getCamera(index);

      have fun!
      jeffrey

  3. 老師很久以前我問過你flash全螢幕後支援的鍵盤按鍵有哪些?

    忘記了~在麻煩老師教學一次 :cry:

    謝謝老師 :D

    1. hi boy:

      在全螢幕狀態下可使用的按鍵為:Tab, 空白鍵和方向鍵,ESC用於離開全螢幕。

      thanks,
      jeffrey

  4. 老師能在百忙之中,編寫這本Arduino實驗板的教學書,真是Arduino實驗板同好的福氣,上市日期不是問題 :D

    關於webcam的問題我依照老師的教學編寫下列語法
    var index = Camera.names.length;
    var name:String = Camera.names[index];
    var cam:Camera = Camera.getCamera(index);
    但是卻出現如下錯誤:
    1152: 已繼承定義 flash.display:DisplayObject.name 於 namespace public 中發生衝突。
    請問老師該如何改進?

    1. 抱歉,那錯誤訊息的意思是「顯示物件」已經定義name屬性,所以要改用其他變數名稱。

      底下的程式碼將能列出接在你電腦上的全部webcam編號和名字:

      var cameraName:String;
      var totalCameras:int = Camera.names.length;
      for (var i:int=0; i

  5. 老師你給的語法似乎有錯
    我改成如下:
    var cam:Camera = Camera.getCamera();
    my_video.attachCamera(cam);
    camName_txt.text=cam.name;

    當插入網路攝影機,開啟SWF可以顯示出攝影機擷取的畫面,
    並且camName_txt動態文字欄位,
    可以讀到網路攝影機的名稱為ZSMC USB PC Camera (ZS0211)

    當拔掉網路攝影機,換插入VGA轉USB裝置,
    開啟SWF後無法顯示出VGA轉USB裝置的擷取畫面,
    camName_txt動態文字欄位,讀到的名稱為VGA2USB V2U967295,
    不知什麼原因就是讀取不到VGA轉USB裝置的畫面,
    電腦端用的應用程式,卻又網路攝影機和VGA轉USB裝置的畫面都抓的到,
    我開啟控制台裡面的掃瞄器與數位相機,也會正常顯示VGA轉USB裝置的相關資訊,
    老師這題是不是無解了?

    1. hi boy:

      那個語法沒錯,只是,如果你直接複製網頁上的程式碼,需要將它裡面的雙引號刪掉,在Flash中重打一遍。

      至於那個VGA轉USB設備的問題,我沒有遇過,只好請你用其他Webcam了。

      thanks,
      jeffrey

  6. 老師您好~我是看了您的新書介紹
    連我這個摸都沒摸過的門外漢都有興趣了
    不知道1月份可以在哪些通路較早買到呢???

    1. hi yu lin:

      謝謝,書本內文已大致底定,但因為出版社的編輯還在忙著其他事情,要等到一月才能開始這本書的編輯作業,所以出版日期會再延後一段時間。

      thanks,
      jeffrey

    1. hi andy:

      我昨天跟出版社編輯聯繫,
      原負責的編輯有其他專案尚未完成,
      所以將轉交給另一位編輯負責,
      希望農曆年節前可以上市。

      thanks,
      jeffrey

    1. hi angus:

      旗標出版社的編輯在一月底時跟我說,
      他二月開始才會全心全力看稿,
      按照這個進度,
      大概三月才會上市吧,
      謝謝。

      新年快樂!

      thanks,
      jeffrey

    1. hi andy:

      我是徒手用Flash畫的。是的,我採用的畫風和Arduino原創者Massimo Banzi撰寫的「踏進互動科技世界-使用Arduino」(Getting Started with Arduino,正體中文版由旗標出版)一樣,都是手繪,不是用現成的樣板套上去的。

      have fun!
      jeffrey

  7. 好期待啊,13年前買了FLASH 5撼動網頁寶典就一直follow你了,很喜歡書裡的插圖,希望能趕快上市:)

    1. wow~13年前,Flash正從網頁動畫走向RIA和線上遊戲的光輝歲月,沒想到有一天會到另一個轉捩點…
      keep walking…

    1. 拍謝啦~美編將近排版完畢時,發現頁數超過600頁。
      出版社原訂一共14章,約450頁。
      我後來增加內容到18章,外加四篇附錄。
      我們正在努力做最後修訂。

      thanks,
      jeffrey

    1. hi 小哲:

      1. 三月應該會上市。
      2. 沒有。我有買一塊USB Host Shield擴充介面板(擴展板),嘗試過Android Accessory Development Kit (ADK)在手機上調整Arduino的LED亮度。USB Host Shield介面卡的應用程式庫不多,而且主要是USB介面的相機控制,以及遊戲搖桿的介面,像是透過USB藍牙連接Wiimote以及PS3無線手把。對我來說,許多應用大多可用其他的介面方案替代。例如,和Android或iPhone手機相連,我覺得直接用Arduino藍牙介面板比較方便。

      我覺得採用Linux/Android作業系統的ARM嵌入式系統開發板,以及Raspberry PI和CubieBoard等產品,比較適合用於USB Host的相關應用,因為Linux作業系統本身有許多USB裝置的驅動程式和應用程式介面(API)。

      have fun!
      jeffrey

    1. hi bob:

      書本已校閱、編排完畢,封面也設計好了。
      應該下週就會進印刷廠。
      待書籍出版後,我會再補充相關資訊,
      謝謝!

      thanks,
      jeffrey

    1. 其實在我小學的時候,就有同學在百貨公司買電子套件回家自己組裝。

      那時候,台中市自由路上有一家「財神百貨」樓上的玩具部就有販賣像「超小型竊聽器(迷你無線麥克風)」、千人震(直流電升壓模組)、雨天報知機、救護車音效模擬器…等電子套件。某些電子套件,電子材料行都還有販售,而且好像數十年如一日,包裝和內容物都不曾改變過。

      同一時期,電視在廣告「動動腦」電子積木套件,廣告歌詞催眠似地重複唱著:

      「動動腦呀、動動腦、動呀動呀動動腦…」

      以當時的價格來說,應該不算便宜,但我還是死皮賴臉地央求父母親買一組給我。印象最深刻的是,我按照動動腦的說明書,在餐桌上組裝好一台收音機,當它的揚聲器開始播送電台的音樂時,在旁邊吃東西的母親感到有些驚訝地笑著說:「呦,這東西可以組成收音機啊?還不錯嘛~」

      以前我們家對面住了一個會用巴爾沙木,自己製作線控模型飛機的大哥哥。當時的無線電遙控設備應該很稀有,他製作的飛機翼一端用鋼絲(我猜啦)連接握把,當模型飛機的引擎啟動時,他就抓著握把跟著飛機轉圈圈,或者透過握把,操控飛機做出八字飛行或其他特技。

      國中二年級時,我們班上有一位同學不僅訂閱「音響技術」雜誌(後來更名為「高傳真視聽」),而且還透過郵政劃撥購買音響套件自己組裝。有一天他告訴我,他在組裝後級擴大機的電容器時,不小心把正負極接反了,接上電源沒多久,電容器就爆炸了。

      後級擴大機的巨大電容器炸開來的景象應該挺可觀的。

      可能是當時的電子DIY雜誌不多(呃,現在也沒進步多少),「音響技術」雜誌甚至還連載8位元Apple II相容機種的製作文章,我記得那個相容電腦好像叫做”FROG”(青蛙)。

      然而,日新月異且價格日益低廉的電子產品,讓動手做變得多餘(甚至受罪)。音響DIY套件逐漸從電子材料行消失,「音響技術」雜誌也從「技術創作」型轉變成「消費享受」型的「高傳真視聽」雜誌。

      現在提到手作或DIY,一般人通常會聯想到木工、組合家具、壁貼、手繪、針織創作或創意市集。筆記型電腦方便又便宜,好像連大學新鮮人都很少組裝PC了。

      換個角度來想,現在一個微電腦控制板只要三、四百元,而採用Androrid系統的雙核心智慧型電視棒,也只要台幣一千多元,系統價格下滑,軟體和程式語言也變得更親民,人人都可以輕鬆體驗微電腦控制的樂趣,或許我們正迎向一波電子創作復興時期。

      happy hacking!
      jeffrey

  8. 請問一下,『超圖解Arduino互動設計入門』會在博客來上架嗎?
    這幾天我在博客來上似乎沒有看到上架的情況,若沒有的話,
    小弟就去別的書店購買了~

    1. 我想應該會(這我要詢問出版社),
      但是不知道何時會上架…
      已經入庫,我也還沒拿到書…

      thanks,
      jeffrey

  9. 我是在PCHOME買的~速度比較快
    剛拿到書~來研究一下~有幾頁都以突破版面的方式來呈現~但~腳位都切掉了沒印到用標住的有點不習慣(D-14)
    內頁是藍黑雙色套印 跟一般的工具書差不多~
    先前我都用0023版本來用
    語法解釋的地方很清楚

    好書一本

  10. I just found this book in global.pchome.com.tw , I browse through some of sample contents , I think it’s better than the arduino reference books I bought from amazon , really easy to understand and no as complex than the “apress” arduino series , I will recommend to my co-worker , a reader from Penang , Malaysia .

    1. I was browsing LEGOLAND Malaysia official webpage before getting your message. Thanks for your comments, and I feel sorry for some errors in the book.

      You must feel awesome for living in the best retirement destination in Asia :-)
      thanks,
      jeffrey

  11. 英傑老師,我想請問您一個問題

    我想學Arduino系統的起因是我想自己打造一把星際大戰裡的光劍基板

    我目前想到的功能是 LED控制,開關電源音效,揮劍音效

    LED控制的部分對於Arduino來說,沒有太大的問題。

    但是對於控制音效的部分,Arduino也可以一併處理嗎?

    目前是想說,找Mp3模組或是Wav模組之類的….看可不可以搭配震動感應器

    一起寫在Arduino的基板裡,但是我對於Arduino可不可以辦到這件事,卻因為我是初學者,無法確定可不可能辦到。

    您是前輩,您覺得Arduino可以辦到嗎? 您能給個建議嗎?

    這是有人做出來的音效卡模組 (但是我不知道是什麼系統的)
    http://www.youtube.com/watch?v=hKqzIprIjhg

    1. hi bullets:

      YouTube有一段採用Arduino和WaveShield(聲音擴充卡)以及加速度感應器所製作的光劍示範影片:

      這是光劍內部的WaveShield(聲音擴充卡):

      此光箭的製作者在影片簡介裡提到,相關的電路和程式碼都放在他的個人網站,不過我剛剛連不上(他的網站伺服器主機裝在家裡):

      http://www.cero-uno.com/projects/lightduino/lightduino.html

      have fun!
      jeffrey

  12. 老師您好,我已經去把您書買回家了,恰巧公司遇上一個問題,我想應該可以透過書中16章來解決,但是還是要向您確認製作細節。

    公司上班時間9點到6點,廠長是責任制,不一定要9點準時打卡,但是底下的技術員都必須9點前準時打卡,偏偏技術員流動率高,因此公司雖有門禁系統,但是門禁之外仍有一道鐵門阻隔,目前這道鐵捲門只能使用鑰匙打開。
    因為廠長是鑰匙保管人,並不想將鐵門鑰匙交給技術員,因此有了遠端開關鐵門的構想。

    我確定arduino可以控制繼電器,來進行鐵門的開關程序(您書裡有寫)

    針對遠端遙控這件事,我想跟您請教一下,Arduino+W5100可以架微型網站
    您書中寫的192.168.1.25 (我知道內部網路上的Arduino)

    但是我要的是網際網路的遙控,那我是否將Arduino進行port forwarding(通訊埠傳發端口映射)的方式,就可以將公司的光世代固定ip轉接到Arduino上,我有需要特別開訂什麼port嗎?

    您在書中16-6頁有段程式碼 WebServer(“”,80) 這個80應該就是指定的80port
    如果公司的80port已經指定給另外一台做網頁伺服器,那我應該可以指定Arduino為8080或是8000等port,來施行遠端遙控的可能吧!? (想跟老師確定這想法是否正確)

    1. 我之前是用IP分享器的DMZ做實驗,DMZ會開啟所有port,而且無法替不同port設定個別對應的IP。你可以改用IP分享器的Virtual Server(虛擬伺服器)的功能來對應。正如你提到,原有的伺服器設定在80,Arduino可設定在8080並轉到它的IP,每個IP分享器廠牌的設計介面都不太一樣,可能需要參考設定說明書。

      have fun!
      jeffrey

  13. 老師,我已經去買好Arduino Uno R3 + W5100 R3 + LED發光二極體一個
    我想重現 16-4的範例,利用網路點亮LED
    但是我將範例直接用Arduino1.0.5版編譯與上傳的時候,卻無法編譯…..
    這是為什麼呢?

    diy16_4.ino:6:23: error: WebServer.h: No such file or directory
    diy16_4.ino:7:23: error: Streaming.h: No such file or directory
    diy16_4:15: error: ‘WebServer’ does not name a type
    diy16_4:17: error: expected constructor, destructor, or type conversion before ‘(‘ token
    diy16_4:23: error: expected constructor, destructor, or type conversion before ‘(‘ token
    diy16_4:25: error: expected constructor, destructor, or type conversion before ‘(‘ token
    diy16_4:27: error: variable or field ‘defaultCmd’ declared void
    diy16_4:27: error: ‘WebServer’ was not declared in this scope
    diy16_4:27: error: ‘server’ was not declared in this scope
    diy16_4:27: error: ‘WebServer’ has not been declared
    diy16_4:27: error: expected primary-expression before ‘char’
    diy16_4:27: error: expected primary-expression before ‘bool’

  14. Sorry,趙老師

    因為我仔細看了看英文後,發現到WebServer.h: No such file or directory是指找不到相關函數,Streaming.h也是找不到,我才發現原來我的Arduino裡面沒有這個程式庫,在書裡的光碟已經有附上這個程式庫了。

    剛好我是因為需要網路控制家電的程序,所以直接跳到16章來看,所以忽略了要安裝程式庫進去Arduino1.0.5,目前我已經完成安裝跟輸出,LED燈也是網路控制會亮。

    不過,我覺得Arduino上傳程式限制也不少,我每次要上傳程式,一定要拆掉W5100網路卡,不然上傳肯定失敗,老是說我用錯機板,要是遇上反覆測試,拆拆裝裝也是很麻煩的。

    1. 咦?請問你用的是哪一種板子?我用Arduino Duemilanove板,並不需要先拆下乙太網路卡,也能上傳程式。

      thanks,
      jeffrey

  15. 我買的是
    2013 Arduino UNO R3
    2013 Arduino Ethernet Shield W5100 R3 網路擴展板 支持POE功能 板載miniSD口 支持UNO/ Mega2560
    大陸副廠製造,但是賣家強調說基板都是依造原廠電路圖打造
    連背面也仿原廠漆上白色與圖樣的樣子,一整個山寨到了底
    從外觀上與義大利原廠無異。

    我把兩張板子組合起來,若是單選UNO 無法上傳檔案,但是單純傳UNO是沒問題的。
    我還是搞不清楚為什麼兩張高仿的山寨基板合併後無法上傳檔案。

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *