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

Arduino的互動產(chǎn)品平臺創(chuàng)新設(shè)計(jì)

發(fā)布時(shí)間:2012-4-12 17:00    發(fā)布者:eechina
關(guān)鍵詞: Arduino , 單片機(jī) , 人機(jī)互動
作者:楊繼志 郭敬

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

引言

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

1 Arduino硬件

1.1 Arduino主控板

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

1.2 Arduino輸出模塊

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

1.3 Arduino輸入模塊

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

2 Arduino軟件

2.1 Arduino編程語言

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

while(1){

用戶程序

}

在系統(tǒng)setup執(zhí)行之后,總是進(jìn)入這個(gè)函數(shù),開發(fā)者需要把自己的程序放在這個(gè)函數(shù)內(nèi)運(yùn)行。

2.2 Arduino開發(fā)環(huán)境

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


圖1 Arduino的IDE

3 Arduino平臺開發(fā)實(shí)例

3.1 用Arduino讀寫SD卡

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


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


圖2 Arduino與SD卡連接電路

由于SD卡的操作電壓為3.3 V,而Arduino的邏輯電壓為5 V,因此需要用起分壓作用的電阻(本文采用了Josh Adams書中的驗(yàn)證性電路),在實(shí)際的應(yīng)用中最好采用分壓模塊以保證卡和Arduino板的安全。之后在網(wǎng)址http://code.google.com/p/sdfatlib/下載Bill Greiman開發(fā)的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主控板內(nèi)即可向SD卡內(nèi)建立一個(gè)新的文件,并寫入"something you want "字符,當(dāng)然也可以根據(jù)需要寫入想要記錄的信息。

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

結(jié)語

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

參考文獻(xiàn)

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

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

楊繼志(高級工程師),主要研究領(lǐng)域?yàn)楣I(yè)自動化控制。
作者:楊繼志 郭敬   來源:《單片機(jī)與嵌入式系統(tǒng)應(yīng)用》
本文地址:http://www.qingdxww.cn/thread-89255-1-1.html     【打印本頁】

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

廠商推薦

  • Microchip視頻專區(qū)
  • 無線充電基礎(chǔ)知識及應(yīng)用培訓(xùn)教程2
  • 安靜高效的電機(jī)控制——這才是正確的方向!
  • 了解一下Microchip強(qiáng)大的PIC18-Q24 MCU系列
  • 為何選擇集成電平轉(zhuǎn)換?
  • 貿(mào)澤電子(Mouser)專區(qū)

相關(guān)在線工具

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權(quán)所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产成人久久精品推最新 | 99手机在线视频 | 亚洲 中文 欧美 日韩 在线人 | 国产欧美一区二区成人影院 | 四虎网站在线 | 国产日本欧美亚洲精品视 | 天堂中文在线www | 一二三四视频社区5在线高清视频 | 欧美色欧美亚洲另类 | 国产亚洲毛片在线 | 亚洲欧美网站 | 九九热精品视频在线观看 | 含羞草app | 女人被男人插视频 | 四虎永久免费网站 | 香蕉视频在线免费看 | 两个人高清视频免费观看www | 青草免费免费观看视频在线 | 欧美精品一区在线看 | 麻豆| 99热精品成人免费观看 | 久久亚洲欧美成人精品 | 国产免费131美女视频 | 老汉tv永久视频福利在线观看 | 四虎影视成人 | 中文字幕五月天 | 久热综合 | 韩国福利一区二区三区高清视频 | 国产日韩精品欧美一区色 | 热久久99影院 | 一本色道久久88加勒比—综合 | 欧美在线精品永久免费播放 | 四虎影视884a精品国产四虎 | 日韩aⅴ片| 国产亚洲午夜精品a一区二区 | 久久精品在这里 | 国产黄色小视频 | 青青青视频在线 | 精品一区二区三区三区 | 国产日韩精品欧美一区视频 | 国产成人精品微拍视频 |