HonestQiao 发表于 2022-11-2 13:19

【2022得捷创新设计大赛】二自由度云台机器人控制平台修订版

本帖最后由 HonestQiao 于 2022-11-2 16:20 编辑

<p>&nbsp;</p>

<p align="center"><span style="font-size:20px;"><a name="_Toc118281877">二自由度云台机器人控制平台修订版</a></span></p>

<p align="center"><b>作者:乔楚</b></p>

<p>&nbsp;</p>

<p>二自由度云台机器人控制平台.................................................................................................&nbsp;1</p>

<p>一、作品简介(100-200字)..................................................................................................&nbsp;2</p>

<p>二、系统框图(图文结合)......................................................................................................&nbsp;3</p>

<p>三、各部分功能说明(图文结合).........................................................................................&nbsp;8</p>

<p>四、作品源码.............................................................................................................................18</p>

<p>五、作品功能演示视频............................................................................................................&nbsp;20</p>

<p>六、项目总结............................................................................................................................&nbsp;20</p>

<p>七、其他....................................................................................................................................&nbsp;21</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p><span style="font-size:20px;"><a name="_Toc118281878">一、作品简介</a></span></p>

<p>&nbsp; &nbsp; &nbsp; 本作品,名称为&ldquo;二自由度云台机器人控制平台&rdquo;,实现了一个完整的云台机器人控制平台,系统使用运动传感器做为控制手柄,来控制机器人的运动,并配合OLED屏,显示系统的当前状态。</p>

<p>&nbsp; &nbsp; &nbsp;使用控制手柄,可以通过前后向动作,来控制纵轴舵机运动,通过旋转操作,控制横轴舵机运动,从而实现机器人二自由度控制。</p>

<p>&nbsp; &nbsp; &nbsp;作品照片:</p>

<p> &nbsp;</p>

<p>&nbsp;</p>

<p><span style="font-size:20px;"><a name="_Toc118281879">二、系统框图</a></span></p>

<p><b>2.1 </b><b>系统整体设计:</b></p>

<p>&nbsp; &nbsp; &nbsp;在本系统中,二自由度云台机器人,使用两个舵机,实现两个维度的自由运动。</p>

<p>&nbsp; &nbsp; &nbsp;系统使用一个MPU6050六轴运动传感器&nbsp;,通过实时获取其六轴运动数据,解码识别实际的运动,然后通过PCA9685控制两个舵机,从而实现通过控制手柄,来控制机器人的实际动作。</p>

<p>&nbsp; &nbsp; &nbsp;在机器人支架的平台上,还搭配有一个OLED显示屏,用于显示系统的当前状态,以及通过互联网对时的时钟。</p>

<p>&nbsp; &nbsp; &nbsp;系统整体设计图:</p>

<p> &nbsp;</p>

<p>&nbsp;</p>

<p><b>2.2 </b><b>硬件物料:</b></p>

<p> &nbsp;</p>

<p>&nbsp; &nbsp; &nbsp;在本作品中,使用到硬件如下:</p>

<ul>
        <li>开发板: ESP32-E</li>
        <li>扩展板: ESP32-E专用扩展板</li>
        <li>OLED显示屏:SSD1306 128x64显示屏,带支架</li>
        <li>运动传感器:DFRobot MPU6050,已经安装到手柄内部</li>
        <li>舵机控制:PCA9685 16路舵机控制器</li>
        <li>舵机:3120 20KG舵机2个</li>
        <li>云台支架:1套</li>
        <li>电源:正点原子数控电源</li>
</ul>

<p><br />
<b>2.3 </b><b>硬件连接规划:</b><br />
&nbsp;</p>

<p>&nbsp;</p>

<p>&nbsp; &nbsp; &nbsp;实物连接说明:</p>

<ol>
        <li>将扩展板平插到ESP32开发板上</li>
        <li>将&nbsp;PCA9685 连接到扩展板的I2C接口1</li>
        <li>将OLED连接到扩展板的I2C接口2</li>
        <li>将 MPU6050 连接到扩展板的I2C接口3</li>
        <li>将舵机连接到PCA9685的14、15舵机接口</li>
        <li>使用数控电源给PCA9685供电</li>
</ol>

<p>&nbsp;</p>

<p><br />
<b>2.4 </b><b>软件逻辑设计:</b></p>

<p> &nbsp;</p>

