设为首页 收藏本站
登录    注册
  • DF创客社区
  • 论坛
  • 造物记
  • DF创客商城
  • 产品资料库
首页 > 论坛 > 创意生活

班级AI电子相册

云天 | 初级技神 | 创造力: | 帖子: | 发消息 | 串个门 | 加好友 | 打招呼
2021-5-19 12:53:16 [显示全部楼层]
2494浏览
0回复
2收藏
查看: 2494|回复: 0

班级AI电子相册

[复制链接]
本帖最后由 云天 于 2021-5-19 12:53 编辑

【项目背景】

(学生的项目)进入高中学习快一年了,与老师和同学们在一起经历了很多。有军训时的阳光和风雨,有在一起学习的日日夜夜。这是我们的青春,值得去留念。我们准备利用在创客社团学到的知识,制作一个“班级AI电子相册”,在教师节时做为礼物送给我们的班主任老师。
【项目设计】
此《班级AI电子相册》采用开源AI硬件,利用人工智能语音识别技术,通过语音控制观看电子相片,并通过语音合成模块播放相片的相关介绍。有“自动播放”、“语音控制”两种模式。
【硬件清单】


序号
硬件名称
功能
1
主控:FireBeetle Board ESP32-E( Arduino开发板)
FireBeetle ESP32-E深度支持ArduinoIDE编程,GDI显示接口,单线连接显示屏,板载充电电路以及PH2.0锂电池接口。
2
2.0" 320x240 IPS广视角TFT显示屏
2.0寸LCD显示模块采用ST7789V驱动芯片,具有320x240个彩色像素点(RGB565)。这是一款IPS显示模块,拥有优秀的可视角度(80/80/80/80);采用SPI(4线)通信方式;支持GDI接口(GDI接口必须和带GDI接口主控配合使用),即插即用。2.0寸LCD显示模块支持3.3V和5V,并兼容多个主控:UNO、Leonardo、ESP32、ESP8266、FireBeetle M0等。与ESP32配合使用GDI接口,即插即用,有效减少接线步骤。模块板载了MicroSD Card卡槽,用户可以显示更多的图片。
3
中英文语音合成模块
让声音为你的项目增添一抹特色!连接上语音合成模块,再添加几行简单的代码就可以让您的项目开口说话。无论是中文还是英文对于语音合成模块来说都是”so easy”,播报当前时间,播报环境数据统统不在话下,与语音识别模块结合还可实现语音对话!该模块采用I2C和UART两种通讯方式,Gravity接口,兼容绝大部分主控。模块上已经自带了一个喇叭,所以您无需再额外的添加喇叭。
4
I2C语音识别模块
让声音为您的项目增添一抹特色!连接上语音识别模块,再添加几行简单的代码,您的项目就可以听懂您说的话。无需机器学习,无需特定人语音,无需联网,随时随地都可以进行语音识别,结合语音合成模块还可以实现语音对话。使用Gravity I2C接口通信,兼容绝大部分主控,非常适合接入教育场景使用。三种语音识别模式和三种语音输入方式使模块可以集成入更多的场景。
【设计步骤】
步骤1:处理图片
因屏幕分辨率为240*320。所以利用Fireworks处理成宽240,高320.因所有的图片都是横拍的,所以要进行旋转处理。

班级AI电子相册图6

步骤2:主控板与屏幕及电池相连接口
主控板上有GDI接口,通过此接口与屏幕相接。PH2.0接口与3.7V电池相连,为设备供电。


班级AI电子相册图5


步骤3引脚布局通过以下“引脚布局图,可发现主控板有两个IIC接口,可与“语音识别语音合成”模块相连。

班级AI电子相册图4
步骤4:电子电路图
班级AI电子相册图3



