首页-达尔闻    全部    【项目分享】 ESP32小车软硬件实战

【项目分享】 ESP32小车软硬件实战

本文分享的这款ESP32小车,即使没有充足的编程或电子经验的人也可以游刃有余。这款智能车开源高质量的API接口,面向对象的编程设计,即使是新手也能自己做出来。
收藏
  • 开源资料下载:点击下载


    新手实现一个简易但功能强大的智能车有多难?其实很简单。

    640

    本文分享的这款ESP32小车,即使没有充足的编程或电子经验的人也可以游刃有余。这款智能车开源高质量的API接口,面向对象的编程设计,即使是新手也能自己做出来。快速看下它的功能有哪些:

    使用带有Wi-Fi和蓝牙功能的ESP32微控制器;

    四电机差动驱动(成对控制);

    通过GY-50陀螺仪来行驶/转向;

    两个定向里程表/编码器读取行进的距离、速度及方向;

    TTL电平转换器兼容5V元件和传感器;

    使用Smartcar库并在0秒内启动运行;

     

    小车所需硬件:ESP32 开发板、电机驱动板Dual TB6612FNG、4个可编程有刷电机、2块TTL电平转换器(5V—3.3V) 、GY-50 陀螺仪模块、可调降压变压器、VL45L0x激光测距仪。

    小车上用到的各类模块购买容易,整车成本约400元。车外壳底盘是采用PCB板,都已开源。
    选择ESP32的原因:ESP32小车其实已经是第二代,第一代是以Arduino为核心。为了让小车具有更高的灵活操纵性,采用ESP32作为其智能车的新“大脑”,通过Wi-Fi和蓝牙的控制为小车增添了更多的鲁棒性和灵活性。
    与ESP8266不同,功能强大且可Wi-Fi连接的ESP32具有蓝牙功能和更多的GPIO引脚。虽然ESP32和ArduinoAVR微控制器在工作方式上存在根本差异,导致不能完全应用Arduino API接口。但由于这些差异影响不大,而且Smartcar库与平台无关,因此几乎不需要更改软件即可用库对ESP32进行编译。
    但是ESP32还是存在一个问题,只能工作在3.3V下,这意味着许多采用5V电平的廉价传感器可能无法正常工作,甚至会损坏主控。为了能够使用这些5V的元件,必须使用逻辑电平转换器。 TTL电平不兼容还意味着,智能车上最常使用的L293D电机控制器不再适用于此项目,因此选用TB6612FNG电机驱动器模块替换它。
    关于电机市场上的选择有很多。但是一旦引入了对里程表和可编程的需求后,可供选择的电机数量就减少许多了。引入可编程电机减少了机械结构的复杂性以及需要购买元件的种类。如下图所示,这些电机配有一些易于安装的支架以及方向编码器,意味着我不仅能够知道每个车轮移动了多少,而且向哪个方向移动了。
    发动机板上的电机图
    “特殊”的安装方式:小车底部称为“发动机板”,包括用于连接来自电机的电线、电机驱动板以及要安装的四个电机,选择堆叠式设计安装。

    小车上面的称为“模块板”,用于安装电池、微控制器、TTL电平转换器、陀螺仪和各种母排针等。这种设计选择将最大程度地减小了每个PCB的尺寸,因为模块板不如底部大。 此外,与将所有元件都局限在单个大型PCB上的方案相比,此方案不会在智能车顶部上有大量元器件裸露。

    模块板顶部图 

    模块板底部图

    编译平台:Smartcar shield Arduino 库是一个高级API,能够通过寥寥数行的代码轻松执行想要的动作。该库隐藏了具体执行的细节和对底层硬件操作,将各种组件(即电机和各种传感器)作为对象来处理,即使初学者都可以轻松控制智能车实现各种功能。那对于想刨根问底的同学,该库的API文档详细解释了API的各种操作,可以在开源文件:/examples中找到有关如何使用该库的示例。
     
    那么这个库到底能干嘛呢?这个全方位多功能的库可以适用于多种不同类型的电机来进行转向或者减速刹车。它可以通过使两侧的车轮以不同的速度旋转来转向车辆,也可以使用伺服电动机来转向,或者是使用有刷直流电机进行转向。此外,除了使用默认有刷直流电动机外,我们还可以调库对电子调速器(ESC)来进行车的驱动减速。
     
     

    如此全面开源的实战经验分享可是不可多得宝藏,即使不上手看看经验思路也是对于我们成长的一种帮助,快快收藏起来吧!

Control Render Error!ControlType:productSlideBind,StyleName:Style1,ColorName:Item0,Message:InitError, ControlType:productSlideBind Error:未将对象引用设置到对象的实例。