Czas rozpocząć kolejny etap prac nad systemem iLED. Tak jak zapowiadałem w poprzednich wpisach następna część związana będzie z aplikacją umożliwiającą projektowanie i odtwarzanie określonych sekwencji zmiany barw świateł LED. W tym wpisie chciałbym przedstawić Wam stack technologiczny oraz główne założenia aplikacji.

Nie będę ukrywał, że jakiś czas temu stworzyłem już działający prototyp, który w połączeniu z elementami LED działa tak:

Prototyp zamierzam dogłębnie przepisać. Aplikacja będzie składać się z części serwerowej i klienckiej.

Technologie jakich będę używać to :

Część serwerowa zostanie zbudowana na NodeJS. Przy użyciu HapiJS chciałbym stworzyć API, które będzie posiadać zaimplementowaną, bezpośrednią komunikację z Arduino. Komunikację zamierzam zrealizować za pomocą JavaScriptowego frameworka – Johny-Five. Część kliencka bazować będzie na Angular w wersji 4.0 . Docelowo ma być to aplikacja desktopowa, dlatego użyję ElectronJS.

Jak widzicie plan obejmuje użycie rozwiązań opartych na JS. I to jest dodatkowy punkt programu. Chciałbym poznać jak najwięcej narzędzi i technologii, których nie mam okazji używać w codziennej pracy.

Funkcjonalności

Aplikacja ma realizować dwa kluczowe zadania:

  • projektowanie efektów
  • odtwarzanie zapisanego projektu

Projektowanie efektów to funkcjonalność związana z :

  1. Wczytaniem ścieżki audio
  2. Dodawaniem efektów zmian barw sprzętu LED dla wskazanych momentów czasowych odtwarzanej ścieżki audio, w tym:
    a) określeniem barwy
    b) określeniem efektu (blink, static, low/high frequency)
    c) określeniem czasu trwania efektu
    d) kopiowaniem już stworzonych efektów
  3. Podglądem “na żywo” projektowanych efektów
  4. Zapisaniem utworzonego projektu
  5. Wczytaniem zapisanego projektu

Obecny widok okna prototypu zamieszczam poniżej:

W kolejnych wpisach tej serii będę przedstawiać poszczególne efekty prac oraz funkcjonalności jakie uda mi się osiągnąć. Mam nadzieję, że wszystko pójdzie zgodnie z planem i już niebawem będę mógł zaprezentować pełną funkcjonalność elementów systemu iLED!


Tak jak wspomniałem powyżej, podczas implementacji funkcjonalności aplikacji będę używać Angular v4.0. Do tej pory nie miałem większej styczności z tym frameworkiem, więc możecie też spodziewać się serii wpisów dotyczącej tej technologii. Sam chcę jak najlepiej poznać Angulara, dlatego takie wpisy potraktuję jako możliwość utrwalenia wiedzy, a przy okazji zaprezentowania możliwości frameworka.

Stay tuned!

Author:

Programista, przedsiębiorca, tancerz ognia. Staram się ogarniać rzeczywistość wyciągając jak najwięcej wartości z tego co daje nam technologia. Jestem miłośnikiem produktywności i wyznawcą stwierdzenia "Done is better than perfect". Od ponad 5 lat staram rozwijać się oraz zdobywać doświadczenie jako programista. Najbliżej mi do aplikacji webowych i technologii .NET, ale od jakiegoś czasu stałem się entuzjastą rozwiązań JavaScriptowych.