Arduino程序設(shè)計與應(yīng)用——基于Wokwi的虛擬仿真
定 價:48 元
叢書名:高等院校信息技術(shù)系列教材
當(dāng)前圖書已被 1 所學(xué)校薦購過!
查看明細
- 作者:劉安東、竺功財、倪洪杰
- 出版時間:2024/12/1
- ISBN:9787302698876
- 出 版 社:清華大學(xué)出版社
- 中圖法分類:TP368.1
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書是一本將Arduino虛擬仿真介紹、C與C++程序設(shè)計和基于Arduino的多傳感器實驗案例分析結(jié)合在一起的教材?紤]到Arduino實際使用的普及性,本書以Arduino虛擬仿真為主線,圍繞“低成本”“經(jīng)典仿真案例分析”“仿真實驗自主設(shè)計”展開。主要介紹Arduino工程建立、C與C++程序設(shè)計以及仿真案例分析,將其作為教材的基礎(chǔ);在此基礎(chǔ)上,使用虛擬平臺中多種傳感器自主設(shè)計相關(guān)實驗案例,如定時中斷交通燈、步進電機外部中斷串口通信控制、超聲波智能避障小車及智能紅外遙控小車等;Arduino的I/O口基本驅(qū)動、中斷、定時器以及串口通信的基本應(yīng)用為貫穿本書的主線;將Arduino中實際使用的C與C++編程技巧,通信協(xié)議解析以及仿真元器件控制邏輯等作為本書的重點,使學(xué)生掌握Arduino關(guān)鍵技術(shù)要點和應(yīng)用方法。本書可作為高等院!癆rduino程序設(shè)計與應(yīng)用”課程的通用教材,也可作為電子信息和自動化類專業(yè)學(xué)生的“C與C++語言程序設(shè)計”或“Arduino程序設(shè)計與應(yīng)用”課程的教材。
本書介紹了Arduino程序設(shè)計的基礎(chǔ)知識,并提供相關(guān)案例和代碼實現(xiàn),可操作性強,適合作為高校教材,也可以作為相關(guān)專業(yè)培訓(xùn)教材。面向沒有軟件和硬件開發(fā)經(jīng)驗的初學(xué)者,使其能輕松制作高質(zhì)量且可靠的電子創(chuàng)意產(chǎn)品;赪okwi的虛擬仿真,無需實際的單片機開發(fā)板,在網(wǎng)頁中即可完成學(xué)習(xí)和實踐。全書結(jié)構(gòu)清晰,語言通俗易懂,內(nèi)容由淺入深,循序漸進,案例豐富翔實,貫穿傳授知識、培養(yǎng)能力、提高素質(zhì)的教學(xué)理念。提供11個綜合案例,如定時中斷交通燈、步進電機外部中斷串口通信控制、超聲波智能避障小車及智能紅外遙控小車等。每個案例都提供案例描述、軟硬件需求、程序流程圖分析、實現(xiàn)步驟、測試和調(diào)試、優(yōu)化和擴展,為讀者提供綜合設(shè)計項目的參考,為Arduino項目設(shè)計奠定基礎(chǔ)。為方便教學(xué),給選用本書的教師提供教學(xué)大綱、教學(xué)課件、案例素材等數(shù)字資源。
前言Foreword
在國際上,Arduino幾乎成為創(chuàng)客和硬件創(chuàng)新的代名詞。創(chuàng)客運動的標志性事件之一是在2005年冬季誕生的優(yōu)質(zhì)塊Arduino開發(fā)板。這塊電路板瞬間引發(fā)了創(chuàng)客風(fēng)潮,成為21世紀最重要的科技事件之一。
隨后涌現(xiàn)的大量創(chuàng)客項目,涵蓋機器人、無人機、智能家居控制、3D打印等領(lǐng)域,主要以Arduino為原型或基礎(chǔ)進行研發(fā);贏rduino電路的產(chǎn)業(yè),如改進或兼容板以及服務(wù)創(chuàng)客從原型到批量生產(chǎn)的業(yè)務(wù),在開源硬件潮流中蓬勃發(fā)展。在硬件創(chuàng)客的工具箱中,Arduino已經(jīng)連續(xù)十多年占據(jù)主導(dǎo)地位。
Arduino最顯著的貢獻之一是為極為復(fù)雜難懂的電子制作提供了便捷工具: 它將創(chuàng)客們最為頭疼的電子電路和底層驅(qū)動庫打包集成為黑箱,省略了與電路和硬件驅(qū)動相關(guān)的大部分操作,使得創(chuàng)客只須關(guān)注簡單的控制邏輯。這種設(shè)計使得創(chuàng)客無須深入學(xué)習(xí)復(fù)雜的電子基礎(chǔ)知識,也能輕松制作出高質(zhì)量且可靠的電子創(chuàng)意產(chǎn)品,從而降低了重復(fù)勞動的需求。
本書特色
本書的編寫目的是向?qū)τ布_發(fā)感興趣的非電子、機電類專業(yè)的大學(xué)生以及沒有軟件和硬件開發(fā)經(jīng)驗的初學(xué)者提供系統(tǒng)、完善的基礎(chǔ)知識與開發(fā)教程。本書深入淺出地介紹Arduino軟硬件的基礎(chǔ)知識,無需實際的單片機開發(fā)板,在網(wǎng)頁中即可完成學(xué)習(xí)。結(jié)合多個案例,詳細介紹Arduino各個功能模塊與相關(guān)類庫,便于讀者有針對性地學(xué)習(xí)和查閱。本書體系結(jié)構(gòu)清晰,內(nèi)容豐富,功能模塊案例和綜合案例相結(jié)合,使讀者能夠系統(tǒng)學(xué)習(xí),并進一步提高開發(fā)能力。
如何閱讀本書
本書包含的信息覆蓋了較為豐富的 Arduino 功能,從基本概念和常見任務(wù)到高級技術(shù),講述Wokwi平臺的基本使用方法、編程語言基礎(chǔ)、平臺相關(guān)傳感器以及基于該平臺進行自主開發(fā)的案例,由淺入深地帶領(lǐng)讀者在無需實際單片機開發(fā)板的基礎(chǔ)上完成Arduino的學(xué)習(xí)。本書共6章。第1章為初識Wokwi,介紹Wokwi平臺的來源,該平臺元器件的基本介紹,演示如何使用Wokwi來創(chuàng)建、導(dǎo)入及運行工程文件,最后簡單運行一個案例,帶領(lǐng)讀者初識平臺。
第2、3章為基礎(chǔ)編程語言介紹,內(nèi)容包括Arduino語言、程序結(jié)構(gòu)、C/C++語言基礎(chǔ)以及相關(guān)擴展,并且介紹了一個基于C++的經(jīng)典案例——鬧鐘,為讀者學(xué)習(xí)編程語言打下基礎(chǔ)。
第4章為平臺傳感器介紹,列舉了該平臺的7種主要傳感器,分析相應(yīng)的工作場景,并提供一個運行案例,以仿真形式給予讀者傳感器實際簡單工程應(yīng)用的經(jīng)驗。
第5、6章為自主設(shè)計,一共有11個綜合案例供讀者學(xué)習(xí)。自主設(shè)計Arduino基本功能應(yīng)用,例如基本通信、中斷以及定時等,結(jié)合第4章傳感器的綜合設(shè)計案例,給讀者提供了綜合設(shè)計項目的參考,為以后設(shè)計基于Arduino的項目打下基礎(chǔ)。
致謝
首先感謝Wokwi開發(fā)團隊開源了整個項目,因為他們的無私,才有了本書的面世。同時還要感謝活躍在Arduino論壇上的所有開發(fā)人員,是他們的創(chuàng)新精神和辛勤努力才使這么多新奇的功能得以實現(xiàn),使Arduino第三方類庫不斷完善,使Arduino不斷向前發(fā)展。最后,感謝金哲豪、朱華中、楊毅鑌以及孫宇豪等在本書編著過程中提供的幫助。
本書由劉安東、竺功財和倪洪杰編著,其中,第4章傳感器部分由戴英明與俞博文協(xié)助編寫。書中的不足與錯誤之處,敬請讀者批評指正。
編者2025年1月
劉安東,浙江工業(yè)大學(xué)信息工程學(xué)院副教授,博士生導(dǎo)師。主要研究方向為網(wǎng)絡(luò)化運動控制、機器人控制和機器視覺。主持國家自然科學(xué)2項、省杰出青年1項、省一般項目1項,以及市廳級和企業(yè)委托等項目10項。在國內(nèi)外期刊和會議上發(fā)表學(xué)術(shù)論文80余篇,SCI期刊論文54篇,其中在期刊Automatica和IEEE匯刊上發(fā)表30篇,授權(quán)發(fā)明專利30余項。先后入選香江學(xué)者計劃、浙江省科協(xié)育才工程計劃;曾獲中國自動化學(xué)會博士學(xué)位論文提名獎,作為主要完成人獲浙江省技術(shù)發(fā)明二等獎1項、中國自動化學(xué)會技術(shù)發(fā)明二等獎1項和中國自動化學(xué)會科技進步二等獎1項。指導(dǎo)本科生獲中國機器人競賽一等獎10項、二等獎7項、三等獎4項;指導(dǎo)研究生獲中國研究生電子設(shè)計競賽華東賽區(qū)二等獎4項。
目錄Contents
第1章初識Wokwi1
1.1什么是Wokwi1
1.1.1編輯組件4
1.1.2編輯連線4
1.1.3鍵盤快捷鍵說明5
1.1.4編輯器鍵盤快捷鍵6
1.2為什么使用Wokwi作為開發(fā)平臺8
1.3認識Wokwi仿真平臺各類Arduino主控芯片8
1.3.1Arduino UNO芯片介紹8
1.3.2Arduino MEGA芯片介紹12
1.3.3小型化的Arduino Nano14
1.4認識Wokwi仿真平臺各類元器件15
1.4.1基本元器件15
1.4.2顯示元器件18
1.4.3輸入元器件26
1.4.4傳感元器件30
1.4.5輸出元器件39
1.5認識Wokwi工程文件的創(chuàng)建、導(dǎo)入及運行43
1.5.1單個工程文件的創(chuàng)建43
1.5.2單個工程文件的導(dǎo)入與運行45
1.6認識仿真運行調(diào)試界面46
1.7Wokwi的Hello World48
第2章編程語言基礎(chǔ)51
2.1Arduino語言以及程序結(jié)構(gòu)51
2.1.1Arduino語言51
2.1.2Arduino程序結(jié)構(gòu)512.2C/C++語言基礎(chǔ)53
2.2.1主要數(shù)據(jù)類型54
2.2.2運算符56
2.2.3表達式57
2.2.4數(shù)組58
2.2.5字符串59
2.2.6注釋59
2.2.7用流程圖表示程序60
2.2.8順序結(jié)構(gòu)60
2.2.9選擇結(jié)構(gòu)60
2.2.10循環(huán)結(jié)構(gòu)60
第3章使用和編寫類庫62
3.1C++相關(guān)知識點擴展62
3.2編寫并使用函數(shù)65
3.3使用基于Arduino案例開發(fā)66
3.3.1編寫頭文件66
3.3.2文件包含71
3.3.3編寫cpp文件71
3.3.4建立示例程序79
3.4Wokwi的文件導(dǎo)入與配置83
第4章基于Wokwi的傳感器簡單應(yīng)用84
4.1光電阻傳感器模塊84
4.1.1應(yīng)用背景84
4.1.2軟硬件使用介紹84
4.1.3仿真測試85
4.2被動紅外傳感器85
4.2.1應(yīng)用背景85
4.2.2軟硬件使用介紹86
4.2.3仿真測試86
4.3MPU60506軸加速和陀螺儀傳感器87
4.3.1應(yīng)用背景87
4.3.2軟硬件使用介紹87
4.3.3仿真測試88
4.4旋轉(zhuǎn)編碼器模塊89
4.4.1應(yīng)用背景89
4.4.2軟硬件使用介紹89
4.4.3仿真測試90
4.5DHT22數(shù)字濕度和溫度傳感器91
4.5.1應(yīng)用背景91
4.5.2軟硬件使用介紹91
4.5.3仿真測試92
4.6模擬溫度傳感器93
4.6.1應(yīng)用背景93
4.6.2軟硬件使用介紹93
4.6.3仿真測試94
4.7HCSR04超聲波距離傳感器95
4.7.1應(yīng)用背景95
4.7.2軟硬件使用介紹95
4.7.3仿真測試96
第5章基于Wokwi的Arduino與外設(shè)的通信應(yīng)用98
5.1串口通信98
5.1.1Arduino與計算機通信的相關(guān)配置99
5.1.2Arduino串口通信函數(shù)99
5.1.3串口通信案例101
5.2I2C總線通信102
5.2.1I2C總線通信的主要特點102
5.2.2I2C主機、從機和引腳103
5.2.3Wire類庫成員函數(shù)103
5.2.4I2C連接方法105
5.2.5I2C總線通信案例106
5.3SPI總線通信108
5.3.1SPI類庫成員函數(shù)109
5.3.2SPI總線通信案例112
第6章基于Wokwi的Arduino仿真實驗設(shè)計115
6.1基于定時中斷的交通燈115
6.1.1案例描述115
6.1.2硬件需求115
6.1.3軟件需求116
6.1.4程序流程圖分析118
6.1.5實現(xiàn)步驟119
6.1.6測試和調(diào)試119
6.1.7優(yōu)化和擴展121
6.2PWM與時間控制函數(shù)的應(yīng)用121
6.2.1PWM121
6.2.2延時函數(shù)122
6.2.3PMW定時控制電機運動122
6.2.4基于舵機控制的電子保險箱122
6.3按鍵與LED記憶小游戲131
6.3.1案例描述131
6.3.2硬件需求131
6.3.3軟件需求132
6.3.4程序流程圖分析135
6.3.5實現(xiàn)步驟136
6.3.6測試和調(diào)試136
6.3.7優(yōu)化和擴展137
6.4串口控制RGB調(diào)光138
6.4.1案例描述138
6.4.2硬件需求138
6.4.3軟件需求139
6.4.4程序流程圖分析140
6.4.5實現(xiàn)步驟140
6.4.6測試和調(diào)試141
6.4.7優(yōu)化和擴展143
6.5外部中斷觸發(fā)光感傳感器點燈143
6.5.1案例描述143
6.5.2硬件需求143
6.5.3軟件需求144
6.5.4程序流程圖分析145
6.5.5實現(xiàn)步驟145
6.5.6測試和調(diào)試146
6.5.7優(yōu)化和擴展147
6.6步進電機外部中斷串口通信控制147
6.6.1案例描述147
6.6.2硬件需求147
6.6.3軟件需求148
6.6.4程序流程圖分析152
6.6.5實現(xiàn)步驟153
6.6.6測試和調(diào)試154
6.6.7優(yōu)化和擴展156
6.7超聲波智能避障小車156
6.7.1案例描述156
6.7.2硬件需求156
6.7.3軟件需求157
6.7.4程序流程圖分析162
6.7.5實現(xiàn)步驟163
6.7.6測試和調(diào)試163
6.7.7優(yōu)化和擴展166
6.8智能紅外遙控小車166
6.8.1案例描述166
6.8.2硬件需求166
6.8.3軟件需求167
6.8.4程序流程圖分析170
6.8.5實現(xiàn)步驟171
6.8.6測試和調(diào)試171
6.8.7優(yōu)化和擴展172
參考文獻174