Indholdsfortegnelse:

Raspberry Pi-drevet internetradio: 5 trin (med billeder)
Raspberry Pi-drevet internetradio: 5 trin (med billeder)

Video: Raspberry Pi-drevet internetradio: 5 trin (med billeder)

Video: Raspberry Pi-drevet internetradio: 5 trin (med billeder)
Video: My job is to observe the forest and something strange is happening here. 2024, November
Anonim
Image
Image
Hindbær Pi-drevet internetradio
Hindbær Pi-drevet internetradio
Hindbær Pi-drevet internetradio
Hindbær Pi-drevet internetradio

Der er noget tilfredsstillende ved at dreje på drejeknapper og trykke på knapper, som dem på gamle radioer. Desværre er mange af disse radioer gået i stykker, eller stationerne er gået stille. Det er heldigvis ikke for svært at opdatere enhver radio til en internetradio ved hjælp af en hindbær pi zero W, og jeg vil vise dig hvordan!

Noget af arbejdet vil afhænge af donorradioen, du har, men jeg forklarer, hvad jeg gjorde med mit for at give dig en ide om, hvordan det foregår.

Da pi'en kører let at følge python -kode, kan du, når radiokontrollerne er tilsluttet, nemt tilføje andre funktioner som en alarm, Bluetooth -højttaler, taleur osv. Ved blot at ændre softwaren over ssh.

Dette projekt blev inspireret af Dansette Pi internetradio, den største forskel er, at her styrer urskiverne radioen ved at dreje dem, ikke som trykknapper.

Forbrugsvarer

  • gammel transistorradio
  • Hindbær pi zero W
  • Picaxe 20X2
  • Adafruit 3W mono forstærker - MAX98357 I2S Amp Breakout
  • Tønde stik til strømforsyning
  • 5V DC strømforsyning, der passer til tønde -stik
  • forskellige modstande
  • et par 100nF kondensatorer
  • stripboard
  • 20 -polet IC DIP -stik
  • jumperwires og header pins
  • små møtrikker og bolte

Trin 1: Oversigt

Ideen er at få hindbær pi tilsluttet internettet via wifi ombord og streame en af en liste over forudkonfigurerede internetradiostationer. De originale radioknapper og skiver (potentiometre) vil blive forbundet til en picaxe-chip, der fungerer som en analog-til-digital-konverter. Pi’en læser kontinuerligt kontrollerne fra picaxen og reagerer i overensstemmelse hermed og ændrer enten lydstyrken eller stationen. Når stationen ændres, taler radioen navnet på den nye station. Endelig ledes den streamede lyd til en monoforstærker, der er forbundet til den originale radiohøjttaler.

Det gode ved at bruge en hindbær pi er, at når kredsløbet er oprettet, kan radioens funktioner let ændres ved blot at ændre et par linjer kode på pi'en gennem ssh. For eksempel kan du nemt oprette forbindelse til en bluetooth -højttaler eller lave et vækkeur:)

Trin 2: Radioen

Radioen
Radioen
Radioen
Radioen
Radioen
Radioen

Den vigtigste del er donorradioen. Det behøver ikke at fungere, men det skal have en fungerende højttaler (medmindre du vil installere en ny).

Min radio har 4 skiver og 7 trykknapper. To af skiverne bruges til at ændre lydstyrken og stationen. De to andre skiver og knapperne gør intet, men jeg forbinder dem alligevel, hvis jeg vil bruge dem senere.

Det første trin er omhyggeligt at adskille radioen og fjerne al den interne elektronik, vi har ikke brug for dem, bortset fra højttaleren.

Skift station På min radio, når du skifter station, bevæger en lille rød markør sig hen over et display for at angive, hvilken frekvens du lytter til. Jeg ville virkelig gerne beholde denne funktion! Stationskifteknappen drejer en variabel kondensator og driver et remskive -system med et stykke snor, der holder den røde markør.

Jeg forsøgte at bygge et kredsløb for at måle kapacitansen for denne variable kondensator, men kapacitansen var så lille, at den enkle metode til timing af opladning/afladning ikke virker. Der er andre metoder, men de virkede komplicerede for mig og ikke umagen værd …

Så hvad jeg gjorde her, var at fil en aksel flad, der pegede ud af bunden af den variable kondensator, så denne aksel kunne passe ind i rillen på et moderne potentiometer. Heldigvis kunne dette potentiometer monteres i den originale batterikasse ved at bore et hul i det. Efter alt det driver den variable kondensator nu direkte et potentiometer, som jeg bruger til at indstille stationen på min digitale radio.

Trykknapper

