ESP32CAM物联网教学03

ESP32CAM物联网教学03

物联网小车

小智突发奇想:要是我在点灯物联APP中多增加几个按钮,控制小车的行驶方向,不就可以做成遥控小车了吗?

  • 点灯物联控制小车的行驶方向

我们可以重新编辑点灯物联APP中的设备控件界面,如图所示,在界面中增加五个按钮,分别控制着小车的前进、左转、停止、右转、后退,这样是不是能变成遥控小车呢?

(五个方向按钮的键名分别命名为:btn-ff、btn-ll、btn-ss、btn-rr、btn-bb,这些键名在后面的米思齐编程中需要逐一用到; 按钮的类型为按键按钮)

  • 拼装物联网遥控小车

遥控小车可以选购现成的小车底座。

当然也可以选用乐高积木,然后自己根据想象进行自由的拼装。下面这些是拼装小车所必须的零部件,可以一一从网上购买(购买这些大约需要100元左右,比起购买现成的小车底座要贵了不少,但是这种自由拼装的方式,可操作性强一些,而且特别适合小孩自己玩)

    经过一番折腾,你就能创造出专属于自己的一辆小车了,这两小车也是全网唯一的一辆,拼装完成后,成就感爆棚。特别是到了我们课程的最后,我们会不断地给这两小车增加一些功能,相信这是你拥有的最靓的、最智能的一辆小车了。

  • 小车的电路连接

首先,我们通过查阅淘宝上面的商品介绍信息,可以了解到L298n电机驱动板的引脚配置信息,可以看出这块点击驱动板可以同时驱动A、B两个电机,由四个逻辑端口进行驱动。ESP32Cam左侧的端口本来是用于TF存储卡的,因为我们没有用到TF存储卡,所以这几个端口是可以用来作为输入或输出端口使用的。

    我们利用杜邦线对小车的各个设备进行连接,接线图如下,2节1860电池差不多可以提供8—9V的电源电压,直接接入L298n,给驱动板和电机供电;这块驱动板自带5V调压芯片,可以输出5V的电源给ESP32Cam使用;ESP32Cam的12、13、15、14这四个端口,分别连接点击驱动板的逻辑控制端口。

  • 编写ESP32Cam的小车控制程序

ESP32Cam的控制程序还是用米思齐的积木块编写。

我们在前面的点灯程序基础上,复制了五个按键积木组合,每一个按键积木的组件名称和对应的键名各不相同:组件名称分别用Button1——Button5一一区分。所对应的键名,和前面的手机APP中命名的一致,btn-ff表示小车前进forward;btn-bb表示小车后退back;btn-ss表示小车停止stop;btn-ll表示小车左转left;btn-rr表示小车右转right。

左右两个电机分别由两组逻辑端口控制,左边的电机由ESP32Cam的12、13号端口控制,右边的电机由ESP32Cam的15、14号端口控制。

L298n采用的是H桥放大的工作原理,当12号端口为高,13号端口为低时,对应的左边电机的两个输出端口,一个为高电平,一个为低电平,两个端口的不同电势差,在电机内部形成了正向电流,电机正向转动,小车就前进了。相反,当12号端口为低,13号端口为高时,两个端口的不同电势差正好相反,在电机内部形成了反向电流,电机反向转动,小车就后退了。当12号和13号端口同时为低时(或同时为高),对应的两个端口则同时为低电平(或同时为高电平),两个端口之间没有电势差,电流也无法流过电机内部,电机停止转动,小车就停止了。

根据电机驱动原理,我们简化了按键组件的驱动程序,当用户在手机APP中按动不同方向按键使,让ESP32Cam控制着左右电机的转动方向,让小车动起来。当左右两个电机同时正向转动是,小车就前进;同时反向转动时,小车就倒退;左边正转右边反转时,就是右转;左边反转右边正转时,就是左转了。

温馨提醒:

