Simpsons TV s použitím vývojovej dosky Raspberry-pi ZERO

Simpsons TV s použitím vývojovej dosky Raspberry-pi ZERO
Miroslav Pivovarsky Pridal  Miroslav Pivovarsky
  600 zobrazení
2
 0
Arduino a príbuzné platformy

V tomto článku sa pokúsim opísať pomerne jednoduchú konštrukciu malého video prehrávača s použitím vývojovej dosky Raspberry-pi ZERO. Túto malú vychytávku som nevymyslel ja, ale nechal som sa inšpirovať používateľom buba447, ktorý zdieľal svoj nápad aj s manuálom na reddite, a používateľom highping, ktorý prerobil pôvodný návrh pre 4“ display. Ja som k týmto nápadom pridal pár vylepšení, ktoré mi chýbali v pôvodných konštrukciách.

Ide o malý video prehrávač so 4“ displejom, ktorý je ovládaný pomocou Raspberry-pi Zero. Všetky video súbory sú uložené priamo na microSD karte, ktorá je vložená do Raspberry-pi zero. Pre ovládanie slúžia 2 tlačidlá, jeden prepínač a potenciometer. Celá konštrukcia je vytlačená na 3D tlačiarni. Krátke video si môžete pozrieť nižšie.

Moje vylepšenia sú:

  • Pridané pozastavenie videa pri stlačení tlačidla pre vypnutie TV
  • Pridané mute/unmute audio zosilňovača pri stlačení tlačidla pre vypnutie TV
  • Menšie vylepšenia 3D modelu
  • Pridané 3D modely pre uchytenie prepínača a potenciometra
  • Použitie iného reproduktora ako v pôvodnej konštrukcii
  • Pridaný USB port pre kopírovanie video súborov z USB kľúča na mikro SD kartu
  • Pridaná funkcia prepnutie ďalšieho videa pri stlačení tlačidla
  • Pridaná funkcia pretočenie videa o 15s späť pri stlačení tlačidla
  • Pridaná funkcia vypnutie linuxu pri stlačení oboch tlačidiel na VCR
  • Vytvorený skript pre automatické kopírovanie videí z USB kľúča na microSD kartu

Plánované vylepšenia

  • Pokračovať tam, kde sa skončilo prehrávanie videa
  • Potencionálne ďalšie funkcie pre tlačidlá
  • Možnosť  konfigurácie vymazania a  rozdielnych súborov na USB kľúči a v RPI

Zoznam použitých komponentov

Pre konštrukciu budeme potrebovať:

  • 1K potenciometer (TME.eu)
  • Dvojkanálový 7x7mm prepínač (Aliexpress)
  • 4“ HDMI Waveshhare LCD display s rozlíšením 800x400 (RLX.sk)
  • HDMI adaptér (RPISHOP.cz)
  • MINI HDMI adaptér (RPISHOP.cz)
  • Kábel pre HDMI adaptér (RPISHOP.cz)
  • Reproduktor (napr. tu, no ja som použil iba jeden)
  • Raspberry-pi ZERO, pripadne ZERO W, ZERO W 2
  • Audio zosilňovač PAM8302 (RLX.sk)
  • Kondenzátor 2.2uF/50V
  • 4x Skrutka M3
  • 2x Tlačidlo 6x6mm, s predĺženým hmatníkom (TME.eu)
  • Micro USB konektor (Aliexpress)
  • Micro USB konektor na PCB (Aliexpress)
  • 4x magnet 6x2mm
  • 3mm LED
  • USB A konektor na PCB (Aliexpress)
  • Káble
  • 4x pin Header dĺžky 25mm (Aliexpress)

Ďalej budeme potrebovať 3D modely pre 3D tlačiareň. Všetky modely nájdete v mojom thingverse profile, tu.

Ovládanie

Pri stlačení vrchného zeleného tlačidla zapneme podsvietenie LCD displeja, vypneme mute pre audio zosilňovač a zapneme prehrávanie videa. Spodný zelený potenciometer slúži pre nastavenie hlasitosti. Vrchné pravé tlačidlo na VCR prijímači slúži pre prepnutie ďalšieho videa. Vrchné ľavé tlačidlo na VCR prijímači slúži pre pretočenie videa o 15 sekúnd späť. Ak stlačíme obe vrchné tlačidlá na VCR prijímači, spustíme vypnutie OS Linux.

