stm32的语音识别_基于stm32循迹避障语音控制金属探测蓝牙小车设计(原理图+pcb+源码+参考文档)...

功能描述及设计原理:

小车具有检测里程功能,在金属探测模式,槽型光耦会检测小车车轮的圈数,以此来计算小车行走的里程,并可以通过OLED屏幕显示出来。还可以显示小车的工作模式以及小车距离前方障碍物的距离。

》默认模式:默认为语音控制模式。通过语音控制。可以实现切换到避障模式、金属探测模式、语音控制模式、蓝牙遥控模式、循迹模式。

》避障模式:核心板通过超声波传感器检测前方距离,驱动小车电机进行前进、后退、左右转等操作,且在小车前进时检测前方距离,若小于20cm则自动右转以达到避障目的。

》金属探测模式:小车同时驱动舵机在扫描到金属时,根据金属探测模块探测到的位置,驱动舵机指针指向检测到金属方向,在金属探测模式,自动开启避障功能。

》语音控制模式:小车受控于语音识别模块。距离小车较近处,呼叫“小车”,待看到LD3320语音识别模块亮2个灯时,呼叫“前进”、“后退”、“左转”、“右转”、“停止”即可对小车进行控制,特别注意:语音控制受环境噪声影响比较大,所以在小车行驶过程中,由于小车电机的噪音,是语音控制识别较困难,反应不灵敏,故应近距离大声呼叫,或者重启小车电源,进行重新语音控制。

》蓝牙遥控模式:打开手机蓝牙,并打开控制小车的APP,手机连接小车的蓝牙,连接成功后,即可控制小车“前进”、“后退”、“左转”、“右转”、“停止”。并可控制小车速度。

》循迹模式:在循迹模式。需要有循迹的线路才可以,用黑色的胶带在地上粘出线路出来,然后将小车放在黑线的上面,小车就会沿黑色的线条进行行走。

8510df854ac6cd64ccb0bb0f42728a57.png609f4d58a0c7f57e2f6078cf27970cdb.png2e5494c1812055b6310293166bf98c8a.png

资料说明:

·  STM32程序采用C语言编写,通过Keil5软件编译,文件为工程源代码。

·  电路图为AD格式原理图PCB工程文件,用altiumDesigner打开。

温馨提示:

这个设计是有实物验证的,可以看下演示视频,电路图源文件和源程序都是验证成功可用的,可以说是学习单片机设计制作的好素材!希望这个分享对大家有所帮助!

资料内容包含截图如下,下载后请解压压缩包后打。

0d20703f527c5412a86bc555d95548d9.png041e26889a079ed7774a9ba09a3a593a.png

视频内容截图:

97b1767f771ae7fab876a25028d04933.png041e26889a079ed7774a9ba09a3a593a.png

附件内容截图:

08d26975c521d91c07e41a9b25708b77.png23391d618631d9e049cf4065e72705e2.gif

加入群聊

传感器技术交流2群:954070515

射频/无线交流2群:725064756

电机控制研发交流2群:619795552

电源开发交流2群:457910972

EDA/PCB设计交流2群:743876836

物联网技术交流2群:992318230

汽车电子交流1群:238034110

嵌入式交流1群:852018713

电路城官方交流群,期待你的加入。

451e2ddaccb2a8d22cdb9a4ed8f241cd.gif

点击“

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

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

相关文章

虚拟磁盘没有可用的合格服务器,VMware提示:没有更多空间可供虚拟磁盘***.vmdk使用 所引发的故障及处理...

Python - - - Pandas基本使用import pandas as pdimport numpy as npdef pandasWork1(): # DataFrame 初始化,与数据的获取one np.array([name0, name1, name2, name3, name4, name5])two list([[...Browser-sync安装与使用browser-sync启动命令Browsersync能让浏…

RedisTemplate常用集合使用说明-opsForHash(四)