因为这个电机的转速还是挺高的,所以我们选用点触驱动的方法,即当用户按动一次前进按钮时,我们让电机转动了1秒就停下来,如果需要继续前进,则需要继续按一次按动前进按钮。

因为电机的速度挺高的,如果不是采用这种点触控制,而是采用连续控制的话(比如按动前进按钮,小车就一直前进,在接收到用户的下一个操作命令之前,一直处于前进的状态),这样小车会处于失控的状态的,遥控的效果不好。当然,如果电机的速度慢,则可以使用连续控制了。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/39162.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自定义控件之动画篇(六)——联合动画的代码及xml实现

在Android中,联合动画(即组合多种类型的动画)可以通过编写Java/Kotlin代码或XML资源文件来实现。这里我们将分别展示如何通过这两种方式来实现一个简单的自定义控件动画,该动画将包含平移和缩放效果。 1. XML 资源文件实现 首先…

AI学习指南机器学习篇-梯度提升树模型应用与Python实践

AI学习指南机器学习篇-梯度提升树模型应用与Python实践 机器学习领域中的梯度提升树(Gradient Boosting Tree)模型是一种非常强大且广泛应用的模型,它在各种数据类型和问题类型上都表现出色。在本篇博客中,我们将介绍如何使用Pyt…

开关电源中强制连续FCCM模式与轻载高效PSM,PFM模式优缺点对比笔记

文章目录 前言一、连续FCCM模式优点:缺点: 二,轻载高效PSM,PFM优点:缺点: 总结 前言 今天我们来学习下开关电源中,强制连续FCCM模式与轻载高效PSM,PFM模式优缺点对比 一、连续FCCM模式 优点: …

mac中如何恢复因为破解脚本导致的IDEA无法启动的问题

问题 为了在mac中安装免费的2024版idea,导致下载了一个脚本,使用这个脚本后,但是发现idea还没有破解,相反导致idea无法启动,每次点击,都会弹出“cannot start IDE…” 问题排查 在访达中点击mac的应用程…

docker -run hello-world超时

主要原因就是尝试拉取库的时候没有从阿里云镜像里拉&#xff0c;所以设置一下就好了 这里使用的是ubuntu系统&#xff08;命令行下逐行敲就行了&#xff09; sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json <<-EOF {"registry-mirrors": [&quo…

什么是生成式人工智能

什么是生成式人工智能 生成式人工智能生成式人工智能的特点生成式人工智能的工作原理生成式人工智能的类型生成式人工智能面临的挑战数据要求训练复杂性控制输出道德问题监管障碍 生成式人工智能 生成式人工智能是指旨在生成书面文本、音频、图像或视频形式的新内容的人工智能…

Adobe Acrobat添加时间戳服务器

文章目录 前言一、Adobe Acrobat添加时间戳服务器1.打开Adobe Acrobat软件2.点击【菜单】→ 【首选项】3.点击【安全性】→【更多】4.点击【新建】5.输入【名称】→【服务器URL】 前言 一、Adobe Acrobat添加时间戳服务器 1.打开Adobe Acrobat软件 2.点击【菜单】→ 【首选项…

模拟退火算法1——简介

模拟退火算法来源于固体退火原理&#xff0c;将固体加温至充分高&#xff0c;再让其徐徐冷却&#xff0c;加温时&#xff0c;固体内部粒子随温升变为无序状&#xff0c;内能增大&#xff0c;而徐徐冷却时粒子渐趋有序&#xff0c;在每个温度都达到平衡态&#xff0c;最后在常温…

[C++][设计模式][访问器]详细讲解

目录 1.动机2.模式定义3.要点总结4.代码感受1.代码一2.代码二 1.动机 在软件构件过程中&#xff0c;由于需求的变化&#xff0c;某些类层次结构中常常需要增加新的行为(方法)&#xff0c;如果直接在基类中做这样的更改&#xff0c; 将会给子类带来很繁重的变更负担&#xff0c…

加密基本知识:密钥、签名、证书

