一种基于微控制器的智能语音玩具车的制作方法

文档序号:19070246发布日期:2019-11-08 20:13阅读:345来源:国知局
一种基于微控制器的智能语音玩具车的制作方法

本发明涉及玩具领域,尤其是指使用用户语音,在普通微控制器上利用神经网络算法进行车辆的各项运动操作的智能玩具车。



背景技术:

目前市面上常见的玩具车(带电机且能灵活控制)都是以遥控的操控形式存在,该类操控形式除了玩具车外需要使用额外的遥控器,在制作上增加了产品的成本,遥控器需要电源,在用户使用上增加了成本,玩具车一般应用于小孩群体,对于婴幼儿而言,遥控器的操作比较复杂,很难灵活控制玩具车,因而可能降低小孩的兴趣。智能语音玩具车是指一种能够通过用户语音来控制车辆进行各项运动操作的玩具车,该类玩具车只需要用户说出简单的语音指令,小车即会按照指定的操作进行运动,对于刚会说话的小孩而言,操控更加简单,还能利用小孩与玩具车的交互,提升小孩说话的积极性,同时,去掉遥控器的语音玩具车在成本上也能得到降低。

现阶段智能语音玩具车分为两类:一种是使用高性能处理器作为语音识别及控制器,该类玩具车语音识别率高、反映迅速,但是成本高,不利于普及;另一种是使用低端微控制器,该类玩具车使用传统语音识别算法,通用性差,受环境影响大,或者如实用新型(cn208582973u)《一种智能语音玩具》使用专业的集成语音芯片ci1006,实现简单,但是成本较高。



技术实现要素:

本发明设计了一种基于微控制器的智能语音玩具车,该玩具车采用低端微控制器芯片,例如stm32f103rc作为处理单元,语音采集模块获取用户语音并转换为特定编码,经微控制器tensorflowlite框架处理识别后,根据识别结果调整与h桥连接的微控制器gpio口电平以及pwm输出,从而实现直流电机的正反转以及调速功能。

一种基于微控制器的智能语音玩具车包括以下几个部分:

1.玩具车前后4轮,后2轮与玩具车外壳固定,相对位置不可改变;玩具车前2轮与玩具车外壳通过一个支点灵活固定,可通过该支点在固定范围内旋转来改变车辆的运动方向。

2.玩具车采用电池作为电源,通过电源模块的升降压电路给微控制器、语音采集模块、直流电机等供电;

3.语音采集模块获取用户(环境)语音数据,经过编解码技术处理后传输给微控制器;

4.微控制器负责识别语音采集模块传输过来的语音数据,并根据识别结果调整gpio口电平以及pwm输出;

5.h桥是直流电机的驱动模块,负责调节直流电机的正反转以及转速,具体原理如图2所示,以左侧h桥01为例:当en1为高电平、en2为低电平、pwm1连接且pwm2断开时,out1输出高电平,out2为低电平,直流电机01正转,此时可通过调节pwm1的占空比来调整电机的转速;当en1为低电平、en2为高电平、pwm1断开且pwm2连接时,out1输出低电平,out2为高电平,直流电机01反转,此时可通过调节pwm2的占空比来调整电机的转速;当en1为低电平、en2为低电平、pwm1连接且pwm2连接时,out01、out02均输出低电平,直流电机01停止运转。

6.玩具车采用双电机驱动,驱动运行情况分为以下六种:

情况1、直流电机01、直流电机02以相同的占空比正向驱动时,玩具车向前直行;

情况2、直流电机01、直流电机02以相同的占空比反向驱动时,玩具车向后直行;

情况3、直流电机01以大于直流电机02的占空比且两个电机均正向驱动时,玩具车向前右转,且右转的幅度与占空比差值成正比,直流电机02占空比为0或者该电机未使能时,右转幅度最大;

情况4、直流电机01以小于直流电机02的占空比且两个电机均正向驱动时,玩具车向前左转,且右转的幅度与占空比差值成正比,直流电机01占空比为0或者该电机未使能时,左转幅度最大;

情况5、直流电机01以大于直流电机02的占空比且两个电机均反向驱动时,玩具车向后右转,且右转的幅度与占空比差值成正比,直流电机02占空比为0或者该电机未使能时,右转幅度最大;

