专业版
#第十届立创电赛#电子骰子

创建时间:2个月前

370 1

视频

描述

<p style="line-height:1.8;">注:* 为必填项</p> <h3 style="line-height:1.8;">* 1、项目功能介绍</h3> <hr> <p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">      本项目融合了单片机控制、交互按键、随机数算法及低功耗设计,实现高可靠性的电子化骰子装置。在传统桌面游戏如大富翁、卡坦岛等中,电子骰子可以替代传统的实体骰子。采用LED显示技术的电子骰子成本低、显示清晰,能准确呈现点数,方便玩家进行游戏。电子骰子的稳定性和准确性能提高游戏的公平性和流畅性。</span></p> <p style="line-height:1.8;"> </p> <h3 style="line-height:1.8;">*2、项目属性</h3> <hr> <p style="line-height:1.8;">原创项目</p> <h3 style="line-height:1.8;">* 3、开源协议</h3> <hr> <p style="line-height:1.8;"><span style="background-color:#ffffff;color:#212529;font-family:'-apple-system', BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;font-size:16px;">开源协议GPL3.0</span></p> <h3 style="line-height:1.8;">*4、硬件部分</h3> <hr> <p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">         使用3V纽扣电池供电,使用低功耗MCU的随机数发生器功能,结果由12颗LED显示,与用户交互的使用轻触按键。用户每按下一次按键后对应相应数字的LED灯点亮的,长时间不按按键系统进入低功耗模式,用户再次按下按键后系统被唤醒并进入工作模式。主要部件包括上下亚克力面板,PCBA和纽扣电池。</span></p> <h3 style="line-height:1.8;"><img src="//image.lceda.cn/pullimage/siVTS34VqPiUzyTXpwvwj8ICfi671n7mXBr8QicP.png" alt="" width="1190" height="845"></h3> <h3 style="line-height:1.8;"> </h3> <p><img src="//image.lceda.cn/pullimage/xsVfAyndmu6uSVC5h7ghpMEFAyYe4df3lHxe4Xw3.png" alt="" width="960" height="960"></p> <p><img src="//image.lceda.cn/pullimage/MEFAo2yPudBAYZ5Xf16CEjJnfcsznyd6hk89rnkI.png" alt="" width="960" height="960"></p> <h3 style="line-height:1.8;"><img src="//image.lceda.cn/pullimage/2WJYSbXQSzdaE1jn2N8KZLtKOTC5RwwEfRaMBRor.png" alt="" width="956" height="895"></h3> <p><img src="//image.lceda.cn/pullimage/TMhQ8C9hq0nEbPvMsxUB8prUJW9rJjcznFqW0L4L.png" alt="" width="1195" height="895"></p> <p><img src="//image.lceda.cn/pullimage/vucrqA0k3ilaVOpPHBTNvekITRc6fUzYg2986GEr.png" alt="" width="1194" height="895"></p> <h3 style="line-height:1.8;">*5、软件部分</h3> <hr> <p style="line-height:1.8;"><span style="color:#95a5a6;">软件比较简单基本流程如下:</span></p> <p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">1.系统初始化 2.读取用户按键状态 3.生成随机数 4. 点亮对应的LED 5.等待用户再次按下用户按键。</span></p> <div>/**</div> <div> *******************************************************************************</div> <div> </div> <div> *******************************************************************************</div> <div> */</div> <div> </div> <div>/******************************************************************************</div> <div> * Include files</div> <div> ******************************************************************************/</div> <div>#include "gpio.h"</div> <div>#include "ddl.h"</div> <div>#include "trng.h"</div> <div>#include</div> <div>#include</div> <div>#include "lpm.h"</div> <div>#include "lpuart.h"</div> <div>#include "sysctrl.h"</div> <div>#include "flash.h"</div> <div> </div> <div>/*******************************************************************************</div> <div> * Local type definitions ('typedef')</div> <div> ******************************************************************************/</div> <div>/*******************************************************************************</div> <div> * Local pre-processor symbols/macros ('#define')</div> <div> ******************************************************************************/</div> <div>/*******************************************************************************</div> <div> * Global variable definitions (declared in header file with 'extern')</div> <div> ******************************************************************************/</div> <div>/*******************************************************************************</div> <div> * Local function prototypes ('static')</div> <div> ******************************************************************************/</div> <div>static void GpioConfig(void);</div> <div>static void LpUartConfig(void);</div> <div>void led_off(void);</div> <div>void led_on(void);</div> <div>void led_on_off(void);</div> <div>void led_on_off_2(void);</div> <div>static void GpioLowPowerConfig(void);</div> <div>static void GpioUserKeyConfig(void);</div> <div>uint32_t au32Data0[2] = { 0xFFFFFFFFu, 0xFFFFFFFFu };</div> <div>__IO uint32_t saved_number[1000] = { 0 };</div> <div>uint32_t counter = 0;</div> <div>__IO uint32_t key_status = 0;</div> <div>#define delay_time_ms 100</div> <div>uint32_t time_counter = 0;</div> <div>/*******************************************************************************</div> <div> * Local variable definitions ('static')</div> <div> ******************************************************************************/</div> <div>/*******************************************************************************</div> <div> * Function implementation - global ('extern') and local ('static')</div> <div> ******************************************************************************/</div> <div>/**</div> <div> * @brief  Main function</div> <div> * @retval int32_t return value, if needed</div> <div> */</div> <div>int main(void) {</div> <div> </div> <div>  DDL_Delay1ms(2000);</div> <div>GpioConfig(); </div> <div>/* LPUART配置 */</div> <div>// LpUartConfig();</div> <div>//    STK_LedConfig(); /* LED端口配置 */</div> <div>// STK_UserKeyConfig(); /* USER KEY端口配置 */</div> <div>GpioUserKeyConfig();</div> <div>    /* =============================================== */</div> <div>    /* ==============       WARNING       ============ */</div> <div>    /* =============================================== */</div> <div>    /* 本样例程序会进入深度休眠模式,因此以下代码起防护作用*/</div> <div>    /* (防止进入深度休眠后芯片调试功能不能再次使用) */</div> <div>    /* 在使用本样例时,禁止在没有唤醒机制的情况下删除以下代码 */</div> <div>/* 打开RNG模块时钟门控 */</div> <div>SYSCTRL_PeriphClockEnable(PeriphClockTrng);</div> <div> </div> <div>/* 上电第一次生成随机数必须使用初始化函数生成并获取随机数 */</div> <div>/* 上电第一次随机数生成并获取 */</div> <div>TRNG_Init();</div> <div> </div> <div>au32Data0[0] = TRNG_Data0Get();</div> <div>au32Data0[1] = TRNG_Data1Get();</div> <div> </div> <div>/* 随机数不应该为全0或全1 */</div> <div>if ((au32Data0[0] != 0u) && (au32Data0[1] != 0u)</div> <div>&& (au32Data0[0] != 0xFFFFFFFFu) && (au32Data0[1] != 0xFFFFFFFFu)) {</div> <div>;</div> <div>} else {</div> <div>while (1) {</div> <div>;</div> <div>}</div> <div>}</div> <div> </div> <div>led_off();</div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>led_on();</div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>led_off();</div> <div> </div> <div>while (1) {</div> <div> </div> <div>if ((key_status == 0) & STK_USER_KEY_PRESSED()) {</div> <div>DDL_Delay1ms(50);</div> <div>if ( STK_USER_KEY_PRESSED()) {</div> <div>key_status = 1;</div> <div>time_counter = 1;</div> <div>}</div> <div>} else</div> <div>{</div> <div>key_status = 0;</div> <div>           if(time_counter++ %1000000 == 0)</div> <div>           {</div> <div>            led_on_off_2();</div> <div>            time_counter = 1;</div> <div>            key_status = 3;// 睡眠状态</div> <div>            FLASH_LowPowerEnable(); /* 配置FLASH为低功耗模式 */</div> <div>            GpioLowPowerConfig(); /* 配置Demo板上所有引脚配置为模拟端口(除按键、LED端口外),避免端口漏电 */</div> <div>            LPM_GotoDeepSleep(FALSE); /* 进入低功耗模式——深度休眠(使能唤醒后退出中断自动休眠特性) */</div> <div>           }</div> <div>}</div> <div>if(key_status == 2 )</div> <div>{</div> <div>FLASH_LowPowerDisable();</div> <div>GpioConfig();</div> <div>key_status = 0; //工作状态</div> <div>}</div> <div>if (key_status == 1) {</div> <div>/* 如果在使用中有多次生成随机数的需要,则在第一次生产随机数后通过如下流程实现和获取随机数 */</div> <div>/* 非上电第一次随机数生成并获取 */</div> <div>TRNG_Generate();</div> <div>DDL_Delay1ms(100);</div> <div>/* 两次生产的随机数不相同 */</div> <div>if (au32Data0[0] != TRNG_Data0Get()) {</div> <div>if (au32Data0[1] != TRNG_Data1Get()) {</div> <div>;</div> <div>} else {</div> <div>while (1) {</div> <div>// printf("RANDOM NUMBER ERROR\r\n");</div> <div>}</div> <div>}</div> <div>} else {</div> <div>while (1) {</div> <div>// printf("RANDOM NUMBER ERROR\r\n");</div> <div>}</div> <div>}</div> <div>au32Data0[0] = TRNG_Data0Get();</div> <div>au32Data0[1] = TRNG_Data1Get();</div> <div>TRNG_Generate();</div> <div>// printf("random number is %lu\r\n", (unsigned int) au32Data0[0] > 16);</div> <div>// printf("random number1 is %lu\r\n", au32Data0[0] % 6);</div> <div>// printf("random number2 is %lu\r\n", au32Data0[1]);</div> <div>saved_number[counter++] = au32Data0[0];</div> <div>if (counter > 999) {</div> <div>counter = 0;</div> <div>}</div> <div> </div> <div>led_off();</div> <div>switch (au32Data0[0] % 12) {</div> <div>case 0:</div> <div>GPIO_PA00_SET();</div> <div>break;</div> <div>case 1:</div> <div>GPIO_PA02_SET();</div> <div>break;</div> <div>case 2:</div> <div>GPIO_PA03_SET();</div> <div>break;</div> <div>case 3:</div> <div>GPIO_PA04_SET();</div> <div>break;</div> <div>case 4:</div> <div>GPIO_PA05_SET();</div> <div>break;</div> <div>case 5:</div> <div>GPIO_PA06_SET();</div> <div>break;</div> <div>case 6:</div> <div>GPIO_PA07_SET();</div> <div>break;</div> <div>case 7:</div> <div>GPIO_PA08_SET();</div> <div>break;</div> <div>case 8:</div> <div>GPIO_PA09_SET();</div> <div>break;</div> <div>case 9:</div> <div>GPIO_PA10_SET();</div> <div>break;</div> <div>case 10:</div> <div>GPIO_PA11_SET();</div> <div>break;</div> <div>case 11:</div> <div>GPIO_PA01_SET();</div> <div>break;</div> <div> </div> <div>}</div> <div> </div> <div>}</div> <div>}</div> <div>return 0;</div> <div>}</div> <div> </div> <div>/**</div> <div> * @brief  GPIO</div> <div> * @retval None</div> <div> */</div> <div>static void GpioConfig(void) {</div> <div>stc_gpio_init_t stcGpioInit = { 0 };</div> <div> </div> <div>SYSCTRL_PeriphClockEnable(PeriphClockGpio); </div> <div> </div> <div>GPIO_StcInit(&stcGpioInit);</div> <div>stcGpioInit.bOutputValue = TRUE; </div> <div>stcGpioInit.u32Mode = GPIO_MD_OUTPUT_PP; </div> <div>stcGpioInit.u32PullUp = GPIO_PULL_NONE; </div> <div>stcGpioInit.u32Pin = GPIO_PIN_00 | GPIO_PIN_02 | GPIO_PIN_03 | GPIO_PIN_04</div> <div>| GPIO_PIN_01 | GPIO_PIN_05 | GPIO_PIN_08 | GPIO_PIN_09</div> <div>| GPIO_PIN_10 | GPIO_PIN_11 | GPIO_PIN_06 | GPIO_PIN_07; </div> <div>GPIOA_Init(&stcGpioInit); </div> <div> </div> <div>stc_gpio_init_t stcGpioInit1 = { 0 };</div> <div> </div> <div>SYSCTRL_PeriphClockEnable(PeriphClockGpio);</div> <div> </div> <div>/* 配置PA01为LPUART1_TX */</div> <div>// GPIO_StcInit(&stcGpioInit1);</div> <div>// stcGpioInit1.u32Mode = GPIO_MD_OUTPUT_PP;</div> <div>// stcGpioInit1.u32PullUp = GPIO_PULL_UP;</div> <div>// stcGpioInit1.bOutputValue = TRUE;</div> <div>// stcGpioInit1.u32Pin = GPIO_PIN_01;</div> <div>// GPIO_Init(GPIOA, &stcGpioInit1);</div> <div>// GPIO_PA01_AF_LPUART1_TXD();</div> <div>}</div> <div> </div> <div>/**</div> <div> * @brief  LPUART配置</div> <div> * @retval None</div> <div> */</div> <div>static void LpUartConfig(void) {</div> <div>stc_lpuart_init_t stcLpuartInit;</div> <div> </div> <div>/* 外设模块时钟使能 */</div> <div>SYSCTRL_PeriphClockEnable(PeriphClockLpuart1);</div> <div> </div> <div>/* LPUART 初始化 */</div> <div>LPUART_StcInit(&stcLpuartInit); /* 结构体初始化        */</div> <div>stcLpuartInit.u32StopBits = LPUART_STOPBITS_1; /* 1停止位             */</div> <div>stcLpuartInit.u32FrameLength = LPUART_FRAME_LEN_8B_PAR; /* 数据8位,奇偶校验1位 */</div> <div>stcLpuartInit.u32Parity = LPUART_B8_PARITY_EVEN; /* 偶校验              */</div> <div>stcLpuartInit.u32TransMode = LPUART_MODE_TX_RX; /* 收发模式            */</div> <div>stcLpuartInit.stcBaudRate.u32SclkSelect = LPUART_SCLK_SEL_PCLK; /* 传输时钟源          */</div> <div>stcLpuartInit.stcBaudRate.u32Sclk = SYSCTRL_HclkFreqGet(); /* HCLK获取            */</div> <div>stcLpuartInit.stcBaudRate.u32Baud = 9600; /* 波特率              */</div> <div>LPUART_Init(LPUART1, &stcLpuartInit);</div> <div>LPUART_IntFlagClearAll(LPUART1); /* 清除所有状态标志 */</div> <div>}</div> <div> </div> <div>/******************************************************************************</div> <div> * EOF (not truncated)</div> <div> ******************************************************************************/</div> <div>int _write(int32_t fd, char* ptr, int32_t len) {</div> <div>if (fd == STDOUT_FILENO || fd == STDERR_FILENO) {</div> <div>int32_t i = 0;</div> <div>while (i <div> </div> <div>LPUART_TransmitInt(LPUART1, (uint8_t) ptr[i++]);</div> <div>}</div> <div>}</div> <div>return len;</div> <div>}</div> <div> </div> <div>void led_off(void) {</div> <div> </div> <div>GPIO_PA00_RESET();</div> <div>GPIO_PA01_RESET();</div> <div>GPIO_PA02_RESET();</div> <div>GPIO_PA03_RESET();</div> <div>GPIO_PA04_RESET();</div> <div>GPIO_PA05_RESET();</div> <div>GPIO_PA06_RESET();</div> <div>GPIO_PA07_RESET();</div> <div>GPIO_PA08_RESET();</div> <div>GPIO_PA09_RESET();</div> <div>GPIO_PA10_RESET();</div> <div>GPIO_PA11_RESET();</div> <div>}</div> <div> </div> <div>void led_on(void) {</div> <div> </div> <div>GPIO_PA00_SET();</div> <div>GPIO_PA01_SET();</div> <div>GPIO_PA02_SET();</div> <div>GPIO_PA03_SET();</div> <div>GPIO_PA04_SET();</div> <div>GPIO_PA05_SET();</div> <div>GPIO_PA06_SET();</div> <div>GPIO_PA07_SET();</div> <div>GPIO_PA08_SET();</div> <div>GPIO_PA09_SET();</div> <div>GPIO_PA10_SET();</div> <div>GPIO_PA11_SET();</div> <div>}</div> <div>void led_on_off(void) {</div> <div> </div> <div>GPIO_PA00_SET();</div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA01_SET();</div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA02_SET();</div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA03_SET();</div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA04_SET();</div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA05_SET();</div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA06_SET();</div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA07_SET();</div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA08_SET();</div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA09_SET();</div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA10_SET();</div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA11_SET();</div> <div> </div> <div>GPIO_PA00_RESET();</div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA01_RESET();</div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA02_RESET();</div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA03_RESET();</div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA04_RESET();</div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA05_RESET();</div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA06_RESET();</div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA07_RESET();</div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA08_RESET();</div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA09_RESET();</div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA10_RESET();</div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA11_RESET();</div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>}</div> <div> </div> <div> </div> <div>void led_on_off_2(void) {</div> <div> </div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA00_SET();</div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA00_RESET();</div> <div> </div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA01_SET();</div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA01_RESET();</div> <div> </div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA02_SET();</div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA02_RESET();</div> <div> </div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA03_SET();</div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA03_RESET();</div> <div> </div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA04_SET();</div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA04_RESET();</div> <div> </div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA05_SET();</div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA05_RESET();</div> <div> </div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA06_SET();</div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA06_RESET();</div> <div> </div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA07_SET();</div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA07_RESET();</div> <div> </div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA08_SET();</div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA08_RESET();</div> <div> </div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA09_SET();</div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA09_RESET();</div> <div> </div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA10_SET();</div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA10_RESET();</div> <div> </div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA11_SET();</div> <div>DDL_Delay1ms(delay_time_ms);</div> <div>GPIO_PA11_RESET();</div> <div>}</div> <div> </div> <div> </div> <div>void PortA_IRQHandler(void)</div> <div>{</div> <div>    if (TRUE == GPIO_IntFlagGet(STK_USER_PORT, STK_USER_PIN)) /* 获取中断状态 */</div> <div>    {</div> <div>       if(key_status == 3) //之前在睡眠状态</div> <div>       {</div> <div>        key_status = 2; // 发生中断后进入唤醒状态</div> <div>       }</div> <div> </div> <div>        GPIO_IntFlagClear(STK_USER_PORT, STK_USER_PIN); /* 清除中断 */</div> <div>    }</div> <div>}</div> <div> </div> <div> </div> <div>/**</div> <div> * @brief  GPIO低功耗配置</div> <div> * @retval None</div> <div> */</div> <div>static void GpioLowPowerConfig(void)</div> <div>{</div> <div>    SYSCTRL_PeriphClockEnable(PeriphClockGpio);  /* 打开GPIO外设时钟门控 */</div> <div>    SYSCTRL_FuncEnable(SYSCTRL_FUNC_SWD_USE_IO); /* SWD设置为GPIO */</div> <div> </div> <div>    GPIOA->ADS = 0xEFFEu; /* 配置为模拟端口(除按键、LED端口外) */</div> <div>}</div> <div> </div> <div>/**</div> <div> * @brief  GPIO按键配置</div> <div> * @retval None</div> <div> */</div> <div>static void GpioUserKeyConfig(void)</div> <div>{</div> <div>    stc_gpio_init_t stcGpioInit = {0};</div> <div> </div> <div>    SYSCTRL_PeriphClockEnable(PeriphClockGpio); /* 打开GPIO外设时钟门控 */</div> <div> </div> <div>    GPIO_StcInit(&stcGpioInit);                      /* 结构体变量初始值初始化 */</div> <div>    stcGpioInit.u32Mode      = GPIO_MD_INT_INPUT;    /* 端口方向配置 */</div> <div>    stcGpioInit.u32PullUp    = GPIO_PULL_NONE;       /* 端口上下拉配置 */</div> <div>    stcGpioInit.u32ExternInt = GPIO_EXTI_FALLING;    /* 端口外部中断触发方式配置 */</div> <div>    stcGpioInit.u32Pin       = STK_USER_PIN;         /* 端口引脚配置 */</div> <div>    GPIOA_Init(&stcGpioInit);                        /* GPIO USER KEY初始化 */</div> <div>    EnableNvic(PORTA_IRQn, IrqPriorityLevel3, TRUE); /* 使能端口PORTA系统中断 */</div> <div>}</div> <p> </p> <h3 style="line-height:1.8;">*6、BOM清单</h3> <hr> <p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">请输入内容…</span></p> <p style="line-height:1.8;">详见BOM清单,主要物料为单片机、LED、电池和外壳等。<img src="//image.lceda.cn/pullimage/hHZ1Domqqdt5usJYd5mesVLVcthT0ZVwW85PS14b.png" alt="" width="1200" height="655"></p> <p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">注:项目涉及的BOM清单。在<span style="text-decoration:underline;"><a href="https://lceda.cn/editor" target="_blank">嘉立创EDA</a> </span>生成/上传设计文件后,BOM将自动生成至项目详情;建议包括型号、品牌、名称、封装、采购渠道、用途等内容。具体内容和形式应以表达清楚项目构成为准。 </span></p> <p style="line-height:1.8;"> </p> <h3 style="line-height:1.8;">*7、大赛LOGO验证</h3> <hr> <p style="line-height:1.8;"><img src="//image.lceda.cn/pullimage/frHAkEFslfRiy7H473pXKPHeHcw6sSMeOAFifeUi.png" alt="" width="973" height="896"></p> <p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">请上传包含大赛logo的项目图片,logo以丝印形式印刷在PCB上面。</span></p> <p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">点击zip下载大赛logo标识! <span style="text-decoration:underline;"><a href="https://image.lceda.cn/easyedaResource/images/d1bbfd69f9404f56901a0e7b849b7245.rar" target="_blank">(大赛标识).zip</a></span></span></p> <p style="line-height:1.8;"> </p> <h3 style="line-height:1.8;">* 8、演示您的项目并录制成视频上传</h3> <hr> <p style="line-height:1.8;"> </p> <p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">视频要求:请横屏拍摄,分辨率不低于1280×720,格式Mp4/Mov,单个视频大小限100M内;</span></p> <p style="line-height:1.8;"><span style="color:#95a5a6;font-size:14px;">视频标题:立创电赛:{项目名称}-{视频模块名称};如立创电赛:《自动驾驶》-团队介绍。</span></p> <p style="line-height:1.8;"> </p> <p style="line-height:1.8;"><span style="font-size:14px;"><a href="/posts/42551e8f2f2548cabc1c36626a42da94" target="_blank">前往查看更多详情 ></a></span></p> <p style="line-height:1.8;"> </p> </div>

文档

BOM

暂无

附件

附件名 下载
电子骰子外壳后盖.stl
电子骰子外壳主体.stl
HC32_L021_DICE.hex
HC32_L021_DICE.bin

成员

评论(2)

  • 表情
    emoji
    小嘉工作篇
    小嘉日常篇
  • 图片
成功
工程所有者当前已关闭评论
立创电赛 回复
<p>[emojis:打招呼] 期待更新</p>
立创电赛 回复
<p>logo验证需要上传实物图哦</p>
goToTop
svg-battery svg-battery-wifi svg-books svg-more svg-paste svg-pencil svg-plant svg-ruler svg-share svg-user svg-logo-cn svg-double-arrow