创客造|mind+|火车站广播系统
本帖最后由 rzyzzxw 于 2021-2-6 17:44 编辑【项目简介】
我的家乡在豫西的一个小小县级市汝州,焦枝线经过,有一个小火车站,我出远门常常在那里坐火车。
绿皮的那种。
https://mp.weixin.qq.com/s/8wJQ5Zj0tBI80IpLgeIQMQ
读了果冻老师的文章,介绍的是果源同学的作品,我想结合汝州火车站写一个播报系统。
【设计目标】提醒工作人员对列车进站做好准备,提醒旅客及时上车以免延误,为旅客提供准确详细的检票信息。程序模拟汝州火车站的情况,对接车、检票、停止检票环节进行设计,实现语音自动播报。满足工作人员及旅客的需求。
https://makelogimg.dfrobot.com.cn/FtrsUX505s7ggV-7G_ypCFcgbQF-?imageView2/2/w/1600
【分析】
汝州火车站是一个小站,只有一个候车厅,两个检票口,两个站台,一号站台1车道,二号站台1、2两个车道。
客车车次也不多,大多时间只有一列车停靠,两列客车同时进站的情况不很多。
只有普通列车,没有高铁。
所以整个程序比较简单。
【视频】
https://www.bilibili.com/video/BV1Yy4y1Y7St
https://www.bilibili.com/video/BV1Yy4y1Y7St1、程序界面
2、全部角色
https://makelogimg.dfrobot.com.cn/FuRw06kBzyMu6gJFknfWsj3nnHqG?imageView2/2/w/16003、变量和列表
https://makelogimg.dfrobot.com.cn/FqizV4PqfQID9BvXOh2oZbhch9rx?imageView2/2/w/16004、背景
没有脚本
https://makelogimg.dfrobot.com.cn/Fg-WlT4nJ8tTetbPPQjtpVzRqSET?imageView2/2/w/1600
5、使用说明
https://makelogimg.dfrobot.com.cn/FiE_7KS8CGY-dIB88pgRsKP85euK?imageView2/2/w/1600
6、接车-检票-停止检票按钮
初始定位,点击发送消息。https://makelogimg.dfrobot.com.cn/FkAvg2vATeb5AsrfQi6Coh1zekn8?imageView2/2/w/1600
https://makelogimg.dfrobot.com.cn/FqT9JaupJJzW66wZproK2jbPSpFT?imageView2/2/w/1600
https://makelogimg.dfrobot.com.cn/FgtR_dfOxxNZCYS5YBAYeyJt_jW9?imageView2/2/w/16007、广播角色
https://makelogimg.dfrobot.com.cn/FjveyKEbJ0AnG2-JMHMAXmeNCOm6?imageView2/2/w/1600初始化,定位,虚化。
https://makelogimg.dfrobot.com.cn/FrbASn0fJ0TD9bp-4_kchQ4rMhJC?imageView2/2/w/1600接收到接车消息,询问车次、站台、车道信息,存入相应变量,然后执行自定义积木,播报工作人员接车信息。https://makelogimg.dfrobot.com.cn/FjLZe0MwrUeEHDXKqOUR1URQb-Fy?imageView2/2/w/1600自定义积木,接车,有车次、站台、车道三个参数。
这个积木是整个程序的核心内容。
播报录入的提示音,特别是提取车次中的字母和数字分别读出,为了读出数字,使用了一个变量--循环。
分段说明:
a读出车次字母和数字
https://makelogimg.dfrobot.com.cn/FqO61w-4FOnoPZeiHzfaZ93hKtHP?imageView2/2/w/1600https://makelogimg.dfrobot.com.cn/Fos7YTzkwTuLjyr-fLXBsTawTyTY?imageView2/2/w/1600b读出站台https://makelogimg.dfrobot.com.cn/FjHaH2zlA88SJCjqZdfdcPiIXdtG?imageView2/2/w/1600c读出车道
https://makelogimg.dfrobot.com.cn/FrDCqVhdpo0dfaz81IvlvnWgbZ5p?imageView2/2/w/1600以上方法可以减少对网络AI语音合成的依赖,完成数字语音播报。火车站的播报车次部分语音也是不很连续,好像也是这种处理方式。
录音
https://makelogimg.dfrobot.com.cn/Fk2KyTxv0g6XUN3f_WL1VMCkmKJY?imageView2/2/w/1600
检票和停止检票积木程序相似,本角色全部脚本如下(感谢陈老师优化建议)。
https://makelogimg.dfrobot.com.cn/FssnqWUsdfcQaWADbtEKxWEr55q0?imageView2/2/w/1600
8、重播检票和重播停止按钮
https://makelogimg.dfrobot.com.cn/FpRYG9d5p45fZ-9W9xuWaIXDrDEn?imageView2/2/w/1600
https://makelogimg.dfrobot.com.cn/Fp9EN347I3i9UySZD7wZhr8U5zgZ?imageView2/2/w/1600发送消息,再次播报最近输入保存在变量中的信息,无需重复输入。接收消息并播报程序在上面广播角色中了。
到此,完成整个程序。
边写边测,现在可以开心的测试全部程序啦。
【小结】
编程学习,有趣且有用。
本项目有一个问题没有解决,播报接车时没有实现列车的始发和终点播报。
工作人员请注意,由南阳--开往--洛阳的****次列车就要开过来了,进*站台*道,请做好接车准备。
欢迎高手补充。
角色的名字和造型好可爱啊~~
几个改进意见:
1. 使用文字朗读代替声音播放
2. 将同类关键字作为列表存放,使用循环可以极大减少代码量
3. 因为所有的播放模块逻辑相似,可以使用带参数的函数来实现
4. 将车次增加起点和终点属性,保存为列表并导入到程序中,即可实现始发和终点播报。 szjuliet 发表于 2021-2-5 17:45
角色的名字和造型好可爱啊~~
几个改进意见:
1. 使用文字朗读代替声音播放
谢谢陈老师指导,程序优化和AI文字朗读版正在进行中。{:6_207:}
页:
[1]