# 第1周：课程导入与单片机基础 - 讲义

## 教学目标

| 目标 | 内容 |
|-----|------|
| 知识目标 | 理解单片机概念、了解单片机发展历程、理解四次工业革命与嵌入式AI的关系 |
| 能力目标 | 能够搭建Arduino开发环境、成功上传第一个程序到ESP32 |
| 情感目标 | 激发学生对嵌入式AI的兴趣、建立课程学习信心 |

---

## 课程导入（10分钟）

### 1.1 开场Demo设计

**Demo名称：智能设备秀**

**演示流程：**
1. 播放视频1：波士顿动力Atlas机器人视频（展示双足机器人的平衡、搬运能力）
2. 播放视频2：小米小爱同学对话演示（展示语音交互）
3. 播放视频3：特斯拉工厂机器人视频（展示自动化）

**引导语：**
> "同学们，刚才看到的所有这些智能设备，它们都有一个共同的核心——那就是嵌入式系统。今天开始，我们就要学习怎么制作这样的智能设备。"

**引出内容：**
- 这些设备是怎么"思考"的？→ 单片机原理
- 它们和电脑有什么区别？→ 嵌入式系统特点

---

## 原理讲解（40分钟）

### 1.2 单片机是什么？

#### 1.2.1 基本概念

**定义：** 单片机（Microcontroller Unit, MCU）是将中央处理器（CPU）、存储器（RAM/ROM）、输入/输出接口（I/O）等计算机基本部件集成在一块芯片上的微型计算机系统。

**通俗理解：**
```
电脑 = CPU + 内存 + 硬盘 + 主板 + 显示器 + 键盘 + ...
         ↓ 缩小化 ↓
单片机 = CPU + 内存 + 存储 + 常用外设 全部集成在一块芯片上
```

#### 1.2.2 单片机 vs 普通电脑

| 对比项 | 普通电脑 | 单片机 |
|-------|---------|-------|
| CPU性能 | 强大（GHz级别） | 较弱（MHz~几百MHz） |
| 内存 | 大（GB级别） | 小（KB~几MB） |
| 存储 | 大（GB~TB） | 小（KB~几MB） |
| 功耗 | 高（百瓦级） | 低（mW~W级） |
| 成本 | 高（几千~几万） | 低（几元~几百元） |
| 体积 | 大 | 小（指甲盖~火柴盒） |
| 应用场景 | 通用计算 | 专用控制 |

#### 1.2.3 单片机的应用领域

```
┌─────────────────────────────────────────────────────────┐
│                    单片机应用领域                        │
├─────────────────────────────────────────────────────────┤
│                                                         │
│   📱 消费电子          🏭 工业控制                      │
│   • 智能手机          • PLC、工控机                    │
│   • 智能手表          • 电机控制                       │
│   • 游戏机            • 自动化生产线                   │
│                                                         │
│   🚗 汽车电子          🏠 智能家居                      │
│   • 发动机控制        • 智能灯、空调                   │
│   • 车载娱乐          • 门锁、音箱                     │
│   • 驾驶辅助          • 扫地机器人                    │
│                                                         │
│   🏥 医疗设备          🌾 物联网                       │
│   • 可穿戴设备        • 环境监测                       │
│   • 便携医疗          • 智能农业                       │
│   • 远程医疗          • 智慧城市                       │
│                                                         │
└─────────────────────────────────────────────────────────┘
```

---

### 1.3 单片机发展历程

#### 1.3.1 时间线

| 年代 | 阶段 | 代表产品 | 主要特点 |
|-----|------|---------|---------|
| 1971 | 单片机诞生 | Intel 4004 | 4位处理器，2300个晶体管 |
| 1976 | 4位单片机时代 | Intel 8048 | 简单控制功能 |
| 1980 | 8位单片机时代 | Intel 8051 | 经典架构，应用广泛 |
| 1990 | 16位单片机时代 | MSP430 | 低功耗设计 |
| 2000 | 32位单片机兴起 | ARM Cortex-M | 性能大幅提升 |
| 2010 | WiFi单片机时代 | ESP8266 | 内置WiFi，价格低廉 |
| 2016 | AI单片机时代 | ESP32-S3 | WiFi+蓝牙+AI加速 |

#### 1.3.2 里程碑：Intel 8051

**8051（Intel MCS-51）是单片机历史上的传奇：**
- 1980年推出
- 8位数据总线
- 4KB ROM，128B RAM
- 4个8位I/O口
- 2个定时器
- 1个串口

**影响：**
- 授权给多家厂商（Atmel、Philips、STC等）
- 衍生出数百种兼容芯片
- 成为单片机教学的标准教材
- 至今仍在工业领域使用

#### 1.3.3 ESP32的崛起

**ESP32（乐鑫科技）为什么这么火？**

