Innehållsförteckning:

WW2 Radio Broadcast Time Machine: 13 steg (med bilder)
WW2 Radio Broadcast Time Machine: 13 steg (med bilder)

Video: WW2 Radio Broadcast Time Machine: 13 steg (med bilder)

Video: WW2 Radio Broadcast Time Machine: 13 steg (med bilder)
Video: The Moment in Time: THE MANHATTAN PROJECT 2024, November
Anonim
Image
Image
WW2 Radio Broadcast Time Machine
WW2 Radio Broadcast Time Machine

Tanken bakom detta var att använda några delar jag hade liggande och att konstruera en ljudjukebox utformad i en gammal radio. För att ge ett mer syfte bakom beslutade jag mig också för att fylla den med gamla radiosändningar från andra världskriget och sedan återanvända frekvensratten för att välja ett enskilt krigsår och de relevanta sändningarna skulle sedan spelas. Jag hade sett några samlingar av MP3 -inspelningar så allt var klart.

När det gäller hårdvara är min favorit antingen arduino eller hallon pi zero, och för detta kommer jag att använda hallon pi zero. Men det har sina nackdelar och i detta fall är det bristen på lättanvänt ljud och inga enkla analoga ingångar. För att övervinna detta brukar jag använda Adafruit I2S 3W Class D Amplifier Breakout - MAX98357A som är ett riktigt enkelt sätt att lägga till ljud till Pi och för den analoga ingången en MCP 3002 som är en tvåkanals till SPI -omvandlare. Generellt brukar folk använda en MCP 3008 som har 4 ingångar men jag trodde att det skulle vara för enkelt, lyckligtvis lyckades jag hitta någon programvara som fungerade med dessa i slutändan.

Ett av de andra problemen med att använda en PI är att den tenderar att lida om du bara stänger av den utan att stänga av, jag har stött på det otaliga gånger och det verkar alltid förstöra nätverkskonfigurationsfilen. Med detta som tänkt som en enkel fristående som skulle ha varit ett problem så lade jag också till en Pimoroni On/Off Shim som utför både en graciös avstängning med ett knapptryck, men också gör det möjligt att starta upp med samma knapp.

Steg 1: WW2 Time Machine Radio Parts List

Delarna som behövs

  1. Gammal radio
  2. Franska polska
  3. Sandpapper
  4. Lexan för urtavla
  5. Värmekrymp
  6. Hallon Pi Zero
  7. I2S förstärkare
  8. ON/OFF Shim
  9. Högtalare
  10. Power brick
  11. MCP3002
  12. LED
  13. Motstånd 270R
  14. 2x 10k krukor
  15. Tryck för att växla
  16. USB -kabel

Steg 2: Hitta en gammal radio

Hitta en gammal radio
Hitta en gammal radio
Hitta en gammal radio
Hitta en gammal radio
Hitta en gammal radio
Hitta en gammal radio

Första steget är naturligtvis att hitta en lämplig gammal radio och jag lyckades hitta den här på ebay för £ 15. Det var en frestelse att få det att köra först, men när chassit kom ut och hela utbudet av motstånd och kondensatorer var på show som skulle behöva bytas ut mådde jag inte så illa om att ta isär det. Även om det strängt taget inte är en uppsättning från 1940 -talet, finns det några byggsatser från den tiden som verkligen såg likadana ut.

Steg 3: Ta bort den gamla radion och konstruera ett nytt chassi

Ta bort den gamla radion och bygga ett nytt chassi
Ta bort den gamla radion och bygga ett nytt chassi
Ta bort den gamla radion och konstruera ett nytt chassi
Ta bort den gamla radion och konstruera ett nytt chassi
Ta bort den gamla radion och bygga ett nytt chassi
Ta bort den gamla radion och bygga ett nytt chassi

