国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

Arduino的互動產品平臺創新設計

發布時間:2012-4-12 17:00    發布者:eechina
關鍵詞: Arduino , 單片機 , 人機互動
作者:楊繼志 郭敬

摘要:Arduino是一款電子互動產品開發的軟硬件平臺,有時也叫做“電子積木”。介紹了其主要的特點,指出Arduino將在我國的電子互動產品設計中發揮越來越重要的作用。之后詳細介紹了Arduino的硬件和軟件組成,并通過實例說明了基于Arduino的互動產品創新設計的基本過程,使讀者可以初步掌握采用Arduino進行設計的基本技能。

引言

Arduino是一系列基于單片機的人機互動產品開發平臺,由于其具有高度的模塊化特點,有時也叫它“電子積木”。它的硬件平臺是開放的,任何人都可以在Arduino官方網站上下載最新的PCB設計進行復制。Arduino的硬件平臺包括基于AVR單片機的主控制電路板,以及大量的各式輸入/輸出電子模塊。輸入/輸出模塊包括開關輸入模塊、溫度壓力傳感器輸入模塊、超聲測距傳感器輸入模塊、各類顯示輸出模塊、電機控制模塊等,甚至還有以太網接入模塊。由于Arduino具有豐富易用的模塊,已經在各類機電創新設計比賽中得到廣泛應用。在軟件方面,Arduino有一個屬于自己的基于Eclipse的IDE軟件開發環境,開發語言采用類C++語言的高級語言,容易被使用者掌握。有大量的庫文件可以通過互聯網下載免費獲得,大大簡化了程序開發工作。由于Arduino豐富的外圍模塊、容易掌握的開發語言和環境,大量的庫支持,使得基于Arduino的電子互動產品設計越來越多。從Arduino誕生的2005年到2011年,已有超過15萬塊的Arduino模板售出[1]。本文介紹了Arduino的硬件、軟件,并給出了采用Arduino開發互動產品的實例,使初學者對它有一個基本的認識。

1 Arduino硬件

1.1 Arduino主控板

Arduino的主控板采用AVR單片機,最新的版本是UNO,與之前的版本不同,它不再使用FTDI USB串行驅動芯片,而是把Atmega8U2編程為一個USB設備。相對于它的前幾代,這帶來了許多好處。首先是價格降低了,更重要的是這使得Arduino在PC端可以顯示為一個USB設備,就像是一個鼠標或游戲操作手柄,這開辟了Arduino的新用途[1]。總之,Arduino的主控板就是一個單片機控制板,在這一點上與其他單片機控制板并無本質的區別,但是由于其擁有豐富的系列產品、大量的開源軟件,讓Arduino得到了更為廣泛的應用和支持。

1.2 Arduino輸出模塊

市場上已經出現了圍繞Arduino Duemilanove開發的很多輸出模塊:有視覺輸出的,如LED燈控制、LCD控制、觸摸屏控制等;有聲音輸出的,如蜂鳴器和揚聲器模塊;還有物理系統的控制模塊,如各類直流小馬達、步進電機、機器人舵機等。另外,還可以利用AVR單片機的PWM輸出口進行D/A轉換。這些模塊大大拓展了Arduino作為一個單片機平臺的用途。其中基于LN298設計的直流馬達控制模塊在各類機器人項目中采用得很多,這種模塊能夠同時控制兩路直流馬達,與ArduinoDuemilanove之間的連接也十分簡便。輸出單元的模塊化使搭建基于Arduino系統的應用項目很方便。

1.3 Arduino輸入模塊

最一般的輸入如各類按鈕、位置行程開關等都有相應的模塊可以購買。其他諸如超聲測距、壓力傳感器、溫度傳感器、傾角傳感器等也有相應的模塊可以直接應用。還有記錄數據和通信用的模塊、如SD卡模塊,以太網接入模塊等,這讓Arduino不僅僅作為一個控制終端使用,還可以進行數據的存儲和簡單處理,以及與外界系統通信等,可見其輸入模塊資源豐富。從輸入的信號來看,可以分為數字量的信號輸入(如以上的開關模塊等),模擬量的信號輸入(如溫度、壓力傳感器模塊),通過總線網絡方式的數據輸入(如采用各類通信協議的傳感器模塊等)。

2 Arduino軟件

2.1 Arduino編程語言

Arduino編程語言是建立在C/C++語言基礎上的。Arduino語言把AVR單片機(微控制器)相關的一些參數設置都參數化了,不用開發者去了解其底層,對AVR單片機了解不多的用戶也可以容易地開發基于AVR的項目。需要注意的是,Arduino的語言與C語言運行機制還是有一些區別的,特別是在項目程序中必須包括setup和loop兩個函數。setup函數在系統上電或復位后運行一次,因此一般用戶在其中做一些初始化工作,如設定串口通信的波特率等,一些一次性的工作也可以放在這個函數中運行,如下文中的寫SD卡文件的例子程序。Loop函數是Arduino軟件項目的主體,系統上電并且運行完成setup函數后,就進入loop函數,并且該函數是一個無限循環的過程,這一點需要開發者特別注意,這與C語言的void main(){}是有很大區別的。loop函數相當于下面這樣一個無限循環過程:

while(1){

用戶程序

}

在系統setup執行之后,總是進入這個函數,開發者需要把自己的程序放在這個函數內運行。

2.2 Arduino開發環境

