0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何用旧收音机制作音频点唱机

454398 来源:工程师吴畏 2019-08-26 10:08 次阅读

第1步:WW2 Time Machine无线电部件列表

所需部件

旧收音机

法语波兰语

SandPaper

Lexan拨打

Heatshrink

Raspberry Pi Zero

I2S放大器

开/关垫片

扬声器

电源

MCP3002

LED

电阻器270R

2x 10k电位器

推动开关

USB线

第2步:寻找旧收音机

如何用旧收音机制作音频点唱机

第一步当然是找一个合适的旧收音机我设法在ebay上以15英镑的价格找到了这个。有一种诱惑让它一开始运行,但是当机箱出来并且显示需要更换的全部电阻器和电容器阵列时,我并没有觉得将它拆开是如此糟糕。虽然严格来说它不是一个1940年代的集合,但是那个时代的一些家用构建工具包肯定看起来很相似。

步骤3:删除旧无线电并构建新机箱

将这些中的一个分开是相当简单的,通常看起来机箱安装在机箱上并且一切都安装好了。因此,一旦松开并释放旋钮,它就会滑出。大多数都完全建立在子机箱上。我的初衷是使用一个撕开的蓝牙音箱的扬声器,但我想知道旧的扬声器盒是否有效。令人惊喜的是,它不仅发挥了作用,而且听起来也很棒。因此,下一步是继续测量所有内容并在Tinkercad中构建新机箱。我重新定义了频率拨号区域并将扬声器保持在同一位置。此外,还添加了用于pi 0的安装板。我把它打印在PETG中,我发现它对翘曲的抵抗力较小,所有部件的试验似乎表明它会起作用。我必须在音量安装方面稍微玩一下,以便新的音箱非常适合并且仍然可以通过音箱安装。

第4步:翻新案例

当案件被剥离时,首先要做的就是决定如何处理完成。虽然情况并不太糟糕,但我最初还是想过给它一个很好的清洁,以保持磨损的铜绿外观。通常用醋擦拭会使旧的情况变得清新,但是有一些地方清漆已经裂开,所以我决定把它剥掉。对于旧木箱,它们通常用薄木板覆盖,但它不是那么薄,以至于你无法在它上面打磨。首先取下扬声器格栅布,这是非常令人厌恶的,其中有大约50年的灰尘和污垢,并放在一边。然后,几件厚厚的Nitromors涂层,脱漆剂和旧清漆最终脱落。这必须做两次,因为它可能在原始涂层的某些点上涂漆。为了清除一些划痕并使其具有更好的光洁度,用一些100粗砂纸打磨,然后用中等打磨海绵进行最后打磨。将所有这些与谷物一致,然后用白酒擦拭,以清除灰尘。与此同时,盒子也用一些木胶固定,其中胶合板略微拉开。木格栅条也有一些分层,所以更多的木胶和尽可能地撬回碎片。一旦干了,我就用一把手术刀清理木头的边缘,用一些Tamiya丙烯酸漆涂成棕色。

我的第一个想法就是更换扬声器布,但是看起来真实的材料的成本相当陡峭,因为它往往需要长时间销售。经过一些老式的无线电论坛探索之后,看起来好像你可以把旧布带回来。因此,使用冷水和大量洗涤液,我浸泡过夜,令人惊讶的是,一旦它再次变干,它就变得很干净了。

现在我要去处理完成并最初决定给它一个清漆,然后考虑使用喷雾清漆,而在当地DIY商店的清漆/油漆岛发现一瓶法国抛光。认为这将是一个很好的真实完成我决定试一试。因此,现在您需要知道法式抛光几乎是一种艺术形式/技能,需要大量练习才能做到正确。您可以在YouTube上搜索说明,虽然看起来相当简单但操作非常混乱。诀窍似乎是用浸在棉绒中的抹布擦亮,这样你就可以在工作时挤出木头上的抛光剂。如果你只是用抹布试一下,大约3/4的方式,当乙醇蒸发并且抹布开始拖动时,抛光开始变干。所以最后不是获得高光泽度,我设法涂上几层,用1500级纸轻轻擦拭,再涂一些,最后看起来还不错。然而,我的指甲上仍然留有法国抛光剂污渍。

