×

ESP32操纵杆手控制器ESP NOW开源

消耗积分:0 | 格式:zip | 大小:0.33 MB | 2022-08-15

小峰

分享资料个

电路板图如下:
poYBAGL5kRKAGF65AAG2VKMOl8c949.png
pYYBAGL5kRWAOan1AACDkBJAkIk153.png
poYBAGL5kReAT-lzAABPuVbg0jE181.png

描述

ESP32 操纵杆手控制器 ESP-NOW

 

我设计了一个 ESP32 操纵杆手控制器,无需使用应用程序即可无线控制 ESP32 Mecanum Wheels ( ESP32-Mecanum-Wheels-Robot-and-Bluetooth-Gamepad ) 机器人。这款手控制器以蝙蝠为主题,配有两个拇指操纵杆和 4 个按钮。查看视频以了解其工作原理...

 

这个怎么运作?

 

 

如视频所示,我使用操纵杆无线控制麦克纳姆轮机器人。在这里,没有使用射频或Wi-Fi进行通信,通过MAC地址提供通信,更简单,更安全。有一种方法可以促进这种通信 ESP-NOW... 我们可以与两个 ESP32 板进行通信,单向和双向。

 

印刷电路板

 

pYYBAGL5kRmAVoGFAABu7qKYJLg327.png

 

操纵杆手控制器由许多制造商制造,通常使用 Arduino Nano 板和 nRF24L01 或蓝牙选项进行通信。

 

在设计 PCB 时,我更喜欢蝙蝠主题以具有独特的设计。我也更喜欢 ESP32 开发板,我们很多人都听说过,但使用起来有些担心。事实上,ESP32 板在通信选项方面比其他板更高效。因为 ESP32 板允许蓝牙、Wi-Fi、MAC 地址和更多无线通信方式。我也认为与其他电路板相比,针脚的数量就足够了。最后,ESP32 开发板非常易于使用……

 

感谢 PCBWay 对订购印刷电路板的支持和赞助。对于高质量的PCB,您可以选择PCBWay。如果您想轻松获得此印刷电路板,您可以下载 PCB Gerber 文件或直接订购。

 

组件和焊接

 

poYBAGL5kRuAIAo-AAB48N4QS2o735.png

pYYBAGL5kR2AGLUzAAB6zvAQ7GM492.png

poYBAGL5kR-AWBGJAABkwuAwgfs137.png

 

如果您查看材料清单 (BOM),则首选易于焊接的组件,因此您可以按照电路图指示符轻松组装印刷电路板。

 

印刷电路板只需要很少的组件:

  • 1x 二极管 SB560
  • 3x 电容 100uf 25V
  • 2x 拇指操纵杆
  • 1x 稳压器 7805CV
  • 2x LED 3mm
  • 2x 电阻 330R
  • 6x 电阻 4.7K
  • 1x ESP32 开发套件 V1
  • 2x 母头 1x4 2.54
  • 1x 连接器 1x2
  • 4x 瞬时开关 12mm

poYBAGL5kSKARnVGAABmQIqiBeY368.png

poYBAGL5kSSABJ-RAABF5hFw37w007.png

 

面包板电路

 

对于那些想在订购印刷电路板之前使用 ESP-NOW 体验从 ESP32 到 ESP32 通信的人,我构建了两个面包板电路作为发送器和接收器。您可以按照共享的电路图构建电路并测试源代码。

 

pYYBAGL5kSaAUJhTAACcJ0apgUc217.png

pYYBAGL5kSiAYtggAACe_s7ajqw975.png

poYBAGL5kSqAVP1XAAC3vaahw-Q632.png

pYYBAGL5kSyAfAOxAACu9o3FxyE722.png

 

获取板子 MAC 地址

 

poYBAGL5kS-AZB_xAABs3FfFdEA323.png

poYBAGL5kTGADky2AAB14qBoIFs719.png

 

要通过 ESP-NOW 进行通信,您需要知道 ESP32 接收器的 MAC 地址。要获取主板的 MAC 地址,请上传以下共享代码。这就是您知道要将数据发送到哪个设备的方式。每个 ESP32 都有一个唯一的 MAC 地址,用于使用 ESP-NOW 发送数据。

 

上传代码后,以 115200 的波特率打开串口监视器并按下 ESP32 RST/EN 按钮。应打印 MAC 地址。保存您的主板 MAC 地址,因为您需要将数据发送到正确的主板。如果要在两块板之间建立双向通信,还需要第二块板的 MAC 地址。

 

单向点对点通信

 

pYYBAGL5kTOAeKneAABn2j3X2hk918.png

 

让我们检查为面包板电路创建的按钮到电机源代码,以简单解释源代码和 ESP-NOW 的操作。连接按钮的电路使用“发送器”代码,而连接电机的电路使用“接收器”代码。

 

一旦您了解了这些简单代码的工作原理,您就可以更轻松地编辑为操纵杆手控制器和 L293D 电机板创建的源代码。

 

打开 Sender-ESP32-Button 的共享源代码

 

poYBAGL5kTaAdqGuAAB1o8ePAY8692.png

pYYBAGL5kTiAFfUoAABxW9s0Ecg701.png

 

  • “按钮”连接到的 GPIO 引脚在代码中定义。然后定义一个变量来读取“按钮状态”。
  • 接下来,输入接收板的 MAC 地址。
  • 然后,创建一个包含我们要发送的数据类型的结构。将此结构称为“struct_message”,它包含一个整数变量类型(int buttonValue)。您可以更改它以发送其他类型的变量(如 char、float、bool)。
  • 当按下按钮时,读取按钮的值并确定按钮状态。按钮状态与消息结构一起作为按钮值发送。

 

打开 Receiver-ESP32-Motor 的共享源代码

 

poYBAGL5kTqAITWVAABywQs80Jk753.png

pYYBAGL5kTyAVItgAABxLjcvnZY773.png

pYYBAGL5kT6AF1q3AAB_av-3JmE822.png

poYBAGL5kUGAHbiRAACBO-K9N50136.png

 

  • 定义“电机”连接的 GPIO 引脚
  • 定义要从发送方接收的消息结构。必须匹配发件人结构。
  • 为电机状态定义一个变量。
  • 从发送器读取的按钮值写入电机状态变量,电机状态变量控制电机的引脚。

 

上传发送方和接收方源代码。然后测试它,看看它是如何工作的。如果一切顺利,您可以编辑和使用为操纵杆手控制器和 L293D 电机驱动板创建和共享的源代码。

 

L293D 电机驱动板

 

poYBAGL5kUOAafIHAACYKsC6lfA207.png

 

 

 

在本文中,您可以找到麦克纳姆轮机器人的安装以及 L293D 电机驱动板的构建和使用。

如果您有任何想法,请在评论部分告诉他们。关注以了解下一个项目。

 

 

 

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !