Inhoudsopgave:

WW2 Radio Broadcast Time Machine - Ajarnpa
WW2 Radio Broadcast Time Machine - Ajarnpa

Video: WW2 Radio Broadcast Time Machine - Ajarnpa

Video: WW2 Radio Broadcast Time Machine - Ajarnpa
Video: WW2 broadcasts from 1939-1945 2024, November
Anonim
Image
Image
WW2 Radio-uitzending Tijdmachine
WW2 Radio-uitzending Tijdmachine

Het idee hierachter was om wat onderdelen te gebruiken die ik had liggen en om een audiojukebox te bouwen die was gemaakt in een oude radio. Om er wat meer doel achter te laten, besloot ik het ook te vullen met oude radio-uitzendingen uit de Tweede Wereldoorlog en vervolgens de frequentieknop opnieuw te gebruiken om een individueel oorlogsjaar te selecteren en de relevante uitzendingen zouden dan worden afgespeeld. Ik had een paar verzamelingen mp3-opnames gezien, dus alles was klaar om te gaan.

Qua hardware is mijn favoriet de arduino of de raspberry pi zero, en hiervoor zal ik de raspberry pi zero gebruiken. Het heeft echter zijn nadelen en in dit geval is het het ontbreken van gebruiksvriendelijke audio en geen gemakkelijke analoge ingangen. Om dit te verhelpen, gebruik ik meestal de Adafruit I2S 3W Class D Amplifier Breakout - MAX98357A, wat een heel gemakkelijke manier is om audio aan de Pi toe te voegen en voor de analoge ingang een MCP 3002 die een tweekanaals-naar-SPI-converter is. Over het algemeen hebben mensen de neiging om een MCP 3008 te gebruiken die 4 ingangen heeft, maar ik dacht dat dat te gemakkelijk zou zijn, gelukkig heb ik uiteindelijk wat software kunnen vinden die hiermee werkte.

Een van de andere problemen met het gebruik van een PI is dat het de neiging heeft om te lijden als je het gewoon uitschakelt zonder een shutdown uit te voeren, ik ben dit ontelbare keren tegengekomen en het lijkt altijd het netwerkconfiguratiebestand te beschadigen. Omdat dit als een eenvoudige stand-alone beschouwd zou worden, zou dat een probleem zijn geweest, dus heb ik ook een Pimoroni aan/uit-schijf toegevoegd die zowel een sierlijke afsluiting uitvoert met een druk op de knop, maar ook een opstart mogelijk maakt met dezelfde knop.

Stap 1: WW2 Time Machine-radio-onderdelenlijst

De benodigde onderdelen:

  1. oude radio
  2. Politoer
  3. Schuurpapier
  4. Lexan voor dial
  5. Krimpkous
  6. Raspberry Pi Zero
  7. I2S Amp
  8. AAN/UIT Shim
  9. Spreker
  10. Krachtsteen
  11. MCP3002
  12. LED
  13. Weerstand 270R
  14. 2x 10k Potten
  15. Druk om over te schakelen
  16. USB-kabel

Stap 2: Een oude radio zoeken

Een oude radio zoeken
Een oude radio zoeken
Een oude radio zoeken
Een oude radio zoeken
Een oude radio zoeken
Een oude radio zoeken

De eerste stap is natuurlijk om een geschikte oude radio te vinden en ik heb deze op ebay kunnen vinden voor £15. In het begin was de verleiding groot om het aan de gang te krijgen, maar toen het chassis uitkwam en de volledige reeks weerstanden en condensatoren te zien was die vervangen moesten worden, voelde ik me niet zo slecht om het uit elkaar te halen. Hoewel het niet echt een set uit de jaren 40 is, zijn er enkele zelfbouwpakketten uit die tijd die er zeker hetzelfde uitzagen.

Stap 3: De oude radio verwijderen en een nieuw chassis bouwen