使用所有硬件进入超声波清洁器并使用一些Silvo Polish抛光表盘时,清理其他部件变得更加容易。 Brasso可以选择,但是Silvo和更多的肘部润滑脂足以清洁表盘指示器。

最后,我有一个漂亮的木箱准备好时间机器本身。

本节中的步骤

1。剥去任何螺栓/表盘和布料。

2。木材用硝化物剥离案例

3。打磨单板

4。修复格栅

5.清洁扬声器布

6.法兰抛光外壳

7.超声波清洁螺丝和旋钮

8。抛光百分表

步骤5:Raspberry Pi Zero和放大器

使用普通的Raspberry PI音频输出非常简单,因为它有一个音频插孔输出,但对于Pi Zero,没有真正的原生选项。我尝试了一些解决方案,你可以重新布线GPIO引脚,然后使用低通滤波器,但我从来没有真正能够得到一些听起来不错的东西,当然你也需要一个放大器来获得可用的东西。有很多DAC帽子,但这些是为那些寻找真正好的音频和过度杀戮这些项目的人。还有一些不错的廉价音响帽子,内置扬声器,但只是不够响亮。所以我现在决定使用Adafruit的i2S放大器分线板,它可以一次性解决所有问题。请注意它是i2S而不是i2C

你只需要几根线就可以启动并运行,并且有足够的扬声器,你可以得到一些伟大的,响亮的单声道音频。

第6步:进行新的拨号

这里的想法是当然是用一个显示年份而不是频率的表盘替换现有的表盘和玻璃。幸运的是,现有的只是一个印刷插页,所以我把它放到扫描仪上并将其复制到Paint Shop Pro中,使用克隆工具擦掉旧数字,然后每年输入一些新的数字。随着玻璃,收音机中的一个被划伤和破裂,结果也是塑料制成的。我打印出只是表圈环绕,使测试装配变得容易,最初试图用丙烯酸制作一个。我一般对丙烯酸没有足够的耐心,并在试图钻中心孔时最终破解它。所以我使用1.5毫米聚碳酸酯,这更容易钢锯和钻孔。您可以根据您居住的地方找到它也称为Lexan或Macrolon,它也需要一个文件,所以我很快就有一个适合的表圈和表盘。有趣的是,原始纸张上面都有轻微的金属沉积物,我只能假设它是受原始黄铜指针影响的人,也许是一些老化过程?

第7步:音量和选择器控件

Raspberry pi修补的一个缺点是它没有任何原生模拟输入。如果你添加一个简单的ADC模数转换器)并且MPC3002符合这个要求并且它将模拟输入转换为可以在SPI总线上读取的10位值,那么问题就不是太大了。

您发现的几乎所有示例都适用于MPC3008,这是一个4通道设备,其代码肯定不适用于MPC3002。似乎还有许多例子也不起作用,但有一个我可以确认作品,它的代码可以在这里找到。

https://github.com/CaptainStouf/Adafruit-raspi-pyt.。.

使用此代码,您可以轻松阅读两个频道并使用结果。我的例子是使用一个用于卷,另一个用于日期选择。我在某一点上也安装了一个旋转编码器,但是单个转动音量更合适,而且频率选择器也意味着我可以将它全部组装起来,然后用一个很好的大案例声明来调整年份标记的位置。当然pyhon不支持case语句所以if if else else语句将完成这项工作。

图片显示MCP3002位于小型原型板和10K电位器上

步骤8:电源和控制

Pi刚刚运行USB电源,因此非常容易上手,但如果只是猛拉电源,最终会破坏SD卡。有很多方法可以监控按下按钮并启动关机,但是您往往需要重新启动电源才能将其重新启动。为了解决这个问题并制作一个易于使用的项目,我使用了Pimoroni ON/OFF垫片。这可以让你按下一次然后再打开电源然后长按它就可以完全关闭。为了使它有点便携,我使用一个旧的电源组来处理电池充电。 Powerbanks足够便宜,能够在相当长的时间内运行Pi。

