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