Det är ganska enkelt att ta isär en av dessa, i allmänhet verkar det som att chassit är monterat på fodralet och att allt är monterat. Så när den skruvats ut och vredet släppts glider den bara ut. De flesta är helt byggda på ett underchassi. Min ursprungliga avsikt var att använda en högtalare från en sönderdelad Bluetooth -högtalarlåda, men jag undrade om den gamla skulle fungera. Det var en trevlig överraskning att upptäcka att det inte bara fungerade, men det lät också riktigt bra. Så nästa steg här var att fortsätta mäta allt och bygga ett nytt chassi i Tinkercad. Jag omdefinierade frekvensvalsområdet och höll högtalaren på samma ställe. Dessutom tillsattes en monteringsplatta för pi zero. Jag skrev ut den i PETG som jag tycker är mindre motståndskraftig mot vridning och en provning av alla delar tycktes visa att det skulle fungera. Jag var tvungen att leka lite med volymmonteringen så att de nya krukorna skulle passa bra och ändå montera genom fodralet.

Du kan ladda ner 3D -chassit här om du vill pyssla med det

www.thingiverse.com/thing:3174818

Steg 4: Renovera fallet

Renoverar fallet
Renoverar fallet
Renoverar fallet
Renoverar fallet
Renoverar fallet
Renoverar fallet

Nu var det första man skulle göra när fallet togs bort att bestämma vad man skulle göra med finishen. Även om fodralet inte var så illa tänkte jag först på att ge det en ren rengöring för att behålla det slitna patina -utseendet. Ofta kommer en torkning över med ättika att fräscha upp ett gammalt fodral, men det fanns några ställen som lacken hade sprickat igenom så jag bestämde mig för att ta bort det. Med gamla trälådor är de normalt täckta av en tunn faner av trä, men det är inte så tunt att du inte kan få en bra slipning på det. Först avlägsnades högtalargallerduken, vilket var ganska äckligt med cirka 50 års damm och smuts i den och läggs åt sidan. Sedan lossnade så småningom ett par tjocka lager Nitromors, en färgstrykare och den gamla lacken. Detta måste göras två gånger eftersom det förmodligen lackerades någon gång över den ursprungliga finishen. För att rensa några av reporna och ge den en finare finish slipades den med cirka 100 gritpapper och sedan en sista slipning med en medelslipande svamp. Gör allt detta i linje med säden och torka sedan av med sprit för att rengöra damm. Samtidigt fixerades lådan också med lite trälim där fanen hade dragit sig något. Trägrillstängerna hade också delaminerat lite, så mer trälim och peta tillbaka bitarna där det är möjligt. När detta hade torkat använde jag bara en skalpell för att rengöra träets kanter och målade dem bruna med lite Tamiya -akrylfärg.

Min första tanke var att bara byta högtalarduk, men kostnaden för äkta material är ganska brant eftersom det tenderar att säljas i långa längder. Efter att ha utforskat vintage radioforum ser det ut som om du kan ta tillbaka gammal duk med en blötläggning. Så med kallt vatten och massor av diskmedel blöt jag in det över natten och överraskande när det torkade ut igen blev det ganska rent.

Nu tänkte jag ta tag i finishen och bestämde mig först för att ge den en klar lack, sedan funderade jag på att använda en spraylack och medan jag hittade en flaska fransk polermedel i lacken/färgön på den lokala byggbutiken. Tänker att det skulle vara en bra autentisk finish bestämde jag mig för att prova. Så nu måste du veta att fransk polering är i stort sett en konstform/skicklighet som kräver mycket träning för att bli rätt. Du kan söka efter instruktioner på YouTube och även om det ser ganska enkelt ut är det en ganska rörig operation. Nackdelen verkar få polskan i en trasa genomblöt i bomullsull så att du kan pressa ut polermedel på träet medan du arbetar. Om du bara provar det med en trasa, börjar ungefär 3/4 av sättet som lacken börjar torka ut när etanolen avdunstar och trasan börjar dra. Så i slutändan, istället för att få den högglansiga finishen, lyckades jag applicera ett par lager, slipa lätt med papper från 1500 -klass, sedan applicera några till och det såg bra ut. Jag har fortfarande franska polska fläckar på naglarna.

Att städa upp de andra delarna var mycket enklare med all hårdvara som gick in i ultraljudsrengöraren och ratten polerades upp med lite Silvo Polish. Brasso skulle ha valet, men Silvo och lite mer armbågsfett räckte för att rengöra rattindikatorn.