我按下按钮使按钮合适地放在旧主电源线从后面出来的位置。当Pi启动时出现延迟时,我将一根LED硬接线连接到3v3导轨上,当PI接通电源并在表盘上提供真正的真实发光时。我把270R电阻放在一边,另一端放到地上。如果你想提供额外的效果,如闪烁,你也可以在GPIO引脚上添加另一个效果,但是现在这足以显示电源已打开。

步骤9:装出案例

箱子和底盘都经过准备和测试,只需要几个4毫米的螺栓和Nyloc螺母就可以使用。法兰式自攻螺钉可以将后背固定到位。

电源按钮也很好地安装在旧电源引线孔中。

我也想重新使用旧的旋钮,它们最初的设计似乎是用于黄铜棒,而且对于花盆来说有点太大了。由于这不会得到任何粗暴的处理,我只是在罐子上滑了一些热缩,然后将旋钮粘在那上面。它握得很好而且很紧,如果有必要你仍然可以分开。

第10步:下载声音文件

我正在使用MP3文件,有很多精选的Archive.org,你可以找到分组广播战时广播,主要有两种选择可供选择。

我从主要的新闻选择开始,然后将这些选择复制到PI的目录中。您还可以在以下链接中找到更大的选择,称为Big one。每年有数百个广播,其数量和范围相当惊人。

https://archive.org/details/1939RadioNews

https://archive.org/details/1940RadioNews

https://archive.org/details/1941RadioNews

https://archive.org/details/1942RadioNews

https://archive.org/details/1943RadioNews

https://archive.org/信息/1944RadioNews

https://archive.org/details/1945RadioNews

更大的收藏

https://archive.org/details/WWII_News_1939

https://archive.org/details/WWII_News_1940

https://archive.org/details/WWII_News_1941

https://archive.org/details/WWII_News_1942

https://archive.org/details/WWII_News_1943

https://archive.org/details/WWII_News_1944

https://archive.org/details/WWII_News_1945

我使用Filezilla作为一种简单的方法将它们传输到Pi,因为它可以使用SSH登录和传输,因此无需设置SAMBA驱动器或FTP服务器。

步骤11:播放文件的电路和软件

放大器工作完毕后,您可以按照下面的设置链接进行操作需要安装mpg123播放器,非常直接的谷歌搜索Python代码如下。只需确保在Raspi配置中启用了i2和SPI。我已将此文件放入目录/home/pi/volume/中,以便我可以在以后启动时运行它。

#!/usr/bin/env python

# WW2 Radio - software to read MCP3002 ADC and convert to volume and year adjustment

# Ouput via i2S amplifier 20/10/2018 - Ajax Jones

# Code fragments supplied from https://learn.adafruit.com/adafruit-max98357-i2s-class-d-mono-amp/raspberry-pi-usage

# MCP 3002 Python https://github.com/CaptainStouf/Adafruit-raspi-python/blob/master/Adafruit_MCP3002/MCP3002.py

import RPi.GPIO as GPIO, time, os

from os import listdir

import subprocess

from time import sleep

import random

GPIO.setmode(GPIO.BCM)

# read the SPI data from the MCP3002 chip, 2 possible adc‘s (0 and 1)

def readadc(adcnum, clockpin, mosipin, misopin, cspin):

if ((adcnum 》 1) or (adcnum 《 0)):

return -1

GPIO.output(cspin, True)

GPIO.output(clockpin, False) # start clock low

GPIO.output(cspin, False) # bring CS low

commandout = adcnum 《《 1;

commandout |= 0x0D # start bit + single-ended bit + MSBF bit

commandout 《《= 4 # we only need to send 4 bits here

for i in range(4):

if (commandout & 0x80):

GPIO.output(mosipin, True)

else:

GPIO.output(mosipin, False)

commandout 《《= 1

GPIO.output(clockpin, True)

GPIO.output(clockpin, False)

adcout = 0

# read in one null bit and 10 ADC bits

for i in range(11):

GPIO.output(clockpin, True)

GPIO.output(clockpin, False)

adcout 《《= 1

if (GPIO.input(misopin)):

adcout |= 0x1

GPIO.output(cspin, True)

adcout /= 2 # first bit is ’null‘ so drop it

return adcout

# Use these pinouts for the raspberry pi zero

SPICLK = 11