步骤5:实物连接图
语音识别与语音合成分别连接在主控板上的两个IIC接口上。
班级AI电子相册图2
【程序设计】
  1. 使用的软件环境为:Arduino IDE
  2. #include <SD.h>
  3. #include <SPI.h>
  4. #include "DFRobot_GDL.h"
  5. #include "DFRobot_Picdecoder_SD.h"
  6. #include "DFRobot_SpeechSynthesis.h"
  7. #include "DFRobot_ASR.h"
  8. DFRobot_SpeechSynthesis_I2C ss;
  9. DFRobot_Picdecoder_SD decoder;
  10. DFRobot_ASR  asr;
  11. /*ESP32 and ESP8266*/
  12. #define TFT_DC  25
  13. #define TFT_CS  14
  14. #define TFT_RST 26
  15. #define TFT_SD  13
  16. //屏幕设置
  17. DFRobot_ILI9341_240x320_HW_SPI  screen(/*dc=*/TFT_DC,/*cs=*/TFT_CS,/*rst=*/TFT_RST);
  18. File root;
  19. int i;
  20. int j;
  21. int k;
  22. int num;
  23. void setup()
  24. {
  25.   num=5;
  26.   k=1;
  27.   //初始化串行端口
  28.   Serial.begin(115200);
  29.   //初始屏幕
  30.   screen.begin();
  31.   //语音识别初始化
  32.   asr.begin(PASSWORD);
  33.   asr.addCommand("xiao tian xiao tian",0);
  34.   asr.addCommand("zi dong bo fang",1);//自动播放模式
  35.   asr.addCommand("yu yin kong zhi",2);//语音控制模式
  36.   asr.addCommand("xia yi zhang",3);//播放下一张
  37.   asr.addCommand("shang yi zhang",4);//播放上一张
  38.   //开始识别
  39.   asr.start();
  40.   //语音合成初始化
  41.   ss.begin();
  42.   ss.speak(F("班级智能电子相册"));
  43.   Serial.println("OK");
  44.   //初始化SD卡,等待初始化成功
  45.   while(1)
  46.   {
  47.     if (SD.begin(/*sdcs=*/TFT_SD))
  48.     {
  49.       Serial.println("initialization done.");
  50.       break;
  51.     }
  52.     Serial.println("initialization failed!");
  53.   }
  54.   //显示开机画面
  55.   decoder.drawPicture(/*filename=*/"/picture/0.jpg",/*sx=*/0,/*sy=*/0,/*ex=*/screen.width(),/*ey=*/screen.height(),/*screenDrawPixel=*/screenDrawPixel);
  56.   
  57. }
  58. void loop()
  59. {
  60. j=asr.read();
  61.   switch(j)            //判断识别内容,在有识别结果的情况下asr.read()会返回识别到的词条编号,否则返回-1
  62.   {
  63.     case 0:                     //若是唤醒指令“小天 小天”,唤醒语音识别模块,并随机响应
  64.        switch(random(0,5))        
  65.          {
  66.           case 0:
  67.             ss.speak(F("嗯"));
  68.             break;
  69.           case 1:
  70.             ss.speak(F("我在"));
  71.             break;
  72.           case 2:
  73.             ss.speak(F("在听"));
  74.             break;
  75.           case 3:
  76.             ss.speak(F("来了"));
  77.             break;
  78.           case 4:
  79.             ss.speak(F("您说"));
  80.             break;
  81.           case 5:
  82.             ss.speak(F("在了"));
  83.             break;
  84.          }
  85.      break;
  86.     case 1://开启自动播放模式
  87.       k=0;
  88.       ss.speak(F("自动播放模式"));
  89.       break;
  90.     case 2://开启语音控制播放模式
  91.       k=1;
  92.       ss.speak(F("语音控制播放模式"));
  93.       break;
  94.     case 3: //处理显示下一张照片时的照片序号
  95.      if(k==1){
  96.       if(i<num-1)
  97.         {
  98.           i++;
  99.         }
  100.       else
  101.       {
  102.         i=0;
  103.       }
  104.      }
  105.       break;
  106.     case 4: //处理显示上一张照片的照片序号
  107.     if(k==1){  
  108.       if(i>0)
  109.         {
  110.           i--;
  111.         }
  112.       else
  113.       {
  114.         i=num;
  115.       }
  116.     }
  117.       break;
  118.   }
  119.   if(k==0 &&(j==-1 || j==1) )//自动播放模式下,处理显示照片序号
  120.   {
  121.    
  122.        if(i<num-1)
  123.         {
  124.           i++;
  125.         }
  126.       else
  127.       {
  128.         i=0;
  129.       }
  130.       delay(1000);
  131.   }
  132.   if(k==1 && (j==3 ||j==4)||k==0 )//显示照片
  133.   {  
  134.     switch(i)
  135.     {
  136.       
  137.     case 0:
  138.       decoder.drawPicture(/*filename=*/"/picture/1.jpg",/*sx=*/0,/*sy=*/0,/*ex=*/screen.width(),/*ey=*/screen.height(),/*screenDrawPixel=*/screenDrawPixel);
  139.       ss.speak(F("军训的第二天,在军训中,我们很苦很累,但这是一种人生体验,战胜自我,锻炼意志的最佳良机。"));
  140.       break;
  141.       case 1:                    
  142.       decoder.drawPicture(/*filename=*/"/picture/2.jpg",/*sx=*/0,/*sy=*/0,/*ex=*/screen.width(),/*ey=*/screen.height(),/*screenDrawPixel=*/screenDrawPixel);
  143.       ss.speak(F("看我的被子叠的怎么样?"));
  144.       break;
  145.     case 2:                    
  146.       decoder.drawPicture(/*filename=*/"/picture/3.jpg",/*sx=*/0,/*sy=*/0,/*ex=*/screen.width(),/*ey=*/screen.height(),/*screenDrawPixel=*/screenDrawPixel);
  147.       ss.speak(F("第一次阅读励志信时,激动的心如波涛汹涌的大海,久久不能平静。因为他给了我们太多心灵上的触动,他让我们振奋精神,养成良好习惯、改正坏习惯,发现自己的闪光点。"));
  148.       break;
  149.     case 3:                    
  150.       decoder.drawPicture(/*filename=*/"/picture/4.jpg",/*sx=*/0,/*sy=*/0,/*ex=*/screen.width(),/*ey=*/screen.height(),/*screenDrawPixel=*/screenDrawPixel);
  151.       ss.speak(F("每次考试后,班级通过表彰对优秀学生的良好表现予以充分肯定和褒扬,同时也充分发挥先进典型的示范引领及激励作用,激励更多的同学见贤思齐、奋发进取。"));
  152.       break;
  153.     case 4:                    
  154.       decoder.drawPicture(/*filename=*/"/picture/5.jpg",/*sx=*/0,/*sy=*/0,/*ex=*/screen.width(),/*ey=*/screen.height(),/*screenDrawPixel=*/screenDrawPixel);
  155.       ss.speak(F("对优秀学生进行有效表彰,可全面调动我们学习的积极性、促进我们全面发展、给我们创设良好的教学环境"));
  156.       break;
  157.    
  158.   }
  159. }
  160. }
  161. //这个函数的功能是在屏幕上画一个像素
  162. void screenDrawPixel(int16_t x, int16_t y, uint16_t color)
  163. {
  164.   //在屏幕上画一个点
  165.   screen.writePixel(x,y,color);
  166. }
