前言
机器人学不一定很难。通过本书,我将带你走进机器人世界,这次学习之旅将是富有挑战性的。在本书的最后,你将亲身接触到机器人学的许多基本的和一些特别的方面。你将会学习使用多种硬件,组装并焊接电路板,用两种编程语言编写代码,安装和配置Linux操作系统环境,以及使用计算机视觉技术。你用机器人所做的其他事情都是本书中所学的知识的延伸。
本书适用读者
本书适合电子和物联网技术的入门学习者,想要学习树莓派或Arduino的人,以及想将它们结合使用的人阅读。
本书也是为那些想学习更多有关机器人知识的爱好者准备的。也许你已经用Arduino构建了一些电路,或者用树莓派定制过家庭娱乐系统,但现在你感兴趣的是如何构建一个机器人。你将会学习如何使这两个设备协同工作,以提供非常强大的功能。
本书也是为需要快速学习更多技术的人准备的,他们不一定有时间来广泛阅读有关Arduino、树莓派、电子或编程方面的众多不同书籍,他们寻求的是对一些基本知识进行一个广泛而高效的介绍。
本书还是为那些想提高自己机器人编程经验的学生准备的,他们想学习处理硬件和软件的方法,以进一步向他们在学校或专业领域看到的知名的人学习。
书中没有对经验或技术背景作任何假设。当你阅读这些章节时,你可能会发现有的部分很熟悉,那么完全可以跳过这些内容。但是如果你对这些主题还很陌生,我会尝试给你一个简洁而快速的讲解。
内容概览
我们先学习树莓派及如何使用它。下载并安装Raspbian操作系统,然后为我们的项目配置树莓派。目标是将你的系统设置为能够轻松访问机器人,并直接在机器人上编写代码。
在实现远程访问树莓派之后,你将在第3章深入研究Python编程。我将向你展示如何在树莓派上编写简单的程序。我还会介绍一些基础知识,再介绍一些进阶主题,例如模块和类。这是最长的一个章节,因为有很多内容要涵盖。
从那之后,你将学习如何通过树莓派的GPIO插头将树莓派与外部电子设备(如传感器和LED)连接起来。第4章会讨论寻址插头上的引脚的不同方式,通过插头暴露的一些功能,以及如何使用超声波测距传感器检测物体。这会让你为下一章做好准备,下一章我将介绍Arduino。
在第5章,你会将Arduino和树莓派结合起来使用。我讨论了这样做的一些原因。我将向你展示如何使用ArduinoIDE编写程序。我会介绍两个板之间的串口通信以及如何在它们之间来回传递信息。我们通过上一章中使用的超声波测距传感器来实现这一点。
第6章将让你用树莓派来转动电动机。你会用一个叫作HAT或扩展板的特殊板来控制电动机。在这里我将介绍另一项技能,你将不可避免地在制造机器人的过程中用到它,那就是焊接。插头和端子需要焊接到项目中选择的接线板上,你会获得大量的实践经验。
在第7章中,我们将把所有的东西合在一起。你来构建机器人,而我会讨论机器人的一些物理特性。我将介绍一些设计注意事项,当你设计自己的底盘时需要牢记在心。虽然我为这个项目列出了一个特定的底盘套件,但你并不需要使用相同的东西。事实上,我鼓励你探索其他选择,并找到一个适合自己的。
在第8章,我将介绍另一种类型的传感器———红外传感器,并向你展示如何使用一种非常常见的控制算法———PID控制器。我会讨论各种类型的红外传感器,以及它们的使用场合(关于PID控制的章节会讨论它是什么以及为什么要使用它)。
第9章是关于计算机视觉的,在这里你可以看到树莓派的真正力量。在本章中,我将介绍一个名为OpenCV的开源软件包。到第9章结束时,你的小型机器人将能围着桌子追逐一个球。
我在第10章留给你一些挑战的想法。我提供了一些我学到的技巧,并让你一窥我的工作流程和工具。之后,你就可以开始你自己的机器人冒险了!