SPIMOSI = 10

SPIMISO = 9

SPICS = 8

# set up the SPI interface pins

GPIO.setup(SPIMOSI, GPIO.OUT)

GPIO.setup(SPIMISO, GPIO.IN)

GPIO.setup(SPICLK, GPIO.OUT)

GPIO.setup(SPICS, GPIO.OUT)

# Note that bitbanging SPI is incredibly slow on the Pi as its not

# a RTOS - reading the ADC takes about 30 ms (~30 samples per second)

# which is awful for a microcontroller but better-than-nothing for Linux

# list year , this retrieves a list of files from the specified directory and returns the list

def list_year(radio_year):

war_dir = ’/home/pi/radio/WWII_News_‘+radio_year

mp3_files = [ f for f in listdir(war_dir) if f[-4:] == ’.mp3‘ ]

if not (len(mp3_files) 》 0):

print “No mp3 files found!”

return mp3_files

print “--WW2 Radio ---------------------------------------------------------------”

last_read = 0 # store the last position of the volume pot

last_year = 0 # store the last position of the frequency pot

tolerance = 5 # allow a small tolerance so slight movement of the pots doesnt cause a change

while True:

trim_pot_changed = False

year_pot_changed = False

for adcnum in range(2):

ret = readadc(adcnum, SPICLK, SPIMOSI, SPIMISO, SPICS)

if (adcnum == 0): # read the pot for the year selector to see it has moved

year_adjust = abs(ret - last_year)

if ( year_adjust 》 tolerance+10):

year_pot_changed = True

if (year_pot_changed): # Values for the if then checks can be made after its built

subprocess.call([’killall‘, ’mpg123‘]) # kill any MP3 running

sleep(0.1);

if ret 《=50:

war_year=“1939”

elif (ret 》50 and ret 《150):

war_year=“1940”

elif (ret 》=150 and ret 《250):

war_year=“1941”

elif (ret 》=250 and ret 《350):

war_year=“1942”

elif (ret 》=350 and ret 《450):

war_year=“1943”

elif (ret 》=450 and ret 《550):

war_year=“1944”

elif (ret 》=550):

war_year=“1945”

# save the value of the pot for the next time around the loop

last_year = ret

print (“Playing from ”),

print (war_year),

print (“ number of files=”),

war_dir = ’/home/pi/radio/WWII_News_‘+war_year+’/‘

play_list = list_year(war_year)

num_of_files = len(play_list)

print num_of_files

play_file = random.randint(1,num_of_files) # randomly select one of the files to play

war_mp3 = war_dir + play_list[play_file]

subprocess.Popen([’mpg123‘, war_mp3]) # Use mpg123 as the player for the audio

sleep (0.1); # provide a slight pause before continuing

if (adcnum == 1): # read the volume pot

pot_adjust = abs(ret - last_read)

if ( pot_adjust 》 tolerance):

trim_pot_changed = True

if ( trim_pot_changed ):

set_volume = ret / 10.24 # convert 10bit adc0 (0-1024) pot value into a 0-100 volume level

set_volume = round(set_volume)# round out decimal value

set_volume = int(set_volume) # cast volume as integer

# Use the value from the pot to send a level to the amixer prog

print ’Volume = {volume}%‘ .format(volume = set_volume)

set_vol_cmd = ’sudo amixer cset numid=1 -- {volume}% 》 /dev/null‘ .format(volume = set_volume)

os.system(set_vol_cmd) # set volume

# save the potentiometer reading for the next loop

last_read = ret

# A pause after changing the volume so we dont act on too many changes if the pot changes fast

time.sleep(0.5)

步骤12:在加载时自动启动软件

有许多方法可以在启动时在Pi上运行命令,但我发现这是最简单的,打开Crontab

sudo crontab -e

现在只需添加此行

@reboot python /home/pi/volume/year.py &

这应该可以解决问题,下次重新启动音频控制时,编程将运行,您应该听到第一次广播。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 收音机
    +关注

    关注

    57

    文章

    575

    浏览量

    74319