De oude radio verwijderen en een nieuw chassis bouwen
De oude radio verwijderen en een nieuw chassis bouwen
De oude radio verwijderen en een nieuw chassis bouwen
De oude radio verwijderen en een nieuw chassis bouwen
De oude radio verwijderen en een nieuw chassis bouwen
De oude radio verwijderen en een nieuw chassis bouwen

Het is vrij eenvoudig om een van deze uit elkaar te halen, over het algemeen lijkt het erop dat het chassis aan de behuizing is gemonteerd en waarop alles is gemonteerd. Dus als het eenmaal is losgeschroefd en de knoppen zijn losgelaten, schuift het gewoon naar buiten. De meeste zijn volledig op een subchassis gebouwd. Mijn oorspronkelijke bedoeling was om een luidspreker te gebruiken uit een uit elkaar gescheurde bluetooth-luidsprekerbox, maar ik vroeg me af of de oude zou werken. Het was een aangename verrassing om te ontdekken dat het niet alleen werkte, maar ook echt geweldig klonk. Dus de volgende stap hier was om alles te blijven meten en een nieuw chassis te bouwen in Tinkercad. Ik heb het gebied van de frequentiekiezer opnieuw gedefinieerd en de luidspreker op dezelfde plaats gehouden. Daarnaast is er een montageplaat voor de pi zero toegevoegd. Ik heb het uitgeprint in PETG waarvan ik vind dat het minder bestand is tegen kromtrekken en een proefpassing van alle onderdelen leek aan te tonen dat het zou werken. Ik moest een beetje spelen met de volumemontage, zodat de nieuwe potten goed zouden passen en nog steeds door de behuizing zouden kunnen worden gemonteerd.

Je kunt het 3D-chassis hier downloaden als je eraan wilt sleutelen

www.thingiverse.com/thing:3174818

Stap 4: De zaak renoveren

De zaak renoveren
De zaak renoveren
De zaak renoveren
De zaak renoveren
De zaak renoveren
De zaak renoveren

Het eerste wat je moest doen toen de koffer was gestript, was beslissen wat te doen met de afwerking. Hoewel de behuizing niet al te slecht was, dacht ik er aanvankelijk aan om hem gewoon goed schoon te maken om de versleten patina-look te behouden. Vaak zal een oude kast met azijn afvegen, maar er waren een paar plekken waar de lak was doorgebroken, dus besloot ik hem terug te strippen. Bij oude houten kisten zijn ze normaal gesproken bedekt met een dun fineer van hout, maar het is niet zo dun dat je er niet goed op kunt schuren. Eerst werd het luidsprekerroosterdoek verwijderd, wat behoorlijk walgelijk was met ongeveer 50 jaar stof en vuil erin en aan de kant gezet. Toen kwamen er een paar dikke lagen Nitromors, een verfafbijtmiddel en uiteindelijk kwam de oude vernis eraf. Dit moest twee keer worden gedaan omdat het waarschijnlijk ooit over de originele afwerking was gevernist. Om enkele krassen te verwijderen en het een mooiere afwerking te geven, werd het geschuurd met ongeveer 100 korrelig papier en vervolgens een laatste keer schuren met een middelgrote schuurspons. Doe dit alles in lijn met de nerf en veeg het vervolgens af met terpentine om eventueel stof te verwijderen. Tegelijkertijd werd de doos ook vastgezet met wat houtlijm waar het fineer een beetje was weggetrokken. De houten roosterbalken waren ook een beetje gedelamineerd, dus meer houtlijm en por de stukken terug waar mogelijk. Toen dit was opgedroogd, heb ik gewoon een scalpel gebruikt om de randen van het hout schoon te maken en ze bruin te schilderen met wat Tamiya-acrylverf.

Mijn eerste gedachte was om gewoon het luidsprekerdoek te vervangen, maar de kosten van authentiek ogend materiaal zijn behoorlijk hoog omdat het de neiging heeft om in lange lengtes te worden verkocht. Na een beetje op zoek te zijn gegaan naar vintage radioforums, lijkt het alsof je oude kleding terug kunt brengen met een weekje. Dus met koud water en veel afwasmiddel heb ik het een nachtje geweekt en verrassend genoeg kwam het, toen het weer opdroogde, redelijk schoon aan.

Nu ging ik de afwerking aanpakken en besloot in eerste instantie om het een blanke lak te geven, toen dacht ik aan het gebruik van een spuitvernis en terwijl ik op het vernis/verf-eiland van de plaatselijke bouwmarkt een fles french polish vond. Omdat ik dacht dat dit een goede authentieke afwerking zou zijn, besloot ik het eens te proberen. Dus nu moet je weten dat Frans polijsten zo'n beetje een kunstvorm/vaardigheid is die veel oefening vergt om het goed te krijgen. Je kunt zoeken naar instructies op YouTube en hoewel het er vrij eenvoudig uitziet, is het een behoorlijk rommelige operatie. Het lijkt erop dat je de nagellak in een in watten gedrenkte doek krijgt, zodat je de nagellak tijdens het werken op het hout kunt uitknijpen. Als je het gewoon met een doek probeert, begint ongeveer 3/4 van de manier waarop de nagellak uitdroogt als de ethanol verdampt en de doek begint te slepen. Dus in plaats van de hoogglansafwerking te krijgen, slaagde ik er uiteindelijk in om een paar lagen aan te brengen, lichtjes te schuren met papier van de kwaliteit 1500, dan nog een paar aan te brengen en het zag er uiteindelijk goed uit. ik heb echter nog steeds Franse nagellakvlekken op mijn vingernagels.

Het schoonmaken van de andere onderdelen was veel gemakkelijker omdat alle hardware in de ultrasone reiniger ging en de wijzerplaat werd opgepoetst met wat Silvo Polish. Brasso zou de keuze hebben, maar Silvo en een beetje meer elleboogvet was genoeg om de meetklok schoon te maken.

Aan het einde hiervan had ik een redelijk goed uitziende houten kist klaar voor de tijdmachine zelf.

Stappen in deze sectie1. Verwijder eventuele bouten/wijzerplaten en doek.

2. Hout strip de behuizing met nitromors

3. Afschuren van het fineer

4. Het rooster repareren

5. De luidsprekerdoek reinigen

6. Frans polijsten van de behuizing;

7. Ultrasoon reinigen van de schroeven en knoppen;

8. De meetklok polijsten

Stap 5: Raspberry Pi Zero en versterker

Raspberry Pi Zero en versterker
Raspberry Pi Zero en versterker
Raspberry Pi Zero en versterker
Raspberry Pi Zero en versterker
Raspberry Pi Zero en versterker
Raspberry Pi Zero en versterker

Met een normale Raspberry PI is audio-uitgang vrij eenvoudig omdat deze een audio-jack-uitgang heeft, maar voor de Pi Zero zijn er geen echte native opties. Er zijn enkele oplossingen die ik heb geprobeerd, waarbij je GPIO-pinnen kunt omleiden en vervolgens een laagdoorlaatfilter kunt gebruiken, maar ik heb nooit echt iets kunnen krijgen dat fatsoenlijk klinkt, en natuurlijk heb je ook een versterker nodig om iets bruikbaars te krijgen. Er zijn tal van DAC Hats, maar deze zijn voor mensen die op zoek zijn naar echt goede audio en overkill voor dit soort projecten. Er zijn ook een aantal leuke goedkope Audio-hoeden met ingebouwde luidsprekers, maar net niet luid genoeg hiervoor. Dus reken ik nu af op het i2S versterker breakout board van Adafruit die alle problemen in één keer oplost. Houd er rekening mee dat het i2S is en niet i2C.

Je hebt maar een paar draden nodig om dit aan de gang te krijgen en met een luidspreker die goed genoeg is, kun je geweldige, luide mono-audio krijgen.

Stap 6: Een nieuwe wijzerplaat maken

Een nieuwe wijzerplaat maken
Een nieuwe wijzerplaat maken
Een nieuwe wijzerplaat maken
Een nieuwe wijzerplaat maken
Een nieuwe wijzerplaat maken
Een nieuwe wijzerplaat maken

