本帖最后由 驴友花雕 于 2024-1-26 07:17 编辑
本例实验采用红外对管
该传感器模块对环境光线适应能力强,其有一对红外线发射与接收管,发射管发射出一定频率的红外线,当检测方向遇到障碍物(反射面)时,红外线反射回来被接收管接收,经过比较器电路处理之后,绿色指示灯会亮起,同时信号输出接口输出数字信号(一个低电平信号),可通过电位器旋钮调节检测距离,有效距离范围 2~30cm,工作电压为 3.3V-5V。该传感器的探测距离可以通过电位器调节、具有干扰小、便于装配、使用方便等特点,可以广泛应用于机器人避障、避障小车、流水线计数及黑白线循迹等众多场合。
红外避障模块电原理图
本例实验使用光敏电阻模块
光敏电阻模块参数:
工作电压:DC3.3-5V
光敏电阻型号:5516
模块针脚:3针或4针(4针的多出一个模拟输出端A0)
电原理图
本例实验使用四路继电器模块
四路继电器模块是一种可以通过单片机或其他数字信号控制的开关模块,它可以实现对高电压或高电流设备的开关控制。
四路继电器模块的电原理如图
【花雕动手做】实验五十五:携带式语音整合控制的四路智能管家盒子
实验开源代码
- #include "asr.h"
- extern "C"{ void * __dso_handle = 0 ;}
- #include "setup.h"
- #include "myLib/asr_event.h"
-
- uint32_t snid;
- void ASR_CODE();
- void hardware_init();
-
- /*描述该功能...
- */
- void ASR_CODE(){
- set_state_enter_wakeup(15000);
- switch (snid) {
- case 0:
- digitalWrite(4,0);
- break;
- case 1:
- digitalWrite(2,0);
- break;
- case 2:
- digitalWrite(2,1);
- break;
- case 3:
- digitalWrite(3,0);
- break;
- case 4:
- digitalWrite(3,1);
- break;
- case 5:
- digitalWrite(5,0);
- break;
- case 6:
- digitalWrite(5,1);
- break;
- case 7:
- digitalWrite(6,0);
- break;
- case 8:
- digitalWrite(6,1);
- break;
- case 9:
- digitalWrite(2,0);
- digitalWrite(3,0);
- digitalWrite(5,0);
- digitalWrite(6,0);
- break;
- case 10:
- digitalWrite(2,1);
- digitalWrite(3,1);
- digitalWrite(5,1);
- digitalWrite(6,1);
- break;
- }
- delay(100);
- //{ID:500,keyword:"命令词",ASR:"效果不错",ASRTO:"有你的鼓励挺好,谢谢"}
- if(snid == 500){
-
- }
- }
-
- //{ID:250,keyword:"命令词",ASR:"最大音量",ASRTO:"音量调整到最大"}
- //{ID:251,keyword:"命令词",ASR:"中等音量",ASRTO:"音量调整到中等"}
- //{ID:252,keyword:"命令词",ASR:"最小音量",ASRTO:"音量调整到最小"}
- void sys_sleep_hook()
- {
- digitalWrite(4,1);
-
- }
-
- void hardware_init(){
- pinMode(18,input);
- dpmu_set_adio_reuse(PA0,DIGITAL_MODE);
- dpmu_set_io_pull(pinToFun[0],DPMU_IO_PULL_UP);
- setPinFun(0,SECOND_FUNCTION);
- pinMode(1,input);
- dpmu_set_adio_reuse(PA1,DIGITAL_MODE);
- dpmu_set_io_pull(pinToFun[1],DPMU_IO_PULL_UP);
- setPinFun(1,FIRST_FUNCTION);
- while (1) {
- if(!(digitalRead(0))){
- digitalWrite(2,0);
- delay(200);
- enter_wakeup(2000);
- delay(200);
- //{ID:501,keyword:"命令词",ASR:"耍接官",ASRTO:"天亮了,打开窗帘"}
- play_audio(501);
- delay(5000);
- }
- if(!(digitalRead(1))){
- digitalWrite(3,0);
- delay(200);
- enter_wakeup(2000);
- delay(200);
- //{ID:502,keyword:"命令词",ASR:"接耍官",ASRTO:"入侵报警,打开警报灯,大家集合"}
- play_audio(502);
- delay(5000);
- }
- delay(100);
- }
- vTaskDelete(NULL);
- }
-
- void setup()
- {
- //{speak:小爱-活泼女声,vol:18,speed:10,platform:haohaodada,version:V3}
- //{playid:10001,voice:欢迎使用人工智能AI语音助手,用智能管家唤醒我}
- //{playid:10002,voice:我退下了}
- //{ID:0,keyword:"唤醒词",ASR:"智能管家",ASRTO:"我在"}
- //{ID:1,keyword:"命令词",ASR:"打开窗帘",ASRTO:"已打开"}
- //{ID:2,keyword:"命令词",ASR:"关闭窗帘",ASRTO:"已关闭"}
- //{ID:3,keyword:"命令词",ASR:"打开警报灯",ASRTO:"已打开"}
- //{ID:4,keyword:"命令词",ASR:"关闭警报灯",ASRTO:"已关闭"}
- //{ID:5,keyword:"命令词",ASR:"打开空调",ASRTO:"已打开"}
- //{ID:6,keyword:"命令词",ASR:"关闭空调",ASRTO:"已关闭"}
- //{ID:7,keyword:"命令词",ASR:"打开电视机",ASRTO:"已打开"}
- //{ID:8,keyword:"命令词",ASR:"关闭电视机",ASRTO:"已关闭"}
- //{ID:9,keyword:"命令词",ASR:"全部打开",ASRTO:"测试打开所有家电"}
- //{ID:10,keyword:"命令词",ASR:"全部关闭",ASRTO:"关闭所有家电"}
- pinMode(4,output);
- digitalWrite(4,1);
- pinMode(2,output);
- digitalWrite(2,1);
- pinMode(3,output);
- digitalWrite(3,1);
- pinMode(5,output);
- digitalWrite(5,1);
- pinMode(6,output);
- digitalWrite(6,1);
- xTaskCreate(hardware_init,"hardware_init",256,NULL,100,NULL);
- }
复制代码
生成模型与编译烧录
实验记录视频
https://www.bilibili.com/video/BV1wk4y1S7GT/?share_source=copy_web&vd_source=371a292a55e5ca9be994cbb4a86cc987
|