IDE:天问Block
设备驱动:CH340
应用场景:
字符编程
#include "asr.h"
#include "setup.h"
#include "myLib/asr_event.h"
#include "myLib/luxiaoban.h"
uint32_t snid;
Servo servo1;
Servo_t servo_t1;
QueueHandle_t servo1_queue=xQueueCreate(5,sizeof(Servo_t));
//{ID:250,keyword:"命令词",ASR:"最大音量",ASRTO:"音量调整到最大"}
//{ID:251,keyword:"命令词",ASR:"中等音量",ASRTO:"音量调整到中等"}
//{ID:252,keyword:"命令词",ASR:"最小音量",ASRTO:"音量调整到最小"}
//{speak:小蝶-清新女声,vol:10,speed:10,platform:haohaodada}
//{playid:10001,voice:欢迎使用智能灯光,可以随时唤醒我。}
//{playid:10002,voice:我退下了,可以随时唤醒我}
void servo_1_run()
{
while(1){
if(xQueueReceive(servo1_queue,&servo_t1,0))//接收消息队列信息
{
servo1.attach(1);
servo1.write(servo_t1.angle);
if(servo_t1.ticks > 0){
delay(servo_t1.ticks);
servo1.write(70);//无开关命令的时候舵机停在70度
delay(100);
digitalWrite(1,1);
}
}
delay(1);
}
}
void ASR_CODE()
{
//{ID:500,keyword:"唤醒词",ASR:"开灯",ASRTO:"好的"}
if(snid == 500){
servo_t1.angle = 90;//开灯命令,舵机旋转至90度
servo_t1.ticks = 1000;
xQueueSend(servo1_queue,&servo_t1,0);//写入消息队列
}
//{ID:501,keyword:"唤醒词",ASR:"关灯",ASRTO:"好的"}
if(snid == 501){
servo_t1.angle = 50;//关灯命令,舵机旋转至50度
servo_t1.ticks = 1000;
xQueueSend(servo1_queue,&servo_t1,0);//写入消息队列
}
}
void setup()
{
servo1.attach(1);
servo1.write(70);//无开关命令的时候舵机停在70度
xTaskCreate(servo_1_run,"servo_1_run",256,NULL,4,NULL);
}