2012年1月5日 星期四

Arduino、RS232 與 C# 傳輸 - Communicates between the Arduino and C# by RS232

‧前言:藉由 How to interface the Arduino with C# 這篇教學範例,記述其操作步驟。
   感謝原作者,Thanks John。

‧目的:由 C# 經 RS-232 傳輸字串至 Arduino,再由 Arduino 回傳到 C# 顯示。

‧主要工具:
   - Arduino UNO x 1
   - Visual C# 2010 Express (Google搜尋下載試用)

‧參考資料:
   - Visual C#2010 精要剖析
   - Interacting with the Arduino with C#  <<原文請點選

‧流程說明:
1. 於Arduino撰寫程式,功能為接收來自 C# 的資料,再回傳出去。

2. 啟動 Visual C# 2010 Express - 新增專案 - Windows Form 應用程式。
3. 新增控制項,包括:
   - Label 控制項 x 2
   - comboBox 控制項 x 2
   - button 控制項 x 4
   - textBox 控制項 x 2
   - serialPort 控制項 x 1

4. 設定各控制項之屬性,如圖:


5. 加入程式碼:
5.1. 提供選取通訊埠和傳輸速率,在 InitializeComponent(); 後加入設定通訊參數之程式碼:

5.2. 在 btnStart "開始" 按鈕上點選兩下,於 Click 事件處理程序中加入啟動通訊之程式碼:

5.3. 在 btnStop "結束" 按鈕上點選兩下,於 Click 事件中加入停止通訊之程式碼:

5.4. 在 btnSend "傳送" 按鈕上點選兩下,於 Click 事件中加入傳送資料之程式碼:

5.5. 先點選 serialPort1,在屬性視窗的事件(閃電圖示)中,DataReceived事件上點選兩下,即在 DataReceived 事件處理程序中,與事件前加入通訊埠處理資料之程式碼:

5.6. 在 btnClear "清除" 按鈕上點選兩下,於 Click 事件中加入清除資料之程式碼:

6. 裝置連線:
7. 預期結果:

2012年1月3日 星期二

Arduino 與羅盤、加速計之整合 - Arduino + HMC6352 compass + ADXL335 accelerometer

  • 程式撰寫邏輯:
    - 將上述兩個範例程式合併。
    - 頭部的傾斜角僅量測X與Y軸向傾斜角(前後俯仰、左右擺頭),故僅接類比A0、A2,並同步修改範例。
    - 在輸出羅盤、X與Y軸加速度三個數值前,分別冠上"C"、"X"、"Y"作為識別標籤。
       如輸出C20X500Y550,代表方位20度、X軸加速度500單位、Y軸加速度550單位。
  • 程式碼:

Arduino 頭盔 XY 位置輸出控制器

  • 目的:以羅盤和加速計偵側頭部之轉向和傾斜角度,藉由 Arduino 傳輸至 PC 顯示 X、Y 位置。
  • 架構示意圖: