本书通过讲述树莓派(Raspberry Pi 4 Model B)上的Python实现,使读者在熟悉Python语言和许多传感器使用的同时,掌握如何使用树莓派的GPIO与外围硬件进行数据交互、读取硬件的工作状态、控制硬件工作等,实现树莓派与外界硬件设备的交互,通过软硬件的结合,掌握人工智能项目开发的基本方法,实现集语音识别、自动投放、溢满提醒、火情报警等功能于一体的智能垃圾分类系统。
本书可作为高等学校计算机类、信息类、电子类等专业人工智能相关课程的教材,也可供希望学习Python、OpenCV的读者或其他从事人工智能项目开发的工程技术人员学习参考。
本书适用于拥有树莓派并希望学习Python、OpenCV的读者,可作为高等院校计算机类、信息类、电子类等专业人工智能相关课程的教材,也可供从事人工智能项目开发的读者参考。
人工智能是国家新兴战略产业中信息产业发展的核心领域。作者团队在校企合作教书育人过程中,通过与企业工程师共同探讨,完成了基于人工智能应用场景的实践教学,经过近几年卓越工程师班的教学实践,教学效果良好。
本书由上海电力大学嵌入式智能技术产教融合教学团队编写,是上海市2019年高校本科重点教学改革项目基于人工智能应用场景的产教深度融合实践教学改革与探索的成果,也是2019年上海市高水平应用型大学建设上海电力大学重点教改项目新工科背景下卓越工程师培养模式探索的成果。
本书共分4章,前3章主要讲解基本知识,第4章为具体项目实践。具体内容安排如下。
第1章介绍树莓派的安装使用。
第2章介绍Python程序的编写和OpenCV的基础内容,包括人脸检测、人脸比对、运动检测等内容。
第3章介绍如何使用树莓派的GPIO与硬件的交互,包括LED、继电器、蜂鸣器、各类开关、各类模拟传感器和数字传感器等内容。
第4章介绍智能垃圾分类系统项目的设计制作,综合前3章的内容和语音识别技术,实现了语音识别、自动投放、溢满提醒、火情报警等功能。
实践项目案例会不断更新,有兴趣的读者可以与作者进行探讨。
由于作者能力有限,书中难免有所遗漏,恳请同行专家及读者批评指正。
作者
2025年4月
第1章树莓派安装使用/1
1.1烧写镜像文件至SD卡2
1.1.1格式化SD卡2
1.1.2烧写镜像文件2
1.2启动树莓派4
1.2.1通常情况4
1.2.2开机直接进入树莓派系统的情况5
1.3PuTTY5
1.4VNC Viewer8
1.4.1通常情况8
1.4.2无法连接VNC的情况8
1.4.3分辨率不匹配情况9
1.4.4树莓派菜单配置10
1.5文件传输11
1.6Linux常用命令与文本编辑12
1.6.1常用命令12
1.6.2文件与目录管理12
1.6.3文本编辑14
第2章编程基础/16
2.1Python快速入门16
2.1.1Python程序编写16
2.1.2方法17
2.1.3循环17
2.1.4分支18
2.2Python语法基础19
2.2.1变量20
2.2.2值和类型21
2.2.3结构体24
2.2.4控制程序流程26
2.2.5函数29
2.2.6类30
2.2.7模块33
2.3OpenCV基础34
2.3.1图像读写35
2.3.2图像处理37
2.3.3视频捕获46
2.3.4保存视频46
2.3.5人脸检测47
2.3.6给人脸带上表情48
2.3.7人脸比对49
2.3.8运动检测52
2.3.9KNN背景分割器54
第3章树莓派的GPIO/56
3.1LED57
3.1.1七彩LED57
3.1.2双色LED58
3.1.3RGB LED64
3.2继电器66
3.3激光发射模块69
3.4开关71
3.4.1轻触开关71
3.4.2倾斜开关74
3.4.3振动开关76
3.4.4干簧管79
3.4.5触摸开关81
3.5U型光电传感器84
3.6蜂鸣器86
3.6.1有源蜂鸣器87
3.6.2无源蜂鸣器88
3.7模拟传感器93
3.7.1模数转换传感器93
3.7.2雨滴传感器97
3.7.3PS2操作杆100
3.7.4电位器102
3.7.5霍尔传感器104
3.7.6模拟温度传感器107
3.7.7声音传感器111
3.7.8光敏传感器114
3.7.9火焰传感器115
3.7.10烟雾传感器118
3.8超声波传感器122
3.9旋转编码传感器124
3.10陀螺仪加速度传感器127
3.11红外避障传感器130
3.12循迹传感器132
3.13数字温湿度传感器134
第4章智能垃圾分类系统的设计与实现/139
4.1智能垃圾分类系统简介139
4.2智能投放模块140
4.2.1智能投放模块架构140
4.2.2语音识别部分141
4.2.3机械控制部分144
4.3语音交互模块148
4.3.1语音交互模块架构148
4.3.2语音交互模块实现148
4.4满溢报警模块149
4.4.1满溢报警模块架构149
4.4.2满溢报警模块实现149
4.5火情报警模块152
4.5.1火情报警模块架构152
4.5.2火情报警模块实现152
4.6可选方案: 通过Arduino板连接伺服电动机154
4.6.1树莓派与Arduino通信154
4.6.2Arduino与伺服电动机通信157
参考文献/160