描述
<div>
<h3 style="line-height:1.8">* 1、项目功能介绍</h3>
<hr>
<p style="line-height:1.8">在日常工作中,经常会遇到需要在测试机和主机之间传输文件的需求。通常WIFI 是非常好的方法,但是安全规则限制,主机和测试机无法接入同一个网络中,如果能用无线将他们连接起来能够提升效率。</p>
<p style="line-height:1.8"> </p>
<h3 style="line-height:1.8">*2、项目属性</h3>
<hr>
<p style="line-height:1.8"><span style="color:#000000;font-size:14px;background-color:#ffffff">原创项目首次公开</span></p>
<p style="line-height:1.8"> </p>
<p style="line-height:1.8"> </p>
<h3 style="line-height:1.8">* 3、开源协议</h3>
<hr>
<p style="line-height:1.8"><strong>Public Domain</strong></p>
<p style="line-height:1.8"> </p>
<p style="line-height:1.8"><strong><span style="color:#0093e6">请在竞赛阶段填写 ↓</span></strong></p>
<p style="line-height:1.8"> </p>
<h3 style="line-height:1.8">*4、硬件部分</h3>
<hr>
<p style="line-height:1.8"><span style="color:#000000"><span style="color:#95a5a6"><span style="font-size:14px">硬件部分非常简单,可以看作是一个 ESP32 的最小系统。</span></span></span></p>
<p style="line-height:1.8"><span style="color:#000000"><span style="color:#95a5a6"><span style="font-size:14px">外围只有一个 5V 转3.3V芯片。</span></span></span></p>
<p style="line-height:1.8"> </p>
<h3 style="line-height:1.8">*5、软件部分</h3>
<hr>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px">基本思路是:ESP32 S3 将自身模拟为 USB CDC 设备,这样插入系统后就会出现一个串口。我们使用超级终端来进行文本和文件的传输。</span></p>
<p style="line-height:1.8"><span style="color:#95a5a6;font-size:14px">收到的数据会放置在 USB Buffer 中,这些数据我们通过 ESP32 的 ESPNOW 发送出去。接收到之后,再通过串口传入系统中,同样又超级终端来接收。</span></p>
<p style="line-height:1.8">需要注意的地方是:</p>
<p style="line-height:1.8">1. Arduino 中需要修改如下2个位置</p>
<p style="line-height:1.8">a.C:\Users\USERNAME\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.2.1\cores\esp32\USBCDC.cpp 这里是USB缓冲区的大小。太小了影响效率。</p>
<p style="line-height:1.8"> </p>
<div>void USBCDC::begin(unsigned long baud) {</div>
<div> if (itf >= CFG_TUD_CDC) {</div>
<div> return;</div>
<div> }</div>
<div> if (tx_lock == NULL) {</div>
<div> tx_lock = xSemaphoreCreateMutex();</div>
<div> }</div>
<div> // if rx_queue was set before begin(), keep it</div>
<div> if (!rx_queue) {</div>
<div> //ZivDebug setRxBufferSize(256); //default if not preset</div>
<div>setRxBufferSize(64*1024); //ZivDebug 64K Buffer</div>
<div> }</div>
<div> devices[itf] = this;</div>
<div>}</div>
<p style="line-height:1.8"> </p>
<p style="line-height:1.8">b.C:\Users\USERNAME\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.2.1\cores\esp32\USB.h 这里是USB CDC Task 的栈大小,原值过小,导致使用时会重启</p>
<p>class ESPUSB {<br>public:<br> //ZivDebug ESPUSB(size_t event_task_stack_size = 2048, uint8_t event_task_priority = 5);<br> ESPUSB(size_t event_task_stack_size = 20480, uint8_t event_task_priority = 5);<br> ~ESPUSB();</p>
<p> void onEvent(esp_event_handler_t callback);<br> void onEvent(arduino_usb_event_t event, esp_event_handler_t callback);</p>
<p> </p>
<p>2.代码烧录需要设置如下</p>
<p><img src="//image.lceda.cn/pullimage/xSJzTmZjZW0NzxZ4COaEqnFfNDIxASZjdeYqAgrg.png"></p>
<p> </p>
<p>3. 代码中 ESPNOW 的发送和接收写在了一起,具体使用时读取 Io10 的状态来决定自身的 Mac 地址,换句话说成对使用时,一个Io10 悬空,一个Io10 接地就可以了。</p>
<p>3.Arduino 版本 1.8.16 , ESP32 Package 是3.2.1</p>
<p> </p>
<p><img src="//image.lceda.cn/pullimage/LkXKwPycD6hgQUQokGhUa8nt2jsQj2y84GQxejCZ.png"></p>
<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"> </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"> </p>
<p style="line-height:1.8"><img src="//image.lceda.cn/pullimage/vp9BR5MEgQMU9pMn7OTtDqdqB1YhOeImlOX7RMN8.jpeg" alt="" width="1200" height="900"></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>
评论(0)