<p>&nbsp;</p>

<p><span style="font-size:20px;"><a name="_Toc118281880">三、各部分功能说明</a></span></p>

<p><br />
<b>3.1 </b><b>系统组成:</b></p>

<p>&nbsp; &nbsp; &nbsp;本系统的组成部分,分为四个部分,分别为:</p>

<ol>
        <li>主控中心:主控中心使用DFRobot FireBeetle ESP32-E进行逻辑控制,并搭配专用扩展板方便其他设备的接入</li>
</ol>

<p> &nbsp;</p>

<ol start="2">
        <li>运动控制模块:使用DFRobot MPU6050,主控程序通过获取其数据,经过解码,生成纵轴和横轴控制数据,然后控制机器人运行。</li>
</ol>

<p> &nbsp;</p>

<p>&nbsp;</p>

<ol start="3">
        <li>动作执行模块:使用1个PCA9685舵机控制器和2个3120 20KG舵机,来进行机器人纵轴和横轴的动作控制。</li>
</ol>

<p> &nbsp; &nbsp;</p>

<p>&nbsp;</p>

<ol start="4">
        <li>显示模块:使用SSD1306 128x64的OLED显示屏,用于显示系统的当前状态,包括系统启动过程中的信息,启动后纵轴和横轴的状态,以及通过互联网对时的时钟。</li>
</ol>

<p> &nbsp;</p>

<p>&nbsp; &nbsp; &nbsp;在上述模块中:</p>

<ul>
        <li>舵机控制器PCA9685为I2C接口,供提供了16组舵机接口,编号为0-15,这里使用最后的两个接口,接入两个舵机分别用于机器人纵轴和横轴的控制</li>
        <li>所使用的运动传感器DFRobot MPU6050,同样为I2C接口</li>
        <li>所使用的SSD1306 128x64 OLED显示屏,也为I2C接口</li>
        <li>专用扩展板上刚好提供了3组I2C接口,正好用于接入上述3个I2C设备的接入</li>
</ul>

<p>&nbsp; &nbsp; &nbsp;另外:</p>

<ul>
        <li>为了确保舵机能够稳定运行,使用了一个正点原子数控电源专门为舵机控制器PCA9685提供5V电源输入。</li>
        <li>为了方便使用MPU6050进行稳定的控制,使用了一个掏空内部的儿童牙刷来内置MPU6050,方便手持操作。</li>
</ul>

<p>&nbsp;</p>

<p><b>3.2 </b><b>使用说明:</b></p>

<p>3.2.1 系统的使用步骤如下:</p>

<ol>
        <li>系统启动:
        <ul style="list-style-type:disc">
                <li>确保各部分连接正确后,上电启动,初始化各部件</li>
                <li>启动过程中,显示屏将显示当前启动进度</li>
                <li>启动完成后,屏幕将显示操作界面</li>
                <li>启动后,默认情况下,处于机器人停止状态</li>
        </ul>
        </li>
        <li>按键操作:
        <ul style="list-style-type:disc">
                <li>ESP32开发板左则的RST按键,用于系统重启</li>
                <li>ESP32开发板右则的Pin27按键,用于启停机器人舵机控制</li>
                <li>Pin27按键奇数次按键,启动机器人舵机控制,偶数次按键,停止机器人舵机控制</li>
        </ul>
        </li>
        <li>手柄操作:
        <ul style="list-style-type:disc">
                <li>系统启动过程中,应手持手柄保持垂直竖立状态,以便系统正确计算初始化状态;</li>
                <li>应根据自己所使用的MPU6050芯片,确定正确的芯片放置方向</li>
                <li>启动完成后,向前压手柄,或者向后压手柄,控制机器人横向舵机运动</li>
                <li>启动完成后,以手柄竖向中心线为中心旋转,控制机器人纵向舵机运动</li>
        </ul>
        </li>
        <li>显示屏状态:
        <ul style="list-style-type:disc">
                <li>启动过程中,依次显示各部分初始化情况</li>
                <li>启动后,界面显示各状态图标,包括当前控制状态,以及当前的时钟</li>
                <li>Pin27按键依次以后,将会显示纵轴和横轴舵机控制角度</li>
        </ul>
        </li>
</ol>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>3.2.2 具体操作:</p>

<p>&nbsp; &nbsp; &nbsp;按下ESP32开发板的RST按键后,手持手柄,保持竖立状态,等待系统初始化启动完成。</p>