Zapojenie

Zapojenie a konštrukciu nájdete aj v mojom GIT repozitári tu. Na začiatok budeme potrebovať obrázok s rozpísaním jednotlivých pinov na doske Raspberry-pi ZERO.

V prvom kroku pripojíme prvý kanál prepínača s LCD displejom. Vďaka tomu budeme môcť vypínať a zapínať podsvietenie LCD displeja. Prepínač na LCD displeji prepneme do polohy OFF

Druhý kanál prepínača prepojíme s Raspberry-pi ZERO. Jeden pin prepínača pôjde na pin GPIO26, druhý pin na GND.

Ďalej prispájkujeme 4 piny dlhého PIN headra k Raspberry-pi ZERO tak, aby sme nimi mohli napájať LCD display. LCD display je možné napájať aj cez micro USB konektor, ale podľa mňa je to zbytočný kábel naviac.

Pripojíme reproduktor, potenciometer a audio zosilňovač. Kladný pól reproduktora prispájkujeme priamo na 1K potenciometer, a záporný  pól prispájkujeme do audio zosilňovača.

Potom prepojíme kladný pól audio zosilňovača pre reproduktor s potenciometrom. V mojom prípade som prispájkoval priamo kontakt z potenciometra na kladný pól audio zosilňovača pre reproduktor.

Pre čistejší zvuk môžeme prispájkovať kondenzátor 2.2uF na audio zosilňovač, medzi pin Audio IN + a GND. Bez kondenzátora je zvuk príliš plechový.

Už nám iba zostáva prepojiť audio zosilňovač s Raspberry-pi ZERO.

A+ -> RPI pin GPIO19

A- -> RPI pin GND

SD -> RPI pin GPIO13

Vin -> RPI pin +5V

GND -> RPI pin GND

Poskladáme HDMI kábel, a prepojíme RPI ZERO s LCD displejom. Káblik si poskladáme veľmi jednoducho, založením plochého kábla do konektorov.

Aktuálne by ste mali docieliť približne takýto výsledok

Môžeme pokračovať prispájkovaním micro USB konektora, ktorým budeme napájať Raspberry-pi ZERO.

Prispájkujeme si káble k tlačidlám, ktoré slúžia pre prepínanie aktuálne prehrávaného video súboru, alebo pretáčanie videa o 15 sekúnd späť. Pre pripojenie tlačidiel nám budú stačiť 3 vodiče. Jeden vodič bude spoločný, pre pripojenie GND. Tlačidla som prilepil pomocou tavnej pištole k plastu VCR prijímača.

Pripravíme si kábel, kde na jednej strane bude micro USB konektor samec, a na druhej strane bude USB A konektor samica. Kábel poslúži pre jednoduchšie nahrávanie súborov do Raspberry-pi zero. Technicky menej zdatným užívateľom bude jednoduchšie kopírovať video súbory cez USB kľuč, ako kopírovanie súborov do linuxu pomocou sftp protokolu. Prikladám obrázok zapojenia USB A konektoru. Ja som využil starý micro USB kábel, kde som odstrihol jednu stranu.

Pre indikáciu kopírovania súborov z USB kľúča do linuxu slúži LED dióda. Ak LED dióda svieti, súbory sa kopírujú. Pri zhasnutí LED diódy môžete bezpečne odpojiť USB kľuč. LED diódu môžete použiť ľubovoľnej farby.

LED diódu pripojíme k Raspberry-pi ZERO doske. Výstupne napätie z Raspberry-pi ZERO dosky je 3,3V a 16mA. Z dôvodu limitácie výstupného napätia a prúdu som nepoužil výstupný rezistor pri modrej farbe LED diódy

Anódu -> GPIO27

Katódu -> GND

HW máme pripravený a môžeme prejsť k skladaniu komponentov do krabičky. Na začiatok si prilepíme VCR prijímač ku krabičke. Môžeme použiť sekundové lepidlo.

Potom si prilepíme držiak reproduktorov ku krabičke

Nezabudnite prilepiť USB konektory

A nakoniec prilepiť reproduktor

Prispájkujeme kabeláž od VCR prijímača k Raspberry-pi ZERO

Kábel pre tlačidlo ďalšie video -> GPIO6

