② 蜘蛛机械人—组装测试与软件安装

[TOC]

机器人采用3D打印骨架,共4条腿,每条腿2个关节,用2个SG90舵机驱动,一共8个SG90舵机,8个舵机使用PCA9685 16路PWM控制器集中管理控制,通过IIC总线与单片机通讯。四足蜘蛛机器人属于常见的仿生蜘蛛机器人,蜘蛛机器人除了四足还有六足和八足蜘蛛机器人。在这几种不同的蜘蛛机器人中,我觉得四足蜘蛛机器人相比其他几种蜘蛛机器人来说,他只需要控制四条腿就可以进行运动。虽然四足蜘蛛机器人相比其他两种蜘蛛机器人控制的腿数要少,但如果我们在机器人加上不同的传感器,则它的系统和功能也会变得很复杂。四足蜘蛛机器人是一个电机控制、传感器、ESP8266控制器、等系统。它通过自身上安装的多种传感器模块接收周围环境的数据,并将这些数据传送回主控制器。再通过主控制器对这些数据进行处理,再发送不同的指令给各个控制模块以控制四足蝴蛛机器人的活动。最重要我们使用ESP8266 模块,可以使用手机自己连接WIFI,减小很多不需要的模块。下面是机器人的整体安装教程,通过我们3D打印回来的3D打印件,可以安装下面的操作,自己进行安装。

1 组装测试

1.1 主体安装

舵机驱动安装 1个
机身底板如下图所示,考虑到四足蜘蛛机器人的稳定性,将其四条腿的位置对称分布在板两侧。四足蜘蛛机器人的四条腿通过舵机的舵臂固定在底板上四个舵臂凹槽中,安装时使用M3螺钉通过舵臂上,圆孔将舵臂固定在凹槽里,再通过舵机舵臂自带的螺钉将舵臂与四足蜘蛛机器人四条腿的髋部关节舵机相结合,从而将四条腿固定在底板上。
1
机器人身体舵机安装 4个
2

舵机连接安装 8个

4

1.2 关节连接

1.3 身体舵机与腿

1.4 身体与腿的连接


注意:舵机的线的连接
12

2 Arduino1.8.5下载和安装软件

Arduino是一款免费开源的电子原型平台,由可编程的微控制器和集成开发环境Arduino IDE组成。Arduino可通过传感器感知环境,可在Windows、Mac OS X、Linux三大主流操作系统上运行,Arduino语言基于wiring语言开发,不需要太多的单片机和编程基础,也能快速入手。该软件非常适用于物联网领域,强烈建议感兴趣的小伙伴们学习交流使用。

2.1 arduino软件下载

本编写程序基于 Arduino IDE,并需要载入 ESP8266 Wifi 模组的开发套件。

Arduino IDE 可以由官网下载 https://www.arduino.cc/en/Main/Software
请选择 Arduino 1.8.5 或更新版本。
1
2

我这里下载1.8.5的版本。所以需要点击【软件的老版本】跳转如下图所示的界面。鼠标下滑即可看到如下图所示的版本选择界面。

我这里选择下载Windows版本。

2.2 aruino软件安装

2.2.1 下载到英文路径并解压完成后,以管理员身份运行“arduino-1.8.15-windows.exe”程序文件(该安装教程仅适用于Windows系统)

2.2.2 点击【Next】

2.2.3 选择默认路径无需修改,点击【Install】开始安装。

2.2.4 等待进度条滚动完成,进度条完成之后,点击【Close】即可。


2.2.5 最后,我们就可以看电脑桌面上看到一个Arduino IDE的快捷方式,点击这个快捷方式就可以打开Arduino IDE 编程界面了。

2.3 Arduino 安装Driver

将下载的 ZIP 资料包解压后,会有以下文件

3

  • 文件夹 Drivers 为 USB 连线的驱动
  • 文件夹 ESP8266 Flasher Win32 为恢复出厂固件工具
  • 文件夹 firmware 需拷贝到 My Documents\Arudino\目录下
  • 文件夹 libraries 内的所有文件需拷贝到 My Documents\Arudino\Libraries\ Arduino json.txt, 下载 ESP8266 开发环境网站链接

2.4 安装 ESP8266 WIFI 模组开发套件