<p>&nbsp; &nbsp; &nbsp;启动完成以后,按一下ESP32开发板右则的按键,使能手柄控制机器人,然后就可以进行操作控制了。</p>

<p> &nbsp;</p>

<p>&nbsp;<br />
&nbsp; &nbsp; &nbsp;&nbsp;运行过程中,OLED显示屏显示如下:</p>

<p> &nbsp;</p>

<p>&nbsp; &nbsp; &nbsp;在上图中,各区域信息如下:</p>

<ul>
        <li>状态栏:分别为电源接入图标、运行状态图标(启动时默认暂停)、互联网对时时钟、WiFi图标</li>
        <li>内容区域:显示平台名称</li>
</ul>

<p>&nbsp;当按下ESP32开发板右则按键后,进行控制操作时,OLED显示屏显示如下:</p>

<p> &nbsp;</p>

<p>在上图中,各区域的信息如下:</p>

<ul>
        <li value="50">状态栏:分别为电源接入图标、运行状态图标(当前为使用运行)、互联网对时时钟、WiFi图标</li>
        <li value="50">内容区域:显示纵轴和横轴舵机对应的角度值</li>
</ul>

<p>&nbsp;</p>

<p><span style="font-size:20px;"><a name="_Toc118281881">四、作品源码</a></span></p>

<p>&nbsp; &nbsp; &nbsp;源码地址:<a href="https://download.eeworld.com.cn/detail/HonestQiao/625355" style="color:#0563c1; text-decoration:underline">https://download.eeworld.com.cn/detail/HonestQiao/625355</a></p>

<p>&nbsp; &nbsp; &nbsp;码云地址:<a href="https://gitee.com/honestqiao/2d_robot" style="color:#0563c1; text-decoration:underline">https://gitee.com/honestqiao/2d_robot</a></p>

<p>&nbsp;</p>

<p>&nbsp; &nbsp; &nbsp;在代码中,有几个关键点,需要详细说明:</p>

<p>&nbsp; &nbsp; &nbsp;首先是显示的图标和字体:</p>

<p>&nbsp;</p>

<p> &nbsp;</p>

<p>&nbsp; &nbsp; &nbsp;</p>

<p>&nbsp; &nbsp; &nbsp;在OLED显示屏操作界面中,使用到了4个图标,分别为电源、启/停、WiFi,使用了U8g2中的特殊字体来显示的。</p>

<p>&nbsp; &nbsp; &nbsp;其中,电源和WiFi图标,为u8g2_font_siji_t_6x10字体的0x0e200、0x0e21a,启动图标为&nbsp;0x0e058,停止图标为0x0e059</p>

<p>&nbsp; &nbsp; &nbsp;在启动控制后,控制界面中,纵轴圆圈指向图标,为u8g2_font_unifont_t_86字体的0x02b6f,横轴上下箭头图标为0x02b65</p>

<p>&nbsp; &nbsp; &nbsp;其他显示使用的字体,均为u8g2_font_unifont_t_chinese2</p>

<p>&nbsp;</p>

<p>&nbsp; &nbsp; &nbsp;然后,在获取到MPU6050数据解码后,对纵轴的数据,应用了卡尔曼滤波进行优化处理,得到更为准确的数据。</p>

<p>&nbsp; &nbsp; &nbsp;该卡尔曼滤波的Kalman_Filter函数,来自于网上公开的代码,向提供该函数的作者表示感谢。</p>

<p>&nbsp;</p>

<p>&nbsp; &nbsp; &nbsp;最后,互联网时间同步部分,使用了第三方的Time时间库,用于与公开的ntp服务器进行对时。该部分的代码,可以提取出来,做成互联网时钟。</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p><span style="font-size:20px;"><a name="_Toc118281882">五、作品功能演示视频</a></span></p>

<p>&nbsp; &nbsp; &nbsp;视频介绍专辑地址:<a href="https://training.eeworld.com.cn/course/67867" style="color:#0563c1; text-decoration:underline">https://training.eeworld.com.cn/course/67867</a></p>

<p>&nbsp; &nbsp; &nbsp;介绍视频一共分为两个部分,分别为平台结构的介绍、详细使用的展示。</p>

