版本协议

CC BY-NC-SA 4.0

专业版
#第十届立创电赛#ESP32-C3·MPQ4263 迷你可调电源

创建时间:1周前

69 0

描述

<h2>1、项目功能介绍</h2> <p>本项目设计了一款以ESP32-C3 MCU为控制器、采用MPQ4263 Buck-Boost拓扑进行电压变换的数控电源。主要面向12V/15V/20V PD诱骗 或 12-24V DC电源供电的情况。</p> <p>首先感谢嘉立创、瑞萨以及其他赞助商对于本届立创电赛的支持,为选手提供学习与实践的平台。再次感谢!</p> <h2>2、项目属性</h2> <p>项目首次公开;项目为原创;项目未曾经在其他比赛中获奖;项目未在学校参加过答辩。</p> <h2>3、开源协议</h2> <p><span style="color:#FF0000;"><strong>开源协议为CC BY-NC-SA 4.0 若使用该开源项目,请遵守开源协议!</strong></span></p> <h2>4、硬件部分</h2> <h3>4.1 基本特征</h3> <ul> <li>设备尺寸:L58 x W39.5 x H18 mm(不含编码开关、脚垫和香蕉母座 经典外面不算体积)</li> <li>输入电压VIN:12V ~ 24V</li> <li>输出电压VOUT:1.6V ~ 34.352V(理想) / <strong>1.8V ~ 32V(软件)</strong></li> <li>输出电流IOUT:0 ~ 5.4A(硬件) / <strong>0 ~ 4A(软件)</strong></li> <li>控制精度:0.1V / 0.1A</li> <li>输出精度:0.01V / 0.01A</li> </ul> <p>说明:</p> <ol> <li>输入电压过低时无法使能MPQ4263,系统无输出;电压过高时可能系统可能无法正常工作(高于辅助DC-DC电源有效输入);</li> <li>测量精度可达小数点后3位,但受制于TFT尺寸、控制效果的原因,软件仅保留小数点后2位显示、小数点后1位输出控制。</li> </ol> <p><img src="https://image.lceda.cn/oshwhub/pullImage/6c0015e44a214ad78b03a62079d1c8ba.jpg" alt="尺寸对比.jpg"> 与上一版本相比,本项目设计的电源在尺寸大大缩小。</p> <hr> <h3>4.2 机械结构</h3> <p><img src="https://image.lceda.cn/oshwhub/pullImage/6353868852f74476bfb7cd0ac9e704ce.jpg" alt="接口布局.jpg"> 设备的接口布局如上图所示。 其中,DC_IN与TYPE-C_IN用于电源输入,有效输入范围为11.5V ~ 24V。</p> <p><img src="https://image.lceda.cn/oshwhub/pullImage/c270efa516464e9aafa96f9be20614af.jpg" alt="零件图.jpg"> 电源的所有构成组件如上图所示。除PCB上元器件外所有零件明细见下表:</p> <table> <tr> <th>零件名称</th> <th>数量</th> <th>获取方式</th> <th>备注</th> </tr> <tr> <td>上壳</td> <td>1</td> <td>3D打印</td> <td>本项目中采用拓竹A1 Aliz PETG耗材打印,见附件。</td> </tr> <tr> <td>下壳</td> <td>1</td> <td>3D打印</td> <td>本项目中采用拓竹A1 Aliz PETG耗材打印,见附件。</td> </tr> <tr> <td>散热块</td> <td>1</td> <td>CNC</td> <td>本项目中采用嘉立创CNC加工,见附件。孔径1.6mm能够自动识别为M2螺纹孔,若需要手动攻丝请选择为光孔。</td> </tr> <tr> <td>1.54"TFT屏幕</td> <td>1</td> <td>-</td> <td>插接 0.5mm间距 12P。</td> </tr> <tr> <td>M2x7+3mm铜柱</td> <td>4</td> <td>-</td> <td>-</td> </tr> <tr> <td>M2x10螺丝</td> <td>4</td> <td>-</td> <td>-</td> </tr> <tr> <td>M2x4x2土八螺母</td> <td>4</td> <td>-</td> <td>需要嵌入上壳中。</td> </tr> <tr> <td>4mm香蕉母座</td> <td>2</td> <td>-</td> <td>颜色不同。</td> </tr> </table> <p>详细机械装配结构见下文。 嘉立创CNC每月免费打样:<a href="https://www.jlc-cnc.com/ac/ACUHiDI0/CP5SzoAs" target="_blank">https://www.jlc-cnc.com/ac/ACUHiDI0/CP5SzoAs</a></p> <hr> <h3>4.3 硬件设计思路</h3> <h4>4.3.1 电源主拓扑与选型</h4> <p>在上一版本的电源中,采用了Buck的拓扑结构,这一拓扑结构只能实现降压的控制,输出受到VIN的限制。为了获得更宽的输出范围,本次采用了Buck-Boost的升降压拓扑结构。在上一次的MPS征集令项目中,接触到了如MP4248、MPQ4263这样内置下管的Buck-Boost控制器,这样的结构能够大大减小DC-DC部分的footprint,与本次设计的<strong>迷你</strong>电源十分贴切。因此在本次的设计中,采用了MPQ4263作为控制器。除了内置下管外,MPQ4263还能够通过I2C进行通讯,能够减小FB电阻网络部分的设计。对于ESP32-C3此类没有内置DAC的MCU来说,这样的特征是极为有利的。</p> <h4>4.3.2 电源框架设计</h4> <p>本项目的电源框架设计大体与上一版本的电源保持一致,主要针对MPQ4263进行适配,并且解决了在上一版本电源设计中发现的硬件缺陷。详细的电源框架设计见:<a href="https://oshwhub.com/carele/carele_power_box_v1" target="_blank">MP9928-ESP32C3 降压型便携数控电源 5.2 电源框架设计</a>。</p> <p>MPQ4263的外围元件简单,除了Buck-Boost必要的电感、电容与MOSFET外,仅需少量的阻容即可构建系统,利于迷你电源设计。</p> <p>在输入部分,本次增加P-MOS构建了防反接、缓启动电路,以对系统进行保护。另外,在输出部分,上一版本系统中采用N-MOS控制负端开关的方案,实测关断时输出不能完全被切断、正段对地仍有电压,算是一个设计缺陷。因此在本次设计中采用Pull-Push结构构建开关,用于控制正端的输出,而负端始终接地保持0电位。</p> <p>输出采样部分,为了节省元件并减少Layout面积,本次输出采样INA226与MPQ4263共用采样电阻。</p> <hr> <h3>4.4 控制结构设计</h3> <p>本次项目的控制结构设计大体与上一版本保持一致。详见:<a href="https://oshwhub.com/carele/carele_power_box_v1" target="_blank">MP9928-ESP32C3 降压型便携数控电源 5.3 控制结构设计</a>。</p> <p>不同的是,本次对于DC-DC拓扑的控制并不是采用PWM实现的,而是通过I2C总线对MPQ4263寄存器写入。</p> <hr> <h3>4.5 MCU IO配置</h3> <p>本项目所需的IO如下表所示:</p> <table> <tr> <th>项目</th> <th>IO名</th> <th>IO数量</th> <th>备注</th> </tr> <tr> <td>SPI</td> <td>SCK / MOSI / D/C / RSE</td> <td>4</td> <td>若要使用硬件SPI需要使用特定引脚</td> </tr> <tr> <td>I2C</td> <td>SCL / SDA</td> <td>2</td> <td>-</td> </tr> <tr> <td>USB</td> <td>USB_D+ / USB_D-</td> <td>2</td> <td>固定为IO19 / IO18</td> </tr> <tr> <td>VADC</td> <td>-</td> <td>1</td> <td>需要ADC1</td> </tr> <tr> <td>OCTRL</td> <td>-</td> <td>1</td> <td>-</td> </tr> <tr> <td>KEY1</td> <td>-</td> <td>1</td> <td>为方便烧录选择IO9 BOOT</td> </tr> <tr> <td>编码器开关</td> <td>KEY2 / KEYA / KEYB</td> <td>3</td> <td>-</td> </tr> <tr> <td>Reserve</td> <td>-</td> <td>1</td> <td>保留/未使用</td> </tr> </table> <table> <tr> <th>最后分配IO表如下所示:</th> <th>项目</th> <th>IO名</th> <th>IO号</th> <th>备注</th> </tr> <tr> <td>SPI</td> <td>SCK / MOSI / D/C / RSE</td> <td>6 / 7 / 4 / 5</td> <td>使用软件SPI</td> </tr> <tr> <td>I2C</td> <td>SCL / SDA</td> <td>20 / 21</td> <td>使用硬件I2C</td> </tr> <tr> <td>USB</td> <td>USB_D+ / USB_D-</td> <td>19 / 18</td> <td>固定为IO19 / IO18</td> </tr> <tr> <td>VADC</td> <td>-</td> <td>0</td> <td>ADC1_CH0</td> </tr> <tr> <td>OCTRL</td> <td>-</td> <td>3</td> <td>-</td> </tr> <tr> <td>KEY1</td> <td>-</td> <td>9</td> <td>与BOOT功能共用引脚</td> </tr> <tr> <td>编码器开关</td> <td>KEY2 / KEYA / KEYB</td> <td>2 / 8 / 10</td> <td>-</td> </tr> <tr> <td>Reserve</td> <td>-</td> <td>1</td> <td>保留/未使用</td> </tr> </table> <p>IO的使用大体与上一版本一致。</p> <h2>5、软件部分</h2> <h3>5.1 软件框架</h3> <p><img src="https://image.lceda.cn/oshwhub/pullImage/4449de4bdfee43f1b2044a3f2237f8be.jpg" alt="软件框架.jpg"></p> <p>先前版本在定时器中断服务函数中对DC-DC控制量进行刷新,但是本次采用I2C总线进行通讯,无法在中断服务函数中完成(至少我碰到的是这样的情况),因此将MPQ4263的写入部分移入<code>loop()</code>中。</p> <hr> <h3>5.2 各模块设计介绍</h3> <p>本项目中大部分的模块设计沿用了上一版本设计。</p> <h4>5.2.1 TFT显示</h4> <p>本项目中,采用<code>TFT_eSPI.h</code>库进行显示驱动。使用方法较为简单,通过相应的函数绘制需要的文字、图形等即可实现。值得注意的是:</p> <ul> <li> <p>需要根据设备情况在<code>User_Setup.h</code>中更新对应设置 该库的正确调用需要在<code>User_Setup.h</code>设置对应的引脚、驱动型号、频率等参数,注意看注释说明。</p> </li> <li> <p>刷新采用缓冲区的形式刷新 在之前的ESP32-S3数字电源项目中,同样使用了<code>TFT_eSPI.h</code>库。在之前的使用中发现刷新会出现频闪的情况,但没有找到解决方法(属于是学习不够到位)。在本次项目的设计过程中,发现了缓冲区的形式能够避免频闪情况。 通过<code>createSprite()</code>函数能够创建Sprite对象(缓冲区)。在后续的刷新中,可以对缓冲区内容进行更新,更新后再一次性发送缓冲区中的内容,避免频闪情况的出现。较为简单的形式是将整个屏幕创建为一个缓冲区,只对这个缓冲区进行编辑-发送。</p> </li> </ul> <h4>5.2.2 非易失性存储NVS</h4> <p>NVS是ESP32中的一种功能,其能够将Flash中的部分区域划分为NVS,可在其中存取数据,这些数据不像RAM中的数据一样,不会在掉电后丢失。能够用来存储一些运行中可能会更改的、需要永久保留的重要设置信息(例如本项目中的PID参数、电压电流设置)。 通过<code>nvs_flash_init()</code>能够在Flash中划分出一定区域作为NVS,<code>nvs_set_xx</code>系列函数进行写入、<code>nvs_get_xx</code>系列函数进行读取,即可实现非易失存取。 NVS的储存形式为键值对,与Json的形式类似,对“键”进行命名,并在对应“键”存入“值”。 需要注意的是,ESP32-C3的NVS中只能存储整数型、以<code>\0</code>结尾的字符串以及可变长度的二级制数据。因此,例如PID设置参数这样的浮点型数据,需要转换成整数类型进行存储。</p> <h4>5.2.3 PID控制</h4> <p>本项目中的电压与电流输出的控制采用了PID控制的形式。PID使用的是理想的增量型PID,有数学式如下: $$ Δu = K_p[ e<em>k - e</em>{k-1} + \frac{T_s}{K_i}e_k + \frac{K_d}{T_s}(e<em>k - 2e</em>{k-1} +e_{k-2}) ] $$ 输入PID参数、当前和前1-2时刻的误差值以及采样周期$$ T_s $$,即可得到控制量的变化量。 将PID封装为函数:</p> <pre><code>float PID_compute(float Vek, float Vek_1, float Vek_2, float Kp, float Ki, float Kd) { float delta_value; float Pterm = (Vek - Vek_1); float Itrem = Vek; float Dterm = ( Vek - 2*Vek_1 +Vek_2); delta_value = Kp*( Pterm + Ts/Ki*Itrem + Kd/Ts*Dterm ); return delta_value; }</code></pre> <p>值得一提的是,在本项目中输出电压VOUT的控制并不只是依赖PID控制(恒压模式)。当处于输出状态,并且VSET发生变化时,将根据设置值-输出电压关系计算一个设置值,再进行PID控制。设置值与输出电压存在有数学关系,参照<a href="https://item.szlcsc.com/datasheet/MPQ4263GQVE-0002-AEC1-Z/40699751.html?spm=sc.it.pdf.fd___sc.gbn.xh2.zy.t&amp;lcsc_vid=ElBZUgJfRAANXwVWFQJcUQZeElJWBQBVFgIPXwJTQ1ExVlNQRlFbUVBSQFVYUjtW" target="_blank">MPQ4263 datasheet VOUT_COMMAND (21h)</a>,可以推导得: $$ Value = V<em>{SET} / (0.0009765625 * {FB}</em>{ratio}) $$ 由此可以计算得到较为准确的设置值,之后再通过PID进行微调修正使输出更加准确。 <strong>要强调的是,这样的输出模式不宜叠加较大的PID控制效果,即Kp需要设置一个较小的值。</strong></p> <p>而恒流模式由于输出与负载有关,并不能通过单一的函数确定占空比与输出关系,因此仅采用PID控制调节输出。</p> <h4>5.2.4 MPQ4263、CH224Q、INA226写入/读取</h4> <p>以上三个对象通过I2C总线进行通讯。CH224Q设置请求电压值只需要通过I2C总线向其寄存器写入特定值;INA226需要向其寄存器中写入采样电阻值,并从寄存器中读取总线电压与差分电压值。 由于CH224Q只要向寄存器写入一位数据,因此只要使用<code>Wire.h</code>库进行简单操作;而INA226需要进行多次写入、读取操作,调用针对INA226封装好的库函数更加轻松,因此使用<code>INA226.h</code>库来完成被测量读取的任务。 需要注意的是MPQ4263较为特殊,需要采用PMBus的协议。简单来说,主机需要先发送从机地址,再发送从机寄存器地址(指令),然后才能进行传统意义的I2C读写。可以参照文章<a href="https://oshwhub.com/zhupf1984/mini-adjustable-power-supply" target="_blank">基于MPS的MPQ4263芯片I2C通讯可调电源</a>,其中进行了相关描述。另外,需要仔细阅读<a href="https://item.szlcsc.com/datasheet/MPQ4263GQVE-0002-AEC1-Z/40699751.html?spm=sc.it.pdf.fd___sc.gbn.xh2.zy.t&amp;lcsc_vid=ElBZUgJfRAANXwVWFQJcUQZeElJWBQBVFgIPXwJTQ1ExVlNQRlFbUVBSQFVYUjtW" target="_blank">MPQ4263 datasheet DIGITAL INTERFACE</a>章节关于数字接口通讯的描述。</p> <p><img src="https://image.lceda.cn/oshwhub/pullImage/c3514f57d42e4f34bdf706c9f98fd8d6.jpg" alt="PMBus_I2C.jpg"></p> <p><img src="https://image.lceda.cn/oshwhub/pullImage/e57ccd94cb0a4adbb66212efd97a9416.jpg" alt="PMBus.jpg"></p> <ul> <li>S = Start condition</li> <li>Sr = Repeated start condition</li> <li>P = Stop condition</li> <li>R = Read bit</li> <li>W# = Write bit</li> <li>A = Acknowledge bit (0) </li> <li>A# = Acknowledge bit (1) </li> </ul> <p>这里详细说明下PMBus的通讯。很明显,都是基于I2C总线进行通讯的,相较于传统I2C通讯,从机寄存器地址被<strong>Command</strong>概念所代替。如上图所示,对于读取,需要发送从机地址、再发送Command Code对应传统I2C通讯的寄存器地址,接下来再向从机请求Command Code对应的数据;而对于写入,基本与传统I2C通讯无异,发送需要写入的从机地址、再发送Command Code接着发送要写入的内容。</p> <p>开始帧内容由从机地址Address和读写位R/W#构成,需要注意的是,对于Arduino <code>Wire.h</code>库而言,读写位R/W#根据用户代码判断而不需要自行添加读写位,保持七位地址即可,对于MPQ4263,默认地址为<code>0x67</code>。</p> <p>另外PMBus的数据格式也值得注意。主要有两种数据格式:Byte - 8位;Word - 16位。对于Byte而言,与传统I2C没有太大的区别;但是对于Word,其高低位读写方式与I2C相反,PMBus采用的是<strong>先低位、后高位</strong>的顺序收发,在实际的使用中需要注意。</p> <p><strong>该项目目前尚未完全解决通讯问题,复刻请确保自己有能力解决相关问题!</strong> 详细情况会在下文存在的问题部分提及。</p> <h4>5.2.5 按键、编码器</h4> <p>按键与编码器是本系统进行人机交互的主要工具。其中,按键相关功能通过调用<code>OneButton.h</code>库实现;编码器数值调节功能通过调用<code>AiEsp32RotaryEncoder.h</code>库实现。 其中,<code>AiEsp32RotaryEncoder.h</code>库中可以实现滚轮编码器的变速控制,即滚轮滚的越快、数值变化越快,其通过<code>setAcceleration()</code>函数实现。这样能够使得大量程变化的调整速度更快。</p> <hr> <h3>5.3 交互逻辑</h3> <p>交互逻辑与上一项目保持一致。</p> <h4>5.3.1 按键交互逻辑</h4> <table> <tr> <th>按键</th> <th>行为</th> <th>调整</th> </tr> <tr> <td>KEY1</td> <td>单击</td> <td>输出开关</td> </tr> <tr> <td>KEY2</td> <td>双击</td> <td>设置启用</td> </tr> <tr> <td>KEY2</td> <td>单击</td> <td>对象切换</td> </tr> <tr> <td>编码器</td> <td>顺时针</td> <td>数值增大</td> </tr> <tr> <td>编码器</td> <td>逆时针</td> <td>数值减小</td> </tr> </table> <h3>5.3.2 上位机逻辑</h3> <p>本项目中上位机使用串口通信,为进行多控制量的调整,使用标准Json格式进行编码。 Key与Value对照表如下:</p> <table> <tr> <th>对象</th> <th>Key</th> <th>Value类型</th> <th>单位</th> <th>范围</th> </tr> <tr> <td>恒压PID参数</td> <td>"VKpid_p" (i, d同)</td> <td>float</td> <td>-</td> <td>0 ~ 655.35</td> </tr> <tr> <td>恒流PID参数</td> <td>"IKpid_p" (i, d同)</td> <td>float</td> <td>-</td> <td>0 ~ 655.35</td> </tr> <tr> <td>目标输出电压</td> <td>"VSET"</td> <td>float</td> <td>1.0V</td> <td>2.5 ~ (VIN-0.5)</td> </tr> <tr> <td>目标输出电流</td> <td>"ISET"</td> <td>float</td> <td>1.0A</td> <td>0 ~ 4.5</td> </tr> <tr> <td>输出状态</td> <td>"OUT"</td> <td>bool</td> <td>-</td> <td>0 / 1</td> </tr> </table> <p>例如要设置目标输出电压为12V、输出电流为1A、输出状态为1,则编码为: <code>{"VSET":12, "ISET":1, "OUT":1}\n</code> 设备会在接收到上位机数据后返回相同的信息。</p> <h3>5.3.3 TFT显示逻辑</h3> <p><img src="https://image.lceda.cn/oshwhub/pullImage/d5e3f3833ee5426d8527f7c8934596f2.jpg" alt="显示逻辑.jpg"></p> <ul> <li>屏幕上部显示输入电压与输出状态。 输入电压保留1位小数。当电压低于有效输入时,判断输出处于异常状态;低于有效输入、高于4.5V时显示“LOW”;低于4.5V时显示“NONE”。 输出状态在无输出时显示“WAIT”,当输出模式为恒压时显示“CV”,若输出电流超过设置值时进入恒流模式,显示“CC”。</li> <li>屏幕中部显示输出电压、输出电流和输出功率。显示保留2位小数。</li> <li>屏幕下部显示设置电压和电流,设置精确到一位小数。当双击编码器KEY2时进入选择状态,在待设置数值下显示横线;单机编码器KEY2切换设置输出电压或输出电流。</li> </ul> <h2>6、BOM清单</h2> <table> <tr> <th>零件名称</th> <th>数量</th> <th>获取方式</th> <th>备注</th> </tr> <tr> <td>机械零件</td> <td>若干</td> <td>-</td> <td>见4.2 机械结构</td> </tr> <tr> <td>PCB_UP</td> <td>1</td> <td>嘉立创免费打样</td> <td>厚度1.6mm</td> </tr> <tr> <td>PCB_DOWN</td> <td>1</td> <td>嘉立创免费打样</td> <td>厚度1.6mm 4层板 3313阻抗</td> </tr> </table> <p>PCB BOM清单请见页尾自动生成部分。<span style="color:#FF0000;"><strong>注意电容选型的耐压!</strong></span></p> <hr> <h3>6.1 机械装配</h3> <p><img src="https://image.lceda.cn/oshwhub/pullImage/5975d366be834f108d35b369f3e01f9d.jpg" alt="爆炸图.jpg"> 零件爆炸图如图所示,安装需自上向下安装。 首先使用M2x7+3mm铜柱将PCB_UP固定再上壳上,然后向下放入下壳当中。注意,需要对外壳进行适当的形变,并且由于编码器体积问题,安装时需要以一定角度置入下壳。 上壳与PCB_UP安装后翻转并安装PCB_DOWN,接着安装CNC铝板,最后使用M2x10mm螺丝固定。需要注意的是,CNC铝板安装前应当在铝板的凸台上涂抹硅脂/散热凝胶,在一些可能碰到的位置增加绝缘胶带;PCB_DOWN中固态电容也需要在可能与金属接触到的位置缠绕绝缘胶带。如4.2 机械结构图中所示。</p> <p><img src="https://image.lceda.cn/oshwhub/pullImage/e81e865e07c74a678a0203bfe4f3fa33.jpg" alt="铝板装配建议.jpg"></p> <h2>7、性能测试</h2> <p>时间关系暂未进行完整的性能测试,后续进行补充。</p> <hr> <h3>7.1 电压跟随测试</h3> <p><img src="https://image.lceda.cn/oshwhub/pullImage/c1d2914be1d54b87952bb05cfcbf6b3a.jpg" alt="电压跟随测试.jpg"> 图中,I0为目标电压值,I1为输出电压值,上图电压采样曲线所示可见跟随性能较好。</p> <h2>8、现存的一些问题</h2> <p>目前问题主要集中在MPQ4263的I2C通讯上。之前没有用过I2C通讯的DC-DC控制器,项目设计中缺少经验,对PMBus协议的使用也较为生疏。后续还要进一步优化代码以改进对MPQ4263的控制。 <span style="color:#FF0000;"><strong>请注意,由于当前存在的问题,电源使用还存在不确定性,若要进行复刻请确保自己有修改的能力!</strong></span></p> <ul> <li>MPQ4263输出问题1:输出斜率过大会突然掉压,然后输出保持在约3.8V,猜测可能出现了某种错误并陷入保护状态,等待解决。</li> <li>MPQ4263输出问题2:输出电压最高只能达到约26.5V,当电压高于这一值时无法继续增加,猜测也是受到了某种保护。</li> <li>MPQ4263工作问题:OPERATION寄存器写入似乎存在问题,还未确定具体情况。</li> </ul> <h2>9、大赛LOGO验证</h2> <p><img src="https://image.lceda.cn/oshwhub/pullImage/8a28716d217e4916aa6cbe042a3eefda.jpg" alt="logo验证.jpg"> 大赛LOGO如上图所示。</p> <h2>10、演示您的项目并录制成视频上传</h2> <p>详见附件内容。</p> <p></p>

文档

BOM

暂无

附件

附件名 下载
视频展示.mp4
CarelePowerBox_v2.zip
MPQ4263GQVE-0002-AEC1-Z.pdf
上盖.STL
下壳.STL
底板.STEP
底板.SLDPRT
上盖.SLDPRT
下壳.SLDPRT
模型文件.zip
脚垫.SLDPRT
脚垫.STL

成员

评论(0)

  • 表情
    emoji
    小嘉工作篇
    小嘉日常篇
  • 图片
成功
工程所有者当前已关闭评论
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