新書推薦:
《
炙野(全2册)
》
售價:HK$
78.2
《
女人的胜利
》
售價:HK$
55.9
《
数据有道:数据分析+图论与网络+微课+Python编程(鸢尾花数学大系:从加减乘除到机器学习)
》
售價:HK$
266.6
《
500万次倾听:陪伤心的人聊聊
》
售價:HK$
53.8
《
英国商业500年(见证大国崛起与企业兴衰,启迪未来商业智慧。)
》
售價:HK$
80.6
《
万千心理·儿童心理治疗中的心智化:临床实践指导
》
售價:HK$
87.4
《
自我囚禁的人:完美主义的心理成因与自我松绑(破除你对完美主义的迷思,尝试打破自我评价过低与焦虑的恶性循环)
》
售價:HK$
66.1
《
周易
》
售價:HK$
44.6
|
編輯推薦: |
本书主要目的是让初学者能够综合运用 STM32 从无到有地做出一件产品。读者通过本书的学习与实验,可以轻松地掌握 STM32 开发工具以及基本编程方法,学会借助于 STM32CubeMX 来降低项目的开发复杂度。
|
內容簡介: |
本书主要介绍机器人运动控制的相关知识,从软硬件两方面讲述如何使用 STM32 HAL 的方式来控制机器人运动。本书基于集成了驱动模块的机器人控制板重点介绍 STM32 电机控制的相关理论与实践知识,以案例的形式展开教学内容,并内嵌电路原理图、PCB 板图以及源代码等, 是动手实践 STM32 的一个很好的选择。本书主要目的是让初学者能够综合运用 STM32 从无到有地做出一件产品。读者通过本书的学习与实验,可以轻松地掌握 STM32 开发工具以及基本编程方法,学会借助于 STM32CubeMX 来降低项目的开发复杂度。本书适用于高等职业院校机器人相关专业大一、大二学生,不特别要求有模拟电子技术和数字电子技术方面的基础,但要求有比较扎实的 C 语言功底,能够比较熟练地使用 C 语言当中的数组、指针和结构体等知识。
|
關於作者: |
安峰,目前在苏州工业园区服务外包职业学院任职,主要讲授课程《C语言程序设计》《STM32程序开发》《机器人导论》《移动机器人运动控制》《移动机器人无线通信》,发表多篇科研论文,并在物联网大赛、技能大赛当中多次获奖 陶文寅,目前任职于苏州工业园区服务外包职业学院,主要讲授课程《C语言程序设计》、《STM32程序开发》、《机器人导论》、《ROS智能机器人》、《Linux操纵系统》、《Python程序设计》,发表多篇科研论文,并在物联网大赛、技能大赛当中多次获奖
|
目錄:
|
STM32 与 HAL 库介绍 1
1.1 STM32 简介 1
1.2 STM32 硬件设计 1
1.3 STM32 软件编程 2
1.3.1 寄存器编程 2
1.3.2 标准外设库编程 2
1.3.3 HAL 库编程 2
1.4 HAL 库特点 3
1.5 学习方法 4
习题 5
软硬件平台 6
2.1 硬件平台 6
2.1.1 控制板 6
2.1.2 底盘 7
2.1.3 电池 8
2.2 软件安装与配置 9
2.2.1 Keil 安装 9
2.2.2 MX 的安装和使用 16
2.2.3 Keil 5 软件的使用 28
2.2.4 程序编译和下载 33
习题 36
流水灯 37
3.1 理论介绍 37
3.1.1 引脚分类 37
3.1.2 端口 Port 39
3.1.3 GPIO 简介 39
3.1.4 GPIO 模式配置 39
3.1.5 HAL 库函数 40
3.2 硬件设计 40
3.3 软件设计 41
3.3.1 软件编程思路 41
3.3.2 MX 生成工程 41
3.3.3 关键代码分析 48
习题 54
第 4 章
4.1 硬件设计 55
4.2 消抖 56
4.3 软件设计 57
4.3.1 软件编程思路 57
4.3.2 MX 生成工程 58
4.3.3 关键代码分析 60
4.4 实验现象 60
习题 60
第 5 章
5.1 中断 61
5.1.1 中断的概念 61
5.1.2 NVIC 简介 62
5.1.3 优先级分组 62
5.1.4 NVIC 库函数 62
5.1.5 外部中断 EXTI 66
5.1.6 外部中断处理流程 66
5.2 MX 生成工程 66
5.3 软件设计 68
5.3.1 外部中断初始化 68
5.3.2 外部中断的中断处理函数 70
5.4 下载运行 72
习题 72
第 6 章
6.1 串行通信介绍 73
6.2 串口通信协议 74
6.3 硬件原理图 75
6.4 F103RC 串口 76
6.5 MX 生成工程 76
6.6 串口应用案例 78
6.6.1 简单发送接收 78
6.6.2 printf 与 scanf 79
6.6.3 接收帧解析 79
6.6.4 接收定时解析 80
习题 82
集成电路总线(IIC) 83
7.1 IIC 概述 83
7.1.1 IIC 简介 83
7.1.2 IIC 协议 83
7.2 硬件设计 85
7.3 软件设计 85
7.3.1 GPIO 初始化 85
7.3.2 IIC 时序信号 86
7.4 IIC 接口应用案例EEPROM 应用 IIC 接口 88
习题 92
电机分类与原理介绍 93
8.1 电动机分类 93
8.1.1 有刷直流电机 94
8.1.2 无刷直流电机 95
8.1.3 伺服电机 95
8.1.4 步进电机 96
8.1.5 舵机 96
8.2 三个基本定则 97
8.2.1 左手定则 97
8.2.2 右手定则 97
8.2.3 安培定则 98
8.3 直流电机工作原理 98
8.3.1 构成 99
8.3.2 电动势与能量转换 99
习题 99
直流减速电机控制 100
9.1 直流减速电机介绍 100
9.2 电机驱动 102
9.2.1 驱动器 103
9.2.2 H 桥电路分析 104
9.2.3 PWM 作为控制信号 105
9.3 常见电机驱动方案 107
9.3.1 L298N 驱动芯片 108
9.3.2 BTS7970 驱动芯片 110
9.3.3 IR2104 驱动芯片 110
习题 111
第 10 章
10.1 定时器 112
10.1.1 定时器简介 112
10.1.2 定时器工作原理 113
10.1.3 功能框图 113
10.1.4 输出比较 115
10.1.5 输入捕获 115
10.2 脉冲宽度调制 117
10.3 MX 生成工程 119
10.4 定时器应用 122
10.4.1 实现定时 1s 122
10.4.2 输出比较生成 PWM 122
10.4.3 PWM 呼吸灯 126
10.4.4 按键周期检测 129
10.4.5 电容按键检测 133
10.4.6 测量频率与占空比 136
习题 142
第 11 章
11.1 高级控制定时器 143
11.2 高级控制定时器特性 144
11.3 MX 设置与代码 144
11.3.1 输出比较 144
11.3.2 PWM 输出 146
习题 151
第 12 章
12.1 25GA370 直流减速电机 152
12.1.1 电机参数 152
12.1.2 硬件连接 153
12.2 MX 生成工程 154
12.3 减速电机旋转驱动编程 157
12.3.1 编程流程 157
12.3.2 驱动代码分析 157
12.3.3 操作与现象 160
习题 160
编码器测速 161
13.1 编码器的分类及原理 161
13.2 增量式编码器脉冲输入模式 163
13.3 25GA370 减速电机编码器 164
13.4 MX 生成工程 165
13.5 减速电机编码测速编程 166
13.5.1 流程分析 166
13.5.2 代码分析 167
习题 167
机器人运动模型 168
14.1 双轮机器人运动控制 168
14.1.1 机器人理想运动模型 168
14.1.2 双轮机器人底座 168
14.1.3 双轮机器人运动模型 169
14.2 三轮全向机器人运动控制 170
14.2.1 全向轮 170
14.2.2 三轮全向运动模型 171
习题 173
软件中图形符号与国家标准图形符号对照表 174
|
內容試閱:
|
为了更高效地学习机器人的开发知识, 我们设计并编写了相关的教材,内容涉及 C 语言入门、STM32 开发基础、STM32 开发案例、机器人操作系统 ROS 等。这些教材都配有相关视频、开发板以及传感器等。本书集中介绍的是机器人的控制系统 :从硬件、软件两方面讲述如何使用STM32 来控制机器人的运动。本书是对 STM32 开发知识的一次综合应用, 为了知识结构的完整性,在本书开头增加了一些如软件安装、流水灯等基础案例章节。对于已经学习过 STM32 HAL 库开发的读者,可以直接略过这些基础知识,跳到第 7 章开始电机控制方面的学习。
作为一本讲述如何使用 STM32 驱动机器人的教材,本书尽量减少理论方面的讲解,尤其避免了照搬芯片手册和技术文档的做法,而是以实际案例的形式,将 STM32 的开发知识融入实际的控制项目当中。本书提供了完整的机器人控制板的原理图、PCB 和源代码,并在书中基于这些案例进行分析。学习完本书后,读者可以依照书中的原理图定制实现自己的机器人控制系统,实现对所学知识的实际应用。
近些年,随着 STM32 的日益广泛应用,STM32 工程师岗位的需求也越来越多,但是学习 STM32 与学习传统的单片机的方法并不相同,这主要是因为 STM32 的库函数,在提供了巨大方便的同时,也会让学习者进入 不知所以然 的境地。所以, 通过开发一套控制机器人的系统, 采用 STM32 的知识从无到有地搭建一套系统,就可以非常高效地掌握相关知识,满足相关岗位就业的要求。
本书采用了 HAL 库开发方式,主要的编程环境是 Keil MDK(后文简称 MDK) STM32CubeMX(后文简称 MX)。MX 是一个全面的软件平台,包括 ST 产品的每个系列。MX 是由意法半导体公司(后文简称 ST 公司或 ST)原创倡议,旨在减少开发负担、时间和费用,为开发者提供轻松的开发体验。本书内容覆盖了 STM32 全系列,其中 STM32CubeMX 是上位机配置软件,可以根据使用者的选择生成底层初始化代码。硬件抽象层(HAL)是 MX 配套的库,HAL 库屏蔽了复杂的硬件寄存器操作,统一了外设的接口函数(包含 USB 以太网等复杂外设),代码结构强壮,已通过 CodeSonar 认证。同时,HAL 还集成了广泛的例程,可以运行在ST 公司的开发板上。
本书配套有独立开发的机器人控制系统,采用了 STM32F103 芯片。与传统的单片机开发板不同的是,我们将电机驱动模块集成在这块控制系统当中,用户只需要引出接线到电机插口上即可实现硬件的组装,极大地提高了机器人控制的集成度。
本节主要内容如下 :
第 1 章是对 HAL 库的基本介绍,读者可以通过阅读本章了解 HAL
的相关信息。
第 2 章是对软硬件平台的介绍,软件平台主要介绍了 MDK 和 MX 的安装与配置,其他如串口助手、字模软件等小软件由读者自己去使用即可; 硬件平台是独立开发的机器人控制系统,包括控制板和控制底盘、轮子等。
第 3 章 ~ 第 7 章是对一些基础案例的回顾,采用 HAL 库开发方式, 如果读者已经对 STM32 的基础开发比较熟悉,可以略过这些章。
第 8 章 ~ 第 14 章分别介绍了 STM32 定时器、电机的控制原理、测速与运动控制等,是本书的核心内容。
本书的最重要目标是让初学者能够综合地运用 STM32 知识做出一件产品。读者通过本书的学习与实验,可以轻松愉快地掌握 STM32 开发工具以及基本编程方法,学会借助于 MX 来降低项目的开发复杂度。
由于时间仓促,编者水平有限,书中难免存在疏漏与不妥之处,恳请读者批评指正。
编 者
2020 年 2 月
为了更高效地学习机器人的开发知识, 我们设计并编写了相关的教材,内容涉及 C 语言入门、STM32 开发基础、STM32 开发案例、机器人操作系统 ROS 等。这些教材都配有相关视频、开发板以及传感器等。本书集中介绍的是机器人的控制系统 :从硬件、软件两方面讲述如何使用STM32 来控制机器人的运动。本书是对 STM32 开发知识的一次综合应用, 为了知识结构的完整性,在本书开头增加了一些如软件安装、流水灯等基础案例章节。对于已经学习过 STM32 HAL 库开发的读者,可以直接略过这些基础知识,跳到第 7 章开始电机控制方面的学习。
作为一本讲述如何使用 STM32 驱动机器人的教材,本书尽量减少理论方面的讲解,尤其避免了照搬芯片手册和技术文档的做法,而是以实际案例的形式,将 STM32 的开发知识融入实际的控制项目当中。本书提供了完整的机器人控制板的原理图、PCB 和源代码,并在书中基于这些案例进行分析。学习完本书后,读者可以依照书中的原理图定制实现自己的机器人控制系统,实现对所学知识的实际应用。
近些年,随着 STM32 的日益广泛应用,STM32 工程师岗位的需求也越来越多,但是学习 STM32 与学习传统的单片机的方法并不相同,这主要是因为 STM32 的库函数,在提供了巨大方便的同时,也会让学习者进入 不知所以然 的境地。所以, 通过开发一套控制机器人的系统, 采用 STM32 的知识从无到有地搭建一套系统,就可以非常高效地掌握相关知识,满足相关岗位就业的要求。
本书采用了 HAL 库开发方式,主要的编程环境是 Keil MDK(后文简称 MDK) STM32CubeMX(后文简称 MX)。MX 是一个全面的软件平台,包括 ST 产品的每个系列。MX 是由意法半导体公司(后文简称 ST 公司或 ST)原创倡议,旨在减少开发负担、时间和费用,为开发者提供轻松的开发体验。本书内容覆盖了 STM32 全系列,其中 STM32CubeMX 是上位机配置软件,可以根据使用者的选择生成底层初始化代码。硬件抽象层(HAL)是 MX 配套的库,HAL 库屏蔽了复杂的硬件寄存器操作,统一了外设的接口函数(包含 USB 以太网等复杂外设),代码结构强壮,已通过 CodeSonar 认证。同时,HAL 还集成了广泛的例程,可以运行在ST 公司的开发板上。
本书配套有独立开发的机器人控制系统,采用了 STM32F103 芯片。与传统的单片机开发板不同的是,我们将电机驱动模块集成在这块控制系统当中,用户只需要引出接线到电机插口上即可实现硬件的组装,极大地提高了机器人控制的集成度。
本节主要内容如下 :
第 1 章是对 HAL 库的基本介绍,读者可以通过阅读本章了解 HAL
的相关信息。
第 2 章是对软硬件平台的介绍,软件平台主要介绍了 MDK 和 MX 的安装与配置,其他如串口助手、字模软件等小软件由读者自己去使用即可; 硬件平台是独立开发的机器人控制系统,包括控制板和控制底盘、轮子等。
第 3 章 ~ 第 7 章是对一些基础案例的回顾,采用 HAL 库开发方式, 如果读者已经对 STM32 的基础开发比较熟悉,可以略过这些章。
第 8 章 ~ 第 14 章分别介绍了 STM32 定时器、电机的控制原理、测速与运动控制等,是本书的核心内容。
本书的最重要目标是让初学者能够综合地运用 STM32 知识做出一件产品。读者通过本书的学习与实验,可以轻松愉快地掌握 STM32 开发工具以及基本编程方法,学会借助于 MX 来降低项目的开发复杂度。
由于时间仓促,编者水平有限,书中难免存在疏漏与不妥之处,恳请读者批评指正。
编 者
2020 年 2 月
|
|