<p>&nbsp; &nbsp; &nbsp;结构介绍视频地址:<a href="https://training.eeworld.com.cn/video/34839" style="color:#0563c1; text-decoration:underline">https://training.eeworld.com.cn/video/34839</a></p>

<p>&nbsp; &nbsp; &nbsp;使用展示视频地址:<a href="https://training.eeworld.com.cn/video/34840" style="color:#0563c1; text-decoration:underline">https://training.eeworld.com.cn/video/34840</a></p>

<p>&nbsp;</p>

<p><span style="font-size:20px;"><a name="_Toc118281883">六、项目总结</a></span></p>

<p>&nbsp; &nbsp; &nbsp;在该二自由度云台机器人控制平台设计制作开发的过程中,进行了多项研究尝试,最终选择了Arduino IDE进行开发。</p>

<p>&nbsp; &nbsp; &nbsp;在开发过程中,详细了解到了ESP32、MPU6050、PCA9685舵机控制器、DS 3120 20KG舵机、SSD 1306 OLED等的具体使用。Arduino平台强大的包容和扩展性,使得开发过程中可以方便的应用第三方开发库,大大加快了开发的速度。</p>

<p>&nbsp; &nbsp; &nbsp;非常感谢EEWrold和得捷提供这次机会,得以把以前一直想做但没有做的事情,给好好的完成。今后也希望有更多的机会,进行交流学习和研究。</p>

<p>&nbsp;</p>

<p>&nbsp; &nbsp; &nbsp;<b>帖子分享汇总:</b></p>

<ul>
        <li>开箱帖</li>
        <li><a href="https://bbs.eeworld.com.cn/thread-1206642-1-1.html" style="color:#0563c1; text-decoration:underline">https://bbs.eeworld.com.cn/thread-1206642-1-1.html</a></li>
        <li>&nbsp;</li>
        <li>【2022得捷创新设计大赛】二自由度云台机器人控制平台</li>
        <li><a href="https://bbs.eeworld.com.cn/thread-1223083-1-1.html" style="color:#0563c1; text-decoration:underline">https://bbs.eeworld.com.cn/thread-1223083-1-1.html</a></li>
        <li>&nbsp;</li>
        <li>【2022得捷创新设计大赛】二自由度云台机器人控制平台修订版</li>
        <li><a href="https://bbs.eeworld.com.cn/thread-1223437-1-1.html" style="color:#0563c1; text-decoration:underline">https://bbs.eeworld.com.cn/thread-1223437-1-1.html</a></li>
        <li>&nbsp;</li>
        <li>介绍和展示视频</li>
        <li><a href="https://training.eeworld.com.cn/course/67867" style="color:#0563c1; text-decoration:underline">https://training.eeworld.com.cn/course/67867</a><a name="_Hlt118280667"></a></li>
        <li>&nbsp;</li>
        <li>U8g2中的字体应用</li>
        <li><a href="https://bbs.eeworld.com.cn/thread-1223466-1-1.html" style="color:#0563c1; text-decoration:underline">https://bbs.eeworld.com.cn/thread-1223466-1-1.html</a></li>
        <li>&nbsp;</li>
        <li>ESP32上基于NTP服务的互联网时钟</li>
        <li><a href="https://bbs.eeworld.com.cn/thread-1223502-1-1.html" style="color:#0563c1; text-decoration:underline">https://bbs.eeworld.com.cn/thread-1223502-1-1.html</a></li>
</ul>

<p>&nbsp;</p>

<p><span style="font-size:20px;"><a name="_Toc118281884">七、其他</a></span></p>

<p><b>7.1 </b><b>问题与改进</b></p>

<p>&nbsp; &nbsp; &nbsp;在实际开发,经过反复的测试,目前还有如下问题需要解决或者优化:</p>

<ol>
        <li>OLED显示屏操作界面的显示,目前使用了全屏刷新,可优化为仅刷新发生变化的部分;</li>
        <li>MPU6050长时间使用后,会发生一定的漂移,正在详细了解相关的资料,以便进行优化。</li>
</ol>

<p>&nbsp;</p>

<p><b>7.2 </b><b>第三方库</b></p>

<p>&nbsp; &nbsp; &nbsp;在开发的过程中,使用到了如下的Arduino库,对作者和提供方表示深深的感谢:</p>

