展示

在这里插入图片描述

一.基本介绍

1.前言

这个四足机器人是我大一暑假入门单片机不久后,用STC15W最小系统制作的,采用了模块化设计。可以通过红外遥控器控制机器人的开关和简单控制。

后面做了一些改进,比如画了一块PCB,并改用了恩智浦的LPC845作为主控。主要的控制原理并没有做过多改变。上图展示的是改进后的样子。

想要制作这个机器人难度不高,只要掌握基本的单片机编程以及里面所涉及的模块的简单应用,不涉及任何算法。

2.拆分图

在这里插入图片描述

二.详细部分介绍

1.主体设计

机器人的主体(白色框架结构)和基本的设计采用的是淘宝店家“智木创客工作室”的产品(淘宝链接)。购买其3D图后,如果没有3D打印机可在淘宝上购买打印服务。嫌麻烦的话也可以直接购买其整套产品研究,但是需注意:我的机器人除了底座和舵机驱动方式,其余的主板、主控和扩展设计均与该店家的不同。

2.主控LPC845-BRK

在这里插入图片描述

介绍此块最小系统主要是因为,这是恩智浦公司免费赠送给我使用的(用此方式作为回报)。此款芯片的性能比STM32F1系列稍弱,但远高于51,价格适中,支持KEIL编程(有官方库,有点类似stm32的HAL库),唯一缺点就是购买渠道较少。如果想实现此款机器人的基本功能,购买淘宝上常见的51最小系统足以,比如我一开始采用的STC15W408AS最小系统板。

想要详细了解的可参看官网介绍:LPC845-BRK:用于LPC84x系列MCU的LPC845分支板

3.PCA9685模块及舵机驱动

由于机器人一共采用了8个舵机,每只脚两个自由度,因此使用PCA9685模块对这些舵机进行统一的控制,同时也减少了I/O的占用。

具体原理可参看我的另外一篇博客:SG90模拟舵机控制及PCA9685模块的使用

4.LM2596降压稳压模块和18650电池

此部分主要是给舵机供电,把两节18650电池组(7.4V)通过LM2596降压模块降到6V后接到PCA9685的V+端子上。(因为SG90舵机的VCC工作范围是4.8~7.2V

可直接购买如下图所示的模块:
在这里插入图片描述

如果想自行设计、详细了解LM2596的工作原理,可看我的另外一篇博客:DC-DC开关电源芯片的使用(LM2596)

5.继电器模块

继电器模块作为可控开关,用于控制上述18650电池是否导通供电。

可直接购买如下图所示的模块:

在这里插入图片描述
也可以像我展示图中那样,把该模块集成在主板上。
如果想自行设计、详细了解继电器的工作原理,可看我的另外一篇博客:继电器模块的电路设计和分析

6.红外遥控和红外接收模块

此部分是机器人的控制部分,采用比较传统的红外控制。

可直接购买如下图所示的模块:
在这里插入图片描述

相关原理和代码的实现可自行查找或参看我的另外一篇博客:NEC协议和红外通信

7.有源蜂鸣器模块

此模块作为接收反馈,每次开关机或每成功接收到一次从红外遥控器发出的信号,便短暂地响一下。

可直接购买如下图所示的模块:
在这里插入图片描述

注意:采用的是有源蜂鸣器,无源蜂鸣器控制较麻烦,此处没必要。

如果想自行设计、详细了解此模块的工作原理,可看我的另外一篇博客:三极管开关电路的设计和分析

8.超声波测距模块

此模块可以用于简单的测量距离,在传统的51小车上都会有运用。使用方法也比较简单。但由于PCB设计时没有考虑周到,影响了此模块的安装,因此展示图中没有加装。

可直接购买如下图所示的模块:
在这里插入图片描述

该模块的使用比较简单,可使用店家给的,也可以上网自行查找。

三.难点提示和补充总结

1.难点提示

★1.这个小四足机器人大部分是没有什么难度的,只是单纯的模块堆叠。只需熟练掌握各个模块的使用方法并充分利用主控芯片的定时器和外部中断等资源。

在我实际制作中,只在红外通信的调试上花了较多时间。

★2.比较关键的一点是机器人步态的设计,这上面可能需要多花点时间。其中左右转较为简单,前进和后退较难。(由于文字和图片的方式均不能很好展现,因此我设计的步态不做具体说明)。

★3.由于舵机不可能完全相同,制作时需要对每个都精细调试(包括可以转动的角度范围角度对应的占空比),而且由于此种舵机质量一般,过多使用也会造成一定差异。

2.补充总结

★推荐设计一个电源管理模块,利用LDO(如LM1117)或开关电源芯片(如LM2596)输出5V和3.3V。这样便可以通过18650电池同时给舵机和主控芯片供电

★所有开源资源将放在文末。

四.设计改进

最近几天,对此机器人又做了一些改进。主要就是对之前设计失误的地方做了完善,添加了电源管理模块,可以通过电池同时给舵机和主控/模块供电。以及添加了PS2手柄对其进行简单的控制。

1.展示

在这里插入图片描述

为了不使机器人乱跑,导致超出拍摄范围,对其进行了架空。

2.改进详解

1.包含5V和3.3V输出的电源管理模块

该电源管理模块比较简单,主要就是LM2596开关电源芯片和AMS1117低压差线性稳压芯片。
对于这两块芯片的使用可参阅下面两篇博客:
【DC-DC开关电源芯片的使用(LM2596)】
【LDO低压差线性稳压芯片的使用(LM1117)】

在这里插入图片描述

2.PS2手柄

类似如下,可直接在淘宝上查询购买,店家一般会提供详细的使用资料。

在这里插入图片描述
PS2手柄的加入主要是想学习一下相关的控制方式。但实际上使用起来的效果并没有红外遥控好,主要表现在接收有一定的延迟,而且有时会错误地接收到信号导致失控,初步推测是程序部分有不完善的地方。

3.开源资料

相关资料(包括代码和PCB文件):基于LPC845的简单四足机器人设计
此代码只能作为参考使用,毕竟做出来不可能完全相同。

其中STC15W408AS版本的代码只含有基础的遥控运动部分,不包含蜂鸣器,继电器,超声波等模块。
LPC845-BRK版本的代码包含上述所有模块,但最好要有STM32的基础,否则阅读起来比较困难。