Spoločný vodič oboch tlačidiel -> GND

Kábel pre tlačidlo -15s -> GPIO5

Prilepíme LED diódu do krabičky

A nesmieme zabudnúť na prilepenie magnetov aby sa krabička sama neotvárala

Už iba pripojíme micro USB konektory k Raspberry-pi ZERO

Inštalácia SW

1. Rozbalíme si OS na pamäťovú kartu. Môžeme použiť základný OS, ktorý poskytuje priamo Raspberry-pi stránka. Nájdete ho tu.

2. Po rozbalení OS na pamäťovú kartu sa nám zobrazí boot partícia. Na boot partícii vytvoríme súbor wpa_supplicant.conf (prípona nesmie byt .txt) a vložíme doňho konfiguráciu nasej WI-FI siete. V prípade RPI zero, ktoré nedisponuje WI-FI adaptérom, som použil USB WI-FI adaptér.

country=US
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="NETWORK NAME"
psk="NETWORK PASSWORD"

}

3. Vytvoríme si prázdny súbor s názvom ssh (súbor nesmie mat žiadnu príponu), čím aktivuje SSH server so štandardným menom pi a heslom raspberry

4. Odpojíme pamäťovú kartu od PC, vložíme ju do Raspberry-pi, a zapneme napájanie pre Raspberry-pi ZERO. Po chvíli by sa nám mala zobraziť úvodná obrazovka, kde v spodnom pravom rohu uvidíme IP adresu Raspberry-pi ZERO dosky.

Od tohto kroku môžeme použiť 2 metódy inštalácie a konfigurácie OS. Prvá možnosť je, pokračovať v ďalších krokoch (krok 5 a ďalej). Druhou možnosťou je, spustiť z repozitára 2 skripty, ktoré by mali nainštalovať a nakonfigurovať OS, vďaka čomu preskočíme krok 5 až 12. Tato metóda nie je poriadne otestovaná, čiže sa nemôžem zaručiť za jej 100% funkčnosť.

