spContent=从鼠标、键盘、智能手环、手机,到微波炉、电冰箱,单片机作为一款经典的微控制器,应用到我们生活的各个方面。同时,单片机涉及到C语言编程、电路设计,还是学习CPU、计算机、DSP、FPGA的入门。可以说单片机是设计电子信息系统的基础。因此,各学校电子信息类专业均开设了单片机课程。
本门课程从大家熟悉的Arduino讲起,逐步介绍各类输入输出、传感器、电机模块,再到AVR单片机和ESP32单片机,同时穿插交通灯、密码锁、智能车、水火箭、机器猫等综合项目和创新作品。为大家提供一个循序渐进学习单片机的途径。
从鼠标、键盘、智能手环、手机,到微波炉、电冰箱,单片机作为一款经典的微控制器,应用到我们生活的各个方面。同时,单片机涉及到C语言编程、电路设计,还是学习CPU、计算机、DSP、FPGA的入门。可以说单片机是设计电子信息系统的基础。因此,各学校电子信息类专业均开设了单片机课程。
本门课程从大家熟悉的Arduino讲起,逐步介绍各类输入输出、传感器、电机模块,再到AVR单片机和ESP32单片机,同时穿插交通灯、密码锁、智能车、水火箭、机器猫等综合项目和创新作品。为大家提供一个循序渐进学习单片机的途径。
—— 课程团队
课程概述
Arduino这一硬件标准化、软件代码开源的单片机模块,是由意大利的Massimo为方便学生,开发的。以他常去的酒吧di Re Arduino命名。Arduino降低了单片机开发难度,因此迅速得到普及。Arduino已经形成了成熟的生态圈。有各种社区。已经成为中小学生,创新创业的重要工具。正因为Arduino应用广泛,在大学生中有一定的基础。因此我们以Arduino开始讲解本门课程。
我们以点亮发光二极管为例,讲解Arduino的构成、开发软件。利用blink闪灯程序,循序渐进,学习函数控制,IO口、定时器、中断、串口的原理和方法。IO口部分掌握程序控制硬件的方法,理解编程控制Arduino硬件和纯粹计算机编程的差异,理解硬件编程中变量和硬件之间的关系。同样是1秒计时,理解delay、millis函数,和定时器的异同。串口将Arduino和计算机连接起来,任务进阶。解决讲解SPI、IIC等常用功能。利用温度传感器,学习Arduino控制其他模块的方法,学习传感器、执行机构、通信模块。奠定开发基础。
掌握编程控制Arduino,帮助同学快速入门,通过创新作品, 培养系统设计和创新能力。Arduino有助于我们去理解单片机。
单片机部分,是在Arduino的基础上,讲解讲解单片机的结构和运行机制,帮助同学建立程序与硬件、C语言与单片机的关系,培养系统设计和实现能力,也为后续计算机结构、DSP、FPGA、甚至是处理器设计奠定基础。
单片机部分,简单介绍单片机结构。还是以点亮发光二极管为例,以51单片机为例,介绍单片机执行程序的过程,帮助同学们理解,单片机执行指令的过程,建立起硬件和软件之间的关系,主要是单片机寄存器的作用。程序是通过寄存器控制单片机,同时通过查询寄存器得到不同部分的状态。
接着介绍Arduino通过IO口点亮LED的电路结构,理解程序是如何通过不同寄存器控制IO口。还有定时器、中断、串口、SPI口的原理、结构、寄存器控制方法。一方面理解Arduino函数是如何执行的,另一方面了解单片机结构,为开发复杂单片机功能打下基础。
除了以上基本知识外,本课程还提供了大量综合项目和创新作品供大家学习使用。
总之,本门课程希望通过编程控制Arduino,理解单片机工作机制,设计创新作品,培养学生循序渐进学习知识、运用知识、创新创业的能力。同时为后续课程奠定基础。
授课目标
目标1:理解Arduino的概念内涵和开源硬件特点,掌握Arduino开发的流程、软硬件使用方法、Arduino编程技术,能够基于Arduino等开源硬件开发小型电子系统。
目标2:理解单片机的基本概念,掌握单片机的基本原理、结构、指令系统、程序设计、接口控制等,能够基于单片机开展复杂电子系统设计。
目标3:通过一系列实例,熟练掌握电子系统开发、设计和调试等技能、具备根据任务需求,开展系统分析、软硬件设计、代码调试、文档撰写等准产品开发的能力。
课程大纲
绪论
课时目标:理解Arduino的基本概念,掌握软件使用方法和基本开发流程,会通过编程控制Arduino的IO管脚。
1.1 绪论
1.2 Arduino 入门
1.3 Arduino辅助软件介绍
Arduino的定时、中断及接口
课时目标:理解定时、中断、串口的基本概念,掌握Arduino定时、中断、串行通信和SPI接口的编程使用方法。
2.1 Arduino定时
2.2 Arduino中断
2.3 Arduino串口
2.4 Arduino SPI
Arduino的基本输入输出
课时目标:理解按键、键盘、数码管等输入输出设备的工作原理,掌握Arduino按键和、键盘和数码管的编程使用方法。
3.1 Arduino按键
3.2 Arduino键盘
3.3 Arduino数码管
3.4 数码管动态扫描
Arduino的高级输入输出
课时目标:理解旋钮、LED点阵、液晶屏等高级输入输出设备的工作原理,掌握Arduino高级交互方式的编程方法。
4.1 Arduino旋钮
4.2 ArduinoLED点阵
4.3 Arduino光立方
4.4 Arduino液晶屏
Arduino的交通灯与密码锁
课时目标:学习单片机的状态机设计方法,掌握交通灯和密码锁的设计实现方法。
Arduino的模拟IO
课时目标:理解Arduino模拟IO,操纵杆、PWM的工作原理,掌握Arduino读取操纵杆信息、产生PWM控制蜂鸣器和电机的编程方法。
6.1 Arduino模拟IO
6.2 Arduino操纵杆
6.3 Arduino的PWM
6.4 Arduino蜂鸣器
6.5 Arduino电机控制
Arduino的传感器
课时目标:理解温湿度、超声波、光电、陀螺仪等传感器的工作原理,掌握Arduino通过传感器获取物理世界信息的编程方法。
7.1 Arduino温湿度传感器
7.2 Arduino超声波测距
7.3 Arduino光电传感器
7.4 Arduino陀螺仪
Arduino的无线通信
课时目标:了解蓝牙、GSM、WiFi和LoRa的基本概念,掌握Arduino进行无线通信的编程方法。
8.1 蓝牙
8.2 GSM
8.3 WiFi
8.4 LoRa
Arduino的智能车——基础
课时目标:掌握由模块到系统的综合设计方法,扩展同学们对单片机制作项目的认知。
9.1 系统设计
9.2 超声波避障
9.3 光电循迹
9.4 无线遥控
Arduino的智能车——提高
课时目标:掌握图像传感器的原理和使用,应用神经网络方法实现小车的智能控制。
10.1 图像传感与目标识别
10.2 神经网络与智能控制
AVR单片机基础
课时目标:理解AVR单片机及其IO的基本构成,掌握AVR单片机软件开发方法,会通过编程控制AVR单片机的IO管脚。
11.1 AVR单片机入门
11.2 AVR软件的IO
AVR单片机的定时、中断和串行接口
课时目标:理解AVR单片机定时器、中断和串行接口的基本组成,掌握寄存器配置和编程使用方法。
12.1 AVR单片机的定时器
12.2 AVR单片机的中断
12.3 AVR单片机的串口接口
单片机综合实验1——水火箭测控
课时目标:在本实验中制作一款可自主着陆的水火箭。基于单片机、陀螺仪、舵机、无线通信模块设计开发测控系统,让水火箭在发射后可通过无线链路实时回传自身运动数据,并根据运动数据计算出水火箭运行水平距离,到达着陆区时自动开伞将火箭降落至着陆区。
13.1 实验原理
13.2 实物制作
13.3 测试与展示
ESP32单片机
课时目标:理解ESP32单片机的基本构成,掌握ESP32单片机开发方法。
14.1 ESP32简介
14.2 ESP32双核
14.3 ESP32定时器
14.4 ESP32中断
14.5 ESP32串口
14.6 ESP32无线
单片机综合实验2——机器猫
课时目标:基于四足机器人平台和ESP32单片机,设计实现一款可执行前进、后退、左右转、坐下、自主避障等动作的机器猫玩具,同时能够通过网络远程监测与控制。
15.1 实验原理
15.2 实物制作
15.3 测试与展示
展开全部
预备知识
具备如电子设计基础、数字电路技术、C语言等基础知识
证书要求
为积极响应国家低碳环保政策, 2021年秋季学期开始,中国大学MOOC平台将取消纸质版的认证证书,仅提供电子版的认证证书服务,证书申请方式和流程不变。
电子版认证证书支持查询验证,可通过扫描证书上的二维码进行有效性查询,或者访问 https://www.icourse163.org/verify,通过证书编号进行查询。学生可在“个人中心-证书-查看证书”页面自行下载、打印电子版认证证书。
完成课程教学内容学习和考核,成绩达到课程考核标准的学生(每门课程的考核标准不同,详见课程内的评分标准),具备申请认证证书资格,可在证书申请开放期间(以申请页面显示的时间为准),完成在线付费申请。
认证证书申请注意事项:
1. 根据国家相关法律法规要求,认证证书申请时要求进行实名认证,请保证所提交的实名认证信息真实完整有效。
2. 完成实名认证并支付后,系统将自动生成并发送电子版认证证书。电子版认证证书生成后不支持退费。
参考资料
教材:
王俊、张玉玺 等,《单片机基础与Arduino应用》(普通高等教育“十三五”规划教材),电子工业出版社,2017年9月。

常见问题
Q : 单片机学习的关键是什么?
A : 单片机是实践性比较强的课程,学好单片机的关键是编程和动手实践。重点掌握定时器、中断、通信的编程实现,在实践过程中学会发现问题、分析问题,从而解决实践中的问题。
Q : 本课程需要哪些编程软件和仿真工具?
A : 需要Proteus仿真软件、Fritzing仿真软件、Arduino IDE开发环境。
Q : 本课程是否需要单片机硬件,需要哪种开发板?
A : 本课程实践性比较强,建议同学配一块Arduino UNO开发板,有条件的同学可以买Arduino UNO套件,更加方便学习。
Q : 课程对电子工程的专业知识要求是否很强?
A : 学习Arduino单片机可以完全不需要了解其内部硬件结构和寄存器设置,仅仅知道它的端口作用即可;可以不懂硬件知识,只要会简单的C语言,就可用Arduino单片机编写程序。