基础配置介绍已经在前面的《RedisTemplate常用集合使用说明(一)》中已经介绍了,现在我们直接介绍opsForHash()方法的使用: 1、put(H key, HK hashKey, HV value) 新增hashMap值。 redisTemplate.opsForHash().put("hashValue","map1&q…

发明喂饭机器人_人类又懒出新高度,老美发明自动喂饭机器人,“君子”动嘴不动手...

近年来,各式各样的智能机器人层出不穷,多数都是为了方便人们的日常生活。近日,美国一机器人公司,为残障人士和重症疾病患者设计了一款智能喂饭机器人:Obi。这款机器人拥有全白的外观,它的机械臂可以将饭菜直…

RedisTemplate常用集合使用说明-opsForSet(五)

基础配置介绍已经在前面的《RedisTemplate常用集合使用说明(一)》中已经介绍了,现在我们直接介绍opsForSet()方法的使用: 1、add(K key, V… values) 向变量中批量添加值。 redisTemplate.opsForSet().add("setValue","A","…

中provide的用法_Vue中那些你不知道的作用域

作用域控制可以使用哪些变量以及在何处使用。它控制它们对应用程序的不同部分的“可见性”。了解 Vue 提供的作用域级别之间的差异会帮助我们编写更清晰的代码。下面是 vue 中4个级别的作用域:全局作用域子树作用域组件作用域实例作用域全局作用域Vue 应用程序中的全…

RedisTemplate常用集合使用说明-opsForZSet(六)

基础配置介绍已经在前面的《RedisTemplate常用集合使用说明(一)]》中已经介绍了,现在我们直接介绍opsForZSet()方法的使用: 1、add(K key, V value, double score) 添加元素到变量中同时指定元素的分值。 redisTemplate.opsForZSet().add("zSetV…

树叶贴画机器人_洪山广场举办“落叶节”,树叶树枝拼贴出冬日风景

楚天都市报11月30日讯(记者卢成汉 通讯员谢助全 彭雪琴)秋天飘落的树叶树枝,经过拼贴,变成了有趣的图案。29日,洪山广场举行的“落叶节”上,小学生们的树叶作品,拼贴成冬日的风景。当天,小学生们将在洪山广…

Java volatile关键字最全总结:原理剖析与实例讲解(简单易懂)

文章目录一、简介二、并发编程的3个基本概念1.原子性2.可见性3.有序性三、锁的互斥和可见性四、Java的内存模型JMM以及共享变量的可见性五、volatile变量的特性1.保证可见性,不保证原子性2.禁止指令重排六、volatile不适用的场景1.volatile不适合复合操作2.解决方法…

云服务器如何链接本地打印机_利用FileZilla搭建云服务器FTP服务端和本地客户端...

腾讯云服务器(服务端)本地计算机(客户端)1.首先在腾讯云上下载好FileZilla的对应服务端版本这里附上中文下载地址下载 - FileZilla中文网​www.filezilla.cn2.下载安装完成后打开默认下一步就好3.然后点击这个小头像进行账户设置首…

多线程之CAS与synchronized的比较

业务场景:需要实现一个支持并发的计数功能 1、计数功能的基本实现是: public class Increment{private int count 0;public void add(){ count; }}2、以上实现在并发环境下是不安全的,故修改方案1是加锁synchronized: publi…

6 日期字符串转日期_山西省导游协会关于发放电子导游证的通知 (生成日期为2020年5月28日2020年6月3日)...

各位会员、导游同仁们:山西省导游协会电子导游证(生成日期为:2020年5月28日-2020年6月3日)已制作完成,为保障电子导游证发放工作顺利进行,现将发放电子导游证有关事项通知如下:一、领取人员手机A&#xff3…

CAS和Synchronized知识

一. CAS 何为CAS。 CAS(Compare And Swap )是乐观锁的一种实现方式,是一种轻量级锁。JAVA1.5开始引入了CAS,JUC下很多工具类都是基于CAS。 CAS的实现方式 CAS有3个操作数,内存值V,旧的预期值A&#xff0…

自动设置图片的序号_编写学位论文时如何给表格和图片自动编号

引言最近和论文格式的检测系统斗智斗勇,可以说是摸清了系统的脾气并且能够把错误数控制在0。其中,论文正文的表格和图片自动编号的问题还是挺有意思的,特此记录一下。需求对于表格,系统要求表格题注处于表格*上方*,并按…

使用CAS代替synchronized

在开发当中需要经常用到synchronized保证代码线程安全,在竞争条件下会阻塞等待资源,如果允许竞争不到资源返回失败,就可以使用cas减少阻塞时间。先来看一个cas的单例模式。 public class NonBlock {private static volatile NonBlock nonBlo…

uniapp 获取图片的高度_uni-app获取元素高度等信息,并设置元素top信息

本文主要简介uni-app获取元素信息及设置信息等获取元素高度可查看官方文档mounted() {const query uni.createSelectorQuery().in(this);query.select(#editor).boundingClientRect(data > {console.log(data)}).exec();},这里的data用于获取这个元素大小及位置信息&#x…

关于java中线程yield()方法问题

关于java中线程yield()方法问题 问题一: 我知道yield是用来休眠当前线程,但我查看了资料,又说其不会释放锁,所以我就不解了,其明明会将cpu资源给其他线程,那它不释放锁,其他线程有怎么获取cpu资…

Lisp尺寸标注增加前后缀_求一CAD标注加前缀与后缀lisp

回答:1.计算所有线段总长度(加载后只需框选所有线段便可得出这些线段的总长度)(defun c:LL ()(setvar "cmdecho" 1)(setq en (ssget(list (0 . "spline,arc,line,ellipse,LWPOLYLINE"))))(setq i 0)(setq ll 0)(repeat (sslength en)(setq ss (…

beetl 页面标签_05.Beetl标签函数以及定界符、占位符介绍---《Beetl视频课程》

标签函数 layout所谓标签函数,即允许处理模板文件里的一块内容,功能等于同jsp tag。如Beetl内置的layout标签index.htmllayout("/inc/layout.html",{title:主题}){%>Hello,this is main partlayout.htmltitle is ${title}body content ${la…

hql实例 jpa_SpringBoot学习笔记九:Spring Data Jpa的使用

Spring Data Jpa 简介JPAJPA(Java Persistence API)意即Java持久化API,是Sun官方在JDK5.0后提出的Java持久化规范(JSR 338,这些接口所在包为javax.persistence,详细内容可参考https://github.com/javaee/jpa-spec)JPA的出现主要是为了简化持久…

Objects.requireNonNull 方法说明

在写代码的时候,Idea经常会提醒我们可以使用这个方法来进行参数非空检查, 这个方法的源码也非常简单, 如下所示: /*** Checks that the specified object reference is not {code null}. This* method is designed primarily for doing parameter validation in methods* and …