前言
单片机中各种复杂的寄存器曾让众多的学习者望而生畏——要完成某项功能需要耗费大量的时间去熟悉单片机的底层。Arduino的诞生,改变了这一局面。Arduino将各种寄存器封装起来,并提供了易用的接口,极其简洁的界面,C语言编程方式,强大的第三方函数库支持,这些功能赋予其强大的生命力。目前市面上开始出现不少Arduino的学习教程,包括Android+Arduino的教程,但是和机器人应用开发相结合的书籍尚不多见。
机器人是一个典型的光机电算一体化系统,它融合了光学、机械、电子、传感器、计算机软硬件和人工智能等众多先进技术,是目前世界各国高校进行创新思维训练、创新技能训练、工程实践训练最理想的平台,吸引了无数爱好者参与其中。但由于机器人涉及的技术面比较广,门槛较高,往往让人觉得徒有热情,而不知从何下手。Arduino与机器人的结合改变了这一状况,使人们从海量的机器人相关基础知识中解放出来,能快速地实现设计者想要的功能,加速了机器人的研发。目前Arduino已经广泛应用于机器人、3D打印机、无人机等热门的科技项目。从笔者多年的机器人开发经验得出这样一条结论:学好Arduino对掌握机器人技术有较大的帮助。
很多基于Arduino的传感器、机电控制模块、通信模块等已经在市场上大量涌现,但是目前还没有一本教材能系统地把机器人的各个部分与Arduino结合起来,并详细介绍Arduino在机器人设计上的应用,而且机器人更强调的是一种系统工程的设计理念,单个专业的技术层面较为狭窄,不利于机器人的研究和开发。笔者通过不断学习,查阅Arduino的相关资料,并将从事机器人设计与制作六年的工程经验带入到本书中。本书将机器人涉及的光机电算一体化知识进行了融合,让读者能更全面地了解机器人的相关知识,引发读者从多学科交叉的角度去思考与钻研,最终完成机器人的设计和制作。
本书主要内容及面向的读者
机器人的制作非常强调动手能力,本书以实际机器人的制作应用为基础,将制作机器人所需要的必备知识进行一一叙述。首先介绍Arduino的基础知识,接着介绍机器人的运动控制部分,然后介绍机器人的感知部件——传感器,再介绍无线控制的方法,并辅以实例来介绍机器人的制作,最后提供了两套机器人竞赛的平台,其中包含了机器人设计制作和比赛的完整规则。
由于机器人属于跨学科的领域,必须掌握多个学科的知识。本书虽涉及多个学科,但尽量以浅显易懂的语言描述相关知识,没有涉及太深的内容,阅读本书建议有一定的电子知识基础和C语言基础。
根据读者情况的不同,本书的阅读方式也不同。
如果读者完全没有接触过单片机和软件开发,笔者建议从头阅读本书,并借助相关的Arduino书籍来辅助理解,因为本书并不完全是Arduino的基础入门教程。如果读者已经有一定Arduino开发经验,可以直接跳过第一篇,而从第二篇开始学习,掌握各种电机的控制方法。由于传感器种类繁多,本书只挑选了一些机器人常用的传感器来介绍(第三篇),建议读者购买各种传感器套装来配合本书的学习,将传感器接在Arduino板上,亲身体验一下各种传感器的特点和使用方法。第四篇介绍了五种常用的无线通信模块,每种模块各有优劣,读者可以根据项目开发的需要选择所需模块。第五篇介绍了几种机器人的制作,读者可以通过边学边做,逐步掌握机器人的相关知识。第六篇是机器人竞赛篇,里面有两套机器人比赛的完整赛制及所用机器人的制作方法。主要机器人零件均使用3D打印机打印制作。读者可通过访问http://www.hzbook.com查找本书的相关链接,下载书中所有机器人实例的3D打印零件库源文件、程序源代码、地图及部分数据文档。读者可将机器人打印出来进行对抗赛,机械设计相关专业的学生可在本篇学习到机器人机械设计方法,并对零件进行改进。本篇提供的机器人竞赛规则,适合大专或本科院校组织和开展机器人比赛。
致谢
首先要感谢本书的策划编辑张国强先生,感谢他对本书的关心和帮助,提出了很多宝贵的写作建议,并对书稿进行了仔细审阅。
其次要感谢“广州市教育局青少年科技教育计划”对本书的撰写、器材的购买提供的资助。
还要感谢笔者的学生黄冠彬、叶景祥、唐华杰、王朋、李昇圳、王召、黄煜楠、纪孟廷、覃镇波和崔杰城,感谢他们将节假日贡献出来,完成了第15章和第16章的资料整理和程序调试工作。
最后要感谢读者朋友们。感谢您肯花费时间和精力阅读本书。由于时间有限,书中难免存在疏漏与错误,敬请批评指正。希望有更多志同道合的人能加入到机器人的制作中来!