2.4.1 执行 arduino 的 preferences 菜单,并在 Additionanl Board Manager URLs

输入:

http://arduino.esp8266.com/stable/package_esp8266com_index.json

3

2.4.2 填完后,进入 Arduino 的 Board manager 菜单

4

2.4.3 选择安装 ESP8266 package(2.3.0 版本)

5
6

2.4.4 若安装顺利完成,请进入 Arduino 的 Tools 选单,会新增出现 Generic ESP8266 Module 选项

2.4.5 最后拷贝 Libraries在 Documents 目录下找到

8

2.4.6 再将解压缩后的文件夹里 Libraries 内的所有文档拷贝进去即可

9

3 模块的使用

3.1 舵机


控制舵机的PWM信号周期为20ms,而脉冲宽度的范围最小0.5ms最大2.5ms,收到PWM方波信号的舵机的输出轴带动舵臂或舵盘转动的角度则是在0-180度的范围之间,是一 一对应关系。换句话说,提供舵机一定的脉冲宽度,舵机的输出轴就会保持在与之对应的角度,并且不考虑外界转矩是否改变,直到舵机再次收到新的脉冲信号即舵机的输出轴转动角度不随外界施加的力矩改变而改变,它只是单纯地响应信号线所接收的PWM信号,所以在使用舵机的过程中有时候外界转矩过大会导致舵机堵转从而烧坏舵机。当16路舵机驱动板将PWM信号输入给舵机时,舵机有一个基准电路生成基准信号与输入的信号进行比较,舵机自身的比较器随即分析出舵机输出轴需要转动的方向以及转动角度的大小,进而生成驱动电机转动的信号。

如下面图片所示,当输入PWM信号(周期为20ms)宽度为0.5ms时,舵机输出轴转角为-90°;当输入PWM信号为1ms 时,舵机输出轴转角为-45°;当输入PWM信号为1.5ms时,舵机输出轴转角为;当输入PWM信号为2ms时,舵机输出轴转角为45°﹔当输入PWM信号为2.5ms时,舵机输出轴转角为90°。即输入PWM信号宽度每增加0.5ms 时,舵机的输出轴转动角度就增加45°。

3.2 安装 SSD1306 OLED 库

有机发光二极管(Organic Light Emitting Diode,OLED)是一种发光二极管,其中由有机化合物制成的发光层在供应电流时发光。该层放置在两个电极之间。该技术用于计算机、电视、智能手机等显示屏。OLED显示器具有自己的光,不需要像LCD那样的任何背光,因此它们是节能的并且与许多微控制器一起使用。在LCD上使用OLED显示器的另一个优点是在OLED上显示大量且更好的图形质量。
市场上有各种各样的OLED显示器。这些显示器的特征在于颜色、引脚数、控制器IC和屏幕尺寸。在基础颜色上,OLED有单色蓝色,单色白色和黄色/蓝色可供选择。通信方式上,主要有两种类型的OLED - 3pin和7pin。 3引脚OLED可用于I2C通信模式,7引脚OLED可用于SPI模式或I2C模式。在本篇文章中,我们将使用“单色7引脚SSD1306 0.96”OLED显示屏,其宽128像素,长64像素。该显示器可以在SPI和I2C通信协议上工作。这个设计使用IIC协议。此OLED上使用SSD1306 IC,有助于在屏幕上显示像素。

3.2.1 打开您的 Arduino IDE,转到工具 -> 管理库。库管理器应打开。

在搜索框中键入 [SSD1306],然后从 Adafruit 安装 SSD1306 库。

3.2.2 从 Adafruit 安装 SSD1306 库后,在搜索框中键入”GFX”并安装库。

安装库后,重新启动 Arduino IDE。

4 调试

写程序时先单独对四足蜘蛛机器人一条腿编辑程序进行调试,调试成功后再将其改写成单腿控制函数进行封装,然后再将这个控制函数封装到前进后退、左转右转这四个需要控制腿部运动的函数中,函数可以修改的参数只有时间t,用来调整动作与动作之间的时间,从而控制四足蜘蛛机器人的运动速度。再编译站立、蹲下、停止等动作的控制函数并进行封装,OLED 显示函数进行封装。其中前进后退、左转右转四个动作有两种模式,一种是低身模式,另一种是站立模式。