一、密码(clpher) 是一种用于加密或者解密的算法 密码学中的密码&#xff08;cipher&#xff09;和我们日常生活中所说的密码不太一样&#xff0c;计算机术语『密码 cipher』是一种用于加密或者解密的算法&#xff0c;而我们日常所使用的『密码 password』是一种口令&#xff…

数据恢复篇:5 款最佳 Mac 数据恢复软件

说到保护我们的数字生活&#xff0c;数据恢复软件的重要性怎么强调都不为过。无论您是意外删除了假期照片的普通用户&#xff0c;还是面临硬盘损坏的专业人士&#xff0c;随之而来的恐慌都是普遍存在的。幸运的是&#xff0c;数据恢复工具可以缓解这些压力。在Mac用户可用的众多…

搜维尔科技:使用Manus VR手套和ART光学追踪功能实现虚拟场景工业仿真操作

&#xff1a;使用Manus VR手套和ART光学追踪功能实现虚拟场景工业仿真操作 搜维尔科技&#xff1a;使用Manus VR手套和ART光学追踪功能实现虚拟场景工业仿真操作

Android C++系列:JNI中的线程操作

Java中创建线程三种方式: 继承Thread类创建线程类;通过Runnable接口创建线程类;通过Callable和Future创建线程。Native 中支持的线程标准是 POSIX 线程,它定义了一套创建和操作线程的 API 。 我们可以在 Native 代码中使用 POSIX 线程,就相当于使用一个库一样,首先需要包…

android中获取视频的预览图

1.将视频导入raw文件中&#xff08;转为bitmap图像&#xff09; MediaMetadataRetriever 类主要用于从本地文件或者网络上的文件获取元数据信息&#xff0c;例如视频的帧图像、持续时间等&#xff0c;并不支持直接从网络地址获取视频帧 MediaMetadataRetriever retriever new…

zabbix小白入门:从SNMP配置到图形展示——以IBM服务器为例

作者 乐维社区&#xff08;forum.lwops.cn&#xff09;许远 在运维实践中&#xff0c;Zabbix作为一款强大的开源监控工具&#xff0c;被广泛应用于服务器、网络设备和应用程序的监控&#xff0c;成为保障业务连续性和高效运行的关键。然而&#xff0c;对于Zabbix的初学者来说&a…

FactoryBean 原理简介

FactoryBean 首先是一个工厂类&#xff0c;它可以生产指定的Bean&#xff0c;特殊之处在于它可以向Spring容器中注册两个Bean&#xff0c;一个是它本身&#xff0c;一个是FactoryBean.getObject()方法返回值所代表的Bean。通过实现 FactoryBean 接口&#xff0c;你可以控制某个…

线程和进程的区别及应用场景

线程和进程的区别及应用场景 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01;今天我们将深入探讨计算机中两个重要的概念&#xff1a;线程和进程。这两者在操作系…

人工智能--循环神经网络

个人主页&#xff1a;欢迎来到 Papicatch的博客 课设专栏 &#xff1a;学生成绩管理系统 专业知识专栏&#xff1a; 专业知识 文章目录 &#x1f349;引言 &#x1f349;概述 &#x1f348;基本概念 &#x1f34d;定义 &#x1f34d;结构 &#x1f34c;输入层 &#…

行业模板|DataEase旅游行业大屏模板推荐

DataEase开源数据可视化分析工具于2022年6月发布模板市场&#xff08;https://templates-de.fit2cloud.com&#xff09;&#xff0c;并于2024年1月新增适用于DataEase v2版本的模板分类。模板市场旨在为DataEase用户提供专业、美观、拿来即用的大屏模板&#xff0c;方便用户根据…

探索编程世界的奇妙之旅

在这个数字化时代&#xff0c;编程&#xff0c;这一曾经看似高深莫测的技能&#xff0c;正逐渐渗透到我们生活的方方面面。从智能手机上的应用程序&#xff0c;到自动驾驶的汽车&#xff0c;再到支撑互联网运行的庞大服务器集群&#xff0c;背后都离不开编程的力量。今天&#…