怀旧的半条命-为广播电台创建前缀,以组合的形式接收结尾的声音和声音


从前,当树木大时,有这样的《半条命》射手,仍在等待其延续-这已经是一个代名词。

有诸如联合军(联合士兵)的对手-被入侵者改变的人。
在游戏过程中,人们可以在广播中听到他们的谈话-我只是梦想着一个广播电台,当广播结束时,该广播电台将使声音看起来像他们,并具有相同的声音。

经过很多时间,我仍然决定实现自己的梦想。

谈判是这样的:


那时,我真的梦想着让我的广播电台至少与这些谈判有相同的哔哔声。 谁不知道什么是更大的哔哔声-一种结束传输的信号,在每条消息的末尾都会响起。

在游戏中,他的语气根据士兵而变化,介于两者之间:


那时,我很难做到这一点,但是当今微处理器的发展不仅使它易于重复,而且使声音变慢,使其与游戏中的声音更加相似。

该方案的核心是ATMEL-ATTINY85公司的处理器。

是的-在小型ATTINY85上进行实时音频处理-很有可能:)

以Rivia Geralt的声音为例的工作结果


原始声音


修改声音


现场听起来并不充耳不闻,更清晰。 在这里,由于进行了许多转换和转码,因此发生了这种情况,但是我认为整体情况是可以理解的。

我们可以说这都是“取乐”,但是如果您取消语音转换,则该方案允许您向任何广播电台添加罗杰蜂鸣声,前提是该电台具有诸如“建伍”之类的附件连接器(相同的双连接器)。

我在Baofeng-888s上进行了测试,但它没有发出刺耳的蜂鸣声-基本上,执行此操作(例如加扰)的能力不仅本身很有趣。

固件如何工作?


实际上,没有什么复杂的。

使用低速外设模式(通过PLLCSR)-在这种情况下,可以使用2.7伏特为ATTINY供电,这将提供大约9kHz的采样频率。

可以使用高速模式,该模式将提供约18kHz的频率,但是随后您将不得不使用4.5伏的电源电压,这存在问题。

当您按下切线上的传输按钮时,将产生一个中断并唤醒ATTINY,打开到广播电台的传输模式,并以大约8.9kHz的频率使用ADC将来自麦克风的语音数字化为循环缓冲区:



当下一个值输入缓冲区时,它将与前一个值混合-找到平均值,即 公式是:

这为我们提供了一个机会,可以在旧的含义尚未被放弃而新的含义已经被取代的情况下体验这种情况。 而这迟早会发生,因为 读写速度是不同的。
每次执行此类操作后,指向缓冲区的指针都会增加,当指针达到最大值时,它们将重置为零-即 到缓冲区的开头-这就是为什么将其称为循环的原因。

ATTINY没有太多内存-仅有500个字节,在这种情况下,环形缓冲区下将使用450个字节,因为 变量和堆栈也需要内存。

缓冲区有两个指针-一个是写入数据,另一个是读取数据,这两者的比率只是设置相对于写入速度的读取速度。

当读取数据通过PWM传输并经过平滑滤波器后,它会变成声音,并进入无线电台的麦克风路径。

顺便说一下,通过PWM,它的音质非常好,可用于需要播放某种声音的任何地方(音乐盒,礼物等),而ATTINY的结论足以连接SD,甚至可以连接整个作品发挥。

但是回到我们的方案:当您松开按钮时,ATTINY仍然保持传输模式,停止数字化,并通过PWM发出罗杰蜂鸣声的数字声音,然后关闭传输模式并进入睡眠状态以降低功耗。

声音,因为 占用大量空间-大约5 KB-占用程序的部分内存-因为 此内存足以存储代码-解决了内存不足的问题。

至于声音变慢或加速的程度,所需的系数应记录在EEPROM ATTINY的0地址中,因此,可以在0到255的范围内更改。

值示例:
30加快声音
55不变
75语音减速

方案


该设备本身将是广播电台的切线(或更确切地说,是一个操纵器),并将通过标准的Kenwood附件连接器与之配合使用。

该方案非常非常简单,易于“在膝盖上”组装。

我在Aliexpress上订购了麦克风放大器模块,我只推荐这种类型的模块,在图片中。 它由3-5v供电,成本约为2美元。

扬声器需要大约8欧姆,0.5-1瓦特。

按钮-任何在电路上工作的按钮。 任何能够在3伏电压下正常工作或具有适当电阻的LED。



该电路没有一个功能-在附件的连接器中提供了一个5伏的附件电源,但特别是在Baofeng-888上,中国人做错了。 不仅有3伏电压,而且在负载下也会降至0.7伏,当然,电路不起作用。

为了解决这个问题,增加了一个带有Aliexpress的1.2至3.3伏的微型DC-DC转换器和一个用于连接任何AA电池的外部连接器。

并且默认情况下,当连接器未插入任何东西时,电路将尝试由广播电台供电。

电路组件是什么样的:



庆祝活动的罪魁祸首:



如何为广播电台制作双插头(KENWOOD连接器):



两个插头3.5和2.5用电工胶带缠绕在一起-几乎没有它。

房屋


这里没有什么特别复杂的,我唯一需要修改的是lambda形式的窗口。 结果很歪,但有点像:)

他做了一个dremel,然后在正面用胶带将其粘上,然后从对面的胶枪中倒出胶水,将LED淹没在其中,在进行传输时会亮起。

尚无外部电源连接器。

外:



内部:



一起:



总结


总的来说,我实现了我的童年梦想,尽管这是不合理的,但它的实现温暖了我成年的灵魂。 我希望有人也会有类似的感受。 :)

韧体


ATTINY85的FUSE位(8Mhz,功率> = 2.7v):

0xE2
0xDD高
0xFF扩展

下载固件文件
在不久的将来,我将尝试梳理和布局所有这些源。



注意事项


由于我的兄弟没有与UFO合作,因此我决定代表我自己在Habré上发表这篇文章。 当我收集它时-你知道-我小时候很高兴。 而且我认为她值得哈布拉社会的关注。

她和我一起住在YAESU广播电台,并且工作正常,由广播电台本身提供动力。

可以在我兄弟的博客protocoder.ru中找到新的固件版本和与之相关的文件。

好吧,由于我是直接参与开发工作的,而且本人也将其整合在一起,因此,我将尝试回答有关此问题的任何问题。

Source: https://habr.com/ru/post/zh-CN443158/


All Articles