Het idee hier is natuurlijk om de bestaande wijzerplaat en glas te vervangen door een die het jaar laat zien in plaats van de frequentie. Gelukkig was de bestaande slechts een gedrukte bijlage, dus ik liet hem op de scanner vallen en kopieerde hem naar Paint Shop Pro, gebruikte de kloontool en wiste de oude nummers weg en typte toen gewoon een paar nieuwe voor elk jaar. Het glas in de radio was bekrast en gebarsten en bleek ook van plastic te zijn. Ik heb alleen de rand van de ring uitgeprint om het testen gemakkelijk te maken en heb oorspronkelijk geprobeerd er een van acryl te maken. Ik heb over het algemeen niet genoeg geduld met acryl en heb het uiteindelijk gekraakt toen ik het middelste gat probeerde te boren. Dus nam ik mijn toevlucht tot 1,5 mm polycarbonaat, wat zoveel gemakkelijker te ijzerzagen en boren is. Je kunt het ook Lexan of Macrolon noemen, afhankelijk van waar je woont en er is ook een bestand voor nodig, dus ik had al snel een ring en wijzerplaat die pasten. Interessant was ook dat het originele papier overal een lichte metaalafzetting had, ik kan alleen maar aannemen dat het iemand was die beïnvloed was door de originele koperen wijzer, misschien een verouderingsproces?

Stap 7: Volume- en selectieknoppen

Volume- en selectieknoppen
Volume- en selectieknoppen

Een van de nadelen van de Raspberry pi om te knutselen is dat hij geen native analoge ingang heeft. Niet echt een probleem als je een simpele ADC (Analog to Digital Converter) toevoegt en de MPC3002 past hier en zet een analoge input om in een 10bit waarde die op de SPI-bus kan worden uitgelezen.

Bijna alle voorbeelden die je vindt zijn voor de MPC3008, dat is een 4-kanaals apparaat en de code daarvoor werkt zeker niet met de MPC3002. Er lijken ook veel voorbeelden te zijn die ook niet werken, maar er is er een waarvan ik kan bevestigen dat deze werkt en de code ervan is hier te vinden.

github.com/CaptainStouf/Adafruit-raspi-pyt…

Met deze code kun je eenvoudig twee kanalen inlezen en de resultaten gebruiken. Mijn voorbeeld gaat er een gebruiken voor het volume en de andere voor de datumselectie. Ik had op een gegeven moment ook een roterende encoder geïnstalleerd, maar een volume met één draai is meer passend en met de frequentieselector betekende het ook dat ik alles kon monteren en dan gewoon de locaties van de jaarmarkeringen kon afstemmen met een geweldige grote case-statement. Natuurlijk ondersteunt pyhon de case-statement niet, dus een lange, als dan anders, if-statement het werk zal doen.

De afbeelding toont de MCP3002 zittend op een klein prototypebord en de 10K-pot

Stap 8: Voeding en bediening

Voeding en controle
Voeding en controle
Voeding en controle
Voeding en controle
Voeding en controle
Voeding en controle

De Pi loopt gewoon van USB-stroom af, dus heel gemakkelijk om aan de slag te gaan, maar je zult uiteindelijk de SD-kaart beschadigen als je gewoon aan de stroom trekt. Er zijn veel manieren om het indrukken van een knop te controleren en het afsluiten te initiëren, maar dan moet je meestal de stroom uitzetten om het weer op gang te krijgen. Om dit te omzeilen en een eenvoudig te gebruiken project te maken, gebruik ik de Pimoroni ON/OFF-shim. Hiermee kun je eenmaal drukken en het wordt ingeschakeld en dan lang indrukken en het zal een schone afsluiting uitvoeren. Om het ook een beetje draagbaar te maken, gebruik ik een oude powerbank die ook het opladen van de batterij afhandelt. Powerbanks zijn goedkoop genoeg en kunnen de Pi een tijdje laten draaien.

