本帖最后由 yangjiaxu 于 2025-6-21 14:22 编辑
#申请原创# @21ic小管家
大家好,非常荣幸可以参与21ic与雅特力联合举办的AT-START-M412测评活动并且可以参与评测。本次拿到的是AT-START-M416,官方介绍的是M416支持CAN-FD,而M412支持的是CAN。不过确实不影响我的“自动吐盘机”的项目应用。
拿到开发板的第一件事当然是与大家分享板子的靓照啦,开发板设计的非常漂亮,板载type-c接口,可以说是时下比较流行的接口之一了,这样的好处是不用担心找不到数据线了,同时可以看到板载有2颗芯片,通过板载的丝印可以看出,是板载的ATlink,该调试器属于的CMSIS DAP,其主要的优势是开源,并且对arm内核的芯片调试非常友好,同时速度还更快哦。看主控部分,主控主打的是一个芯片评测,所以将所有引脚都引出并且还做了arduino接口设计,方便对接一些常用的外设模块。板载还支持CAN数据交互,利用U9这颗芯片实现。板载还有3颗LED,2个按键,作为简单的芯片外设进行交互,可以说是该开发板已经很完美的支持芯片级测评了。
接下来就是对开发板进行环境的搭建了。芯片支持雅特力自家的IDE和IAR与KEIL,这里我对keil比较熟悉,所以就直接简单一些,采用keil进行开发。Keil开发要注意安装pack支持包,官方网站有下载。名为:Keil5_AT32MCU_AddOn_V2.4.3
安装好之后就可以打开官网的例程进行评测了,本次想基于雅特力开发板实现一个简单的“自动吐盘机”。所谓自动吐盘机即为将消毒好的餐盘自动“吐出来”,交给用户,方便其在食堂用餐。其原理利用电机运转会产生真空效果,来实现对餐盘吸住并且移动至指定位置。该功能主要是无接触实现对餐盘的分发,避免餐盘被人为污染。同时也解决了一人一餐盘的规范用餐需求。硬件搭建如下:
由于买来的三通电磁阀还没有到,拿多余的真空泵来模拟一下,真空泵由继电器控制,其优势是后续想更换更大更沉的托盘时,可以更换大功率真空泵,无需更改程序代码。由于家中没有真正的餐盘,所以拿空PCB板模拟代替,不过该真空泵的负压情况还是非常好的,吸力非常大。真空泵由12V电源供电,因此拿mini直流可调电源来实现对真空泵的供电操作。MCU这里主要的作用就是通过按键实现对真空泵的控制,从而实现“吸盘”和“吐盘”的功能。
int main(void)
{
system_clock_config();
at32_board_init();
button_exint_init();
uart_print_init(115200);
printf("at32 mcu initialize ok.\r\n");
at32_led_on(LED2);
at32_led_on(LED3 );
while(1)
{
if(g_speed == FAST)
{
at32_led_on(LED2);
if(g_relay_flag == 1)
{
at32_led_off(LED3);
delay_ms(100);
g_relay_flag = 0;
at32_led_on(LED3);
}
}
else
{
at32_led_off(LED2);
}
}
}
代码比较简单,其原理就是利用MCU的外部中断触发功能实现按键的检测,当检测到按键之后会控制继电器从而控制真空泵实现对餐盘的“吸盘”或者“吐盘”实现对餐盘的自动化移动。从而实现无人接触餐盘传递,保证餐盘的干净卫生。
|