查看: 1237|回复: 0

基于瑞萨MCU制作的具有刷卡开箱功能的快递盒

[复制链接]

92

主题

132

帖子

8万

积分

管理员

11111

Rank: 9Rank: 9Rank: 9

积分
84272
QQ
发表于 2022-5-23 17:27:05 | 显示全部楼层 |阅读模式
RA MCU&立创EDA的训练营活动已经落下帷幕,其中有不少优秀的开源项目,让我们一起来看看小伙伴们一些优秀的作品吧
基于瑞萨MCU制作的具有刷卡开箱功能的快递盒


开源作者:Eilgnaw


项目简介:
基于瑞萨RA2E1 MCU制作的具有刷卡开箱功能的立创快递盒子

基本功能:
使用串口与 PN532 进行通信.
快递盒打开时,刷卡以录入开箱NFC卡信息,录入成功后蜂鸣器发出长音.可以用于更换卡片.
快递盒关闭时,刷卡,当NFC卡正确时,盒子自动开箱并发出短音,当 NFC 卡非录入卡片时,蜂鸣器响两声.


原理图:


电路说明:
引脚说明:
配置 P000 为输入模式,作为快递盒开关状态信号.根钛丝锁商家提供的说明得知,当锁在开启时两根信号线开路,关闭时信号线导通,以此来判断盒子开关状态.
配置 P915 为输出模式,控制钛丝锁.钛丝锁电气参数为5V/1.2A,搭配 NMOS 作为钛丝锁开关.
配置 P407 为输出模式,控制蜂鸣器作为工作时成功与失败提示.
配置 P212/P213 为串口与 PN532 通讯.

程序说明:
根据 PN532 通讯协议对数据进行解析,代码如下

  1. void user_uart1_callback (uart_callback_args_t * p_args)
  2. {
  3.     if(p_args->event == UART_EVENT_TX_COMPLETE)
  4.     {
  5.         uart1_send_complete_flag = true;
  6.     }

  7.     if(p_args->event == UART_EVENT_RX_CHAR)
  8.     {
  9.         RxBuff[0] = p_args->data;
  10.         RxLine++;                      //每接收到一个数据,进入回调数据长度加1
  11.         DataBuff[RxLine-1]=RxBuff[0];  //把每次接收到的数据保存到缓存数组
  12.         Rx_flag=1;
  13.         Rx_len++;
  14.         if (Rx_len == 0x09) { //开始读取长度
  15.             Rx_clen = RxBuff[9] + 13;
  16.         }

  17.         if(Rx_len == Rx_clen)
  18.         {
  19.             Rx_flag_finish=1;
  20.             Rx_len--;
  21.         }
  22.         RxBuff[0]=0;
  23.     }
  24. }
复制代码
当钛丝锁开启时,读取到卡号进行存储处理
  1.     err = R_FLASH_LP_Erase(&g_flash0_ctrl, FLASH_DF_BLOCK_0, 1);
  2.     assert(FSP_SUCCESS == err);
  3.     printf("R_FLASH_LP_Erase\n");
  4.     while (!interrupt_called)
  5.     {
  6.     ;
  7.     }
  8.     assert(FLASH_EVENT_ERASE_COMPLETE == flash_event);
  9.     interrupt_called = false;
  10.     flash_status_t status;
  11.     err = R_FLASH_LP_Write(&g_flash0_ctrl, (uint32_t) cardId, FLASH_DF_BLOCK_0, cardId_length);
复制代码


当钛丝锁关闭时,读取到卡号与存储的卡号进行对比并进行处理
  1. if (0 == memcmp(cardId, (uint8_t *) FLASH_DF_BLOCK_0, 4))
  2.     {
  3.         open_box();
  4.     }else
  5.     {
  6.         err_beep();
  7.     }
复制代码


成品展示:




代码:

工程详细内容及项目开源地址:

更多优秀开源作品:
https://oshwhub.com/recommend/LC&RAMCU










本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

用户排行榜

RA助手

主题: 116帖子:133精华:0

RA_Lance

主题: 92帖子:132精华:9

lugl

主题: 38帖子:126精华:0

xujiwei263

主题: 16帖子:73精华:0

books咦

主题: 11帖子:11精华:2

Juggernaut

主题: 9帖子:95精华:0
快速回复 返回顶部 返回列表