Innehållsförteckning:
- Steg 1: WW2 Time Machine Radio Parts List
- Steg 2: Hitta en gammal radio
- Steg 3: Ta bort den gamla radion och konstruera ett nytt chassi
- Steg 4: Renovera fallet
- Steg 5: Raspberry Pi Zero och förstärkare
- Steg 6: Skapa en ny urtavla
- Steg 7: Volym- och väljarkontroller
- Steg 8: Strömförsörjning och kontroll
- Steg 9: Montering av fodralet
- Steg 10: Ladda ner ljudfilerna
- Steg 11: Krets och programvara för att spela upp filerna
- Steg 12: Starta programmet automatiskt vid laddning
- Steg 13: Vad nästa?
Video: WW2 Radio Broadcast Time Machine: 13 steg (med bilder)
2024 Författare: John Day | [email protected]. Senast ändrad: 2024-01-30 12:44
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
- Gammal radio
- Franska polska
- Sandpapper
- Lexan för urtavla
- Värmekrymp
- Hallon Pi Zero
- I2S förstärkare
- ON/OFF Shim
- Högtalare
- Power brick
- MCP3002
- LED
- Motstånd 270R
- 2x 10k krukor
- Tryck för att växla
- USB -kabel
Steg 2: 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
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
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
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
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
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
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
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
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
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?
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.
Andra pris i ljudtävlingen 2018
Rekommenderad:
TTS Weather Broadcast: 5 steg
TTS Weather Broadcast: Jag brukar bestämma mig för om jag ska ta anumbrella utifrån väderförhållandena innan jag går ut. Jag brukade fatta fel beslut eftersom vädret var omväxlande de senaste två veckorna , det var soligt när jag gick ut att jag inte tog med ett paraply, och
Time Cube - Arduino Time Tracking Gadget: 6 steg
Time Cube - Arduino Time Tracking Gadget: Jag skulle vilja föreslå dig ett enkelt men riktigt användbart arduino -projekt för att spåra tidshändelser genom att bläddra i någon smart kub -gadget. Vänd den till " Work " > " Lär dig " > " Arbeten " > " Vila " sida och det kommer att räkna
RaspiWWV - Simulerad WWV Shortwave Audio Time Broadcast: 10 steg (med bilder)
RaspiWWV - Simulerad WWV Shortwave Audio Time Broadcast: Kom ihåg de dagar då du satt och lyssnade på WWV -tidssignaler på din Shortwave -radio (tick, tick, tick … Vid tonen kommer tiden att vara …)? (Hör den på YouTube ovan) åh! Missade du det? Nu kan du (åter-) uppleva dessa stunder och ha
Kamera för Time Lapse -bilder enkelt: 22 steg (med bilder)
Camera for Time Lapse Pictures Made Easy .: Jag kollade in en av de andra instruktionerna om hur man gör time -lapse -filmer. Han täckte ganska bra filmdelen. Han berättade om den gratis programvara som du kan ladda ner för att göra filmerna. Jag sa till mig själv, jag tror att jag får se om jag kan
Transistor Radio Time Machine: 22 steg
Transistor Radio Time Machine: Släng inte den gamla transistorradion! Gör om den till en tidsmaskin med konstiga, nostalgiska sändningar genom originalhögtalaren. Komplett med ett urval av anpassade tidsdestinationer och fladdrande gult ljus som påminner om gammalt rör