情况6、直流电机01以小于直流电机02的占空比且两个电机均反向驱动时,玩具车向后左转,且右转的幅度与占空比差值成正比,直流电机01占空比为0或者该电机未使能时,左转幅度最大;

驱动设计时,排除了两个电机相互之间反向运转的情况,避免了该情况带来的复杂现象。

一种基于微控制器的智能语音玩具车的实现方法为:

方法1,采用低端微控制器芯片;

智能语音玩具车需要微控制器来实现两部分功能,其一是实现语音识别,其二是对直流电机的控制,本发明中语音识别算法模型及基础工程对ram的要求为2.26kb,对rom的要求为74.50kb,再加上驱动及应用程序,本发明要求微控制器的ram大于10kb,rom大于100kb即可,无具体型号要求,例如采用st公司的stm32f103rc微控制器,该微控制器的ram为48kb,flash为256kb,成本低,玩具车对实时性一般没有严格要求,72mhz的主频可以满足要求。

方法2,采用神经网络算法;

传统神经网络算法对内存以及存储要求较高,一般运行在高性能控制器上,本发明为使神经网络算法运行于低端微控制器,例如stm32f103rc,采用tensorflow公司的tensorflowlite框架,并使用该公司提供的通用keil工程实例,在此keil工程实例上移植神经网络算法。

方法3,微控制器的hal驱动;

方法4,玩具车控制算法;

玩具车的控制算法是通过控制微控制器上的gpio管脚以及pwm输出来实现的,具体逻辑根据双电机驱动的六种情况划分。

本发明的有益效果在于:

效果1,使用单个低端微控制器芯片,例如stm32f103rc完成玩具车的语音识别与电机控制,不需要再借助语音芯片等高成本器件,简化了系统组成,降低了玩具车的成本;

效果2,使用tensorflowlite框架运行神经网络模型,使得玩具车上的低端微控制器芯片能进行固定的关键字识别;

效果3,使用两路h桥分别驱动两个直流电机,还可通过微控制器上pwm输出控制玩具车的车速以及转向;

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是智能语音玩具车的框图

图2是h桥实现直流电机驱动图

图3是智能语音玩具车软件实现框图

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将对本发明的技术方案进行详细的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施方式,都属于本发明所保护的范围。

一种基于微控制器的智能语音玩具车,如图1所示,该玩具车采用低端微控制器芯片stm32f103rc作为处理单元,语音采集模块获取用户语音并转换为特定编码,经微控制器tensorflowlite框架神经网络处理识别后,根据识别结果调整与h桥连接的微控制器gpio口电平以及pwm输出,从而实现直流电机的正反转以及调速功能。

一种基于微控制器的智能语音玩具车的硬件架构如图1所示,具体包括玩具车外壳、前后四轮、电源、电路板、两路直流电机。下文对各硬件的组装进行说明:

步骤1、后两轮分别与直流电机连接,直流电机固定于玩具车外壳,因此后两轮只能通过直流电机驱动旋转,其相对玩具车外壳而言保持固定;前两轮用一根金属杆连接,车轮与金属杆之间固定,金属杆与玩具车外壳中间位置处的一个支点连接,金属杆可绕该支点灵活旋转,为限制汽车转向角度的大小,可在支点周围配置4个阻隔点,4个阻隔点成矩形,支点位于矩形中心,矩形的大小确定可转向角度的大小,具体可根据需求设定。

步骤2、电源选择4节通用的5号1.5v电池,在玩具车外壳最底部设置电池组放置盒,电池可轻松装配。

步骤3、电路板位于玩具车中间位置并固定,电路板是整个玩具车的核心所在,其中包括用于采集用户语音数据的语音采集模型,其麦克风也位于电路板上,用于调整电源电压的升降压模块,微控制器芯片stm32f103rc,用于驱动直流电机的h桥模块。电路板的具体原理图设计在此不做规定,可根据微控制器的型号,参考图1进行设计。

步骤4、直流电机固定于玩具车的后端,轴与后轮连接,一路h桥引出的两根线与一路直流电机的正负极连接。

一种基于微控制器的智能语音玩具车的软件实现包括两个部分:语音识别与直流电机控制,下文将分别对语音识别部分的实现和直流电机控制逻辑进行说明。

语音识别的实现,如图3所示:

1、基于tensorflow源码中的speech_commands例程,修改神经网络模型训练脚本,设置语音类别为7类,在原有数据集的基础上添加一部分类别及数据,保存图模型文件与变量文件,并生成frozen的graphdef文件,使用源码中的toco工具生成tensorflowlite框架的tflite文件;

2、使用tensorflow提供的tensorflowlite官方通用keil工程,在keil工程中配置微控制器为stm32f103rc,移植上一步训练得到的tflite格式的神经网络模型;

3、keil工程中添加语音采集模块的驱动,并对语音采集模块传输的数据进行预处理(滤波、格式转换),将处理后的数据作为输入,利用tensorflowlite框架的神经网络模型进行处理与识别。

直流电机控制逻辑:语音识别的实现中训练的神经网络模型包含7类关键字,实施例中采用该7类关键字作为控制指令:go、back、stop、left、right、up、down;

关键字1、go:微控制器识别到语音指令为“go”时,使能en1与en3为高电平,同时en2与en4为低电平,并且配置pwm2与pwm4断开,设置pwm1与pwm3占空比为同一个预置的数据,两个直流电机以相同的速度向前驱动,玩具车前进;

关键字2、back:微控制器识别到语音指令为“back”时,使能en2与en4为高电平,同时en1与en3为低电平,并且配置pwm1与pwm3断开,设置pwm2与pwm4占空比为同一个预置的数据,两个直流电机以相同的速度向后驱动,玩具车后退;

关键字3、stop:微控制器识别到语音指令为“stop”时,设置en1、en2、en3、en4均为低电平,并且配置pwm1、pwm2、pwm3、pwm4以一定的占空比连接,两个直流电机停止运转,玩具车停车;

关键字4、left:微控制器识别到语音指令为“left”时,会先判断玩具车当前行驶状态,如果当前状态为停止,则设置en1、en2、en4为低电平,en3为高电平,pwm1、pwm2、pwm4为断开,pwm3按预定占空比连接,玩具车向前左转;如果当前状态为前进,则将pwm1占空比配置为最低0,pwm3占空比重置为预置的数据,玩具车向前左转;如果当前状态为后退,则将pwm2占空比配置为最低0,pwm4占空比重置为预置的数据,玩具车向后左转;其他状态下均不做处理;

关键字5、right:微控制器识别到语音指令为“right”时,会先判断玩具车当前行驶状态,如果当前状态为停止,则设置en2、en3、en4为低电平,en1为高电平,pwm2、pwm3、pwm4为断开,pwm1按预定占空比连接,玩具车向前右转;如果当前状态为前进,则将pwm3占空比配置为最低0,pwm1占空比重置为预置的数据,玩具车向前右转;如果当前状态为后退,则将pwm4占空比配置为最低0,pwm2占空比重置为预置的数据;其他状态下均不做处理,玩具车向后右转;

关键字6、up:微控制器识别到语音指令为“up”时,会先判断玩具车当前行驶状态,如果当前状态为前进,设置pwm1与pwm3为按一定比例增加的占空比,王继才向前加速前进;如果当前状态为后退,设置pwm2与pwm4为按一定比例增加的占空比,王继才向后加速后退;如果当前状态为向前右转,设置pwm1为按一定比例增加的占空比,玩具车右转角度增大;如果当前状态为向后右转,设置pwm2为按一定比例增加的占空比,玩具车右转角度增大;如果当前状态为向前左转,设置pwm3为按一定比例增加的占空比,玩具车左转角度增大;如果当前状态为向前右转,设置pwm4为按一定比例增加的占空比,玩具车左转角度增大;其他状态下均不做处理;

关键字7、down:微控制器识别到语音指令为“down”时,会先判断玩具车当前行驶状态,如果当前状态为前进,设置pwm1与pwm3为按一定比例降低的占空比,玩具车向前减速前进;如果当前状态为后退,设置pwm2与pwm4为按一定比例降低的占空比,玩具车向后减速后退;如果当前状态为向前右转,设置pwm1为按一定比例降低的占空比,玩具车右转角度减小;如果当前状态为向后右转,设置pwm2为按一定比例降低的占空比,玩具车右转角度减小;如果当前状态为向前左转,设置pwm3为按一定比例降低的占空比,玩具车左转角度减小;如果当前状态为向前右转,设置pwm4为按一定比例降低的占空比,玩具车左转角度减小;其他状态下均不做处理;

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1