本书结合人工智能的新技术,如语音识别、人脸识别、图像识别和目标检测,介绍了嵌入式Linux系统的开发,构成了项目驱动,做中学,学中做相互融合的教学体系。以学生的实践为中心,精心设计了实践性强、技术前沿的综合实践项目,如环境监测系统、视频入侵报警系统、智能遥控车、基于人脸识别的考勤系统、目标检测等。这些项目能够激发学生的学习兴趣,提升学生的实践能力,贴近企业实际工作岗位的要求。
本书可作为高等职业院校电子与信息大类、自动化类等专业的教学用书,也可作为嵌入式开发人员的参考用书。
·十三五职业教育国家规划教材
·以使用广泛的树莓派为教学设备,将人工智能的新技术引入嵌入式Linux系统的开发
·以学生的实践为中心,精心设计了实践性强、技术前沿的综合实践项目,如环境监测系统、视频入侵报警系统、智能遥控车、基于人脸识别的考勤系统、目标检测等
·配套丰富的教学资源,包括微课视频、实践操作视频、电子课件、习题解答、程序源代码等,方便读者学习
嵌入式技术是当前发展前景广阔的技术之一。嵌入式技术应用无处不在,广泛应用在工控设备、智能仪表、汽车电子、军事国防、消费电子、智能家居、智能医疗、可穿戴设备和通信设备等领域。人工智能是引领新一轮科技革命和产业变革的重要驱动力,正深刻改变着人们的生产、生活、学习方式,推动人类社会迎来人机协同、跨界融合、共创分享的智能时代。
本书以使用广泛的树莓派为教学设备,将人工智能的新技术引入嵌入式Linux系统的开发中,内容由浅入深,形成项目驱动,做中学,学中做交叉融合的教学体系。本书分为基础篇和实践篇,第1~4章为基础篇,侧重于基本概念和基本应用,内容包括嵌入式Linux系统开发环境的构建、Linux操作系统基础、嵌入式Linux开发基础、树莓派硬件接口与Python控制。第5~10章为实践篇,侧重实践的具体应用,内容包括环境监测系统、视频入侵报警系统、智能遥控车、基于人脸识别的考勤系统、文字识别与语音识别、目标检测。这些实践项目能够激发学生的学习兴趣,提升学生的实践能力。
本书配套丰富的教学资源,包括微课视频、实践操作视频、电子课件、习题解答、程序源代码等,方便读者学习。随书提供的代码和应用实例都遵守GPL协议,如果引用了本书的代码或例子,请注明引用的地址,并且遵守GPL协议。
本书由丰海、张万良担任主编,邓汉勇、胡钢、胡德清担任副主编,车亚进、王志泉、康凌、彭国兰担任参编,全书由丰海统稿。
本书在编写过程中,厦门城市职业学院教务处给予了大力支持和指导,钟佳城、许南辉、罗椿、江志金完成了书中相关代码的验证和教学教具的制作等工作,在此一并表示感谢!
本书中的电路图采用Altium Designer软件绘制,为了保持与软件的一致性,有些电路图保留了绘图软件的电路符号,部分电路符号可能与国标符号不一致,读者可自行查阅相关资料。
由于编者水平有限,书中难免有疏漏或不妥之处,敬请读者批评指正。
基础篇
第1章嵌入式Linux系统开发环境的构建
1.1嵌入式系统简介与开发环境
1.1.1嵌入式系统简介与应用
1.1.2虚拟机软件VM VirtualBox的安装
1.1.3在VM VirtualBox上安装Ubuntu开发环境
1.1.4增强工具包的安装
1.2树莓派嵌入式系统的构建
1.2.1树莓派嵌入式系统简介
1.2.2构建树莓派嵌入式系统
1.2.3使用PuTTY远程登录树莓派
1.2.4使用VNC远程登录树莓派图形界面
1.2.5开发平台与树莓派之间的文件传输
1.3本章小结
1.4习题
第2章Linux操作系统基础
2.1Linux操作系统基础知识
2.1.1Linux文件系统和目录结构
2.1.2Linux文件属性和权限设置
2.1.3文件的压缩打包与解压解包
2.1.4Linux支持的文件系统
2.1.5Linux版本查询
2.1.6Linux用户登录和账号管理
2.2Linux常用命令
2.2.1目录命令:cd、pwd和clear命令
2.2.2查看文件命令:cat、more和less命令
2.2.3复制和删除命令:cp和rm命令
2.2.4进程命令:ps和kill 命令
2.2.5文件创建命令:touch和ln命令
2.2.6分析工具命令:last、dmesg、who和w命令
2.2.7帮助命令:help和man命令
2.2.8网络相关命令
2.2.9系统管理命令
2.2.10数据流重定向
2.2.11管道的使用
2.2.12使用aptget安装软件
2.3本章小结
2.4习题
第3章嵌入式Linux开发基础
3.1C语言编程
3.1.1C语言简介
3.1.2vi编辑器
3.1.3C语言源代码的编写
3.1.4C语言基础语法
3.2Make与Makefile文件
3.2.1Make编译工具
3.2.2Makefile文件的编写
3.2.3Makefile练习示例
3.3WiringPi C语言函数库控制树莓派GPIO
3.3.1树莓派 GPIO引脚编号
3.3.2WiringPi库的安装
3.3.3WiringPi库的使用
3.4本章小结
3.5习题
第4章树莓派硬件接口与Python控制
4.1电子元器件基础
4.1.1电压和电流
4.1.2电阻
4.1.3电容
4.1.4电感
4.1.5二极管
4.1.6晶体振荡器
4.2电子学基础常识
4.2.1模拟信号和数字信号
4.2.2I/O接口电气特征
4.2.3逻辑门
4.2.4功率
4.3树莓派硬件
4.3.1树莓派引脚与电气要求
4.3.2GPIO的上拉和下拉电阻
4.3.3BOARD、BCM、WiringPi三种硬件引脚编号模式
4.3.4驱动大电流负载
4.4Python基础
4.4.1Python模块的安装
4.4.2Python与vi的配置
4.4.3避免Python代码缩进语法错误
4.5Python控制树莓派GPIO引脚
4.5.1设置与检测引脚编号系统
4.5.2GPIO通道设置与LED灯的控制
4.5.3边缘检测
4.5.4开关抖动的处理
4.5.5脉冲宽度调制(PWM)
4.6本章小结
4.7习题
实践篇
第5章环境监测系统
5.1数据库
5.1.1数据库的安装
5.1.2MariaDB数据库的常用命令
5.2Apache服务器
5.2.1Apache服务器的安装
5.2.2PHP模块的安装与验证
5.3DHT11温湿度传感器
5.3.1DHT11温湿度传感器数据读取
5.3.2将温度写入数据库
5.3.3在网页中显示温湿度数据
5.3.4绘制温湿度随时间变化的曲线
5.4本章小结
5.5习题
第6章视频入侵报警系统
6.1树莓派摄像头
6.1.1安装摄像头模块
6.1.2启用树莓派摄像头模块
6.1.3测试树莓派摄像头模块
6.2安装motion视频入侵报警系统
6.2.1数据库的配置
6.2.2相关视频软件库的安装
6.2.3编译源代码
6.2.4入侵报警功能的实现
6.2.5入侵检测查询网页的编写
6.3本章小结
6.4习题
第7章智能遥控车
7.1电动机驱动
7.1.1RZ7899电动机驱动芯片
7.1.2L298N电动机驱动芯片
7.1.3智能遥控车应用电路
7.2安装和设置蓝牙控制相关库
7.2.1安装蓝牙相关软件包
7.2.2蓝牙设置
7.2.3蓝牙串口的调试
7.3智能遥控车的控制
7.3.1智能遥控车的装配
7.3.2电动机驱动程序的编写
7.3.3手机控制App的安装
7.3.4控制设置
7.4本章小结
7.5习题
第8章基于人脸识别的考勤系统
8.1安装OpenCV
8.1.1OpenCV相关软件安装
8.1.2安装OpenCVpython
8.2人脸识别
8.2.1人脸图像采集
8.2.2抽取特征
8.2.3训练人脸模型
8.2.4编写Python程序识别单张人脸图像
8.2.5编写Python程序识别视频流
8.3将识别结果存入数据库
8.3.1创建数据库相关内容
8.3.2将人脸识别结果写入数据库
8.3.3编写网页程序显示人脸识别的结果
8.4本章小结
8.5习题
第9章文字识别与语音识别
9.1语音识别与合成
9.1.1传声器、扬声器的硬件连接和软件安装
9.1.2人工智能平台账号申请
9.1.3创建语音应用
9.1.4编写语音识别程序
9.1.5编写语音合成程序
9.1.6语音合成
9.2文字识别
9.2.1创建文字识别应用
9.2.2书本图像的获取
9.2.3获取access_token值
9.2.4编写Python程序将图像识别成文字
9.2.5文字识别阅读机
9.3本章小结
9.4习题
第10章目标检测
10.1训练EfficientDet目标检测模型
10.1.1数据标记
10.1.2构建训练模型的服务器
10.1.3安装TensorFlow Lite Model Maker等相关软件
10.1.4使用Jupyter Notebook程序训练模型
10.1.5将训练好的模型下载到树莓派
10.2将模型部署在树莓派上执行目标检测
10.2.1安装Edge TPU库和PyCoral
10.2.2使用Edge TPU进行目标检测
10.3本章小结
10.4习题
参考文献