基于ESP8266和柔性传感器的手套,通过WiFi TCP/IP客户端-服务器通信控制四轮驱动机器人
手套式机器人控制器(简称手套)是系统的一部分,该系统包括一个四轮驱动机器人(简称机器人)和一个耳机,用于发送语音指令并实时可视化机器人的参数(如温度、速度等)。
手套被设计用于手动控制机器人的位移(方向和速度):
•前进/后退
•左转/右转
•左右移动
因为我对基于传感器的控制设备非常感兴趣。
手套和机器人均连接至作为接入点的耳机,通过Station设备实现通信。手套通过TCP/IP客户端-服务器C应用程序向耳机发送位移指令,耳机再将指令转发给机器人。
尽管该手套是专为控制机器人而设计的,但其应用也可扩展到其他通过WiFi获取数据并相应操作的系统。
功能视图
拇指、食指和中指用于控制机器人的位移。用户必须先用拇指操作并保持其位置,以指定模式:
•直线
•旋转
•翻译
然后根据中间的|/index,机器人将朝那个方向移动:
•直线:前进/后退
•转向:左/右
•左/右
以与弯曲相关的速度。
为了能够以这种方式控制机器人的位移,每个手指都配备了弯曲传感器(一种电阻随弯曲程度变化的装置)。通过读取弯曲传感器的弯曲值,生成位移指令,再通过Wi-Fi发送至耳机(接入点),然后传送给机器人。连接状态(在线/离线)以及每个弯曲传感器的原始弯曲值会显示出来,用于调试和验证。同时还会监测锂聚合物电池的电压,并以百分比形式显示其容量的大致估算值。
硬件
每个柔性传感器都是电压分压器的一部分,用于提供0V到1V的模拟数据,以符合ESP07S 10位0-1V ADC的电压范围。电压分压器还用于监测锂聚合物电池(LiPo)的电压。通过两个GPIO控制的模拟多路复用器用于读取不同的电压值。使用I2C接口的SSD1306 128x32 OLED显示屏来显示信息。
电源由一个4.2V/600mAh的锂聚合物电池和一个3.3V/600mA的DC/DC转换器提供。手套的开关使用的是“扁平”按压按钮开关(参见图3右下角)。
手套的编程通过一个微型USB连接器(参见图3,左下和右下)以及直接连接到ESP07S收发引脚的USB转串口桥接器(CH340C)完成。
我选择ESP07S是因为使用外接天线后,WiFi信号得到了改善。
为了方便戴上手套,加装了拉链扣(见图3上部)。
电子设计使用KiCAD v8在基于Ubuntu 22.04LTS操作系统的台式电脑上完成(请参见项目文件的.zip附件)。
PCB(见图4)由JLCPCB生产。可以选择让JLCPCB进行元件焊接,但我喜欢自己动手焊接,因此决定自行完成。
软件
使用了Espressif ESP8266 SDK IDF,并结合C语言(请参见项目.zip文件)。
RTOS管理三项任务:
•每50毫秒采样一次柔性传感器和锂聚合物电池的输出电压
•通过Wi-Fi发送命令(每50毫秒一次)
•每50毫秒显示一次数据
1.抽样
食指、中指和拇指具有固定的静止位置,该位置设定为不弯曲(参见图1)。这三根手指每50毫秒由ADC依次采样一次。然而,当食指或中指的位置与静止位置不同时,仅该手指会被采样,直到其再次回到静止位置为止。通过这种方式,位移速度取决于手指的弯曲程度。
示例(带翻译模式)
当选择平移模式时,拇指应弯曲。在保持拇指位置的同时,可由食指进行向左平移。若要实现向右平移,则需先将食指回到原位,再弯曲中指。
2.通过WiFi生成并发送命令
采样到的食指/中指值与模式共同定义命令。如果该命令与之前生成的命令不同,则通过Wi-Fi发送。这样可以避免连续多次发送相同的命令。
改进
尽管手套功能齐全,但仍会进行多项改进。其中包括:
•模拟多路复用器将被一个12位I2C ADC(ADS1015)所取代。
•这将简化采样处理,节省PCB空间,并受益于更宽的电压范围(0-3.3V)。
•我最初使用模拟多路复用器,因为我希望利用集成的ESP07S 10位ADC。
采用不同的柔性传感器采样策略
•为了改善柔性传感器连接器与PCB之间的连接。由于电缆是缝合的,手指移动的方式可能会影响连接效果。
•在PCB上添加一个锂聚合物充电模块
本文编译自hackster.io





