[Arduino] Arduino Yún 基礎教學

Arduino Yún 是一款基於 ATmega32U4 和 Atheros AR9331的單片開發板。亮點在於具有有線與無線通訊的能力,具備了一個乙太網路接頭與 Wifi功能。 並且具有雙處理器,此片開發板基本上處理效能是可以與 Raspberry Pi 做抗衡,但如果單拿此張板子做 GPIO控制,那可就大大浪費了他的能耐。

本篇文章主要會和大家分享如何從 0 開始快速上手 Arduino Yún 使用方法。首先就先從硬體規格開始做個介紹

Arduino Yún 硬體規格

這款開發板有內置Ethernet, Wifi,一個 USB 端口,一個 Micro 插槽, 20個輸入/輸出端口(其中7個可以用於 PWM, 12個可以用於 Analog Input Channels),1個 MICRO USB, 1個ICSP插頭,3個 Reset 開關。並且包含兩個處理器,相關規格細節如下所述

Arduino 微控制器規格
  • Microcontroller : ATmega 32U4,用於處理 Arduino I/O 功能
  • Operating Voltage : 5V
  • Digital I/O Pins : 20
  • PWM Channels : 7
  • Analog input Channels: 12
  • Flash memory : 32 KB
AR9331 微控制器規格

這顆 MCU 有 64mb 的 DDR2 RAM, 用來當作 web server 或是處理 camera 影像串流可說是相當足夠

  • Microcontroller : Atheros AR9331 可以運行一個基於 Linux 和 OpenWRT 的操作系統 Linino,Yun 上的 16mb flash 已經包含了這個 linux 作業系統, 且可以支援 python 並且透過 package manager 來自由安裝其他軟體,
  • Architecture : MIPS @400MHz
  • Ethernet : IEEE 802.3 10/100Mbits/s
  • WiFi : IEEE 802.11b/g/n
  • USB Type-A : 2.0 Host
  • Card Reader : Micro-SD only
  • RAM : 64MB DDR2
  • Flash Memory : 16 MB
開發板外觀

以下兩張圖是介紹 Arduino Yún 的硬體配置圖, 圖中將一些重要的硬體配置標示出來,20個輸入/輸出端口(其中7個可以用於 PWM, 12個可以用於 Analog Input Channels) Imgur Imgur

Arduino Yún pinout

Arduino 的硬件接口可以很方便的連接各種各樣的 Shield 和 Grove 模塊。有多個 GPIO (General Purpose Input/Output) 腳位能夠和 Sensor 進行溝通、控制,也就是透過 I/O pin 來執行訊號的輸入或輸出。

簡單範例如下,利用類比訊號 API 來讀取 接在 A0 腳位的 Sensor 資訊:

analogRead(A0);

開發版的 pinout 圖如下所示: Imgur

Photo by pighixxx

如何開始

Step 1:設定 Yun 連結你指定的 Wifi 網路

依照以下步驟匯入範例:

  1. 先將 Yun Micro USB 與 PC 接上,此時 Yun 預設處於 AP 模式,可以提供電腦去連接Imgur
  2. Yún接上電源後,如果第一次使用此時 WiFi 處於 AP 模式,所以可從電腦連接,其分享出來的 SSID 會類似 Arduino Yun-XXXXX Imgur
  3. 開啟瀏覽器輸入網址192.168.240.1或是http://arduino.local,即可看到登入畫面,預設密碼是arduino Imgur
  4. 將 Yun 連結你指定的 WiFi 網路,並重新啟動Imgur
Step 2:設定Arduino Yún 開發板環境

Arduino 系列所採用的開發工具皆為官方所提供的 Arduino Software (IDE),操作步驟如下所示:

  1. 下載開發工具Imgur
  2. 安裝後使用micro-USB與電腦連線,利用我的電腦確認目前連線serial port
    Imgur

程式撰寫

本篇範例先介紹基本的 LED 燈號控制,後續會繼續加上網路模組以及如何在 Arduino Yun 上跑一個小型的 HTTPD Web service ,並透過 REST API 去控制 Sensor。

Step 1:Import or Create new program

依照以下步驟匯入範例:

  1. 開啟 Arduino IDE
  2. 開啟測試程式 (LED blink example sketch: File > Examples >01.Basics > Blink)Imgur
  3. 範例程式說明
// L13對應腳位初始化參數設定
// the setup function runs once when you press reset or power the board

void setup() { // initialize digital pin 13 as an output.  
  pinMode(13, OUTPUT);
}
// LED閃爍重複執行迴圈設定
// the loop function runs over and over again forever

void loop() {  
  digitalWrite(13, HIGH);   
// turn the LED on (HIGH is the voltage level)
  delay(1000);              // wait for a second
  digitalWrite(13, LOW);    
// turn the LED off by making the voltage LOW
  delay(1000);
}

Imgur 4. 將程式透過 Micro usb 寫入開發板,上傳之前要先確認目前板子與serial port是否正確ImgurImgur

成果顯示

成功結果會看到 Arduino Yun 開發板上的 LED 燈會閃爍著 Imgur

如對開發組件有需求的話歡迎來makee.io平台上參觀逛逛

http://makee.io/order/arduino

Ben Shiue

Having being a full stack engineer. His interests in Node.js, ARM mbed, IoT solutions. Contact us : [email protected]

ALL RIGHTS RESERVED. COPYRIGHT © 2016. Designed and Coded by Makee.io