Jukebox-Radio

      Geen reacties op Jukebox-Radio

Uitgebreider prototype van het internetradioproject. Maar nu met “jukebox”-uitstraling: verlichte knoppen met papieren labels, en de luidspreker aan de onderkant.
Dit model werkt veel sneller dan mijn oude internetradio.

JukeboxRadio

Prototype van internetradio zonder display en in de stijl van een jukebox.

Het is een vervolg op het artikel DIY-internetradio, een supersimpele internetradio op basis van een Pi 3B en een pc-speakersetje; met alleen knoppen, geen display.
Het uitgangspunt voor de tweede versie is een internetradio/mp3-speler met circa 12 voorkeuzestations, een ingebouwde luidspreker (mono) plus versterker, en een witte led als een soort VU-meter. Bij dit ontwerp is er dus geen display en geen keuzemenu nodig, alleen een simpel stukje papier met de namen van de zenders.

Ontwerp dat zichzelf ontwerpt

Het ontwerp ontstond op basis van een oud houten theedoosje van 19×11×11cm. De gegeven afmetingen en de gewenste functionaliteit bepaalden ten slotte de invulling en vorm. Om de footprint zo klein mogelijk te houden werd het een rechtopstaand model.
In plaats van het (ontbrekende) schuifdeksel had ik twee vierkante stukjes multiplex voor het front. De ‘zware’ luidspreker komt natuurlijk in het onderste gedeelte, en de Raspberry Pi 3 met de knoppen in het bovenste compartiment.

Gezien het beperkte oppervlak en om niet twee aparte lijstjes met radiostations te hoeven maken, kwamen de knoppen symmetrisch links en rechts aan de rand (2 x 6), met de lijst in het midden. Hoewel ik daar niet op aanstuurde, heeft het resultaat toch iets weg van een ouderwetse jukebox

Creatief met knoppen

De stopknop moest net als op het eerste prototype groot en makkelijk te bedienen zijn. Gelukkig had ik nog een 3cm arcadebutton met (blauwe) verlichting liggen! Vanwege zijn vorm en functie moest hij wel bovenop komen. Voor de volumeknop (draaipotmeter) was aan de voorkant eigenlijk geen ruimte meer. Maar met een beetje creativiteit kreeg hij toch een (‘zwevend’) plekje, recht voor de luidspreker. Door de witte led, die meeknippert met de intensiteit van het geluid, in de rand van de speaker te bouwen, is alles wat met geluid te maken heeft in het onderste compartiment gelokaliseerd, behalve de stopknop dan.

GPIO vol bezet

Doordat elke knop en elke led rechtstreeks op de GPIO-pinnen is aangesloten, is het totaal aantal verlichte knoppen beperkt tot circa 12,5. De halve knop is de blauwe stopknop, waarvan het ledje op een vrije 3,3V-pin is aangesloten en dus permanent brandt (handig om te kunnen zien dat de radio stroom krijgt.
Andere GPIO-pinnen worden in beslag genomen door de I2S-versterker van Adafruit, en de shutdownknop voor de Pi 3
Voor de microfoon en de led voor de VU-weergave waren er geen GPIO-pinnen op de Pi 3 meer over, daarom is die verhuisd naar een Pi Pico, die gevoed wordt door de laatste
vrije 3,3V-pin van de Pi 3.

micsensor

Microfoonsensor op Pi Pico, zorgt voor visuele weergave van het geluidsvolume.

 

JukeboxRadio2

Python-code

De code is grotendeels hetzelfde als bij het vorige prototype. Los van deze hoofdcode (radio.py) is er voor de Pi Pico een scriptje in MicroPython voor het uitlezen van de geluidssensor en het aansturen van de led (picosoundsensor.py).

Volumeknop

Adafruit wijst op hun website over problemen met hun I2S-amplifier MAX98357A:
“Raspbian PIXEL (‘full’) has broken something in volume control. I2S works, but there’s no software volume setup, if you need this, try Raspbian Lite – will try to fix as soon as we figure out why 🙂 ”
(dit bericht dateert blijkbaar al uit 2017).

De makkelijke oplossing: gebruik een kleine pc-speakerset met ingebouwde volumeknop en sluit die aan op de headphone-aansluiting of nog beter op een usb-geluidskaart op de Pi.

Benodigdheden
Hardware:

Raspberry Pi 3, (of 3+ of 4)
Raspberry Pi Pico
12 minibuttons (10×10mm) met led (groen)
1 consolebutton met led
1 speaker 3W 4Ω
Amp: MAX98357A – Adafruit 3006, I2S-versterker
potmeter (voor audio, dus logaritmisch, niet lineair)
knop voor potmeter
geluidssensor: JOY-IT KY-037
witte led (3mm)
2 experimenteerboard 2×8cm
jumperkabels
magneetdraad

Software:

Pi-OS
Python-vlc
Python3-code
MicroPython