Ewolucja elektroniki sprawia, że dziedzina ta coraz bardziej zaczyna przypominać informatykę – przynajmniej w tym najbardziej powszechnym aspekcie, który dotyczy większości inżynierów – elektroników. Coraz częściej nasza praca sprowadza się nie tyle do zaprojektowania obwodów drukowanych, co skorzystania z gotowych rozwiązań sprzętowych.
Mowa tu nie tylko o zastosowaniu kilku gotowych modułów i układów scalonych, które mogą działać niemal bez zewnętrznych elementów pasywnych, i które wystarczy ze sobą połączyć szeregiem ścieżek drukowanych. Aktualnie coraz częściej inwestorzy narzucają konstruktorom takie warunki, że konieczne okazuje się zastosowanie gotowej platformy sprzętowej w postaci komputera jednopłytkowego – tzw. SBC (Single Board Computer).
Dlaczego tak się dzieje i czy to dobre rozwiązanie? Motywacja może być różnoraka i podyktowana nie tylko kwestiami technicznymi i „dobrem” opracowywanego produktu.
Dlaczego korzystamy z komputerów jednopłytkowych?
Pierwszym z powodów, i to chyba najmniej kontrowersyjnym, bo łatwo zrozumiałym zarówno dla inżynierów, jak i biznesmenów jest bogactwo funkcji, jakich oczekujemy od obecnie tworzonych produktów elektronicznych. Muszą być nie tylko multimedialne, ale też połączone z Internetem lub innymi sieciami, powinny obsługiwać zaawansowane mechanizmy sterowania oraz liczne interfejsy i nie mogą być powolne.
Wdrożenie tych wszystkich funkcji wymaga niemałej mocy obliczeniowej i dużej pamięci do zaimplementowania obsługi stosów protokołów i różnych interfejsów. Sięgając po komputer jednopłytkowy, mamy to wszystko już gotowe. Mamy do tego system plików, (zazwyczaj) otwarte oprogramowanie i masę narzędzi, którymi możemy swobodnie rozbudowywać produkt, implementując nie tylko nowe funkcje, ale i poprawki bezpieczeństwa.
Tak – zamiast samodzielnie martwić się o każdy wykryty błąd, możemy liczyć na to, że zostanie on poprawiony przez społeczność zajmującą się otwartym oprogramowaniem i sterownikami i prawdopodobnie w sensownym czasie pojawią się poprawki, które wystarczy już tylko zintegrować i przetestować.
Czas to pieniądz
Drugim pod względem ważności powodem jest oszczędność czasu. Gotowa platforma sprzętowa ogranicza ilość pracy i pozwala znacząco przybliżyć termin realizacji projektu. Nawet jeśli powstały w ten sposób produkt nie będzie maksymalnie dopasowany do potrzeb danej aplikacji i tak będzie spełniał najważniejsze wymagania i umożliwi szybsze wprowadzenie funkcjonującego urządzenia na rynek.
Przy takim podejściu, koszt komponentów potrzebnych do zbudowania produktu niemal na pewno będzie wyższy niż gdyby skomponować je samodzielnie. Jednak należy uwzględnić koszt czasu, jaki byłby potrzebny do przygotowania własnego projektu sprzętowego. Uzasadnieniem tworzenia indywidualnej platformy hardware’owej byłby przewidywany bardzo duży wolumin produkcyjny, ale jak pokazuje praktyka – obecnie takich szacunków należy dokonywać z dużym marginesem.
Trzeba bowiem uwzględnić fakt, że przedłużenie prac w związku z samodzielnym opracowywaniem sprzętu, a prace niemal zawsze okazują się trwać dłużej, niż zakładali menedżerowie, to wpływa to na późniejszy czas premiery rynkowej produktu. Spóźnione wkroczenie na rynek częstokroć prowadzi do bycia wyprzedzonym przez konkurencję, zniechęcenia ze strony klientów, którzy oczekiwali na zapowiedziany wcześniej wyrób, czy nawet zaoferowania produktu nieco zacofanego technologicznie – opartego o rozwiązania, które były atrakcyjne np. pół roku wcześniej.
Warto przy okazji zauważyć, że kwestia czasu i szybszego wprowadzenia produktu na rynek nie dotyczy tylko urządzeń opartych o pełnoprawne komputery jednopłytkowe. Znaleźć można bowiem wiele prostszych platform sprzętowych, takich jak choćby Arduino, czy liczne zestawy ewaluacyjne i startowe, które również mogą posłużyć za gotową bazę, nawet jeśli nie korzystają z prawdziwego systemu operacyjnego.
Natomiast jako że są to konstrukcje prostsze niż komputery, będą stosowane do prostszych aplikacji, a różnica w czasie potrzebnym na samodzielne opracowanie podobnej platformy będzie mniejsza niż w przypadku platform klasy Raspberry Pi czy mocniejszych.