DSP2016 logo RGB color-4

Zastanawiając się nad tym, czego mógłbym użyć do projektu, od razu do głowy wpadł mi Processing. Czytałem sporo o tym oprogramowaniu  i wydaje się bardzo przyjemne do prototypowania. Jest to zintegrowane środowisko(IDE) do nauki i tworzenia oprogramowania w kontekście sztuki video. Do maksimum uproszczono operowanie na grafice. Mnogość dodatkowych bibliotek sugeruje, że warto iść w tym kierunku. Processing używa Javy. Niestety jestem daleki od bycia biegłym w tym języku. Myślę, że na podstawowym poziomie nie ma to najmniejszego znaczenia.

Sama idea tego typu rozwiązań stała się na tyle ciekawa, że na bazie Processing powstał projekt Wiring, upraszczający tworzenie oprogramowania na mikrokontrolery. Szczęśliwie wymieniono Javę na C++. Choć chyba najbardziej znanym projektem, jest Arduino, które bazuje na Wiring. Szybkie stworzenie urządzenia w opartego o mikrokontroler AVR jest banalnie proste.  Zrobiłem kilka urządzeń na Arduino i działają bez problemu od dość dawna. Co prawda oryginalny edytor jest dla mnie średnio wygodny. Przy odrobinie chęci skonfigurowanie SublimeText czy nawet AtmelStudio nie jest problemem, a wygoda pracy znacząco się podnosi.

Skoro mój projekt zawiązany jest w pewnym stopniu z rozszerzoną rzeczywistością, to poniżej przykład co można zrobić w Processing.

 

Przygotowanie do pracy z Processing

Ze strony https://processing.org/download ściągam paczkę. Aktualnie pracuję pod Windows, więc tym razem będzie to wersja dedykowana pod ten system. Nie zaszkodzi spoglądnąć na release notes. Szczególnie, że w paragrafie “Things That May Break Your 2.x Sketches” widnieje uwaga dotycząca użycia size(). Miło wiedzieć o takich kwiatkach.

Wszystkie moje projekty, czy cokolwiek czym się zajmuję, umieszczam w katalogu workspace. Struktura jest zazwyczaj prosta. W katalogu o nazwie projektu umieszczam wszystkie związane z nim elementy, czyli oprogramowanie/biblioteki(jeśli jest to możliwe), dokumentacje, moje notatki i oczywiście kod źródłowy. Dzięki takiej strukturze, łatwo stworzyć kompletne repozytorium w Git. Tak samo łatwo migrować na inną maszynę. Co prawda pod Windows sprawa nie zawsze jest tak prosta, bo jednak czasem muszę coś instalować i śmiecić katalog Program Files, niemniej jednak rozwiązanie sprawdza się od lat.

Czyli tym razem to jest c:workspaceCinderClimb i tam rozpakowuję archiwum z Processing. Aktualna wersja to 3.0.2

Po uruchomieniu środowiska, dostępny jest edytor, więc pracę można zacząć od razu.

image02

Przy okazji okazało się, ze Processing może też używać Pythona. Programuję w tym języku od wielu lat, to była by kusząca opcja. Jednak zdecydowałem się pozostać przy Javie. Nie chciało mi się szukać informacji na temat dostępnych bibliotek, a skoro jest to raczej nowa cecha środowiska to pewnie słabo z dodatkami. Nie mówię, Python sam z siebie jest ślicznie opakowany bibliotekami, “batteries included”. No, ale…

Instalacja bibliotek okazuje się banalnie prosta. Wbudowany w edytor Contribution Manager listuje wszystko co jest dostępne.

image01

Na razie nic nie instaluje, bo muszę się choć minimalnie zaznajomić z się”architekturą”. Pocieszające jest to, że środowisko udostępnia jakieś sensowne zarządzanie bibliotekami. Przynajmniej tak to na pierwszy rzut oka wygląda.

Samo skompilowanie pustego projektu działa bez zarzutu i po uruchomieniu pojawia się puste okno. Następny wpis będzie dotyczył wypełnienia pustego projektu pierwszym kodem.