Ik heb de push-to-make-knop passend aangebracht op de plek waar het oude netsnoer uit de achterkant kwam. Omdat er een vertraging is terwijl de Pi opstart, heb ik een LED hard aangesloten op de 3v3-rail die gaat branden en zodra de PI stroom krijgt en een mooie authentieke gloed op de wijzerplaat geeft. Ik heb een 270R-weerstand in de lijn gezet en het andere uiteinde gewoon op aarde. Je zou ook nog een andere aan een GPIO-pin kunnen toevoegen als je extra effecten zoals flikkering wilt geven, maar voorlopig is dit voldoende om te laten zien dat de stroom aan staat.

Stap 9: De behuizing uitrusten

De behuizing uitrusten
De behuizing uitrusten
De behuizing uitrusten
De behuizing uitrusten
De behuizing uitrusten
De behuizing uitrusten

Met de behuizing en het chassis allemaal klaar en getest, waren het slechts een paar 4 mm bouten en Nyloc-moeren om het binnen te houden. Zelftappende schroeven met flens houden de achterkant op zijn plaats.

De aan / uit-knop paste ook mooi in het oude netsnoergat.

Ik wilde ook de oude knoppen hergebruiken en ze waren oorspronkelijk ontworpen, het lijkt op koperen staven te gaan en waren iets te groot voor de potten. Omdat dit geen ruwe behandeling zal krijgen, heb ik gewoon wat krimpkous over de potten geschoven en vervolgens de knoppen daarop gelijmd. Het grijpt lekker strak en je kunt het nog uit elkaar halen als dat nodig is.

Stap 10: De geluidsbestanden downloaden

Image
Image

Ik gebruik MP3-bestanden en er is een fantastische selectie van Archive.org, je kunt gegroepeerde uitzendingen van uitzendingen in oorlogstijd vinden en er zijn hoofdzakelijk twee selecties om uit te kiezen.

Ik ben begonnen met de voornamelijk nieuwsselectie en deze worden vervolgens gekopieerd naar mappen op de PI. Je kunt ook de grotere selectie vinden, genaamd de Grote op de volgende link. Er zijn honderden uitzendingen voor elk jaar en het is verbazingwekkend hoeveel en het bereik hiervan.

archive.org/details/1939RadioNews

archive.org/details/1940RadioNews

archive.org/details/1941RadioNews

archive.org/details/1942RadioNews

archive.org/details/1943RadioNews

archive.org/details/1944RadioNews

archive.org/details/1945RadioNews

Grotere collectie

archive.org/details/WWII_News_1939

archive.org/details/WWII_News_1940

archive.org/details/WWII_News_1941

archive.org/details/WWII_News_1942

archive.org/details/WWII_News_1943

archive.org/details/WWII_News_1944

archive.org/details/WWII_News_1945

Ik gebruik Filezilla als een gemakkelijke manier om deze naar de Pi over te brengen, omdat het kan inloggen en overbrengen met SSH, dus het is niet nodig om een SAMBA-schijf of een FTP-server in te stellen.

Stap 11: Circuit en software om de bestanden af te spelen

Wat nu?
Wat nu?

Zodra je de versterker hebt laten werken en je kunt de onderstaande installatielink volgen, moet je ook de mpg123-speler installeren, vrij eenvoudig google zoeken naar de Python-code hieronder. Zorg ervoor dat i2s en SPI zijn ingeschakeld in uw Raspi Config. Ik heb dit bestand in de map /home/pi/volume/ gezet, zodat ik het later bij het opstarten kan uitvoeren.

#!/usr/bin/env python

# WW2 Radio - software om MCP3002 ADC uit te lezen en om te zetten naar volume- en jaaraanpassing # Uitgang via i2S-versterker 2018-10-20 - Ajax Jones # Codefragmenten aangeleverd via 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 importeer RPi. GPIO als GPIO, tijd, os van os import listdir import subproces van time import sleep import random GPIO.setmode(GPIO. BCM) # lees de SPI data van de MCP3002 chip, 2 mogelijke adc's (0 en 1) def readadc(adcnum, clockpin, mosipin, misopin, cspin): if ((adcnum > 1) of (adcnum < 0)): return -1 GPIO.output(cspin, True) GPIO.output(clockpin, False) # startklok laag GPIO.output(cspin, False) # bring CS low commandout = adcnum << 1; commandout |= 0x0D # start bit + single-ended bit + MSBF bit commandout <<= 4 # we hoeven hier maar 4 bits te sturen voor 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 # gelezen in één null-bit en 10 ADC-bits voor i binnen bereik (11): GPIO.output(clockpin, True) GPIO.output(clockpin, False) adcout < 0): print "Geen mp3-bestanden gevonden!" return mp3_files print "--WW2 Radio ------------------------------------------ ---------------------" last_read = 0 # sla de laatste positie van de volumepot op last_year = 0 # sla de laatste positie van de frequentiepot op tolerantie = 5 # laat een kleine tolerantie toe zodat een kleine beweging van de potten geen verandering veroorzaakt terwijl True: trim_pot_changed = False year_pot_changed = False voor adcnum in bereik(2): ret = readadc(adcnum, SPICLK, SPIMOSI, SPIMISO, SPICS) if (adcnum == 0): # lees de pot voor de jaarkiezer om te zien dat deze is verplaatst year_adjust = abs(ret - last_year) if (year_adjust > tolerantie+10): year_pot_changed = True if (year_pot_changed): # Waarden voor de als dan controles kunnen worden gemaakt na zijn ingebouwde subprocess.call(['killall', 'mpg123']) # kill elke MP3 met sleep(0.1); if ret 50 en ret =150 en ret =250 en ret =350 en ret =450 en ret =550): war_year="1945" # bewaar de waarde van de pot voor de volgende keer rond de lus last_year = ret print (" Afspelen vanaf "), 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) # selecteer willekeurig een van de bestanden om af te spelen war_mp3 = war_dir + play_list[play_file] subprocess. Popen(['mpg123', war_mp3]) # Gebruik mpg123 als de speler voor de audioslaap (0.1); # geef een kleine pauze voordat u verdergaat als (adcnum == 1): # lees het 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) potwaarde in een 0-100 volumeniveau set_volume = round(set_volume)# afronding decimale waarde set_volume = int(set_volume) # cast volume als geheel getal # Gebruik de waarde van de pot om een level te sturen naar de 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 # sla de potentiometer-uitlezing op voor de volgende lus last_read = ret # Een pauze na het wijzigen van het volume, zodat we niet te veel veranderingen uitvoeren als de pot snel verandert time.sleep(0.5)

Stap 12: Auto Boot the Software on Load

Er zijn veel manieren om een opdracht op de Pi uit te voeren tijdens het opstarten, maar ik vind dit de gemakkelijkste, Open Crontab

sudo crontab -e

Voeg nu gewoon deze regel toe

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

en dat zou de truc moeten zijn, de volgende keer dat u opnieuw opstart, wordt het audiobedieningsprogramma uitgevoerd en zou u uw eerste uitzending moeten horen.

Stap 13: Wat nu?

Wat nu?
Wat nu?

Ik ben momenteel bezig met het bouwen van een kleine PCB om bovenop de Raspberry Pi te zitten, zodat ik ergens kan hebben om de i2S-versterker en de ADC te monteren, samen met enkele schroefaansluitingen voor de potten. Hierdoor kan ik de installatie een beetje netter maken en gemakkelijk een paar meer maken voor vrienden.

Ik ben momenteel wat bestanden aan het verzamelen voor een ruimterace-radio, te beginnen met spoetnik en verder tot aan de maanlandingen.

Laat het me weten als je ideeën hebt of tips of hints wilt om er zelf een in elkaar te zetten.

Afmelden.

Audiowedstrijd 2018
Audiowedstrijd 2018
Audiowedstrijd 2018
Audiowedstrijd 2018

Tweede prijs in de Audio Contest 2018

Aanbevolen: