esp小车2

esp32智能车系列2(基础款)

首先在制作esp32智能车基础款前我们一定要先要确定项目的目标与目的,我对智能小车要求并不高,他只要能正常的进行全方位的行动。并且能进行一个实时的视频反馈就足够了。所以在小车硬件部分核心开发板上ESP32-CAM成为了首选,安信可(Ai-Thinker)公司开发的ESP32-CAM开发板集成了ESP32S处理器模组和200万像素摄像头模组,低功耗双核32位CPU,内置 520 KB SRAM,外置8MB PSRAM,支持WiFi和蓝牙连接。同时还支持影像识别等多种AI处理模式,便于未来功能的拓展。尽管许多人反映传输过来的视频质量稍显模糊,但考虑到这款开发板仅售20多块钱的价格,其实已经相当实惠了。即使在使用过程中因为烧录等原因出现损坏,也不会让人感到心疼。因此,这款开发板确实成为了学习互联网嵌入式开发入门的首选工具之一。

如果想要了解开发版的一个具体情况,大家可以点击下面链接进去查看。

https://docs.ai-thinker.com/esp32-cam

在选择完核心开发板之后,下一步是考虑如何为小车选择适当的动力源,即需要确定采用哪种类型的电机来为小车提供动力。基于过往的经验和了解,我首先锁定了每分100转的N20减速电机(N20电机有很多种减速比的子型号,我手边有的就是100转。大家也根据自己对小车速度快慢的要求选取其他不同减数比的电机)。这款电机转速适中,拥有出色的转矩,而且它只需要3.3V的电压即可驱动,这与ESP32-CAM开发板的供电电压吻合,可以省去额外的降压或升压模块。电机与板子共用一个电源。

通过两颗电机并列式地分别驱动小车斜对角的两个轮子,就可以赋予小车转向和前进两个方向的自由移动能力。

但如果想用Esp 32 cam上的io口控制减速电机还需要驱动芯片,所以我就又画了一个扩展板,扩展板上面结合了一块ams1117稳压芯片以及2路L9110电机驱动芯片(这款电机驱动芯片的控制操作相当简便,只需调整两个IO口的高低电平输出,即可轻松控制电机的运转。然而,它并不直接支持电机调速功能。)扩展板并且可以用排针直插的方式与esp32 cam连接。再板子给配一块3.7v 200mAh的锂电。

最后再进行车体设计,画一个车壳。我偏爱简约的设计风格,并热衷于将每个细节做到极致的压缩。因此,在设计这款小车时,我并未将车体设计得过于庞大,而是尽可能地贴合开发板、电机以及摄像头的尺寸,确保每个部分都达到最小的占用空间。整体上看,小车呈现出方方正正的外观,显得有点儿不大聪明。

那这一部分的设计都用到了Solidworks三维绘图软件。想了解如何学习进行此类的结构硬件设计,三维建模。可以点击下方链接。

小车的主体部分就已经完成了,其实这时候绝大部分人都开始进行上位机的制作或者说是软件方面的一个设计(绝大部分项目是做一个手机端的APP,上面有视频回传窗,虚拟摇杆或按钮控制小车移动。那当然我也利用APP inventor设计了一个APP用于控制小车,后文会聊到)。但我算是一个实体党,其实并不太喜欢那种虚拟摇杆儿的控制手感,所以我就又设计了一个小型的三通道遥控器。给硬件制作部分又加了一步。这个三通道的实体摇杆儿遥控器,mcu采用的是esp32C3,支持WiFi和蓝牙连接,并拥有很强大的功能拓展能力,之后又连接一个小的OLED显示屏显示一些基础的控制信息(采用iic通讯的显示屏)。

那现在基础款的全部硬件就已经全部设计完了。最后给大家看一下散件图以及成品图。

程序控制上设计了两个方案。一个是比较常见的用手机上的APP进行控制。另一个就是用之前硬件制作出来的遥控器进行控制。我们先来讲一下这个项目比较有特点的控制方式,用遥控器控制的一个设计思路。

小车自身的一个运动上的控制其实非常简单。只需要通过调整两个电机的2组一共4个io口的高低电平就可以调整小车运动或停止,一颗电机的两个管脚中,一个为高电平而另一个为低电平时,电机将开始转动。若这两个管脚的电平状态发生改变(即一个由高变低,另一个由低变高),电机的转动方向也会随之改变。若两个管脚的电平状态相同(均为高电平或低电平),则电机将停止转动。这样的话,两个电机同时正转小车前进,同时倒转小车后退。一个电机正转,一个反转就可以实现小车的左右转弯。

而软件上最关键的一部分在于我们如何将控制命令有效地发送给小车。这就涉及到了如何选用一个合适的通讯协议来确保遥控器与小车之间能够稳定、高效地取得联系。我在这里运用的是espnow通讯协议。这种协议使小车主板上的esp32Cam与实体遥控器上的esp32c3建立起Now低功耗双向通讯,从而精准控制小车的运动。而在小车的采集画面的实时传输方面,我采用了WiFi技术。通过构建一个局域网络,esp32cam的视频流能够发送至路由器,随后手机客户端进入这个局域网络,获取视频流,实现实时的视频观察。这样的设计不仅提升了传输效率,还确保了画面的清晰度和流畅性。当然这些程序也全部都是在arduino开发环境中完成的。

第二种方案使用APP控制。通讯模式采用的是WiFi下的UDR通讯,APP的一个开发与制作以及这种通讯技术的使用的详细内容我会放在Esp 32智能车系列3(Pro max版)中详细介绍。

北航实验学校中学部科技夏令营

为了让同学们能更好的感受科学魅力,拓展创新思维,培养独立思考和团队合作精神,北航实验学校中学部学生发展中心于7月7日至10日组织了2024年科技夏令营活动。来自“科技创新研究院”的20名同学参加本次活动。Engineering lab工作室在第三天的活动中为大家带来了”未来开空车的设计与制作为”主题的steam课程,并收到较好的反响。

本次课程自上午10时启动,直至下午3时圆满落幕,总计提供了5小时的高效学习时间。在这段时间里,同学们对太空车的复杂结构与精妙控制方式有了更为深入的理解与掌握。此次课程不仅加深了同学们对太空探索领域的兴趣与热爱,还激发了他们探索未知宇宙的热情。

同学们认真聆听

同学们现场制作太空车

结构学习

结构设计学习

在机器人的研发过程中,结构硬件设计无疑是奠定坚实基础的关键环节。要想在这一领域深入探索,扎实的理论知识与技能不可或缺。对于初学者而言,学习机械绘图是踏入结构设计大门的必经之路。尽管现代三维设计软件已逐渐淡化了传统手绘的界限,但坚实的手绘基础依然能为后续的数字绘图工作提供宝贵的助力,因为它培养了空间想象力和精准表达的能力。所以我还是真的非常推荐初学者在真正学习三维绘图之前去看一看机械制图这些书,从最常用最传统的标线,符号这些基础入手。

 

当完成基础机械绘图的学习后,选择合适的绘图软件便成为下一步的重要任务。市面上的绘图软件各具特色,如专长于复杂场景建模的3D Max,精准应用于平面机械工程设计的AutoCAD,以及我们今天要特别推荐的SolidWorks。我之所以强烈推荐SolidWorks,是因为它以其全面性在众多设计软件中脱颖而出。SolidWorks由达索系统公司(Dassault Systèmes)开发,这家巨头还拥有UG(现称为NX)和CATIA等重量级产品。与专注于航空器设计、拥有卓越曲面建模能力和丰富标准件的NX不同,SolidWorks更像是一个功能齐全、易于上手的“全能选手”。它不仅涵盖了从零件设计、装配模拟到运动仿真的全流程功能,还以其直观的界面和强大的兼容性赢得了广大工程师的喜爱。工程师们常常把NX比作为带着草莓奶油的蛋糕。而Solid works就是一块儿蛋糕胚,有蛋糕的味道,虽然不那么好吃,但也足以填饱肚子。

 

因此,对于致力于机器人硬件设计的朋友们来说,SolidWorks无疑是一个值得深入学习和掌握的强大工具。

 

接下来,我将从个人视角出发,带领大家深入探索SolidWorks的世界,并分享我的使用体验。首先,正如前文所述,SolidWorks以其直观易学的特点著称,其建模逻辑清晰,即将线条编织成面,再由面构建成立体,这样的过程让初学者也能迅速掌握,轻松绘制出基本的长方体、圆柱体或球体等形状。因此,在短时间内学会根据三视图绘制简单图形和零件并非难事。

 

然而,学习的道路从不平坦,当跨过基础门槛后,真正的挑战才刚刚开始。在SolidWorks的深入应用中,我们不再仅仅是图纸的“搬运工”,而是需要成为能够解决实际工程问题的设计师。这时,机械设计基础的学习变得至关重要,它涵盖了材料力学、机构学、机械设计原理等多个方面,这些知识将指导我们如何设计出既满足功能需求又考虑成本效益的零件。与此同时,我们还需要将设计思维与制造工艺紧密结合,深入理解加工工艺的局限性与成本考量,以确保设计方案的可行性。从最初的3D打印原型验证,到线切割、CNC加工等工艺的探索,当你在设计加工的零件逐渐增多,你的熟练程度也会逐渐增强,但刚开始的时候可能一个零件你需要修改几十次才能达到预期,在后来基本绘制完再修改一次就基本可以进入投产或使用了。当然这些都是基本零件的绘制与制作。

 

SolidWorks的强大之处远不止于此,之所以他被众多机械研究领域所使用是因为它大的装配体配合能力。你可以把所有的零件在这里面组装起来,使用多个配合让机械动起来。最基础的平面固定,重合,平行这些基本配合算是比较简单的,想让两个齿轮完美的结合起来,让同步带进行动力传输这部分的学习还是挺困难的,所以说SolidWorks是入门简单,熟练掌握困难的一个软件。

 

而且solid works这套软件内还包含了非常多的插件以及扩展功能。比如说力学simulation仿真。流体仿真,动画渲染。这仿真渲染软件虽然远不如那些市面上专门的软件好用,功能能没有那么齐全,但对于目前的学习来说也足够使用了。所以如果大家有时间的话,学一学它的扩展功能与插件还是非常有必要的。而且从我的一个感受来看,做了个那个works里面自带的simulation,应该算是众多应力分析里面手最快使用起来最方便的一款软件了。

 

之后再想说一下我们要如何去学习这款软件,很多人可能会选择去选择花钱报一个短期的课程,可能线上也可能线下,但我觉得没有这个必要。我先说一下我的一个个人情况,在我刚开始接触这个软件的时候,完全就是按照软件里面使用操作说明,一点点学习使用。并没有跟着课程进行学习。还有就是其实在b站上就有很多非常棒的一些课程,有三小时速通。也有近百小时从入门到精通详细的讲解。具体如何选择就看大家自己的需求了。如果让我具体推荐一些课的话,我比较推荐阿奇设计分享的十个小时的课程。讲的真的非常详细全面,里面的每一个小事例都很利于提高你的绘图技术,一边听课一边跟随他的步骤绘制,可以有很大的提升,后期我也是有跟着他的课程又温习巩固了