Arduino驱动讯飞语音模块xfs5152ce---写啥念啥

硬件接线

在这里插入图片描述

Arduinoxfs5152ce
3.3V3.3V
GNDGND
TXRX
RXTX
耳机

Ardiuno代码:

/*语音编码数据,每个汉字对应两个16进制的编码*/
char huanyingshiyong[]={0xFD,0x00,0x18,0x01,0x00,0xBB,0xB6,0xD3,0xAD,0xCA,0xB9,0xD3,0xC3,0xD6,0xC7,0xC4,0xDC,0xC9,0xA8,0xB5,0xD8,0xBB,0xFA,0xC6,0xF7,0xC8,0xCB};//欢迎语
char houtui[]={0xFD,0x00,0x18,0x01,0x00,0xC7,0xB0,0xB7,0xBD,0xD3,0xD0,0xD5,0xCF,0xB0,0xAD,0xCE,0xEF,0xA3,0xAC,0xBF,0xAA,0xCA,0xBC,0xBA,0xF3,0xCD,0xCB};//不能后退时播放
char qianjin[]={0xFD,0x00,0x18,0x01,0x00,0xBA,0xF3,0xB7,0xBD,0xD3,0xD0,0xD5,0xCF,0xB0,0xAD,0xCE,0xEF,0xA3,0xAC,0xBF,0xAA,0xCA,0xBC,0xC7,0xB0,0xBD,0xF8};//不能前进时播放
char moshi[]={0xFD,0x00,0x0E,0x01,0x00,0xBF,0xAA,0xCA,0xBC,0xD7,0xD4,0xB6,0xAF,0xC4,0xA3,0xCA,0xBD};//模式切换时播放

/*
指令翻译:
欢迎使用智能扫地机器人
 fd 00 18 01 00 bb b6 d3 ad ca b9 d3 c3 d6 c7 c4 dc c9 a8 b5 d8 bb fa c6 f7 c8 cb
前方有障碍物
 fd 00 18 01 00 c7 b0 b7 bd d3 d0 d5 cf b0 ad ce ef a3 ac bf aa ca bc ba f3 cd cb
后方有障碍物
 fd 00 18 01 00 ba f3 b7 bd d3 d0 d5 cf b0 ad ce ef a3 ac bf aa ca bc c7 b0 bd f8
开启自动模式
 fd 00 0e 01 00 bf aa ca bc d7 d4 b6 af c4 a3 ca bd
*/

#define Trig1 5 
#define Echo1 4 
float cm1; 
float temp1; 

#define Trig2 3 
#define Echo2 2 
float cm2; 
float temp2; 

    /*3前4后超声波
     * 5  6  7
     * 000静止代码  
     * 001前进
     * 010后退
     * 100左转
     * 011右转
     * 101无法前进
     * 110无法后退
     * 111模式转换
     * 10 11 12
     */

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);

  //模块默认的波特率为9600bps,该波特率可以根据芯片手册通过芯片的波特率设置两个引脚接不同电阻值来进行设置,默认时如果改成其它波特率可能造成无法通讯的情况
 
 pinMode(Trig1, OUTPUT); 
 pinMode(Echo1, INPUT); 
 pinMode(Trig2, OUTPUT); 
 pinMode(Echo2, INPUT); 
 //上边时超声波的引脚

 pinMode(8, OUTPUT); 
 pinMode(9, OUTPUT); 
 //这是超声波信号输出引脚

 pinMode(10, INPUT);
 pinMode(11, INPUT);
 pinMode(12, INPUT);
 //这是接收信号的针脚


     // put your main code here, to run repeatedly:
     Serial.write(huanyingshiyong,sizeof(huanyingshiyong));
     //这一句是欢迎语
     //送出语音编码数据进行合成  
     delay(3000);
     //延时3秒,差不多是上面的内容朗读完的时间。
     //以后不再播放这句话

}

void loop() {
 //static int hello=0;
 //这是接收信号板的信号引脚    
  
  digitalWrite(Trig1, LOW); 
  delayMicroseconds(2); 
  digitalWrite(Trig1,HIGH); 
  delayMicroseconds(10); 
  digitalWrite(Trig1, LOW); 
  temp1 = float(pulseIn(Echo1, HIGH)); 
  cm1 = (temp1 * 17 )/1000; 
 
 Serial.print("Echo1 ="); 
 Serial.print(temp1);
 Serial.print(" | | Distance1 = "); 
 Serial.print(cm1);
 Serial.println("cm1"); 
 //delay(100); 
 
  digitalWrite(Trig2, LOW); 
  delayMicroseconds(2); 
  digitalWrite(Trig2,HIGH); 
  delayMicroseconds(10); 
  digitalWrite(Trig2, LOW); 
  temp2 = float(pulseIn(Echo2, HIGH)); 
  cm2 = (temp2 * 17 )/1000; 
 
 Serial.print("Echo2 ="); 
 Serial.print(temp2);
 Serial.print(" | | Distance2 = "); 
 Serial.print(cm2);
 Serial.println("cm2"); 
 //delay(100); 
 /*
  if(hello==0){
     // put your main code here, to run repeatedly:
     Serial.write(huanyingshiyong,sizeof(huanyingshiyong));
     //这一句是欢迎语
     //送出语音编码数据进行合成  
     delay(3000);
     //延时90秒,差不多是上面的内容朗读完的时间。
     hello = hello+1;
     //以后不再播放这句话
  }
  */
  //发送信号给2号板
  if(cm1>10){
    //可以前进
    //发送信号给信号板高电平
    digitalWrite(8,HIGH);
  }
  else{
    //不可以前进
    digitalWrite(8,LOW);
  }
  if(cm2>10){
    //可以后退
    digitalWrite(9,HIGH);
  }
  else{
    //不可以前进
    digitalWrite(9,LOW);
  }

      /*3前4后超声波
     * 5  6  7
     * 000静止代码  
     * 001前进
     * 010后退
     * 100左转
     * 011右转
     * 101无法前进
     * 110无法后退
     * 111模式转换
     * 10 11 12
     */
  //接收2号板的指令
  if(digitalRead(10)==HIGH&&digitalRead(11)==LOW&&digitalRead(12)==HIGH){
    //无法前进
    Serial.write(qianjin,sizeof(qianjin));
     //这一句是无法前进
     //送出语音编码数据进行合成  
    delay(3000);
  }
  if(digitalRead(10)==HIGH&&digitalRead(11)==HIGH&&digitalRead(12)==LOW){
    //无法后退
    Serial.write(houtui,sizeof(houtui));
     //这一句是无法后退
     //送出语音编码数据进行合成  
    delay(3000);
  }
  if(digitalRead(10)==HIGH&&digitalRead(11)==HIGH&&digitalRead(12)==HIGH){
    //模式转换
    Serial.write(moshi,sizeof(moshi));
     //这一句是模式转换
     //送出语音编码数据进行合成  
    delay(3000);
  }  
  else{
    //delay(100);
  }
}





语音读的汉字需要转换为16进制,可用Python或者Arduino代码转换。

完整源码请在微信公众号“修电脑的杂货店”后台回复“代码”获取!!!

对这篇内容对你有帮助,或者对本公众号内容有兴趣的同学可以加入官方QQ群详细交流探讨,互相学习共同进步,源码和具体操作流程,也会放到群里,如果有不懂得细节,群里也会有人回答。快加入我们的大家庭QQ群号:559369389 欢迎新成员的到来!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值