Online Catalog > Book
Check-outs :

Arduino編程从零開始

  • Hit:95
  • Rating:0
  • Review:0
  • Trackback:0
  • Forward:0



  • Bookmark:
轉寄 列印
第1級人氣樹(0)
人氣指樹
  • keepsite
  • Introduction
  • About Author
  • Collection(0)
  • Review(0)
  • Rating(0)

《Arduino編程從零開始》從C語言基礎開始,深入淺出地介紹了Arduino編程,對於零基礎的初學者和有一定基礎的Arduino玩家都有一定的幫助。《Arduino編程從零開始》使用大量的程序範例一步步、手把手地教讀者怎樣為一塊Arduino板進行編程,進而實現想要的功能,從i12Arduino板載LED以各種不同的方式來閃爍,一直到通過附加擴展板實現更加複雜和實用的功能,甚至讓Arduino板變成一個小型Web服務器。《Arduino編程從零開始》適合廣大“創客”和電子愛好者學習,也可供中學生科技競賽、高等院校相關專業及電子設計(製作)比賽參考。

《Arduino編程從零開始》從C語言基礎開始,深入淺出地介紹了Arduino編程,對於零基礎的初學者和有一定基礎的Arduino玩家都有一定的幫助。《Arduino編程從零開始》使用大量的程序範例一步步、手把手地教讀者怎樣為一塊Arduino板進行編程,進而實現想要的功能,從i12Arduino板載LED以各種不同的方式來閃爍,一直到通過附加擴展板實現更加複雜和實用的功能,甚至讓Arduino板變成一個小型Web服務器。《Arduino編程從零開始》適合廣大“創客”和電子愛好者學習,也可供中學生科技競賽、高等院校相關專業及電子設計(製作)比賽參考。 SimonMonk,是一個擁有計算機及控制學學士學位、計算機軟件工程學博士學位的工程師。早在讀書的時候,他就已經是一位互動電子愛好者,並且常常為業餘電子愛好者雜誌撰稿。 有很多介紹怎樣將你要實現的東西連接到Arduino的書,包括本書作者Simon Monk的《基于Arduino的趣味電子制作》,但本書的重點是對Arduino編程。 《Arduino編程從零開始》將介紹怎樣簡單并有趣地對Arduino編程,避免使用生澀難瞳的代碼而讓制作變成痛苦的歷程。你將從Arduino用到的基礎C語言開始,一步步地完成對Arduino編程的過程。 第1章汶就旱Arduino1.1單片機開發板1.2Arduino板概覽供電電源接口模擬輸入數字接口單片機其他元器件1.3Arduino的起源1.4Arduino大家庭UNO、Duemilanove和DiecimilaMegaNanoBluetoothLilypad其他官方板Arduino兼容板1.5總結第2章從零開始2.1開機2.2安裝軟件2.3上傳你的第一個Sketch2.4Arduino應用程序2.5總結第3章C語言基礎3.1編程3.2什麼是計算機語言3.3再閃爍一次3.4變量3.5C語言實驗數字變量和運算式3.6指令if語句for循環while循環#denne指令3.7總結第4章函數4.1什麼是函數?4.2參數4.3全域、局部和靜態變量4.4返回值4.5其他變量類型浮點數布爾其他數據類型4.6編程風格首行縮進大括號留白注釋4.7總結第5章數組和字符串5.1數組SOS莫爾斯碼所使用的數組5.2字符串數組字符串字面值字符串變量5.3莫爾斯碼翻譯器數據全局變量和Setuploop函數函數nashsequence函數nash Dotor Dash完整代碼5.4總結第6章輸入和輸出6.1數字輸出6.2數字輸入上拉電阻內部上拉電阻消抖6.3模擬輸出6.4模擬輸入6.5總結第7章標準Arduino庫7.1隨機數7.2數學函數7.3位操作7.4高級輸入/輸出聲音生成讀取移位寄存器7.5中斷7.6總結第8童數據存儲8.1常量8.2PROGMEM指令8.3EEPROM在EEPROM中存儲整數在EEPROM中存儲浮點數(union)在EEPROM中存儲字符串清空EEPROM的內容8.4壓縮範圍壓縮8.5總結第9章LCD顯示器9.1USB信息板9.2使用顯示器9.3其他LCD庫函數9.4總結第10章Arduino網絡編程10.1網絡擴展板10.2和Web服務器通信HTTPHTML10.3將Arduino用作Web服務器10.4通過網絡來設置Arduino的針腳10.5總結第11章C++和庫11.1面向對象類和方法11.2內建庫示例11.3寫一個庫頭文件實現文件完成你的庫11.4總結 第1章 這就是ArduinoArduino是一種備受電子發燒友關注的單片機平臺,其易用和開源的特性使得想制作電子小產品的人有了一個很棒的選擇。最終,你可以通過在其插母上連接其他電子元器件以控制別的東西,比如:開關燈或電機,或者用來感知光、溫度。Arduino有的時候被描述為交互裝置(physical computing),這是因為Arduino可以通過USB連接到電腦,所以你可以將Arduino用作通過電腦控制電子元器件的接口。本章是對Arduino的簡介,包括了Arduino的歷史和背景,也是對硬件的一個總覽。1.1 單片機Arduino的核心是一個單片機,板子上的其他所有東西都是用于供電或者和電腦連接的。單片機實際上是集成在一塊芯片上的微型電腦,它具有第一臺家用電腦所具有的任何東西,甚至更多。它有處理器,有1~2KB的RAM用于存儲數據,還有幾KB的EPROM或閃存用于存放你的程序,而且它還有輸入/輸出針腳,用于連接單片機和其他電子元器件。輸入可以是數字信號(開或關)或模擬信號(電壓值),這樣就可以連接很多不同種類的傳感器:光、溫度、聲音……輸出也可以是模擬或數字信號,所以你可以通過將一個針腳設為開或關(0V或5V)直接控制一個LED的開關;或者用輸出信號去控制更高功率的設備,如電機。Arduino也可以設定輸出模擬電壓――將某個針腳的輸出設定為一個特定的電壓,這樣比起簡單的控制開關,你可以直接控制電機的轉速或者是光源的亮度。Arduino板上的單片機安裝在板中央的28針插座中,這個單獨的芯片包含了內存處理器和輸入/輸出針腳所需的所有電子元器件。它是由Atmel公司制造的,Atmel是最大的單片機制造商之一。事實上,每個單片機制造商都會生產不同系列的數十種不同的單片機。這些單片機可不全是為了我們這樣的電子發燒友準備的,我們只是這個廣大市場中的一小部分,其最終目的是為了植入消費品中,包括汽車、洗衣機、DVD播放器、兒童玩具,甚至是空氣凈化器。Arduino最大的好處就是通過一個單片機的標準化把這些選擇減少、簡單化(后面我們會看到,這么說也不是特別的準確,但是已經很接近了)。這意味著,當你開始著手一個新的項目時,你不需要首先權衡眾多單片機的利弊來做選擇。開發板我們已經了解到單片機實際上只是一個芯片,如果沒有其他的一些電子元器件為其提供穩定和精確的電源并和為其編程的電腦相連,它是無法獨立工作的(單片機對這一點很挑剔)。這就是為什么會有開發板的原因。Arduino實際上就是一款硬件開源設計的單片機開發板。也就是說,其印制電路板的設計文檔和原理圖都是對公眾開放的,而且任何人都可以免費使用這個設計來生產和銷售他們自己的“Arduino”板。包括生產Arduino板所用ATmega328芯片的Atmel公司在內,所有單片機制造商都提供他們自己的開發板和編程軟件,雖然價格不貴,但它們都是為專業的電子工程師而不是發燒友所設計的。這意味著,這種板和軟件更難以使用,并且在你真的用它們做出點有用的東西之前需要學習更多的專業知識。1.2 Arduino板概覽圖1.1是一塊Arduino板,讓我們先大致看一下板子上眾多的元器件。供電在圖1.1中,USB接口下面是5V穩壓器,它把由電源插孔供給的7~12V電壓調節至穩定的5V。其實,作為一個直插在板表面的元器件來說,5V穩壓器占用的空間有點大,因為它需要散去將電壓調節至需要值所產生的熱量――這在驅動被動電子器件的時候很必要。電源接口接下來我們來看一看圖1.1底部的接口,接口的旁邊標有名稱,第一位是重置(Reset)。它和Arduino板上重置按鈕的作用是一樣的,就像重啟電腦一樣。使用重置接口來重啟單片機,將使它從頭開始運行程序。若要用重置接口來重啟單片機,暫時將此接口設為低電平(將其連接到0V接口)即可。其他的接口用于提供其他不同的電壓(3.5V、5V、GND和9V)。就像它們旁邊的名稱所標示的一樣,GND又稱地線,也就是0V,是板上其他電壓值的參考值。模擬輸入這個被標為A0~A5的模擬信號6針接口,可以用來測量連接到其上的電壓,測量值可以在Sketch中使用。注意,它們測量的是電壓而不是電流,只有很微小的電流從它們流向地線,因為它們有非常大的內部電阻,只能允許很小的電流流入針腳。雖然這些輸入被標做模擬,而且默認為模擬輸入,但是這些接口也可以被用來當做數字信號的輸入和輸出。數字接口現在我們再來看看頂部標記有“DIGITAL(PWM~)”的接口0~13,它們既可以用作輸入,也可以用作輸出。當用作輸出時,它們就像我們前面提到過的供電電壓一樣,但并不是全5V,而是通過你的Sketch打開或關閉。通過Sketch把它們打開時為5V,關閉時則為0V。正如供電接口一樣,你要小心,別超出最大電流承受值。接口0和1也被標為RT和TX,用來接收和傳送數據。數字接口可以提供40mA(毫安)的5V電壓。這足夠點亮一個標準的LED了,但是還不足以驅動電機。單片機繼續我們對Arduino板的概覽,單片機芯片是那個黑色長方形的28針器件。它被安裝在一個雙列直插式插座中,這樣方便更換。用在Arduino UNO板上的單片機型號為ATmega328,下面根據其內部框圖(圖1.2)來說明這個芯片的主要特征。這個器件的心臟――更恰當一些的說法是大腦――中央處理器(CPU),它控制器件中發生的所有事情,取出存放在閃存中的程序指令并執行它們,這可能涉及從工作存儲器(RAM)中取出數據,改變它們,再把它們放回去;或者,將某一個數字輸出從0V變為5V。EEPROM存儲器和閃存有一點類似,只不過它是非易失存儲。也就是說,你可以關掉設備再打開,而EEPROM中的東西不會丟失。閃存用于存儲程序指令(從Sketch中得到),EEPROM則用于存儲那些你不想因為重置或者關閉設備而丟失的數據。其他元器件單片機左上角有一個小的銀色長方形的元器件。這是一個石英晶體。它每秒振蕩16×106次,每振蕩1次,單片機可以完成1次運算――加法、減法或其他數學運算。晶體右邊是重置按鈕。按這個按鈕會發送一個邏輯脈沖到單片機的重置針腳,使單片機重新運行程序并清空內存。注意,任何在設備上的程序都不會丟失,因為它們是被存儲在非易失閃存――即使設備不通電也可以記憶的存儲器中的。重置按鈕的右邊是串行程序接口,它提供了另一種不使用USB為Arduino編程的方法。但因為我們已經有了USB接口和對應的軟件,而且使用上更方便,所以我們幾乎不使用這一功能。緊挨著USB接口的右邊是USB接口芯片,此芯片將USB所用的信號電平轉化為可以直接被Arduino板所使用的電平。

Must Login
Must Login
Must Login
Must Login