| 特性 | 说明 |
|-----|------|
| WiFi + 蓝牙 | 内置无线通信 |
| 双核处理器 | 240MHz主频 |
| 丰富外设 | GPIO、I2C、SPI、UART、ADC等 |
| 低功耗 | 多种功耗模式 |
| 价格低廉 | 约10-30元 |
| 开发友好 | Arduino、MicroPython支持 |

**ESP32-S3新增AI能力：**
- 向量指令集（ESP-NN）
- 加速神经网络运算
- 支持TensorFlow Lite Micro

---

### 1.4 四次工业革命

#### 1.4.1 概述

```
工业1.0 (1760-1840)     │  蒸汽机          │  机械替代人工
         ↓
工业2.0 (1870-1914)     │  电力+内燃机     │  大规模生产
         ↓
工业3.0 (1960-2000)     │  电子+计算机     │  自动化控制
         ↓
工业4.0 (2010-至今)      │  AI+IoT+机器人   │  智能化时代
```

#### 1.4.2 工业4.0的核心特征

**四大核心：**
1. **智能感知** - 传感器、物联网
2. **智能分析** - 大数据、云计算
3. **智能决策** - 人工智能、机器学习
4. **智能执行** - 机器人、自动化

**关键概念：**
- **IoT（物联网）**：万物互联
- **AI（人工智能）**：让机器会思考
- **Cyber-Physical System（信息物理系统）**：虚拟与现实融合

#### 1.4.3 嵌入式系统在工业4.0中的角色

```
┌─────────────────────────────────────────────────────────┐
│                                                         │
│              工业4.0 中的嵌入式系统                      │
│                                                         │
│                                                         │
│    云计算平台 ◄──── 数据 ────► 嵌入式设备              │
│         │                              │               │
│         │     分析结果                  │ 感知+执行     │
│         ▼                              ▼               │
│    大数据分析    ────►   智能决策    ────►   机器人    │
│                                                         │
│         │                              │               │
│         │     反馈                      │ 反馈          │
│         ▼                              ▼               │
│    模型优化      ◄──── 结果   ◄────   执行效果         │
│                                                         │
└─────────────────────────────────────────────────────────┘
```

**结论：**
- 云端AI负责"大脑"——复杂分析、长期决策
- 嵌入式系统负责"感官和手脚"——感知数据、执行动作
- **嵌入式AI = 把AI能力部署到设备端**

---

### 1.5 为什么学习嵌入式AI？

#### 1.5.1 市场需求

| 指标 | 数据 |
|-----|------|
| 全球嵌入式AI市场（2025预测） | 超过3000亿美元 |
| 中国嵌入式AI人才缺口 | 超过500万人 |
| 平均薪资涨幅（5年） | 40%+ |

#### 1.5.2 应用领域

**智能家居：**
- 智能音箱（语音控制）
- 智能门锁（人脸识别）
- 扫地机器人（路径规划）
- 智能空调（温度感知）

**智能交通：**
- 自动驾驶（环境感知）
- 智能停车（车位检测）
- 车联网（V2X通信）

**医疗健康：**
- 可穿戴设备（心率监测）
- 便携医疗（血糖检测）
- 手术机器人（精准控制）

**农林渔牧：**
- 智慧农业（环境监测）
- 智能养殖（行为分析）
- 渔情监测（水下探测）

#### 1.5.3 就业方向

| 方向 | 岗位 | 技能要求 |
|-----|------|---------|
| 芯片原厂 | 应用工程师、FAE | 嵌入式开发、驱动开发 |
| 产品公司 | 嵌入式软件工程师 | C/C++、RTOS、网络协议 |
| AI公司 | 部署工程师 | 模型量化、边缘优化 |
| 创业 | 硬件创始人 | 全栈能力、产品思维 |

---

## 实验指导（30分钟）

### 1.6 实验：开发环境搭建

#### 1.6.1 实验目的

1. 安装Arduino IDE开发环境
2. 配置ESP32开发板支持
3. 成功上传Blink程序到开发板

#### 1.6.2 所需材料

| 材料 | 说明 | 费用 |
|-----|------|-----|
| 电脑 | Windows/Mac/Linux均可 | 自备 |
| ESP32-S3开发板 | 立创实战派或其他ESP32-S3 | 约50元 |
| USB数据线 | Type-C接口 | 自备 |

#### 1.6.3 实验步骤

**Step 1: 下载Arduino IDE**

访问：https://www.arduino.cc/en/software

选择对应系统的版本下载：
- Windows: 下载`.exe`安装包
- Mac: 下载`.zip`压缩包
- Linux: 下载`.AppImage`或通过apt安装

**Step 2: 安装Arduino IDE**

双击安装包，按提示完成安装。

**Step 3: 添加ESP32开发板管理器URL**

