Kazalo:
- Korak: Seznam radijskih delov časovnega stroja WW2
- 2. korak: Iskanje starega radia
- 3. korak: Odstranitev starega radia in izdelava novega podvozja
- 4. korak: Prenova ohišja
- 5. korak: Raspberry Pi Zero in ojačevalnik
- 6. korak: Ustvarjanje nove številčnice
- 7. korak: Nadzor glasnosti in izbirnika
- 8. korak: Napajanje in nadzor
- 9. korak: opremljanje ohišja
- 10. korak: Prenos zvočnih datotek
- 11. korak: Vezje in programska oprema za predvajanje datotek
- Korak: Samodejni zagon programske opreme ob nalaganju
- Korak: Kaj sledi?
Video: WW2 Radio Broadcast Time Machine: 13 korakov (s slikami)
2024 Avtor: John Day | [email protected]. Nazadnje spremenjeno: 2024-01-30 12:04
Ideja za to je bila, da bi uporabil nekaj delov, ki sem jih imel naokoli, in zgradil zvočni džuboks, oblikovan v starem radiu. Za večji namen sem se odločil, da ga napolnim s starimi radijskimi oddajami iz 2. svetovne vojne in nato ponovno uporabim frekvenčni klic, da izberem posamezno leto vojne, nato pa se bodo predvajale ustrezne oddaje. Videl sem nekaj zbirk posnetkov MP3, zato je bilo vse pripravljeno.
Kar zadeva strojno opremo, mi je najljubši arduino ali malina pi zero, za to pa bom uporabil malino pi zero. Vendar ima svoje pomanjkljivosti in v tem primeru je to pomanjkanje enostavnega za uporabo zvoka in enostavnih analognih vhodov. Da bi to odpravil, ponavadi uporabljam Adafruit I2S 3W ojačevalnik B razreda D - MAX98357A, ki je zelo preprost način za dodajanje zvoka v Pi in za analogni vhod MCP 3002, ki je dvokanalni pretvornik v SPI. Na splošno ljudje običajno uporabljajo MCP 3008, ki ima 4 vhode, vendar se mi je zdelo, da bo to preveč enostavno, na srečo mi je na koncu uspelo najti programsko opremo, ki bi s temi delovala.
Ena od drugih težav pri uporabi PI je ta, da ponavadi trpi, če ga preprosto izklopite brez zaustavitve, s tem sem se srečal neštetokrat in vedno se zdi, da poškoduje datoteko konfiguracije omrežja. Ker je bilo to zamišljeno kot preprosto samostojno, kar bi predstavljalo težavo, sem dodal tudi Pimoronijevo podlogo za vklop/izklop, ki hkrati izvede pritisk na gumb, hkrati pa omogoča zagon z istim gumbom.
Korak: Seznam radijskih delov časovnega stroja WW2
Potrebni deli
- Stari radio
- Francosko poljsko
- Brusnik
- Lexan za klicanje
- Hladilnik
- Raspberry Pi Zero
- Ojačevalnik I2S
- VKLOP/IZKLOP Shim
- Zvočnik
- Močna opeka
- MCP3002
- LED
- Upor 270R
- 2x 10k lonci
- Pritisnite, da nastavite stikalo
- USB kabel
2. korak: Iskanje starega radia
Prvi korak je seveda iskanje primernega starega radia in tega sem uspel najti na ebayu za 15 funtov. Sprva je bila skušnjava, da bi jo zagnali, toda ko je šasija prišla ven in je bila prikazana celotna paleta uporov in kondenzatorjev, ki bi jih bilo treba zamenjati, se nisem počutil tako slabo, da bi jo razstavil. Čeprav strogo ne gre za komplet iz leta 1940, obstaja nekaj kompletov za izdelavo doma iz tiste dobe, ki so bili vsekakor podobni.
3. korak: Odstranitev starega radia in izdelava novega podvozja
Enega od teh je precej preprosto razstaviti, na splošno se zdi, da je ohišje pritrjeno na ohišje in da je na njem vse nameščeno. Torej, ko ga odvijete in sprostite gumbe, preprosto zdrsne. Večina jih je v celoti zgrajenih na podvozju. Moj prvotni namen je bil uporabiti zvočnik iz raztrgane bluetooth zvočniške škatle, vendar sem se spraševal, ali bi stari deloval. Prijetno presenečenje je bilo ugotoviti, da ni le delovalo, ampak je tudi zvenelo res odlično. Naslednji korak je bil torej merjenje vsega in izdelava novega podvozja v Tinkercadu. Ponovno sem določil območje za pogosto klicanje in zvočnik obdržal na istem mestu. Poleg tega je bila dodana montažna plošča za pi nič. Natisnil sem ga v PETG, ki se mi zdi manj odporen proti upogibanju in poskusno prileganje vseh delov je pokazalo, da bo delovalo. Moral sem se malo poigrati z nosilcem za glasnost, da bi se novi lonci lepo prilegali in še vedno pritrdili skozi ohišje.
3D podvozje lahko prenesete tukaj, če se želite z njim poigrati
www.thingiverse.com/thing:3174818
4. korak: Prenova ohišja
Zdaj, ko so zadevo odstranili, je bilo, da se odločijo, kaj bodo naredili s koncem. Čeprav zadeva ni bila tako slaba, sem sprva razmišljal, da bi jo dobro očistil, da bi ohranil videz obrabljene patine. Pogosto bo brisanje s kisom osvežilo staro ohišje, vendar je bil lak razpokan na nekaj mestih, zato sem se odločil, da ga odstranim. Pri starih lesenih ohišjih so običajno pokriti s tankim furnirjem iz lesa, vendar ni tako tanek, da na njem ne morete dobiti dobrega brušenja. Najprej so odstranili rešetko iz zvočnikov, kar je bilo precej ogabno, saj je bilo v njej približno 50 let prahu in umazanije in so jo postavili na eno stran. Nato je nekaj debelih plasti Nitromorsa, odstranjevalca barve in starega laka sčasoma odlepilo. To je bilo treba narediti dvakrat, saj je bilo verjetno v nekem trenutku lakirano nad prvotno obdelavo. Da bi odstranili nekaj prask in jim dali lepši zaključek, smo jih brusili s približno 100 zrnatim papirjem in nato končno brusili z gobo za srednje brušenje. Vse to naredite v skladu z zrnom in nato obrišite z belim duhom, da očistite prah. Hkrati je bila škatla pritrjena tudi z lepilom za les, kjer se je furnir nekoliko odmaknil. Lesene rešetke so se prav tako nekoliko razslojile, zato je več lepila za les in pobrskalo kose, kjer je bilo mogoče. Ko se je posušilo, sem s skalpelom počistil robove lesa in jih pobarval v rjavo z nekaj akrilne barve Tamiya.
Moja prva misel je bila samo zamenjati krpo za zvočnike, vendar so stroški avtentičnega materiala precej visoki, saj se ponavadi prodajajo v dolžini. Po malce raziskovanju starih radijskih forumov je videti, kot da lahko staro krpo prinesete z namakanjem. Tako sem jo s hladno vodo in veliko tekočine za pomivanje namočila čez noč in presenetljivo, ko se je spet posušila, je postala precej čista.
Zdaj sem se nameraval lotiti zaključka in sprva sem se odločil, da mu nanesem čist lak, nato pa sem razmišljal o uporabi laka v spreju, medtem ko sem na otoku za lak/barvo v lokalni trgovini DIY našel steklenico francoskega laka. Ker sem mislil, da bi bil to dober pristni zaključek, sem se odločil poskusiti. Zdaj morate vedeti, da je francosko poliranje precej umetniška oblika/spretnost, ki potrebuje veliko vaje, da se popravi. Navodila lahko iščete na YouTubu in čeprav je videti precej preprosto, je to precej grdo dejanje. Zdi se, da gre pri poliranju v krpo, namočeno v vato, tako da lahko med delom iztisnete lak na les. Če poskusite samo s krpo, se približno 3/4 poti poliranja posuši, ko etanol izhlapi in krpa začne vleči. Tako sem na koncu namesto s sijajem uspel nanesti nekaj slojev, rahlo obrusiti s papirjem razreda 1500, nato nanesti še nekaj in na koncu je bilo videti OK. še vedno imam madeže francoskega laka na nohtih.
Čiščenje drugih delov je bilo veliko lažje, saj je vsa oprema vstopila v ultrazvočni čistilec, številčnica pa je bila polirana z nekaj Silvo laka. Brasso bi imel izbiro, vendar je Silvo in malo več masti za komolce zadostovalo za čiščenje kazalca številčnice.
Na koncu tega sem imel precej lep videz lesene škatle, pripravljene za sam časovni stroj.
Koraki v tem razdelku 1. Odstranite vse vijake/številčnice in krpo.
2. Leseno ohišje okrasite z nitromorji
3. Brušenje furnirja
4. Ponovna namestitev rešetke
5. Čiščenje krpe zvočnikov
6. Francosko poliranje ohišja
7. Ultrazvočno čiščenje vijakov in gumbov
8. Poliranje kazalca številčnice
5. korak: Raspberry Pi Zero in ojačevalnik
Z običajnim zvočnim izhodom Raspberry PI je precej preprost, saj ima izhod za avdio priključek, vendar za Pi Zero ni pravih domačih možnosti. Preizkusil sem nekaj rešitev, kjer lahko preusmerite zatiče GPIO in nato uporabite nizkoprepustni filter, vendar mi nikoli ni uspelo dobiti nekaj, kar se sliši spodobno, in seveda potrebujete tudi ojačevalnik, da dobite nekaj uporabnega. Klobukov DAC je veliko, vendar so namenjeni ljudem, ki iščejo res dober zvok in se za tovrstne projekte preveč trudijo. Obstaja tudi nekaj lepih poceni zvočnih klobukov z vgrajenimi zvočniki, ki pa za to niso dovolj glasni. Zato sem se zdaj odločil za odklopno ploščo ojačevalnika i2S iz Adafruit, ki naenkrat reši vse težave. Upoštevajte le, da je i2S in ne i2C.
Za začetek delovanja potrebujete le nekaj žic. Z dovolj spodobnim zvočnikom lahko dobite odličen, glasen mono zvok.
6. korak: Ustvarjanje nove številčnice
Ideja tukaj je seveda zamenjati obstoječo številčnico in steklo z letnico namesto frekvence. Na srečo je bil obstoječi le natisnjen vložek, zato sem ga spustil na optični bralnik in ga kopiral v Paint Shop Pro, uporabil orodje za kloniranje in izbrisal stare številke ter nato za vsako leto vtipkal nekaj novih. S steklom je bilo tisto v radiu opraskano in razpokano in izkazalo se je, da je tudi iz plastike. Natisnila sem samo okvir okvirja, da sem olajšala preskusno namestitev in prvotno poskušala narediti eno iz akrila. Na splošno nimam dovolj potrpljenja z akrilom in sem ga na koncu počil, ko sem poskušal izvrtati osrednjo luknjo. Zato sem se zatekel k 1,5 mm polikarbonata, ki ga je tako lažje žagati in vrtati. Lahko ga najdete tudi kot Lexan ali Macrolon, odvisno od tega, kje živite, vzame pa tudi datoteko, zato sem kmalu imel nameščeno okvir in številčnico. Zanimivo pa je tudi, da je imel prvotni papir po sebi rahlo kovinsko oblogo, lahko le domnevam, da je na nekoga vplival prvotni medeninasti kazalec, morda kakšen proces staranja?
7. korak: Nadzor glasnosti in izbirnika
Ena od pomanjkljivosti Raspberry pi za odpravljanje težav je, da nima domačega analognega vhoda. Pravzaprav ni prevelik problem, če dodate preprost ADC (analogno -digitalni pretvornik) in MPC3002 ustreza temu računu in pretvori analogni vhod v 10 -bitno vrednost, ki jo je mogoče prebrati na vodilu SPI.
Skoraj vsi primeri, ki jih najdete, so za MPC3008, ki je 4 -kanalna naprava in koda zanj zagotovo ne deluje z MPC3002. Zdi se, da je tudi veliko primerov, ki tudi ne delujejo, vendar obstaja eden, ki lahko potrdim dela in njegovo kodo najdete tukaj.
github.com/CaptainStouf/Adafruit-raspi-pyt…
S to kodo lahko preprosto preberete dva kanala in uporabite rezultate. Moj primer bo uporabil enega za zvezek, drugega pa za izbiro datuma. V nekem trenutku sem imel nameščen tudi rotacijski dajalnik, vendar je volumen enega obrata bolj primeren in z izbirnikom frekvence je to pomenilo tudi, da lahko vse sestavim in nato samo prilagodim lokacije letnih označevalnikov z veliko izjavo o velikih primerih. Seveda pyhon ne podpira izjave primera tako dolgo, če pa drugače, če izjava opravi svoje delo.
Na sliki je MCP3002, ki sedi na majhni prototipni plošči in loncu 10K
8. korak: Napajanje in nadzor
Pi se preprosto izklopi iz USB -ja, zato ga je zelo enostavno začeti, vendar boste na koncu poškodovali kartico SD, če le potegnete napajanje. Obstaja veliko načinov za spremljanje pritiska na gumb in sprožitev zaustavitve, potem pa boste morali ponastaviti cikel, da ga znova zaženete. Če se želite tega izogniti in narediti projekt, ki je enostaven za uporabo, uporabljam Pimoroni VKLOP/IZKLOP, ki vam omogoča, da enkrat pritisnete in se vklopi, nato pa dolg pritisk in izvede čisto zaustavitev. Da bi bil tudi malo prenosljiv, uporabljam staro banko za napajanje, ki skrbi tudi za polnjenje baterije. Powerbanki so dovolj poceni in lahko pošteno delujejo s Pi.
Gumb za potiskanje sem pravilno namestil na mesto, kjer je od zadaj prišel stari napajalni kabel. Ker prihaja do zamika, ko se Pi zažene, sem trdo ožičil LED v tirnico 3v3, ki se prižge in kmalu, ko PI dobi moč in zagotovi lepo pristno sijaj na številčnici. Upor 270R sem postavil v vrsto, drugi konec pa samo na ozemljitev. Če želite dodati dodatne učinke, kot je utripanje, lahko dodate tudi drugega pin -ju GPIO, vendar zaenkrat to dovolj, da pokaže, da je napajanje vklopljeno.
9. korak: opremljanje ohišja
Ko je ohišje in ohišje pripravljeno in preizkušeno, je bilo v njem le nekaj 4 -milimetrskih vijakov in najlonskih matic. Vijaki s samoreznimi vijaki zadržujejo hrbet na mestu.
Gumb za vklop se je lepo prilegal tudi v staro luknjo za napajanje.
Prav tako sem želel ponovno uporabiti stare gumbe, ki so bili prvotno zasnovani, zdi se, da gredo na medeninaste palice in so bili nekoliko preveliki za lonce. Ker s tem ne bo prišlo do grobega ravnanja, sem na lončke le pomaknil nekaj toplotno skrčenega in nato nanj prilepil gumbe. Lepo in tesno se oprime in ga po potrebi še vedno razstavite.
10. korak: Prenos zvočnih datotek
Uporabljam datoteke MP3 in na Archive.org je fantastičen izbor, najdete lahko združene oddaje vojnih oddaj, na izbiro pa sta predvsem dve izbiri.
Začel sem z izbiro večinoma novic, ki se nato kopirajo v imenike na PI. Večjo izbiro, imenovano Velika, najdete tudi na naslednji povezavi. Za vsako leto je več sto oddaj, kar je neverjetno, koliko in obseg teh.
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
Večja zbirka
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
Filezilla uporabljam kot enostaven način za prenos teh v Pi, saj se lahko prijavi in prenese prek SSH, zato ni potrebe po nastavitvi pogona SAMBA ali strežnika FTP.
11. korak: Vezje in programska oprema za predvajanje datotek
Ko bo ojačevalnik deloval in boste lahko sledili spodnji povezavi za nastavitev, boste morali namestiti tudi predvajalnik mpg123, kar naravnost naprej iskanje v Googlu, za katero je spodaj navedena koda Python. Prepričajte se, da imate v konfiguraciji Raspi Config i2s in SPI omogočeno. To datoteko sem dal v imenik/home/pi/volume/, da jo lahko pozneje zaženem ob zagonu.
#!/usr/bin/env python
# Radio WW2- programska oprema za branje ADC MCP3002 in pretvorbo v prilagoditev glasnosti in leta # Izhod prek ojačevalnika i2S 20.10.2018- Ajax Jones # Fragmenti kode, dobavljeni s 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 uvoz RPi. GPIO kot GPIO, čas, os iz os uvoza listdir uvozni podproces iz časa uvoza mirovanja uvoz naključni način GPIO.setmode (GPIO. BCM) # preberite podatke SPI iz čipa MCP3002, 2 možna adc -ja (0 in 1) def readadc (adcnum, clockpin, mosipin, misopin, cspin): if ((adcnum> 1) ali (adcnum <0)): vrni -1 GPIO.output (cspin, True) GPIO.output (clockpin, False) # start start GPIO.output (cspin, False) # pripelji CS nizki ukaz = adcnum << 1; commandout | = 0x0D # začetni bit + enojni bit + MSBF bitni commandout << = 4 # tukaj moramo poslati samo 4 bite za i v območju (4): if (commandout & 0x80): GPIO.output (mosipin, True) drugače: GPIO.output (mosipin, False) commandout << = 1 GPIO.output (clockpin, True) GPIO.output (clockpin, False) adcout = 0 # branje v enem ničelnem bitu in 10 ADC bitov za i v območju (11): GPIO.output (clockpin, True) GPIO.output (clockpin, False) adcout <0): natisnite "Ni datotek mp3!" vrni mp3_files natisni "-Radio WW2 ------------------------------------------ --------------------- "last_read = 0 # shrani zadnjo pozicijo nosilca glasnosti last_year = 0 # shrani zadnji položaj tolerance frekvenčnega lonca = 5 # dovolijo majhno toleranco, zato rahlo premikanje loncev ne povzroči spremembe, medtem ko je True: trim_pot_changed = False year_pot_changed = False za adcnum v razponu (2): ret = readadc (adcnum, SPICLK, SPIMOSI, SPIMISO, SPICS) if (adcnum == 0): # preberite izbirnik letnika, da vidite, da se je premaknilo year_adjust = abs (ret - last_year) if (year_adjust> tolerance+10): year_pot_changed = True if (year_pot_changed): # Vrednosti za če, potem je mogoče preveriti narejeno po vgrajenem podprocesu.call (['killall', 'mpg123']) # uničite vse spanje v teku MP3 (0.1); če ret 50 in ret = 150 in ret = 250 in ret = 350 in ret = 450 in ret = 550): war_year = "1945" # shranite vrednost lonca za naslednjič okoli zanke last_year = ret print (" Predvajanje iz "), 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) # naključno izberite eno od datotek za predvajanje war_mp3 = war_dir + play_list [play_file] podproces. Popen (['mpg123', war_mp3]) # Za predvajanje zvoka uporabite mpg123 (0,1); # pred nadaljevanjem naredite rahel premor if (adcnum == 1): # preberite obseg 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 10-bitna vrednost adc0 (0-1024) pot v 0-100 ravni glasnosti set_volume = round (set_volume) # zaokroži decimalno vrednost set_volume = int (set_volume) # oddani volumen kot celo število # Uporabite vrednost iz lonca za pošiljanje ravni na 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 # shranite odčitek potenciometra za naslednjo zanko last_read = ret # Premor po spremembi glasnosti, tako da ne ukrepamo na preveč sprememb, če se posoda hitro spreminja. spanje (0,5)
Korak: Samodejni zagon programske opreme ob nalaganju
Na zagonu Pi obstaja veliko načinov za zagon ukaza, vendar se mi zdi to najlažje, Odpri Crontab
sudo crontab -e
Zdaj samo dodajte to vrstico
@reboot python /home/pi/volume/year.py &
in to bi moralo biti trik, naslednjič, ko znova zaženete, se bo zagnala programska oprema za nadzor zvoka in slišali boste svojo prvo oddajo.
Korak: Kaj sledi?
Trenutno pripravljam majhno tiskano vezje, ki bo sedelo na vrhu maline pi, da bom lahko imel kam namestiti ojačevalnik i2S in ADC skupaj z nekaj vijačnimi sponkami za lončke. To mi bo omogočilo, da namestitev naredim nekoliko bolj natančno in preprosto naredim še nekaj za prijatelje.
Trenutno zbiram nekaj datotek za radio za vesoljsko tekmo, začenši s sputnikom in naprej do pristanka na Luni.
Sporočite mi, če imate kakšno idejo ali želite kakšen nasvet ali namig o tem, da bi jo sami sestavili.
Izpisati se.
Druga nagrada na avdio tekmovanju 2018
Priporočena:
ULTRASONIC LEVITATION Machine, ki uporablja ARDUINO: 8 korakov (s slikami)
ULTRASONIC LEVITATION Machine, ki uporablja ARDUINO: Zelo zanimivo je videti nekaj, kar lebdi v zraku ali prostem prostoru, kot so vesoljske ladje tujcev. ravno o tem gre pri projektu proti gravitaciji. Predmet (v bistvu majhen kos papirja ali termokola) je postavljen med dve ultrazvočni trans
Drsnik za nadzor gibanja za Time Lapse Rail: 10 korakov (s slikami)
Drsnik za nadzor gibanja za Time Lapse Rail: Ta navodila poučujejo, kako motorizirati tirnico s časovnim zamikom s koračnim motorjem, ki ga poganja Arduino. Osredotočili se bomo predvsem na krmilnik gibanja, ki poganja koračni motor, ob predpostavki, da že imate tirnico, ki jo želite motorizirati
Arduino Time-Lapse Panorama Controller: 8 korakov (s slikami)
Arduino Time-Lapse Panorama Controller: Panoramski krmilnik za kamere GoPro Kontrolnik bo vaš GoPro zasukal za nastavljeni kot za določeno trajanje ali pa vas bo GoPro vrtil za celotno rotacijo za določeno trajanje. Ta projekt temelji na izvirnem navodilu Tylerja Winegarnerja Glej
3D natisnjeno nazaj v prihodnost TIme Circuit Clock: 71 korakov (s slikami)
3D natisnjeno nazaj na prihodnjo časovno vezje TIme: sprednja leva datoteka LED.stl ni bila pravilna in je bila posodobljena. Ura časovnega tokokroga bo na LED zaslonih prikazala naslednje. Ciljni čas - (Top-Red) Ciljni čas je območje, ki prikazuje določen datum in čas. Uporabite to so
Kako vnesti matrico geta (DIY Bullet Time): 14 korakov (s slikami)
Kako vstopiti v matrico geta (DIY bullet time) To ploščad sta zasnovala Graffiti Research Lab in režiser Dan the Man za uporabo v hip-hop glasbenem videu za mlade