I slutet av detta hade jag en ganska snygg trälåda redo för själva tidsmaskinen.

Steg i detta avsnitt 1. Ta bort eventuella bultar/urtavlor och trasa.

2. Trä remsan med nitromorer

3. Slipning av faner

4. Reparera gallret

5. Rengöring av högtalarduken

6. fransk polering av fodralet

7. Utrasonisk rengöring av skruvar och vred

8. Polering av rattindikatorn

Steg 5: Raspberry Pi Zero och förstärkare

Raspberry Pi Zero och förstärkare
Raspberry Pi Zero och förstärkare
Raspberry Pi Zero och förstärkare
Raspberry Pi Zero och förstärkare
Raspberry Pi Zero och förstärkare
Raspberry Pi Zero och förstärkare

Med en vanlig Raspberry PI -ljudutgång är ganska enkel eftersom den har en ljuduttag, men för Pi Zero finns det inga riktiga alternativ. Det finns några lösningar som jag har försökt där du kan omdirigera GPIO-stift och sedan använda ett lågpassfilter men jag har aldrig riktigt kunnat få något som låter anständigt, och självklart behöver du också en förstärkare för att få något användbart. Det finns gott om DAC -hattar, men dessa är för personer som letar efter riktigt bra ljud och överkill för den här typen av projekt. Det finns också några fina billiga Audio -hattar med inbyggda högtalare, men bara inte tillräckligt högt för detta. Så jag bosätter mig nu på i2S -förstärkarens utbrottskort från Adafruit som löser alla problem på en gång. Observera bara att det är i2S och inte i2C.

Du behöver bara några ledningar för att få detta igång och med en lagom högtalare kan du få bra, högt monoljud.

Steg 6: Skapa en ny urtavla

Gör en ny urtavla
Gör en ny urtavla
Gör en ny urtavla
Gör en ny urtavla
Gör en ny urtavla
Gör en ny urtavla

Tanken här är naturligtvis att ersätta den befintliga urtavlan och glaset med en som visar året istället för frekvensen. Lyckligtvis var den befintliga bara en tryckt insats så jag tappade den på skannern och kopierade den till Paint Shop Pro, använde klonverktyget och torkade bort de gamla numren och skrev sedan in några nya för varje år. Med glaset var den i radion repad och sprucken och som det visar sig vara gjord av plast också. Jag skrev ut bara ramramen för att göra testmonteringen enkel och försökte ursprungligen göra en av akryl. Jag har i allmänhet inte tillräckligt med tålamod med akryl och slutade spricka det när jag försökte borra mitthålet. Så jag tog till 1,5 mm polykarbonat som är så mycket lättare att hacka och borra. Du kan hitta den också kallad Lexan eller Macrolon beroende på var du bor och det tar också en fil också så jag fick snart en bezel och urtavla som passade. Intressant var också att originalpapperet hade en liten metallavlagring över det, jag kan bara anta att det var någon som påverkades av den ursprungliga mässingspekaren, kanske någon åldringsprocess?

Steg 7: Volym- och väljarkontroller

Volym- och väljarkontroller
Volym- och väljarkontroller

En av nackdelarna med Raspberry pi för tinker är att den inte har någon inbyggd analog ingång. Inte riktigt för mycket problem om du lägger till en enkel ADC (Analog to Digital Converter) och MPC3002 passar räkningen här och den omvandlar en analog ingång till ett 10bit -värde som kan läsas på SPI -bussen.

Nästan alla exempel du hittar är för MPC3008 som är en 4 -kanals enhet och koden för det fungerar verkligen inte med MPC3002. Det verkar också finnas massor av exempel runt som inte fungerar heller, men det finns ett som jag kan bekräfta fungerar och dess kod finns här.

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

