Pierwsza wersja CaRadio oparta na Raspberry Pi była przez dość długi czas używana w moim Volkswagenie Golfie Plus. Ogólnie radio spełniało swoje zadania, ale pozostawało kilka kwestii, których nie udało mi się ostatecznie rozwiązać.
Jedną z najważniejszych było zarządzanie zasilaniem.
W przeciwieństwie do typowych radioodtwarzaczy samochodowych Raspberry Pi nie ma pełnoprawnego trybu uśpienia ani hibernacji. Po wyłączeniu zapłonu urządzenie może poprawnie zakończyć pracę, ale przy kolejnym uruchomieniu musi ponownie przejść cały proces startowy.
Długo zastanawiałem się, jak prawidłowo zorganizować zasilanie, zapewnić bezpieczne wyłączanie i jednocześnie uniknąć długiego oczekiwania na uruchomienie radia.
Rozważałem różne rozwiązania, ale każde z nich w taki czy inny sposób komplikowało konstrukcję.
Zmiana podejścia
Równolegle pracowałem nad projektami CaRaBack i CaRadioGui.
Właśnie podczas pracy nad nimi zdałem sobie sprawę, że nie muszę już wiązać całego systemu z konkretnym komputerem jednopłytkowym.
Jeśli podzielić zadania pomiędzy oddzielne komponenty, urządzenie odpowiedzialne za interfejs użytkownika nie musi już być Raspberry Pi.
To znacznie poszerzało możliwości wyboru platformy sprzętowej.
Dodatkowym impulsem był inny eksperyment. Udało mi się zainstalować Linux na zwykłym Android TV Boxie i z powodzeniem uruchomić na nim Klipper do sterowania drukarką 3D.
To doświadczenie pokazało, że niedrogie urządzenia, pierwotnie przeznaczone do zupełnie innych zadań, można z powodzeniem wykorzystać we własnych projektach.
W ten sposób zacząłem szukać alternatywy dla Raspberry Pi.
Nie tylko zasilanie
Oprócz zarządzania zasilaniem pierwsza wersja CaRadio miała również inne niedoskonałości.
Na przykład wygląd.
Ekran nie był zamontowany w najlepszy sposób. Nie komponował się zbyt dobrze z wnętrzem samochodu, a ramki adaptacyjnej, którą planowałem wykonać na drukarce 3D, ostatecznie nigdy nie zrobiłem.
Chciałem również zastosować wyświetlacz o nieco większej przekątnej, lepszej jasności i kontraście.
Okazało się więc, że przy dalszym rozwijaniu projektu i tak musiałbym rozwiązać kilka problemów jednocześnie:
- zorganizować zarządzanie zasilaniem;
- wybrać nową platformę sprzętową;
- wymienić wyświetlacz;
- wykonać mocowanie i ramkę adaptacyjną;
- rozwiązać kwestie podłączenia elektroniki samochodu.
I w pewnym momencie pojawiło się całkiem logiczne pytanie: po co składać to wszystko z osobnych elementów, skoro można spróbować wykorzystać gotowe urządzenie?
Pomysł wykorzystania radia z Androidem
Zacząłem przyglądać się niedrogim radioodtwarzaczom samochodowym przeznaczonym do montażu w miejsce fabrycznych urządzeń.
Na pierwszy rzut oka mogło się to wydawać dziwną decyzją. W końcu CaRadio od początku miało być radiem zbudowanym samodzielnie, a teraz rozważałem zakup gotowego urządzenia.
Jednak interesował mnie nie tyle sam Android i fabrycznie zainstalowane oprogramowanie, ile część sprzętowa.
Za stosunkowo niewielką kwotę można było otrzymać od razu kilka potrzebnych elementów:
- ekran o odpowiednich wymiarach;
- wbudowany wzmacniacz dźwięku;
- system zarządzania zasilaniem;
- gotową obudowę pasującą do samochodu;
- możliwość podłączenia przedniej i tylnej kamery.
Pozostawało właściwie tylko wybrać urządzenie z odpowiednim procesorem i sprawdzić, na ile swobodnie można wykorzystać jego możliwości sprzętowe.
Wybór Vordon VW-910S
Po przeanalizowaniu wielu różnych modeli mój wybór padł na Vordon VW-910S.
Jednym z decydujących czynników były informacje o procesorze, który według znalezionych opisów obsługiwał tryb uśpienia. Istniały również przesłanki wskazujące na możliwość instalacji Linux.
Właśnie połączenie tych możliwości sprawiało, że radio było szczególnie interesujące.
Liczyłem na uzyskanie gotowej platformy sprzętowej, na której będę mógł uruchamiać własne oprogramowanie, bez konieczności projektowania całej elektroniki od podstaw.
Urządzenie rozwiązywało przy tym kilka problemów pierwszej wersji CaRadio: zarządzanie zasilaniem, wyświetlacz i wzmacniacz dźwięku.
Dodatkową zaletą była fabryczna obsługa przedniej i tylnej kamery. Chociaż dla wersji opartej na Raspberry Pi miałem już przygotowane rozwiązanie sprzętowe umożliwiające ich podłączenie, pozostawało jeszcze zaimplementowanie odpowiedniej części programowej.
W przypadku gotowego radia funkcjonalność ta była już przewidziana przez producenta.
Ostatecznie kupiłem Vordon VW-910S z myślą o dalszych eksperymentach.
Nowa koncepcja CaRadio
Na tym etapie stało się już jasne, że moje podejście do budowy własnego radia samochodowego uległo zmianie.
Wcześniej CaRadio było systemem zbudowanym wokół Raspberry Pi, do którego podłączane były niezbędne urządzenia peryferyjne.
Teraz pomysł był inny.
Zamiast tworzyć całą część sprzętową od podstaw, można wykorzystać gotowe radio samochodowe jako bazę, a jego fabryczne oprogramowanie zastąpić lub uzupełnić własnym.
Jednocześnie prace nad CaRaBack i CaRadioGui pokazały już, że poszczególne funkcje systemu można rozdzielić pomiędzy różne urządzenia, bez wiązania projektu z jedną platformą sprzętową.
W ten sposób poszukiwanie rozwiązania problemu zarządzania zasilaniem nieoczekiwanie doprowadziło do znacznie poważniejszych zmian.
Tak rozpoczęła się historia CaRadio v2.
W kolejnych artykułach opowiem, co tak naprawdę znajdowało się wewnątrz zakupionego radia, jakie możliwości udało mi się odkryć i z jakimi trudnościami musiałem się zmierzyć, próbując przekształcić gotowe urządzenie z Androidem w podstawę własnego projektu.