基于esp32的马路交通系统 - 嘉立创EDA开源硬件平台

编辑器版本 ×
标准版 Standard

1、简单易用,可快速上手

2、流畅支持300个器件或1000个焊盘以下的设计规模

3、支持简单的电路仿真

4、面向学生、老师、创客

专业版 professional

1、全新的交互和界面

2、流畅支持超过3w器件或10w焊盘的设计规模,支持面板和外壳设计

3、更严谨的设计约束,更规范的流程

4、面向企业、更专业的用户

标准版 基于esp32的马路交通系统

简介:基于esp32单片机,使用paj7620U2手势识别模块,实现基本交通灯的功能。

开源协议: Public Domain

(未经作者授权,禁止转载)

创建时间: 2022-06-14 16:00:48
更新时间: 2023-05-12 13:32:59
描述

目录
说在前面

  1. 题目
  2. 功能
  3. 材料
  4. ESP32硬件连接方式
  5. mixly+Arduino+ESP32开发环境的搭建
  6. mixly 引脚的使用
  7. mixly 的使用
  8. mixly OLED模块的使用
  9. mixly paj7620u2模块的使用
  10. arduino中serial函数的使用
  11. 场景搭建
  12. 测试结果

说在前面

  • 本次项目,其实是为了完成学校比赛而做的,所写程序和写的地方可能有一些不细致,还请大家指正批评
  • 讲的地方难免不细致,大家看不懂的地方可以看代码来理解

1.题目

image.png

2.功能

  • 模拟的场景为:一条交通道路上,设有人行横道和机动车道、以及相应的交通信号灯。
  • 车道和人行道的信号灯会交替亮灭,以此指示车辆与行人的通行。
  • OLED上会显示通行或等待时长以及人、车的图标,方便车辆与行人通过观察图标是否闪烁来判断是否应该通过(闪烁代表可以通过)。
  • 有关人员可以做出手势来控制信号灯的时间变化,包括增加或减少5s的时间以及让红绿灯全红或者恢复正常来模拟紧急情况下的预处理。
  • 与此同时还可以通过串口与电脑进行通讯

3.材料

  • 安信可公司的ESP32-C3-13U开发板
    image.png
    image.png
    这个板子只需要20块钱,淘宝上就可以买到,性价比不错,因为校赛要求,不得不选ESP32来使用。但是如果不使用蓝牙和wifi的话,建议还是选用乐鑫出品的esp32开发板。安信可这块板存在一些问题。
  • OLED模块
  • paj7620u2模块
  • 杜邦线
  • LED小灯(红2 绿2 黄*1)
  • 泡沫板
    我们当时直接从外面捡的……

4.ESP32硬件连接方式

因为第一次用,还不太会,就用画图软件来搞了……
未标题-1.jpg

5.mixly+arduino+ESP32开发环境的搭建

世面上有几个主流的ESP32编译环境,分别是

  • ESP32-idf(乐鑫自己出的IDE)
  • microPython
  • arduino
  • vscode-platformIO(其实就是arduino)

网上基本都有部分教程吧,我选的是arduino编译环境,说说其他几个吧,前面两个没有用过,但似乎配置环境太麻烦了,就弃用了;vscode嘛,不用说的,可以上网找教程看看;配置arduino的话,可以看B站的esp32教程,主要是需要视频里面的文件,按照视频里面配置就行了。你如果用过vscode-platformIO和arduino的话,会发现arduino的ino文件代码相当简洁,头文件那些都给放到运行文件中去了。
至于为什么要使用mixly?mixly其实是一个图形化编程软件,内部可以显示代码,选择它是因为我们一开始用esp32用点懵逼,不知道从哪开始写代码,但是mixly就让写代码直观很多。但是mixly只是一个辅助工具,帮助你写一些简单的代码,一些需要自己配置的东西(比如定时器)还是要自己写。
在另存为选项中,你可以把mixly的文件另存为arduino文件,直接用它的代码,因为mixly界面显示的代码只能看,无法复制。
mixly的具体使用方法可以上网查。
还有一个提示,因为arduino最初是为arduino开发板打造的,esp32这类国产板子就需要下载一些库文件,一般程序无法运行时编译时就会报错,你可以查看错误消息看看有没有缺失什么头文件,有的话去arduino的库选项搜索下载就行。
想要在mixly里面烧录程序的话,我推荐一种方法,去mixly源文件,会发现有个arduino文件夹,其实里面就是装了一个arduino,你不想重新配置的话,直接把你以前那个arduino的文件全部替换进去就行。
非常不推荐使用mixly直接烧程序,第一是非常慢,毕竟是模块化之后的东西,第二是,其实它烧录程序本来就用的是内置的arduino,不如导出ino文件后直接用arduino烧录,会快很多。

6.mixly 引脚的使用

7.mixly 的使用

8.mixly OLED模块的使用

9.mixly paj7620u2模块的使用

这几个模块的话,在mixly里面摸索摸索就会了,上网查查怎么使用也可以。
值得一提的是,paj7620u2模块在mixly库的maker-arduino里面,需要先导入库才能使用。

10.arduino中serial函数的使用

之所以把这个拿出来单独谈,是因为这个安信可的板子的串口功能,真的很拉。
当时我们尝试使两个单片机通过串口通讯时,发现这个板子有个神奇的功能,每当它的RX与TX连接(TX没问题,但是RX没用),这板子就不动了。当时我们发现这个问题,试图使用引脚映射(或许你看到过hardwareSerial,那就是引脚映射相关的内容),当然也没用,不过这个其实是我们的问题,引脚映射只能用在ESP32上面,ESP32-C3的板子功能还是太少了,这一点你可以从开发板文档上面了解到。

11.场景搭建

应老师要求,我们搭了一个非常简陋的马路模型,由废弃泡沫和泡沫板构成……ESP32的板子就藏在板子下面,如下图
图片1.png
我们还跟老师那边师兄对接搞了一个手势控制软体机器人运动,视频在下面
2.png
还向实验室研究生学长寻求了会帮助,搞了个手势控制仿真无人机。
3.png
其实除了第一个是完完全全我们自己写的,软体机器人和无人机其实都是通过串口向电脑发送数据,后面的执行程序就不是我们写的了。需要仿真无人机程序可以通过邮箱找我。

12.测试结果

如视频

感谢王专家对此次比赛做出的贡献

设计图
原理图
1 /
PCB
1 /
未生成预览图,请在编辑器重新保存一次
侵权投诉
相关工程
换一批
加载中...
添加到专辑 ×

加载中...

温馨提示 ×

是否需要添加此工程到专辑?

温馨提示
动态内容涉嫌违规
内容:
  • 153 6159 2675

服务时间

周一至周五 9:00~18:00
  • 技术支持

support
  • 开源平台公众号

MP