基于SU-03T模块,来进行开发小车的语音控制切换模式巩固,其主要原理就是语音模块根据指令,所控制的引脚输出的电平不同
网盘资料 提取码3k5a
这个语音模块不需要编程,不需要二次开发 通过厂家给的网站配置后即可使用,傻瓜式操作
主要配置
#include "reg52.h"
#include "intrins.h"
#include "config.h"
#include "delay.h"
#include "motoc.h"
#include "sr04.h"
#include "sg90.h"
#include "time.h"
#include "oled.h"char dir;
double disMiddle;
double disLeft;
double disRight;void BZmode()
{ disMiddle = get_distance();if(disMiddle > 20){//前进goForward();}else if(disMiddle < 7){goBack();Delay150ms();stop();}else{sgRight();Delay300ms();disRight = get_distance();sgMiddle();Delay300ms();disMiddle = get_distance();sgLeft();Delay300ms();dir = LEFT;disLeft = get_distance();if(disRight < disLeft){goLeft();Delay200ms();stop();}if(disRight > disLeft){goRight();Delay200ms();stop();}}if(dir != MIDDLE){sgMiddle();dir = MIDDLE;Delay300ms();}
}void XJmode()
{if(LeftTarce == 0 && RightTarce == 0){goForward();}if(LeftTarce == 0 && RightTarce == 1){goRight();}if(LeftFollow == 1 && RightTarce == 0){goLeft();}if(LeftTarce == 1 && RightTarce == 1){stop();}
}void GSmode()
{if(LeftFollow == 0 && RightFollow == 0){goForward();}if(LeftFollow == 0 && RightFollow == 1){goLeft();}if(LeftFollow == 1 && RightFollow == 0){goRight();}if(LeftFollow == 1 && RightFollow == 1){stop();}}
void main()
{int mark = 0;Time0Init();Time1Init();sgMiddle();Delay300ms();Delay300ms();dir = MIDDLE;Oled_Init();Oled_Clear();Oled_Show_Str(2,2,"----Ready----");while(1){if(A25 == 0 && A26 == 1 && A27 == 1){if(mark != XJ){Oled_Show_Str(2,2,"----XunJi----");}mark = XJ; XJmode();}if(A25 == 1 && A26 == 0 && A27 == 1){if(mark != GS){Oled_Show_Str(2,2,"----GenSui---"); }mark = GS;GSmode(); }if(A25 == 1 && A26 == 1 && A27 == 0){if(mark != BZ){Oled_Show_Str(2,2,"----BiZhang---"); }mark = BZ;BZmode();}}
}
是不是有种“瓦力”的感觉
哈哈哈哈哈哈,确实神似,到这里c51学习暂时告一段落,下面要开始stm32的学习啦~~~
本文发布于:2024-01-28 01:49:53,感谢您对本站的认可!
本文链接:https://www.4u4v.net/it/17063778013947.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
留言与评论(共有 0 条评论) |