Arduino的開發環境很簡潔,用戶可以在其官方網站上免費下載使用,IDE如圖1所示。可以看到,在一個簡單的菜單和工具條下,就是IDE的編程窗口和一個串行通信監視窗口。其中工具條包含了保存打開文件、向Arduino板下載程序等主要功能,與一般的Windows軟件并無不同。在編程窗口下是一個串口監視器窗口。因為Arduino開發板沒有專門的顯示平臺,在許多程序的調試過程中需要Arduino傳輸給上位機一些信息以便于開發者判斷程序的運行狀況,或者得到程序的運行結果。這些結果可以通過串口監視器顯示,開發者也可以通過該窗口向Arduino板發送一些信息,極大地方便了項目的開發。


圖1 Arduino的IDE

3 Arduino平臺開發實例

3.1 用Arduino讀寫SD卡

SD卡體積小,價格便宜,因此在許多工業數據記錄和家用電子產品中有越來越多的應用。Arduino可以通過SPI接口與之通信,進行諸如建立文件、刪除文件、向文件中添加內容、修改文件等操作,這樣采用Arduino配合SD卡可以開發數據記錄設備。


Arduino與SD卡的簡單連接,只需要6只電阻和1張SD卡,通過軟件模擬的方式實現SPI接口,Arduino與SD卡連接電路如圖2所示。


圖2 Arduino與SD卡連接電路

由于SD卡的操作電壓為3.3 V,而Arduino的邏輯電壓為5 V,因此需要用起分壓作用的電阻(本文采用了Josh Adams書中的驗證性電路),在實際的應用中最好采用分壓模塊以保證卡和Arduino板的安全。之后在網址http://code.google.com/p/sdfatlib/下載Bill Greiman開發的SdFat.h和SdFatUtil.h頭文件和庫文件,并安裝到Arduino安裝目錄中的庫文件夾中就可以使用了。簡化程序如下:

#include

#include

Sd2Card card;

SdVolume volume;

SdFile root,file;

void writeString(SdFile& f,char * str){

Uint8_t n;

for(n=0;,str[n];n++)

F.write((uint8_t*) str,n)

}

void setup(){

card.init(SPI_HALF_SPEED);

root.openRoot(&volume);

File.open(&root,"testfile.txt",0_CREAT|0_EXCL|0_WRITE);

File.timestamp(2,2011,11,11,25.12.34.56);

writeString(file,"something you want ");

File.cose();

}

void loop(){

}

將該程序下載到Arduino主控板內即可向SD卡內建立一個新的文件,并寫入"something you want "字符,當然也可以根據需要寫入想要記錄的信息。

程序的開頭包含了兩個頭文件:SdFat.h和SdFatUtil.h。這兩個頭文件定義了一些操作SD卡必需的類。之后建立4個有關操作SD卡的對象。然后自定義了一個向SD卡內寫一個字符串的函數,這個函數需要一個文件的引用和一個字符串作為參數。setup函數是Arduino軟件項目中必須有的,做一些運行的初始化工作。這個實例程序由于只是完成簡單的寫文件操作,因此對文件的寫操作在這個函數中完成。函數依次完成了設定SD卡的通信模式為SPI模式、打開卡的根目錄、建立文件名為testfile.txt的文本文件、給文件添加時間信息、向文件內寫入文件內容、關閉文件。從以上的過程中看,采用Arduino操作SD卡上的文件與采用C語言操作PC上的文件十分相似,這也是Arduino易用性的體現,再一次驗證了采用Arduino開發電子互動產品的方便性。

結語

Arduino是一個開放的單片機開發人機互動產品的軟硬件平臺,由于它有豐富的軟硬件資源而且易于使用,得到了廣泛的應用,特別是在電子競賽、電子藝術品開發等方面。因此,有必要研究它的應用,拓展其應用范圍。

參考文獻

[1] Josh Adams.Beginning Arduino[M].[S.l.]:Apress,2010.

[2] Massimo Banzi.Getting Started with Arduino[M]. [S.l.]:Make, 2008.

楊繼志(高級工程師),主要研究領域為工業自動化控制。
作者:楊繼志 郭敬   來源:《單片機與嵌入式系統應用》
本文地址:http://m.qingdxww.cn/thread-89255-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • dsPIC® DSC:攻克各種觸摸傳感挑戰的電容式觸摸解決方案
  • PIC32CK SG單片機——輕松滿足新型網絡安全要求
  • PIC32CM LS00 Curiosity Pro評估工具包
  • dsPIC® DSC集成電機驅動器:非常適合在緊湊空間內進行實時控制
  • 貿澤電子(Mouser)專區

相關在線工具

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲热热久久九九精品| 亚洲精品二区中文字幕| 亚洲啪啪| 日本免费成人网| 我想看一级毛片| 日韩成人免费一级毛片| 丝袜美女在线观看| 亚洲国产日韩在线| 亚洲性夜夜夜谢夜夜2019| 亚洲综合免费| 三级a毛片| 欧美一区二区三区四区五区六区| 色人人| 香蕉大战欧美在线看黑人| 天堂网av2018| 亚洲国产九九精品一区二区| 亚洲精品国产成人99久久| 欧美午夜在线| 欧美国产在线观看| 欧美亚洲激情| 亚洲精品mm1313久久| 日韩有码在线播放| 日本高清视频一区二区| 日本久久精品| 日本三级全黄| 亚洲va老文色欧美黄大片人人| 夜夜久久| 人人玩人人弄人人曰| 一级毛片中国| 欧美成人中文字幕在线视频| 午夜在线免费观看视频| 日韩在线播放全免费| 亚洲国产成人精品女人久久久| 亚洲伊人色图| 天天干狠狠干| 亚洲国产精品一区二区三区| 亚洲aⅴ在线| 亚洲网站视频在线观看| 欧美日韩精品一区二区免费看| 日韩欧美在线精品| 欧美性色生活片天天看99顶级|