复制代码
班级AI电子相册图1


程序中首先对屏幕、语音合成及语音识别模块进行初始化,并利用声音提醒初始化完成,显示开机画面。
当检测到唤醒词“xiao tian xiao tian”将唤醒语音识别模块,使用“zi dong bo fang”,开启“自动播放模式”;使用“yu yin kong zhi”,开启“语音控制模式”。
当在“语音控制模式”下,使用关键词“xia yi zhang”、“shang yi zhang”可上下翻页。
在播放照片的同时,语音合成模块用语音播报“照片简介”。



回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
撰写新帖
关于楼主
勋章墙
活跃会员 宣传大使 创客造 编辑选择奖 志“童”道合 编辑选择奖 编辑选择奖

楼主的其它帖子

  • 行空板搬运车
  • 行空板视觉循迹车
  • 智能喝水提醒器
  • Esp32-c6与Esp32-c3自制ESP-NOW 遥控车
  • Esp32 C6 Wifi小夜灯
  • Xbox 行空板麦克纳姆轮车
  • 小夜灯智能化大改造
  • 行空板与星火认知大模型结合运行“自己”编写的程序
  • 行空板推流B站直播 弹幕控制舵机摆动 浇花
  • 行空板 AI虚拟人
background 创造力兑换 background 心愿单 background 创客导航
热门版块
  • icon Arduino
  • icon 机器人
  • icon 3D打印
  • icon 教程
  • icon micro:bit
  • icon 创客活动
  • icon 创意生活
  • icon 树莓派