收藏 人收藏

    评论

    相关推荐

    不同调制方式收音机的特征

    AM波收音机,对海外广播另当别论,即使是中波频带频率的电波,受电离层的反射可传播至遇远的的距离,在深夜有时可出乎意料地接收到500~1000km以外的收音机
    的头像 发表于 02-05 11:04 737次阅读

    ta7358ap做调频收音机灵敏度

    调频收音机是一种常见的消费电子产品,它能够接收广播电台的调频(Frequency Modulation,简称FM)信号并将其转化为声音。而在收音机领域,灵敏度一直是评判收音机质量的重要指标之一。本文
    的头像 发表于 01-04 10:26 970次阅读

    德生收音机电路介绍

    个人网络下载整理后的收音机说明书
    发表于 12-01 09:40 0次下载

    网络收音机原理图

    网络收音机和普通收音机有以下几个主要区别: 1. 接收方式:普通收音机通过电磁波来接收无线电信号,而网络收音机通过互联网连接来接收网络广播信号。普通
    发表于 11-09 08:31 0次下载
    网络<b class='flag-5'>收音机</b>原理图

    基于ARM内核的网络收音机的设计与实现

    电子发烧友网站提供《基于ARM内核的网络收音机的设计与实现.pdf》资料免费下载
    发表于 10-25 10:23 0次下载
    基于ARM内核的网络<b class='flag-5'>收音机</b>的设计与实现

    基于数字式调频收音机设计

    电子发烧友网站提供《基于数字式调频收音机设计.pdf》资料免费下载
    发表于 10-25 10:17 0次下载
    基于数字式调频<b class='flag-5'>收音机</b>设计

    单管收音机电路图讲解

    家庭娱乐重要方式之一。到了学生时代,邮购、制作一个三管直放式晶体管收音机套件的失败经验,并没让我对电子学失去兴趣,到如今虽然也学的并不深入,但依然希望每天能多了解一些新的或旧的电子学知识。
    的头像 发表于 10-24 10:17 2576次阅读
    单管<b class='flag-5'>收音机</b>电路图讲解

    收音机工作原理

    电子发烧友网站提供《收音机工作原理.pdf》资料免费下载
    发表于 10-24 09:29 0次下载
    <b class='flag-5'>收音机</b>工作原理

    S66E六管超外差式调幅收音机制作报告

    电子发烧友网站提供《S66E六管超外差式调幅收音机制作报告.doc》资料免费下载
    发表于 10-13 10:04 0次下载
    S66E六管超外差式调幅<b class='flag-5'>收音机制作</b>报告

    七管超外差调幅收音机

    电子发烧友网站提供《七管超外差调幅收音机.doc》资料免费下载
    发表于 10-13 09:21 1次下载
    七管超外差调幅<b class='flag-5'>收音机</b>

    dsp收音机用什么芯片最好 pll与dsp收音机区别

    DSP涉及在数字领域对信号进行处理和分析。在数字收音机中,DSP用于接收、解调和处理音频信号。它可以通过数字滤波、频谱分析、降噪、均衡、编解码等方法改善音频质量。DSP可提供更灵活和精确的信号处理功能,以适应不同的
    的头像 发表于 07-31 16:56 8077次阅读

    什么是音频变压器,如何制作音频变压器?

    音频变压器,也称为低频变压器,是在音频范围内工作的变压器。工作频率范围一般为10至20000Hz,而阻抗通常用于转换电压或改变负载。音频变压器是收音机
    的头像 发表于 06-30 11:26 5230次阅读
    什么是<b class='flag-5'>音频</b>变压器,如何<b class='flag-5'>制作</b><b class='flag-5'>音频</b>变压器?

    现代点唱机开源分享

    电子发烧友网站提供《现代点唱机开源分享.zip》资料免费下载
    发表于 06-27 11:19 0次下载
    现代<b class='flag-5'>点唱机</b>开源分享

    何用机制作Wi-Fi坦克

    电子发烧友网站提供《如何用机制作Wi-Fi坦克.zip》资料免费下载
    发表于 06-25 15:43 0次下载
    如<b class='flag-5'>何用</b>相<b class='flag-5'>机制作</b>Wi-Fi坦克

    RadioOne RDA5807收音机

    收音机
    llionwang
    发布于 :2023年05月31日 08:24:37