1. 打开Arduino IDE
2. 点击菜单：`文件` → `首选项`
3. 在"附加开发板管理器 URLs"中添加：
   ```
   https://dl.espressif.com/dl/package_esp32_index.json
   ```
4. 点击"好"

**Step 4: 安装ESP32开发板**

1. 点击菜单：`工具` → `开发板` → `开发板管理器`
2. 在搜索框输入：`esp32`
3. 找到`ESP32 by Espressif Systems`
4. 点击"安装"（可能需要几分钟）

**Step 5: 选择开发板**

1. 点击菜单：`工具` → `开发板` → `ESP32 Arduino`
2. 选择：`ESP32S3 Dev Module`

**Step 6: 连接开发板**

1. 用Type-C数据线连接电脑和开发板
2. 点击菜单：`工具` → `端口`
3. 选择对应的COM口（Windows）或`/dev/ttyUSB0`（Linux）

**Step 7: 上传Blink程序**

1. 点击菜单：`文件` → `示例` → `01.Basics` → `Blink`
2. 点击上传按钮（→）
3. 等待"上传完成"
4. 观察开发板上的LED是否闪烁

#### 1.6.4 Blink程序解析

```cpp
// setup() 函数：上电后只执行一次
void setup() {
  // 初始化LED引脚为输出模式
  pinMode(LED_BUILTIN, OUTPUT);
}

// loop() 函数：无限循环执行
void loop() {
  digitalWrite(LED_BUILTIN, HIGH);  // LED亮
  delay(1000);                       // 等待1000ms
  digitalWrite(LED_BUILTIN, LOW);   // LED灭
  delay(1000);                       // 等待1000ms
}
```

**关键函数解释：**

| 函数 | 说明 |
|-----|------|
| `pinMode(pin, mode)` | 设置引脚模式：INPUT/OUTPUT |
| `digitalWrite(pin, value)` | 输出电平：HIGH(3.3V)/LOW(0V) |
| `delay(ms)` | 延时，参数为毫秒 |

#### 1.6.5 常见问题

**Q1: 上传失败，显示"Failed to connect to ESP32"**

解决方案：
1. 按住开发板上的BOOT按钮
2. 点击RESET按钮
3. 松开BOOT按钮
4. 重新上传

**Q2: 找不到COM端口**

解决方案：
1. 确认USB线支持数据传输（有些线只支持充电）
2. 安装CH343驱动：https://www.wch.cn/downloads/CH343SER_EXE.html
3. Windows设备管理器中查看是否有COM端口

**Q3: 编译报错"esp32 board not found"**

解决方案：
1. 检查Step 3中的URL是否正确
2. 尝试删除`~AppData/Local/Arduino15`文件夹后重试

---

## 课堂总结（5分钟）

### 1.7 本周要点

```
┌─────────────────────────────────────────────────────────┐
│                   第1周要点速记                          │
├─────────────────────────────────────────────────────────┤
│                                                         │
│   📌 单片机 = CPU + 内存 + 外设 集成在一块芯片上        │
│                                                         │
│   📌 发展趋势：4位→8位→16位→32位→AI单片机            │
│                                                         │
│   📌 工业4.0 = AI + IoT + 嵌入式系统                  │
│                                                         │
│   📌 嵌入式AI = 在设备端运行AI模型                     │
│                                                         │
│   📌 ESP32 = WiFi + 蓝牙 + 较强算力 + 低价格          │
│                                                         │
│   📌 开发环境：Arduino IDE + ESP32开发板               │
│                                                         │
└─────────────────────────────────────────────────────────┘
```

### 1.8 下周预告

**第2周：ESP32硬件平台**

**开场Demo：ESP32音乐灯光秀**

内容预告：
- ESP32芯片内部结构
- GPIO引脚控制
- PWM脉宽调制
- 制作音乐播放器

**预习问题：**
1. LED是怎么被控制的？
2. 怎么让灯光随音乐闪烁？

---

## 课后作业

| 序号 | 作业内容 | 提交时间 |
|-----|---------|---------|
| 1 | 完成开发环境搭建，截图证明Blink程序成功上传 | 下周上课前 |
| 2 | 搜索资料：ESP32和STM32有什么区别？ | 下周上课前 |
| 3 | 思考：你想做一个什么样的嵌入式AI项目？ | 下周上课前 |

---

## 参考资源

| 资源 | 链接 |
|-----|------|
| Arduino官网 | https://www.arduino.cc/ |
| ESP32文档 | https://docs.espressif.com/projects/esp-idf/ |
| 乐鑫官网 | https://www.espressif.com/ |
| 立创实战派 | https://oshwhub.com/ |

---

**讲义版本**: v1.0  
**更新日期**: 2026-04-10  
**授课教师**: 李茂奎老师