sudo apt-get install git cd ~
git clone git clone https://github.com/johnyHV/simpsonstv
cd simpsonstv
sudo ./install_01.sh{

Prebehne reboot RPI, a po reboote

cd simpsonstv
sudo ./ install_02.sh

5. Pripojíme sa na RPI pomocou SSH (napríklad použijeme putty) a aktualizujeme OS

sudo apt-get update
sudo apt-get upgrade
sudo rpi-update
sudo apt-get upgrade
sudo reboot

6. Nainštalujeme ovládač pre LCD display. Otvoríme si súbor config.txt pre úpravu boot sekvencie

sudo nano /boot/config.txt

- na koniec súboru pridáme text

hdmi_group=2
hdmi_mode=87
hdmi_timings=480 0 40 10 80 800 0 13 3 32 0 0 0 60 0 32000000 3
dtoverlay=ads7846,cs=1,penirq=25,penirq_pull=2,speed=50000,keep_vref_on=0,swapxy=0,pmax=255,xohms=150,xmin=200,xmax=3900,ymin=200,ymax=3900
display_rotate=3
hdmi_drive=1
hdmi_force_hotplug=1

- textový editor ukončime klávesovou skratkou ctrl+x

- Následne si nainštalujeme ovládač pre LCD display

sudo apt-get install git
git clone https://github.com/waveshare/LCD-show.git
cd LCD-show/
chmod +x LCD4-800x480-show
sudo ./LCD4-800x480-show

- Po nainštalovaní ovládača pre LCD sa nám Raspberry-pi automaticky reštartuje.

7. Zapnutie podpory audio výstupu

sudo nano /boot/config.txt

- na koniec súboru pridáme

dtparam=audio=on
dtoverlay=audremap,enable_jack,pins_18_19

- a textový editor ukončíme pomocou ctrl+x

8. Ďalej potrebujem upraviť súbor rc.local

sudo nano /etc/rc.local

- na koniec súboru pridáme riadky

raspi-gpio set 18 op dl
raspi-gpio set 19 op a5
raspi-gpio set 8 a2
raspi-gpio set 7 a2

- pred riadok exit 0

9. Nainštalujeme si potrebné aplikácie

sudo apt-get install omxplayer git mc screen rsync

10. Stiahneme si zdrojové kódy, potrebné pre prehrávanie videí, a ovládanie tlačidiel

cd ~
git clone https://github.com/johnyHV/simpsonstv
cd simpsonstv

11. Vytvoríme si nové služby pre prácu s tlačidlami, prehrávanie video súborov, kontrolu pripojených USB zariadení a upravíme práva pre dbus script

sudo cp simpsonstv/services/tvbutton.service /etc/systemd/system/tvbutton.service
sudo cp simpsonstv/services/tvplayer.service /etc/systemd/system/tvplayer.service
sudo cp simpsonstv/services/tvautocopy.service /etc/systemd/system/tvautocopy.service
sudo chmod +x /home/pi/simpsonstv/dbuscontrol.sh
sudo chmod +x /home/pi/simpsonstv/autocopy.sh

12. Zapneme všetky potrebné služby a reštartujeme Raspberry-pi

sudo systemctl enable tvbutton.service
sudo systemctl enable tvplayer.service
sudo systemctl enable tvautocopy.service

13. Následne vypneme Raspberry-pi zero

sudo poweroff

A môžeme krabičku opatrne zatvoriť. Nezabudnite priskrutkovať Raspberry-pi zero k držiaku pomocou M3 skrutiek.

Po uzatvorení krabičky prilepíme nožičky k spodnej časti. Ako anténu som použil kúsok surového filamentu, ktorý som ohol do požadovaného tvaru. Po tomto kroku máme úspešne poskladaný HW.

Kopírovanie video súborov na micro SD kartu

Video súbory musia byť formátu mp4. Pre konverziu môžeme použiť ľubovoľný software, alebo priamo v priečinku ~/simpsonstv/video/ je uložený python skript encode.py pre konverziu rôznych video súborov do formátu .mp4. Neodporúčam konvertovať video súbory na Raspberry-pi zero, pretože konverzia je príliš pomalá. Je to z dôvodu obmedzeného výkonu Raspberry-pi zero a zero W

Výsledné mp4 video súbory môžeme skopírovať do Raspberry-pi zero buď cez sftp, alebo pomocou USB kľúča. Na USB kľúči si vytvoríme priečinok simpsonstv, do ktorého vložíme všetky video súbory. Video súbory, ktoré sú v Raspberry-pi zero, ale chýbajú na USB kľúči, budú automaticky odstránené z Raspberry-pi zero. Po zapnutí SimpsonsTV a nabehnutí OS, vložíme USB kľúč do USB portu. Chvíľu počkáme, aby SW zistil vloženie nového USB zariadenia. USB zariadenie by malo byť formátované na FAT32. Ak SW zistí vloženie USB kľúča, rozsvieti sa LED dióda. Potom sa spustí proces kopírovania súborov z USB kľúča na micro SD kartu. Ak je proces kopírovania ukončený, zhasne indikačná LED dióda, potom môžeme USB kľúč bezpečne odpojiť.

Môj image OS

V prípade, že sa Vám nechce prechádzať celým procesom inštalácie OS a SW, si môžete stiahnuť moju aktuálnu verziu OS, ktorú nájdete TU.

V prípade akýchkoľvek otázok alebo problémov ma neváhajte kontaktovať pod článkom.

 

Máte aj vy zaujímavú konštrukciu, alebo článok?

Máte aj vy zaujímavú konštrukciu , alebo článok a chceli by ste sa o to podeliť s viac ako 200.000 čitateľmi? Tak neváhajte a dajte nám vediet, radi ju uverejníme a to vrátane obrazových a video príloh. Rovnako uvítame aj autorov teoretických článkov, či autorov zaujímavých videí z oblasti elektroniky / elektrotechniky.

Kontaktujte nás!
 


Páčil sa Vám článok? Pridajte k nemu hodnotenie, alebo podporte jeho autora.
 

       

Komentáre k článku

Zatiaľ nebol pridaný žiadny komentár k článku. Pridáte prvý? Berte prosím na vedomie, že za obsah komentára je zodpovedný užívateľ, nie prevádzkovateľ týchto stránok.
Pre komentovanie sa musíte prihlásiť.

Vaša reklama na tomto mieste

Vyhľadajte niečo na našom blogu

PCBWay Promo

ourpcb Promo

PCBWay Promo

ourpcb Promo

PCBWay Promo

ourpcb Promo


Webwiki Button