Med den här koden kan du enkelt läsa in två kanaler och använda resultaten. Mitt exempel kommer att använda det ena för volymen och det andra datumvalet. Jag gjorde vid ett tillfälle också en roterande kodare installerad men en enda varvvolym är mer passande och med frekvensväljaren innebar det också att jag kunde montera allt och sedan bara ställa in årsmarkörernas placeringar med ett stort stort falluttalande. Naturligtvis stöder pyhon inte ärendeutlåtandet så länge om då annars om uttalandet kommer att göra jobbet.

Bilden visar MCP3002 sitter på en liten prototypbräda och 10K -kruka

Steg 8: Strömförsörjning och kontroll

Strömförsörjning och kontroll
Strömförsörjning och kontroll
Strömförsörjning och kontroll
Strömförsörjning och kontroll
Strömförsörjning och kontroll
Strömförsörjning och kontroll

Pi tar bara bort USB -ström så mycket lätt att komma igång, men du kommer att sluta skada SD -kortet om du bara drar strömmen. Det finns många sätt att övervaka en knapptryckning och inleda en avstängning, men då brukar du behöva slå på strömmen för att få tillbaka den. För att komma runt detta och göra ett lättanvänt projekt använder jag Pimoroni ON/OFF shim. Detta låter dig trycka en gång och det startar och sedan ett långt tryck och det kommer att köra en ren avstängning. För att göra den också lite bärbar använder jag en gammal powerbank som också hanterar batteriladdningen. Powerbanks är tillräckligt billiga och kan köra Pi ett bra tag.

Jag monterade tryckknappen för att göra knappen passande på den plats där den gamla nätsladden kom ut på baksidan. Eftersom det finns en fördröjning medan Pi startar, kopplade jag fast en LED till 3v3 -skenan som tänds och så snart PI får ström och ger en fin autentisk glöd på urtavlan. Jag satte ett 270R -motstånd i linje och den andra änden bara till marken. Du kan också lägga till en till i en GPIO -pin om du vill ge extra effekter som flimmer, men för närvarande gör detta tillräckligt för att visa att strömmen är på.

Steg 9: Montering av fodralet

Montering av fodralet
Montering av fodralet
Montering av fodralet
Montering av fodralet
Montering av fodralet
Montering av fodralet

Med fodralet och chassit klart och testat var det bara några 4 mm bultar och Nyloc -muttrar att hålla det i. Flänsade självgängande skruvar håller ryggen på plats.

Strömknappen passade också fint in i det gamla näthållaren.

Jag ville också återanvända de gamla knopparna och de var ursprungligen designade, det verkar gå på mässingsstavar och var lite för stora för krukorna. Eftersom detta inte kommer att få någon grov hantering, gled jag bara lite värmekrympning över krukorna och limmade sedan knopparna på det. Den greppar fint och tätt och du kan fortfarande ta isär den om det behövs.

Steg 10: Ladda ner ljudfilerna

Image
Image

Jag använder MP3 -filer och det finns ett fantastiskt urval från Archive.org, du kan hitta grupperade sändningar av krigssändningar och det finns främst två val att välja mellan.

Jag började med huvudsakligen nyhetsvalet och dessa kopieras sedan till kataloger på PI. Du kan också hitta det större urvalet, kallat det stora på följande länk. Det finns flera hundra sändningar för varje år och det är ganska fantastiskt mängden och utbudet av dessa.

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

Större samling

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

Jag använder Filezilla som ett enkelt sätt att överföra dessa till Pi eftersom det kan logga in och överföra med SSH, så det är inte nödvändigt att konfigurera en SAMBA -enhet eller en FTP -server.

Steg 11: Krets och programvara för att spela upp filerna

Vad nästa?
Vad nästa?

När förstärkaren fungerar och du kan följa installationslänken nedan för det måste du också installera mpg123 -spelaren, ganska rak Google -sökning efter att Python -koden är nedan. Se bara till att du har i2s och SPI aktiverat i din Raspi Config. Jag har lagt den här filen i katalogen/home/pi/volume/så att jag kan köra den vid uppstart senare.

#!/usr/bin/env python

# WW2 Radio- programvara för att läsa MCP3002 ADC och konvertera till volym och årsjustering # Utgång via i2S-förstärkare 2018-10-20- Ajax Jones # Kodfragment från https://learn.adafruit.com/adafruit-max98357-i2s- klass-d-mono-amp/hallon-pi-användning # MCP 3002 Python https://github.com/CaptainStouf/Adafruit-raspi-python/blob/master/Adafruit_MCP3002/MCP3002.py import RPi. GPIO som GPIO, tid, os från os import listdir import delprocess från tid importera sömn import slumpmässig GPIO.setmode (GPIO. BCM) # läs SPI -data från MCP3002 -chipet, 2 möjliga adc: s (0 och 1) def readadc (adcnum, clockpin, mosipin, misopin, cspin): if ((adcnum> 1) eller (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 # startbit + single-ended bit + MSBF bit commandout << = 4 # vi behöver bara skicka 4 bitar här för i inom intervall (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 # läst i en nollbit och 10 ADC -bitar för i inom intervallet (11): GPIO.output (clockpin, True) GPIO.output (clockpin, False) adcout <0): print "Inga mp3 -filer hittades!" return mp3_files print "--WW2 Radio ------------------------------------------ --------------------- "last_read = 0 # lagra den sista positionen för volymkärlet last_year = 0 # lagra den sista positionen för frekvenspottoleransen = 5 # tillåt en liten tolerans så liten rörelse av krukorna orsakar ingen förändring medan True: trim_pot_changed = False year_pot_changed = Falskt för adcnum i intervall (2): ret = readadc (adcnum, SPICLK, SPIMOSI, SPIMISO, SPICS) if (adcnum == 0): # läs potten för årsväljaren för att se att den har flyttat year_adjust = abs (ret - last_year) if (year_adjust> tolerance+10): year_pot_changed = True if (year_pot_changed): # Values for if then checks can be gjord efter dess inbyggda delprocess.call (['killall', 'mpg123']) # döda någon MP3 -körsömn (0.1); om ret 50 och ret = 150 och ret = 250 och ret = 350 och ret = 450 och ret = 550): war_year = "1945" # spara pottens värde nästa gång runt slingan last_year = ret print (" Spelar från "), 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) # välj slumpmässigt en av filerna för att spela war_mp3 = war_dir + play_list [play_file] subprocess. Popen (['mpg123', war_mp3]) # Använd mpg123 som spelaren för ljudsömnen (0,1); # ge en liten paus innan du fortsätter om (adcnum == 1): # läs volymen pot_adjust = abs (ret - last_read) if (pot_adjust> tolerans): trim_pot_changed = True if (trim_pot_changed): set_volume = ret / 10.24 # convert 10bit adc0 (0-1024) krukvärde i en 0-100 volymnivå set_volume = round (set_volume) # round out decimal value set_volume = int (set_volume) # cast volume as integer # Använd värdet från potten för att skicka en nivå till 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 # spara potentiometeravläsningen för nästa slinga last_read = ret # En paus efter att ha ändrat volymen så att vi inte påverkar för många ändringar om potten ändras snabbt. sover (0,5)

Steg 12: Starta programmet automatiskt vid laddning

Det finns många sätt att köra ett kommando på Pi vid uppstart, men jag tycker att det här är det enklaste, öppna Crontab

sudo crontab -e

Lägg bara till den här raden

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

och det borde göra susen, nästa gång du startar om kommer ljudkontrollproggen att köras och du borde höra din första sändning.

Steg 13: Vad nästa?

Vad nästa?
Vad nästa?

Jag håller just nu på att bygga ut ett litet kretskort för att sitta ovanpå hallon -pi så att jag kan ha någonstans att montera i2S -förstärkaren och ADC tillsammans med några skruvterminaler för krukorna. Detta låter mig göra installationen lite snyggare och enkelt göra några till för vänner.

Jag samlar för närvarande några filer för en rymdloppsradio, som börjar med sputnik och vidare till månlandningarna.

Meddela mig gärna om du har några idéer eller vill ha tips eller tips om att sätta ihop en själv.

Loggar ut.

Ljudtävling 2018
Ljudtävling 2018
Ljudtävling 2018
Ljudtävling 2018

Andra pris i ljudtävlingen 2018

Rekommenderad: