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关键技术要点和应用方法。本书可作为高等院校“Arduino程序设计与应用”课程的通用教材,也可作为电子信息和自动化类专业学生的“C与C++语言程序设计”或“Arduino程序设计与应用”课程的教材。
本书介绍了Arduino程序设计的基础知识,并提供相关案例和代码实现,可操作性强,适合作为高校教材,也可以作为相关专业培训教材。面向没有软件和硬件开发经验的初学者,使其能轻松制作高质量且可靠的电子创意产品。基于Wokwi的虚拟仿真,无需实际的单片机开发板,在网页中即可完成学习和实践。全书结构清晰,语言通俗易懂,内容由浅入深,循序渐进,案例丰富翔实,贯穿传授知识、培养能力、提高素质的教学理念。提供11个综合案例,如定时中断交通灯、步进电机外部中断串口通信控制、超声波智能避障小车及智能红外遥控小车等。每个案例都提供案例描述、软硬件需求、程序流程图分析、实现步骤、测试和调试、优化和扩展,为读者提供综合设计项目的参考,为Arduino项目设计奠定基础。为方便教学,给选用本书的教师提供教学大纲、教学课件、案例素材等数字资源。
前言Foreword
在国际上,Arduino几乎成为创客和硬件创新的代名词。创客运动的标志性事件之一是在2005年冬季诞生的优质块Arduino开发板。这块电路板瞬间引发了创客风潮,成为21世纪最重要的科技事件之一。
随后涌现的大量创客项目,涵盖机器人、无人机、智能家居控制、3D打印等领域,主要以Arduino为原型或基础进行研发。基于Arduino电路的产业,如改进或兼容板以及服务创客从原型到批量生产的业务,在开源硬件潮流中蓬勃发展。在硬件创客的工具箱中,Arduino已经连续十多年占据主导地位。
Arduino最显著的贡献之一是为极为复杂难懂的电子制作提供了便捷工具: 它将创客们最为头疼的电子电路和底层驱动库打包集成为黑箱,省略了与电路和硬件驱动相关的大部分操作,使得创客只须关注简单的控制逻辑。这种设计使得创客无须深入学习复杂的电子基础知识,也能轻松制作出高质量且可靠的电子创意产品,从而降低了重复劳动的需求。
本书特色
本书的编写目的是向对硬件开发感兴趣的非电子、机电类专业的大学生以及没有软件和硬件开发经验的初学者提供系统、完善的基础知识与开发教程。本书深入浅出地介绍Arduino软硬件的基础知识,无需实际的单片机开发板,在网页中即可完成学习。结合多个案例,详细介绍Arduino各个功能模块与相关类库,便于读者有针对性地学习和查阅。本书体系结构清晰,内容丰富,功能模块案例和综合案例相结合,使读者能够系统学习,并进一步提高开发能力。
如何阅读本书
本书包含的信息覆盖了较为丰富的 Arduino 功能,从基本概念和常见任务到高级技术,讲述Wokwi平台的基本使用方法、编程语言基础、平台相关传感器以及基于该平台进行自主开发的案例,由浅入深地带领读者在无需实际单片机开发板的基础上完成Arduino的学习。本书共6章。第1章为初识Wokwi,介绍Wokwi平台的来源,该平台元器件的基本介绍,演示如何使用Wokwi来创建、导入及运行工程文件,最后简单运行一个案例,带领读者初识平台。
第2、3章为基础编程语言介绍,内容包括Arduino语言、程序结构、C/C++语言基础以及相关扩展,并且介绍了一个基于C++的经典案例——闹钟,为读者学习编程语言打下基础。
第4章为平台传感器介绍,列举了该平台的7种主要传感器,分析相应的工作场景,并提供一个运行案例,以仿真形式给予读者传感器实际简单工程应用的经验。
第5、6章为自主设计,一共有11个综合案例供读者学习。自主设计Arduino基本功能应用,例如基本通信、中断以及定时等,结合第4章传感器的综合设计案例,给读者提供了综合设计项目的参考,为以后设计基于Arduino的项目打下基础。
致谢
首先感谢Wokwi开发团队开源了整个项目,因为他们的无私,才有了本书的面世。同时还要感谢活跃在Arduino论坛上的所有开发人员,是他们的创新精神和辛勤努力才使这么多新奇的功能得以实现,使Arduino第三方类库不断完善,使Arduino不断向前发展。最后,感谢金哲豪、朱华中、杨毅镔以及孙宇豪等在本书编著过程中提供的帮助。
本书由刘安东、竺功财和倪洪杰编著,其中,第4章传感器部分由戴英明与俞博文协助编写。书中的不足与错误之处,敬请读者批评指正。
编者2025年1月
刘安东,浙江工业大学信息工程学院副教授,博士生导师。主要研究方向为网络化运动控制、机器人控制和机器视觉。主持国家自然科学2项、省杰出青年1项、省一般项目1项,以及市厅级和企业委托等项目10项。在国内外期刊和会议上发表学术论文80余篇,SCI期刊论文54篇,其中在期刊Automatica和IEEE汇刊上发表30篇,授权发明专利30余项。先后入选香江学者计划、浙江省科协育才工程计划;曾获中国自动化学会博士学位论文提名奖,作为主要完成人获浙江省技术发明二等奖1项、中国自动化学会技术发明二等奖1项和中国自动化学会科技进步二等奖1项。指导本科生获中国机器人竞赛一等奖10项、二等奖7项、三等奖4项;指导研究生获中国研究生电子设计竞赛华东赛区二等奖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作为开发平台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工程文件的创建、导入及运行43
1.5.1单个工程文件的创建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循环结构60
第3章使用和编写类库62
3.1C++相关知识点扩展62
3.2编写并使用函数65
3.3使用基于Arduino案例开发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优化和扩展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优化和扩展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优化和扩展143
6.5外部中断触发光感传感器点灯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优化和扩展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优化和扩展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优化和扩展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优化和扩展172
参考文献174