第9周:输入设备
本文档内容由我向 Claude 3.7 Sonnet 提供课程大纲内容,以及本课程视频会议课程的字幕后,由 AI 提炼生成。
课程概要
本周课程专注于输入设备和传感器技术,教授如何将各种传感器连接到微控制器并从中读取数据。课程涵盖了多种输入设备,包括按钮开关、磁场传感器、步进响应测量、温度传感器、光传感器、运动传感器、距离传感器、实时时钟、位置传感器、加速度计、声音传感器、力量传感器和摄像头等。学生将学习如何使用这些传感器测量物理量,并将这些信息输入到数字系统中进行处理。
详细课程内容
1. 课程简介与背景
在制造电子设备的过程中,输入设备是与外部世界交互的关键环节。本周课程将深入探讨各种传感器技术及其应用。在接下来的几周中,我们将依次学习输出设备(如电机和显示器)、多处理器间的通信以及如何构建完整的机器系统。
2. 微控制器输入基础
2.1 数据手册与引脚功能
- 数据手册参考:了解 AVR DB 系列微控制器的数据手册,特别关注模拟接口部分
- 基本引脚类型:
- 数字输入/输出引脚(ports)
- 模拟比较器(comparator)
- 模拟数字转换器(A/D)
- I2C接口
2.2 信号处理基础
- 模拟比较器:快速比较两个电压值
- 模拟数字转换器:将模拟信号转换为数字值
- I2C通信:越来越多的传感器使用I2C通信协议
3. 按钮和开关
3.1 按钮原理
3.2 按钮编程示例
以下是基于 ESP32-C3 的按钮示例:
其他微控制器示例:
4. 磁场传感器
4.1 霍尔效应传感器
- 原理:霍尔效应传感器测量磁场并输出相应电压
- 方向性:翻转传感器可以测量不同方向的磁场
- 灵敏度:足够灵敏可以测量地球磁场
- 应用:检测盖子关闭状态、轴接近终点
- 示例:hello.mag.45、板设计、代码、视频
4.2 矢量磁力计
- 3轴磁场测量:矢量磁力计测量X、Y、Z三个方向的磁场
- 应用:应用案例包括操纵杆、换挡杆位置检测、滚轮界面等
- I2C通信:通过I2C协议传输数据
- 示例:hello.TLE493D.t412、板设计、代码、视频
- 模拟工具:3D磁传感器模拟器
5. 可变电阻器(电位器)
6. 步进响应测量(Step Response)
6.1 电容感应原理
- 测量原理:基于充放电时间测量电容变化
- 应用范围:测量电阻、电容、电感、位置、压力、倾斜、加速度、湿度、接近度等
- 人体电容测量:利用人体导电特性测量接触或接近
- 动画演示:步进响应模拟
6.2 自电容测量(单引脚)
- 硬件支持:
- 示例:
- SAMD21:hello.touch.D21、代码、视频
- ESP32S3:hello.touch.S3、代码、视频
- 自制电容测量:
- RP2040:hello.steptime1.RP2040、代码、视频
6.3 远程处理器测量
6.4 互电容测量(双引脚)
- 原理:一个电极发送信号,另一个接收
- 优势:不依赖于室内地线,更加稳定可靠
- 示例:
- RP2040:hello.txrx2.RP2040、代码、视频
- ATtiny1624:hello.txrx.t1624、代码、视频
6.5 远程放大器测量
- 原理:使用运算放大器增强信号
- 示例:hello.txrx.RP2040.op-amp、代码、视频
6.6 介电谱测量
6.7 应用示例
7. 温度传感器
7.1 热敏电阻桥式电路
- 原理:NTC热敏电阻或RTD热敏电阻的电阻值随温度变化
- 示例:hello.temp.45、代码、视频
7.2 红外温度测量
- 原理:红外温度传感器测量物体发出的红外辐射
- 应用:非接触式温度测量
8. 光传感器
8.1 光电晶体管
- 类型:红外和可见光光电晶体管
- 示例:hello.light.45、代码、视频
8.2 同步检测
- 原理:同步检测技术消除环境光干扰
- 示例:hello.reflect.45、代码、视频
8.3 颜色传感器
- RGB传感器:颜色传感器测量红、绿、蓝三种颜色
- 示例:hello.VEML6040.t412、代码、视频
- 手势传感器:APDS-9960可检测手势
9. 运动传感器
9.1 多普勒雷达
- 原理:多普勒雷达模块测量多普勒频移,检测运动
- 示例:hello.RCWL-0516、代码、视频
9.2 热释电传感器
- 传感器:HC-SR501
- 示例:hello.HC-SR501、代码、视频
10. 距离传感器
10.1 激光飞行时间测量
10.2 超声波传感器
- 传感器:HC-SR04
- 示例:hello.HC-SR04、代码、视频
11. 实时时钟(RTC)
- 芯片:PCF8523、模块
- 示例:hello.PCF8523.RP2040、代码、视频
12. 位置和时间传感器(GPS)
13. 加速度、旋转和方向传感器
13.1 三轴加速度计
- 芯片:ADXL343
- 示例:hello.ADXL343、代码、视频
13.2 六轴IMU(惯性测量单元)
13.3 九轴IMU
14. 声音传感器
14.1 MEMS麦克风
- 数字接口:
- 示例:
- 模拟接口:
14.2 驻极体麦克风
- 放大器:AD8615运算放大器
- 示例:hello.mic.45、代码、视频
15. 其他传感器简介
16. 图像传感器
16.1 摄像头模块
- ESP32摄像头:
- 示例:
16.2 人工智能模块
16.3 网络摄像头
16.4 图像处理库
16.5 网页图像处理
作业要求
小组作业
探测输入设备的模拟电平和数字信号:
- 选择一种输入设备(如按钮、传感器等)
- 使用示波器或其他工具测量其模拟电平
- 观察并记录数字信号的特性
- 分析信号模式并理解其工作原理
个人作业
测量某物:向你设计的微控制器板添加传感器并读取数据
- 设计并制作一个包含微控制器和传感器的电路板
- 编程读取传感器数据
- 数据可视化(通过Arduino/Thonny内置绘图工具或Python代码)
- 记录过程并撰写文档,说明传感器原理、应用和测量结果
参考示例:Adrian Torres的输入设备项目
建议:如果不确定选择哪种传感器,尝试使用步进响应(step response)技术,因为它只需要处理器引脚和简单的铜电极即可制作出各种有趣的界面和传感器。