推荐阅读
  • themeImage
    铁熊玩创客 | 创客项目缺少高颜值电路图?
  • themeImage
    想入门Arduino怎么办?
  • themeImage
    【掌控】mPython编程与教学软件平台汇总
精华导读
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail

哆哆女性网小孩起姓名免费测试悲伤的qq名称朔州网站制作公司seo教程吧阿拉善盟seo店铺起名大全免费取名大全韩国现代养生锅网站免费收录免费测姓名字打分周易设计视频课件网站前端优化网站泰坦尼克号下载电影天堂沧州seo服务英文seo优化如果自己制作网站起名网站十大排名免费起名大全公主贵性三个字艺术签名上海网站定制建设网站设计包括什么免费相册制作网站少年派的奇幻漂流 电影天堂周易姓名预测打分苏州网站设计价格网站制作多少钱明细如何清理电脑内存丹东企业网站seo金枝读后感联盟之最强选手新房起名大全淀粉肠小王子日销售额涨超10倍罗斯否认插足凯特王妃婚姻不负春光新的一天从800个哈欠开始有个姐真把千机伞做出来了国产伟哥去年销售近13亿充个话费竟沦为间接洗钱工具重庆警方辟谣“男子杀人焚尸”男子给前妻转账 现任妻子起诉要回春分繁花正当时呼北高速交通事故已致14人死亡杨洋拄拐现身医院月嫂回应掌掴婴儿是在赶虫子男孩疑遭霸凌 家长讨说法被踢出群因自嘲式简历走红的教授更新简介网友建议重庆地铁不准乘客携带菜筐清明节放假3天调休1天郑州一火锅店爆改成麻辣烫店19岁小伙救下5人后溺亡 多方发声两大学生合买彩票中奖一人不认账张家界的山上“长”满了韩国人?单亲妈妈陷入热恋 14岁儿子报警#春分立蛋大挑战#青海通报栏杆断裂小学生跌落住进ICU代拍被何赛飞拿着魔杖追着打315晚会后胖东来又人满为患了当地回应沈阳致3死车祸车主疑毒驾武汉大学樱花即将进入盛花期张立群任西安交通大学校长为江西彩礼“减负”的“试婚人”网友洛杉矶偶遇贾玲倪萍分享减重40斤方法男孩8年未见母亲被告知被遗忘小米汽车超级工厂正式揭幕周杰伦一审败诉网易特朗普谈“凯特王妃P图照”考生莫言也上北大硕士复试名单了妈妈回应孩子在校撞护栏坠楼恒大被罚41.75亿到底怎么缴男子持台球杆殴打2名女店员被抓校方回应护栏损坏小学生课间坠楼外国人感慨凌晨的中国很安全火箭最近9战8胜1负王树国3次鞠躬告别西交大师生房客欠租失踪 房东直发愁萧美琴窜访捷克 外交部回应山西省委原副书记商黎光被逮捕阿根廷将发行1万与2万面值的纸币英国王室又一合照被质疑P图男子被猫抓伤后确诊“猫抓病”

哆哆女性网 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化