Der var et kompliceret printkort, der husede infrastrukturen til trykknapperne. Efter at have fjernet de komponenter og ledninger, der blev loddet på, fandt jeg ud af, hvilke forbindelser der laves/brydes, når der trykkes på eller slippes på en knap. Nogle af knapperne var forbundet til hinanden, så jeg måtte bryde et par kobberspor i kredsløbskortet. Til sidst lod jeg på nogle ledninger, der gik til picaxen for at give 6 trykknapper, der arbejder isoleret.

Find også et hyggeligt sted for pi og picaxe at sidde, ideelt så langt væk fra højttaleren som muligt, da magnetfeltet fra højttaleren kan ødelægge mikroprocessorer. Jeg borede et par huller i radioens metalramme for at montere pi’et.

Trin 3: Picaxe

Picaxe
Picaxe
Picaxe
Picaxe
Picaxe
Picaxe

Picaxe -kredsløbet er ovenfor, med kun to af potentiometrene og en knap vist for klarhed. Kredsløbet er ret enkelt, med viskeren af hvert potentiometer forbundet til en ADC -indgang. For knapperne er inputpinden bundet til jorden, og knappen er mellem input og +3,3V. Dette kredsløb inkluderer ikke downloadkredsløbet, fordi jeg programmerede min picaxe på et separat bord.

Picaxe -koden er ret enkel. Picaxen læser i potentiometrenes ADC -værdier og knappernes tilstande og gemmer dem derefter i den interne hukommelse, som pi'en vil læse.

Du kan bruge enhver X2 picaxe -chip. Ikke X2 -dele har ikke I2C -slave -tilstand, og derfor fungerer de ikke med disse instruktioner.

Hvis du bruger en linux -computer til at programmere picaxe, skal du køre følgende kommandoer for at få AXE027 -downloadkablet til at fungere:

sudo modprobe ftdi_sio

sudo chmod 777/sys/bus/usb-serial/drivers/ftdi_sio/new_id sudo echo "0403 bd90">/sys/bus/usb-serial/drivers/ftdi_sio/new_id

Hvis potentiometerværdierne springer uregelmæssigt, kan der placeres en 100nF kondensator mellem potten og jorden.

Trin 4: Hindbær Pi

Hindbær Pi
Hindbær Pi
Hindbær Pi
Hindbær Pi

Her kommer hjernen i operationen. Nogle pakker skal installeres på pi med

sudo apt-get opdatering

sudo apt-get install -y i2c-tools vlc espeak python-smbus python-pip sudo pip install python-vlc

Pi vil tale med picaxen gennem I2C. For at aktivere I2C skal du kontrollere, at filen /etc /modules indeholder linjen

i2c-dev

og at /boot/config.txt har

dtparam = i2c_arm = tændt

Hvis du vil konfigurere pi'et til at arbejde med forstærkeren, skal du følge Adafruits egen guide her eller bare køre

curl -sS https://raw.githubusercontent.com/adafruit/Raspbe…> | bash

og acceptere alt.

Python -koden er ganske enkel, efter nogle indledende opsætninger en uendelig, mens loop lytter efter ændringer i potentiometerværdierne, og hvis der er trykket på knapperne.

n

Filen stations.txt indeholder en liste over stationswebadresser og stationsnavne, der vil blive talt, når stationen ændres. Det har følgende format

st1 = https:// someradiostream

n1 = noget radio st2 = https:// anotherstream n2 = en anden station

Denne fil må ikke indeholde tomme linjer.

For at finde stationens URL'er bruger jeg www.fmstream.org.

Hvis du har tænkt dig at slukke for radioen ved blot at trække i strømmen, er det en god idé at indstille pi'en til skrivebeskyttet for at forhindre korruption af SD-kort. Scriptet read_only_setup.sh gør det for dig og giver mulighed for at skifte mellem skrivebeskyttet og skrive-skrive ved at skrive "ro" og "rw" i en terminal.

Trin 5: Sæt det hele sammen

Samler det hele
Samler det hele
Samler det hele
Samler det hele
Samler det hele
Samler det hele

Ved hjælp af stripboard lavede jeg en lille hat til picaxen og forstærkeren til at sidde oven på pi’et.

Til strømforsyning fjernede jeg en af radioens gamle stik og installerede et nyt DC -tønde -stik, som jeg lodde et mikro -USB -kabel til. Sørg for at kontrollere ledningernes polaritet omhyggeligt!

Tilslut endelig alt, prøv at gøre et bedre stykke arbejde med at dirigere de ledninger, jeg gjorde, luk låget og nyd din radio!

Anbefalede: