【2026 机器人模块大赛】+基于MPS的智能家居六能交互机器人+第一版PCB测试

【2026 机器人模块大赛】+基于MPS的智能家居六能交互机器人+第一版PCB测试

一、PCB打板回来

纯小白一个,第一次设计PCB问题百出,让大家见笑了!第一次打的版选的4层,内一GND,内二电源,4层全部铺铜,PCB打板回来后,测量输入、输出的电压和GND都是短路状态,到底是哪问题导致的短路?也不清楚,由于当时用浏览器的EDA画的PCB,浏览器出现bug最终的工程文件没有保存,现在只有打印PCB的zip文件,布完线的工程文件没有!反转就是不能用

这个是第二次打的板,第一次的发现不能用后紧急画了一个2层的,抢工期,还是很多问题:比如又少画个VCC端的1uF电容,还有电源铺铜不够,还有好多,感谢大佬们指正,不断改进中,不过这次能用了!先测试用着吧

焊接器件

测试!不过这块板子,这个MPM3519,我设置的输出12V,但是现在输出3-6V变化,反馈电压基准FB手册写着0.6V,但现在0.2V上下变化,最终在群友的帮助下,发现少花一个1uF电容,加上就好了!

增加电容前和增加电容后

测试MA600A读取数据,本次大赛鼓励借助AI工具,我的程序部分基本借助AI完成

用AI封装的MA600A的SPI库文件
#ifndef MA600A_SPI_H
#define MA600A_SPI_H
#include <stdint.h>
#include <stdbool.h>
#ifdef __cplusplus
extern “C” {
#endif
// 错误代码枚举
typedef enum {
MA600A_SUCCESS = 0,
MA600A_ERROR_INVALID_PARAM,
MA600A_ERROR_COMM
} ma600a_error_t;
// 多圈/速度模式选择
typedef enum {
MA600A_MTSP_MULTITURN = 0, // 多圈计数模式
MA600A_MTSP_SPEED = 1 // 速度模式
} ma600a_mtsp_mode_t;
// MA600A设备结构体
typedef struct {
void (*spi_transfer)(uint8_t *tx_data, uint8_t *rx_data, uint16_t length);
void (*chip_select)(bool state);
void (*delay_us)(uint32_t us);
uint8_t device_count; // 菊花链中的设备数量
} ma600a_t;
// 函数声明
ma600a_error_t ma600a_init(ma600a_t device,
void (spi_transfer)(uint8_t, uint8_t
, uint16_t),
void (*chip_select)(bool),
void (*delay_us)(uint32_t),
uint8_t device_count);
ma600a_error_t ma600a_read_angle(ma600a_t *device, float *angle_deg);
ma600a_error_t ma600a_read_multiturn_speed(ma600a_t *device,
ma600a_mtsp_mode_t mtsp_mode,
float *angle_deg,
int32_t *value);
ma600a_error_t ma600a_read_register(ma600a_t *device, uint8_t reg_addr, uint8_t *reg_value);
ma600a_error_t ma600a_write_register(ma600a_t *device, uint8_t reg_addr, uint8_t reg_value);
#ifdef __cplusplus
}
#endif
#endif // MA600A_SPI_H

使用NUCLEO-U3C5ZI-Q - 当主控发送PMW信号,控制MP6540H

展示动画
d5f01cf8-5079-49de-a799-4db685a2d7f1

二、总结

PCB设计需要各种经验,需要好好学习资料,有点太鲁莽了,而且看资料画图也不认真,竟然能把手册里的电容画丢!其他问题还请大佬进行指点迷津,先谢谢了!

三、下一步计划

这个板子太大太丑了,而且是两块板,测试方便!第三天我又画了一个小的,和电机直径一样的,单块板的,继续测试看看能不能使用吧!