本节对Moco-8的软硬件设计进行详细介绍,包括了原理图设计详解和开源版本步态算法的讲解,首先对控制器硬件设计进行介绍。

  • 硬件设计详解

Moco-8机器人使用了OLDX通用机器人控制器OLDX-HROS,其能兼容多种机器人如飞控、无人小车或者足式机器人,采用STM32F4系列高性能处理器实现导航和控制算法,板载了10轴MEMS传感器并采用内减震设计,控制器具有丰富的外扩接口具有最多12路的PWM输出,同时采用外部供电模块设计使得其能适用于不同电压等级的机器人系统中,板载2.4G无线射频芯片能在免去购买航模遥控器的同时提供通讯、上位机和组网的能力,其硬件架构图如下:

HROS控制器硬件框图

下面对图中各部分的原理图设计进行介绍。

  • 3.3V板载供电电路:

HROS控制板5V供电和舵机供电是由外部供电模块提供:

其中POWER为电池供电,VCC_DJ为舵机供电电压,EN为输出至供电模块控制舵机降压模块的使能信号(PC3),BEEP为驱动无源晶振的PWM信号(PB3,TIM2_CH2)。HROS板载仅有一个3.3V超低压差降压模块,原理图如下:

AS1364最大持续输出电流为2A被广泛应用于手机中,其体积小外围电路简单因此我们选择其为单片机提供3.3V电压。另外,考虑到如为多足提供压力信息或其他传感器的供电电压不确定,因此板子上增加了2路跳帽选择4路传感器端子的供电电压是3.3V还是5V。

对于电池电压的检测则直接简单的采用分压电阻,使用STM32内部AD模块(ADC1-通道7,引脚PA7)进行采样:

  • IMU板原理图

10轴传感器首先采用1mm排线与控制板连接,所有传感器均挂在SPI2总线上,其中控制板对于接口为:

其中MOSI为PB15,MISO为PB14,SCK为PB13,IMU板上加速度计陀螺仪芯片LSM6DS33的原理图为,其片选引脚为PC4:

磁力计芯片LIS3MDL的原理图如下,其片选引脚为PC13:

气压计芯片MS5611的原理图如下,其片选引脚为PA15:

  • 板载FLASH芯片原理图

HROS控制板板载FLASH芯片实现对内部参数和航点信息的存储,其同样挂再在SPI2总线上,采用W25X16系列存储器,其原理图如下片选信号为PC5:

  • 板载2.4G射频芯片原理图

HROS控制板板载2.4G射频芯片实现与遥控器的通信和上位机的交互,其同样挂再在SPI2总线上,采用nRF24L01芯片模组最远通信距离500米,其原理图如下片选信号为PC12:

  • 通信接口原理图

与树莓派通讯使用了USART3(TX-PB10 RX-PB11),并通过一个开关控制供电:

数传接口使用了USART1(TX-PA9 RX-PA10),其可以连接雷迅家的WIFI数传或其他串口通信数传实现与Qground或MP上位机的通信,进行航点的设置:

GPS接口采用了USART2(TX-PA2 RX-PA3),其可直接连接乐迪的MINI GPS模块并预留IIC接口(SCL-PC15 SDA-PC16)读取其中的磁力计:

外扩模块接口采用了USART4(TX-PC10 RX-PC11),其可连接其他扩展模块如光流、OPENMV等:

另外,控制板上还预留了失配SBUS通信的接收机接口,其采用三极管将SBUS信号反向为串口可接收的逻辑,使用USART5(RX-PD2):

  • SWD下载接口

为方便使用SWD下载免去使用杜邦线自己连接,我们设计了相应的SWD接口转接线,板载1.25-4P立贴端子的原理图如下,同时其还扩展了能直接连接正点原子无线下载器的2.54-4P端子:

  • 传感器输入接口

控制板上留出了4路传感器输入接口作为四足机器人足底检测的IO,其可使用开关输入如GROUND11或者模拟量输入GROUND1,传感器的供电电压VG则通过上面的跳帽选择,默认AD采用使用ADC1(1,4,5,6),开关输入采用PC0,PC1,PC9和PA12:

  • PWM输出接口

控制板上共有12路PWM信号,可以用于驱动舵机,舵机供电VCC_DJ则使用外部降压模块提供,输出PWM采用了TIM3-1~4,TIM4-1~4,TIM8-1~3,TIM1-1:

在下一小节中将对STM32中的主要代码和开源版VMC算法编程实现进行介绍!