<ul>
        <li>DFRobot ESP32 Boards:DFRobot提供的开发板支持库</li>
        <li>WiFi:内置</li>
        <li>Time:时间处理,<a href="https://github.com/PaulStoffregen/Time" style="color:#0563c1; text-decoration:underline">PaulStoffregen/Time: Time library for Arduino (github.com)</a></li>
        <li>Timezone:时区处理,<a href="https://github.com/JChristensen/Timezone" style="color:#0563c1; text-decoration:underline">JChristensen/Timezone: Arduino library to facilitate time zone conversions and automatic daylight saving (summer) time adjustments. (github.com)</a></li>
        <li>MPU6050_tockn:MPU6050驱动库,<a href="https://github.com/tockn/MPU6050_tockn" style="color:#0563c1; text-decoration:underline">tockn/MPU6050_tockn: Arduino library for easy communication with MPU6050 (github.com)</a></li>
        <li>Adafruit_PWMServoDriver:舵机驱动库,<a href="https://github.com/adafruit/Adafruit-PWM-Servo-Driver-Library" style="color:#0563c1; text-decoration:underline">adafruit/Adafruit-PWM-Servo-Driver-Library: Adafruit PWM Servo Driver Library (github.com)</a></li>
        <li>Adafruit_SSD1306:OLED驱动库,<a href="https://github.com/adafruit/Adafruit_SSD1306" style="color:#0563c1; text-decoration:underline">adafruit/Adafruit_SSD1306: Arduino library for SSD1306 monochrome 128x64 and 128x32 OLEDs (github.com)</a></li>
        <li>Adafruit-GFX:显示图形处理,&nbsp;<a href="https://github.com/adafruit/Adafruit-GFX-Library" style="color:#0563c1; text-decoration:underline">adafruit/Adafruit-GFX-Library: Adafruit GFX graphics core Arduino library, this is the &#39;core&#39; class that all our other graphics libraries derive from (github.com)</a></li>
        <li>U8g2_for_Adafruit_GFX:支持Adafruit_GFX的U8g2库,用于Unicode字符串显示,<a href="https://github.com/olikraus/U8g2_for_Adafruit_GFX" style="color:#0563c1; text-decoration:underline">olikraus/U8g2_for_Adafruit_GFX: Add U8g2 fonts to any Adafruit GFX based graphics library. (github.com)</a></li>
</ul>

<p><br />
&nbsp;</p>

<p><b>7.3 </b><b>参考资料</b></p>

<p>&nbsp; &nbsp; &nbsp;在本作品设计开发的过程中,查阅学习了上百篇文档资料,对于提供这些资料的作者表示万分的感谢。</p>

<p>&nbsp; &nbsp; &nbsp;这些文档资料,包括但不限于如下链接:</p>

