本项目为基于HPM5300 EVK开发板、无刷电机驱动板和2208无刷电机组成的FOC旋钮。使用FOC的高度可控性,模拟各种旋钮的转动效果。
HPM5300 EVK 引脚 | 外接模块 | 说明 |
---|---|---|
PA26 | M0_IN1 | FOC驱动板 |
PA27 | NC | - |
PA28 | M0_IN2 | - |
PA29 | NC | - |
PA30 | M0_IN3 | - |
PA31 | NC | - |
PB13 | IA | - |
PB14 | IB | - |
PB02 | SCL | AS5600 |
PB03 | SDA | - |
PB05 | SCK | GC9A01 |
PB07 | MOSI | - |
PB10 | DC | - |
磁编码器部分
我所使用的无刷电机套装传感器使用的是磁编码器AS5600,并且给出的接口是I2C形式,因此需要使用开发板的I2C接口。
驱动板部分
这里使用的是灯哥开源
的V3P电机驱动板,这是一个两路无刷驱动板,本次只使用到了其中一路。
本工程使用的FOC算法部分,移植自HPM5361MiniFOC
,在此感谢开源。本工程基于RT Thread studio
IDE创建和调试。
1:
编码器型号更换,原始角度从16位变为12位。2:
project_config中修改采样电阻和放大倍数。3:
PID系数重新调整。4:
环路计算改为定时100Hz运行一次。界面LVGL适配
屏幕的驱动参考自此处仓库。
随后是LVGL接口的适配
这里的刷屏使用的画点,并且用来RTT标准驱动,导致刷屏很慢,后期等熟悉HPM的SPI DMA模式,使用这种方式来刷屏。
目前从x-knob的界面复制了一部分过来。
cherryusb
协议栈,但目前还处于计划表阶段,还没做。摊子铺的太大加上时间没安排好,导致做的项目乱七八糟,希望自己改正,后面一定要把他做完。在此也感谢RTT举办了这个比赛,让我能有机会玩到这么好的板子。
有点意思呀