跳到主要內容

精選文章

【公開聲明】關於近期網路特定言論與個資洩漏事件的說明

大家好,我是江舜智(紅色死神)。 近期有許多長期關注我的朋友、學生以及合作夥伴向我反映,網路上有特定人士(Threads 帳號 @drama.note)持續在各類與事件無直接關聯的討論串、課程資訊以及公開貼文下方留言,並引導他人前往我的個人網站與公開平台,同時以負面標籤及特定敘事方式討論我個人。 由於相關行為已持續相當長一段時間,甚至延伸至現實生活層面,對我的合作單位、教學夥伴以及部分學生造成困擾與壓力,我對此感到遺憾,也對受到影響的朋友們表達歉意。 因此,我希望藉此機會向所有關心此事的朋友,說明我的立場與態度。 一、關於事件本身:理性討論永遠受到歡迎 多年來,不論是在軟體開發、網頁前端教學領域,或是經營「Uniform Map 制服地圖」、進行攝影創作與分享個人觀點時,我始終相信公開透明與理性交流的重要性。 我並非完美的人,任何人都可能有思慮不周或與他人意見不同的時候。過去關於網站經營模式與相關議題,網路上確實出現過不少討論與質疑,而相關事項也曾進入司法程序接受調查。 經檢察機關完整調查後,最終依法作出不起訴處分,案件已告確定。 這代表相關指控經過司法審查後,並未認定存在違法情事。即使如此,我仍然願意以開放的態度面對外界意見。 如果有人對於我的教學內容、網站運作方式,或任何公開言論抱持不同看法,我始終歡迎在尊重彼此的前提下進行公開且理性的討論。 若有任何值得檢討與改進之處,我也願意虛心接受建設性的批評與建議。 二、關於持續性的騷擾行為:應以事實與法律為依據 我認為理性討論與持續性騷擾之間,存在明確界線。 近一年來,特定人士的部分行為已不再只是針對議題提出意見,而是逐漸演變成持續性的人身攻擊與現實層面的干擾,包括: • 在與事件無直接關聯的課程公告、教學資訊及各類公開討論串中,反覆張貼我的個人資訊與相關內容。 • 主動聯繫我的合作單位與工作相關機構,對其施加壓力或進行干擾。 • 在司法程序進行期間及收到相關通知後,仍持續以指名道姓方式發布涉及人格評價與攻擊性的言論。 我尊重每個人表達意見與監督公共議題的權利,但我同樣認為,任何討論都應建立在事實基礎上,並尊重法律程序與他人的基本權益。 無論支持或反對我的人,都有權自行查閱公開資訊、了解案件經過並形成自己的判斷,而不是透過片面標籤或情緒性指控來取代事實。 三、我的處理方式 對於相關爭議,我始終選擇透過法律與制度來處理,...

Arduino 與 flash 溝通- 使用 funnel.cc

因為自己flash比較熟的關係,聽到老師說可以用flash去控制Arduino,就想說可以來試試看,簡單的硬體控制配上漂亮的桌面UI,應該也會有點看頭。

這次使用funnel.cc,先到官網的Download 下載整包的funnel.zip ,然後解壓縮到電腦上。

要使用先把 libraries\actionscript3\src\ 一個funnel的資料夾,放到要寫的程式的同一個資料夾,或是在flash設定參考的class路徑。

funnel1

因為flash安全性的問題,沒辦法跟硬體直接溝通,所以要放執行壓縮檔內的Funnel Server讓兩者可以溝通。
funnel2

funnel3
執行後要設定用哪塊板子跟port。

然後要把StandardFirmata燒到Arduino裡。
funnel4
funnel5

環境弄好了,接下來就開始寫code了,先寫一個可以控制led開關的flash,把 pin 接在 11 角位。

寫一隻as檔控制硬體。
  1. package    
  2. {   
  3.     import flash.display.MovieClip;   
  4.   
  5.     import funnel.*;   
  6.     import funnel.gui.*;   
  7.     import funnel.ui.*;   
  8.   
  9.     public class example1 extends MovieClip   
  10.     {   
  11.         private var arduino:Arduino;// Arduino   
  12.            
  13.         //private var led:LED;   
  14.   
  15.         public function example1()   
  16.         {   
  17.             var config:Configuration = Arduino.FIRMATA;//設定Arduino為Firmata   
  18.   
  19.             config.setDigitalPinMode(11, PWM); //設定11角為輸出   
  20.   
  21.             arduino = new Arduino(config);   
  22.             arduino.addEventListener(FunnelEvent.READY, onReady); //設定一個Ardunio的Ready事件   
  23.   
  24.             // 一個可以監看所有角位的儀表板   
  25.             var gui:ArduinoGUI = new ArduinoGUI();   
  26.             addChild(gui);   
  27.             arduino.gui = gui;   
  28.         }   
  29.   
  30.         public function onReady(e:FunnelEvent):void  
  31.         {                  
  32.                
  33.         }   
  34.     }   
  35. }  

其中的gui是用來監控訊號有沒有正常輸入,在測試的時候很方便,正式的話再看情況要不要留著。

在flash的舞台加上一個按鈕,然後寫控制的led亮暗的code。

  1. import flash.events.MouseEvent;   
  2.   
  3. btn_LED.addEventListener(MouseEvent.CLICK, btn_LED_Click); //設定按鈕的聆聽事件   
  4.   
  5. var isLight:Boolean = false// LED 開關為關   
  6.   
  7. function btn_LED_Click(event:MouseEvent):void  
  8. {   
  9.     isLight = !isLight; // 開與關相反   
  10.        
  11.     if (isLight)   
  12.     {   
  13.         arduino.digitalPin(11).value = 1; // 11角位為高電位   
  14.     }   
  15.     else  
  16.     {   
  17.         arduino.digitalPin(11).value = 0;   
  18.     }   
  19. }  

都寫好了就測試看看
led

如果都正確的話,按按鈕可以開關led燈,旁邊的面板則是剛提到的gui,可以觀察訊號是否正確改變。

留言

熱門文章