<ul>
        <li><a href="https://wiki.dfrobot.com.cn/_SKU_DFR0654_FireBeetle_Board_ESP32_E" style="color:#0563c1; text-decoration:underline">DFR0654_FireBeetle_Board_ESP32_E (dfrobot.com.cn)</a></li>
        <li><a href="https://github.com/olikraus/u8g2" style="color:#0563c1; text-decoration:underline">olikraus/u8g2: U8glib library for monochrome displays, version 2 (github.com)</a></li>
        <li><a href="https://learn.adafruit.com/16-channel-pwm-servo-driver/hooking-it-up" style="color:#0563c1; text-decoration:underline">Hooking it Up | Adafruit PCA9685 16-Channel Servo Driver | Adafruit Learning System</a></li>
        <li><a href="https://www.aranacorp.com/en/using-a-pca9685-module-with-arduino/" style="color:#0563c1; text-decoration:underline">Using a PCA9685 module with Arduino &bull; AranaCorp</a></li>
        <li><a href="https://www.7gp.cn/archives/326" style="color:#0563c1; text-decoration:underline">16路PWM舵机驱动板(PCA9685)的使用说明(更新中) | 奇果派工坊 (7gp.cn)</a></li>
        <li><a href="https://techexplorations.com/blog/esp32/firebeetle-esp32e-arduinoiotcloud/" style="color:#0563c1; text-decoration:underline">Firebeetle ESP32-E with Arduino IoT Cloud, 评论 - 技术探索 (techexplorations.com)</a></li>
        <li><a href="https://community.dfrobot.com/makelog-310356.html" style="color:#0563c1; text-decoration:underline">Make a Home-made Network Clock with ESP32-E (dfrobot.com)</a></li>
        <li><a href="https://randomnerdtutorials.com/esp32-ntp-client-date-time-arduino-ide/" style="color:#0563c1; text-decoration:underline">Getting Date and Time with ESP32 (NTP Client) | Random Nerd Tutorials</a></li>
        <li><a href="https://www.instructables.com/ESP32-and-OLED-Display-Internet-Clock-DHT22/" style="color:#0563c1; text-decoration:underline">ESP32 and OLED Display: Internet Clock - DHT22 : 10 Steps (with Pictures) - Instructables</a></li>
        <li><a href="https://www.dfrobot.com/product-2231.html" style="color:#0563c1; text-decoration:underline">FireBeetle 2 ESP32-E IoT Microcontroller with Header - DFR0654-F | DFRobot Electronics</a></li>
        <li><a href="https://cloud.tencent.com/developer/article/1891228" style="color:#0563c1; text-decoration:underline">ESP32使用u8g2显示库(SSD1306驱动) - 腾讯云开发者社区-腾讯云 (tencent.com)</a></li>
        <li><a href="https://blog.jmaker.com.tw/u8g2-oled/" style="color:#0563c1; text-decoration:underline"> 一套u8g2函式庫,玩遍所有OLED (jmaker.com.tw)</a></li>
        <li><a href="https://blog.darkthread.net/blog/u8g2-cht-font-tool/" style="color:#0563c1; text-decoration:underline">Coding4Fun - Arduino/ESP u8g2 中文字庫自動化工具-黑暗執行緒 (darkthread.net)</a></li>
        <li><a href="https://github.com/olikraus/U8g2_for_Adafruit_GFX" style="color:#0563c1; text-decoration:underline">olikraus/U8g2_for_Adafruit_GFX: Add U8g2 fonts to any Adafruit GFX based graphics library. (github.com)</a></li>
        <li><a href="https://learn.adafruit.com/monochrome-oled-breakouts/arduino-library-and-examples" style="color:#0563c1; text-decoration:underline">Arduino Library &amp; Examples | Monochrome OLED Breakouts | Adafruit Learning System</a></li>
        <li><a href="https://juejin.cn/post/7097851044767465486" style="color:#0563c1; text-decoration:underline">如何自制自平衡云台基于mpu6050,arduino输出三维倾斜角度的方法(含源码,库) - 掘金 (juejin.cn)</a></li>
        <li><a href="https://atceiling.blogspot.com/2019/10/arduino74pca9685servo.html" style="color:#0563c1; text-decoration:underline">Arduino筆記(74):PCA9685控制Servo伺服馬達 | 天花板隨記 (atceiling.blogspot.com)</a></li>
        <li><a href="https://github.com/tockn/MPU6050_tockn" style="color:#0563c1; text-decoration:underline">tockn/MPU6050_tockn: Arduino library for easy communication with MPU6050 (github.com)</a></li>
        <li><a href="https://blog.51cto.com/u_15127578/3585308" style="color:#0563c1; text-decoration:underline">mpu6050控制舵机云台_51CTO博客_mpu6050</a></li>
        <li><a href="https://wiki.dfrobot.com/6_DOF_Sensor-MPU6050__SKU_SEN0142_" style="color:#0563c1; text-decoration:underline">6_DOF_Sensor-MPU6050__SKU_SEN0142_-DFRobot</a></li>
        <li><a href="https://github.com/adafruit/Adafruit-PWM-Servo-Driver-Library" style="color:#0563c1; text-decoration:underline">adafruit/Adafruit-PWM-Servo-Driver-Library: Adafruit PWM Servo Driver Library (github.com)</a></li>
        <li><a href="https://www.dfrobot.com/product-1576.html" style="color:#0563c1; text-decoration:underline">Gravity I2C OLED-128x64 Display - DFRobot</a></li>
        <li><a href="https://www.aranacorp.com/en/using-an-oled-display-with-arduino/" style="color:#0563c1; text-decoration:underline">Using an OLED Display with Arduino &bull; AranaCorp</a></li>
</ul>

<p>&nbsp;</p>

UUC 发表于 2022-11-3 10:40

<p>可以说是很用心了,标记一下,有空学习起来</p>

通途科技 发表于 2024-10-30 20:06

页: [1]
查看完整版本: 【2022得捷创新设计大赛】二自由度云台机器人控制平台修订版