poniedziałek, 13 sierpnia 2018

VIRUINO contra BLYNK aplikacje - cz. II

 VIRTUINO jest ładniejsze od BLYNKa. Fakt. Ale uroda to domena kobiet a już nie koniecznie systemów inteligentnego sterowania domem Jeśli za przyjemnym dla oka designem nie idzie równie przyjazna funkcjonalność mamy do czynienia z gadżetem a nie programem użytkowym.
Porównajmy więc kolejne cechy VIRTUINO i BLYNKa.







Wyświetlanie tekstu


BLYNK ma mocno rozbudowane możliwości wyświetlana informacji tekstowych.  Niemalże każdy widget może taką informację wyświetlić w etykiecie (LABEL). Ponadto istnieje kilka widgetów wyświetlających wprost tekst przesłany poprzez wirtualny pin. Są to elemetnty
  • VALUE (i labeled value)
  • LCD
  • TABELE
  • TERMINAL
  • TEXT INPUT
Dodatkowo widget BUTTON ma możliwość wyświetlania opisów w zależności od stanu przycisku. Opisy można dowolnie zmieniać z programu dedykowanymi komendami. 

Jest jeszcze widget MENU pozwalający na wyświetlanie wcześniej wprowadzonego tekstu w zależności od wartości pinu dołączonego do tego elementu. Napisy w niewielkim stopniu (cztery pierwsze pozycje) można zmieniać z programu.

Czy ten bogaty zestaw elementów jest satysfakcjonujący? I tak i nie.  Łatwość do wyświetlania tekstu w BLYNKu jest ogromna i oczywista. Wszystkie wielkości w pinach przenoszone są poprzez zmienną string więc operowanie tekstem jest naturalną cechą tego programu. Jeszcze niedawno nie trzeba było przejmować się właściwym pozycjonowaniem tekstu. BLYNK jako jeden z niewielu systemów IoT posiadał funkcję auto skalowania tekstu w zależności od rozmiaru widgetu i ilości znaków. Ale ta fantastyczna cecha została zastąpiona przez czcionki o stałym rozmiarze z możliwością wyboru jednej z trzech jej wielkości. To ogromny krok wstecz. Nie ma również możliwości wstawienia dowolnego stałego napisu w dowolnym miejscy pulpitu.

Na tym tle VIRTUINO z jednym elementem (TERMINAL) wyświetlającym tekst wysyłany z programu wydaje się mocno ubogim krewnym. Ale to mylne złudzenie. Widget ten możemy używać w dowolnie wybrany sposób, możemy go nakładać na dowolny inny element, dowolnie powiększać lub zmniejszać, dowolnie wybierać wielkość czcionki a nawet jej krój (choć w niewielkim zakresie) i styl. Możemy znikać napis jeśli nie jest on aktualnie potrzebny na pulpicie. Oczywiście możemy sobie wybrać dowolny kolor czcionki.

Widget TERMINAL ma również inne ciekawe  funkcje. Dla szybko zmieniających się napisów możemy zamrozić napis (PAUSE). Jest opcja czyszczenia pola wyświetlania (CLEAN).  Obie funkcje są dostępne zarówno z pulpitu jak i z programu.
Pole terminala zachowuje się jak klasyczny terminal - nowe wpisy przesuwają tekst do góry. Ale jeśli zastosujemy funkcję CLEAR nowy napis zastępuje poprzedni.

Kolejny element tekstowy - TEXT- daje możliwość wyświetlenia dowolnego stałego tekstu o dowolnej wielkości i w dowolnym miejscu. Jego funkcje są identyczne do widgetu terminal z tą tylko różnicą że wpisu dokonuje się jedynie z pozycji aplikacji.



I kolejny widget tekstowy VIRTUAL MULTIPLE TEXT jest bardzo podobny do widgetu MENU BLYNKa. Tu także w zależności od wartości pinu wyświetlany może być różny komunikat. Ale zakres konfiguracji tekstu jest bardzo szeroki. Oprócz samego tekstu mamy możliwość ustawienia koloru, wielkości czcionki, stylu i rodzaju fontu, justowania. I to dla kazdej pozycji oddzielnie!




Umiejętne żonglowanie tymi trzema  elementami i ich konfiguracjami pozwala uzyskać tekstowe efekty nieosiągalne dla BLYNKa. Punkt dla VIRTUINO

Wprowadzanie tekstu


Tu możliwości obu programów są podobne. Widget TEXT INPUT dostępny jest w obu systemach. Ponadto BLYNK posiada pole do wprowadzania tekstu w elemencie TERMINAL.

WYKRESY


To ważny element aplikacji IoT pozwalający na historyczną ocenę i analizę zmian sygnałów naszego systemu. Oba pogramy mają możliwość wyświetlania wykresów w aplikacji.

W BLYNKu widget SuperChart to jeden z najlepiej dopracowanych elementów. W zasadzie nie ma się do czego przyczepić. Wielokanałowy, skalowalny, z możliwością wyboru typu wykresu, z dobrymi opisami osi i bogatą kolorystyką. Niemal ideał. Dane zapisywane są na serwerze niezależnie od działającej (lub nie) aplikacji.



VIRTUINO ma również widget wykres. To w porównaniu z BLYNKiem najsłabszy element programu. Podstawowy problem to zapis danych w aplikacji. Oznacza to, iż dane są zapamiętywane jedynie w czasie jej działania. Jeśli wyłączymy telefon lub będziemy poza zasięgiem domowego WiFi to pojawi się dziura w danych. To praktycznie wyklucza zastosowanie elementu CHART do długookresowej analizy sygnałów chyba że przeznaczymy osobny telefon lub tablet tylko do rejestracji danych.


Wykres umożliwia obserwację tylko jednego sygnału. Można oczywiście nałożyć na siebie kilka elementów typu CHART i uzyskać qusi wykres wielosygnałowy ale operowanie  takim zestawem jest trudne i mało czytelne. Dane z wykresu można eksportować w formacie EXCEL .xls (duży plus) jak również zapamiętywać w telefonie dla określonego przedziału danych. Dostępny jest kursor  (pionowa zielona linia) pozwalający dokładnie określić parametry we wskazanym punkcie wykresu. Dostępna jest opcja skalowania zarówno w osi wartości jak i czasu. W konfiguracji można wybrać kilka opcji  rodzajów wykresu ale jedynie wykres liniowy jest ładny i czytelny. W dziurze danych wykres jest aproksymowany liniowo pomiędzy skrajnymi wartościami.

Element CHART ewidentnie przegrywa zestawieniu z możliwościami jakie oferuje BLYNK.

Programowanie w telefonie


Opisywałem onegdaj jaką rewolucją w działaniu BLYNKa było pojawienie się widgetu EVENTOR. Pozwala on na przeniesienie części elementów programowania z mikrokontrolera do aplikacji ( a dokładniej do serwera BLYNK). Dostajemy dzięki temu możliwość zmiany działania programu nie poprzez zmianę kodu a ustawieniami i zależnościami w aplikacji.

Okazuje się, że VIRTUINO ma takie same elementy zaszyte w aplikacji a ich funkcjonalność i możliwości operowania danymi  przewyższa to co jest dostępne w BLYNKu.

Po pierwsze mamy aż trzy widgety do tworzenia zależności
  • Advanced timer
  • Advancedtime counter
  • Logical gate 



Przyjrzymy się ostatniemu z widgetów . Jest on najbardziej uniwersalny i daje największe możliwości. Najważniejszą cechą jest to, iż możemy stworzyć teoretycznie dowolny automat skończony posługując się sygnałami wirtualnych pinów i wszystkimi dostępnymi  funkcjami boolowskimi. Po polsku oznacza to że możemy napisać - a w zasadzie stworzyć graficzny model -kawał porządnego programu za pomocą w/w widgetów.


Dla przykładu spróbuję zamodelować wirtualny przerzutnik RS. W teorii wygląda tak


Ten zbudowany jest z bramek NOR więc sygnałem aktywnym jest 1. Podanie jedynki na wejście R zeruje wyjście Q a jedynka na wejściu S ustawia 1 na wyjściu Q. Stan dwu jedynek na wejściach jest zabroniony.  To najprostsza komórka pamięci przechowująca stan ostatnio naciśniętego przycisku.

A to realizacja wirtualnego RS w VIRTUINO - poniżej zaprogramowana jedna z bramek NOR


Widgety BUTTON podają sygnał na wejście przerzutnika. do wyjścia Q dołączony jest wyświetlacz pokazujący stan
I działający przerzutnik RS sterowany przyciskami RESET i SET zachowuje się tak .....


No proszę DZIAŁA!!!
Jeśli dodać do tego możliwości manipulowania zegarami i licznikami oraz swobodę łączenia wszystkich tych funkcji razem to siła tego narzędzia jest nie do przecenienia.
I jeszcze ten świetny pomysł z zielonymi punktami wskazującymi logiczny stan wejść i wyjść. Szkoda tylko że na opisach wyprowadzeń elementów nie pojawiają się dowiązane do nich oznaczenia pinów
OGROMNY punkt dla VIRUINO.

Wieloprocesorowość


Możliwość obsługi w jednym systemie wielu różnych platform i mikrokontrolerów nie od razu pojawiła sie w BLYNKu. Temat rozwijał się sukcesywnie i dziś budowa systemu złożonego z kilkunastu czy kilkudziesięciu kontrolerów nie stanowi żadnego problemu. Jednocześnie można grupować urządzenia w logiczne bloki a ich sygnały wiązać w paczki dla ułatwienia obserwacji.
Więcej. BLYNK oprócz roli centralnego kolektora danych stał się sprawnym routerem pozwalającym na swobodną komunikację via serwer wszystkich elementów IoT. Ta cecha bez wątpienia plasuje BLYNKa w górnej półce systemów zarządzania. Bez problemu można zbudować router łączący dowolne systemy i urządzenia różnych producentów o ile tylko da się w nie wbić kawałek kodu z biblioteką BLYNKa. Innym drogą jest budowa bramki łączącej jakiś układ z BLYNKiem na bazie znanego standardu i protokołu np. RS232.

Można więc stwierdzić, że wieloprocesorowość BLYNK ma opanowane w stopniu znakomitym.

Z wieloprocesorowością w VIRTUINO jest znacznie słabiej. Istnieje oczywiście możliwość jednoczesnego sterowania kilkoma niezależnymi mikrokontrolerami. Niezależnymi gdyż ich połączenie z aplikacją VIRTUINO istnieje tak długo jak długo aplikacja jest aktywna. Z chwilą wyłączenia telefonu system rozpada się na kilka,kilkanaście niezależnych podsystemów działających wobec siebie całkowicie autonomicznie.
W VIRTUINO nie ma żadnego mechanizmu komunikacji pomiędzy różnymi układami z biblioteką VIRTUINO w przypadku zaniku połączenia z telefonem. Jeśli ma następować wymiana jakiś danych pomiędzy dwoma urządzeniami musimy taką komunikację stworzyć sami niezależnie od VIRTUINO. A szkoda - temat nie wydaje się specjalnie trudny do ogarnięcia w ramach istniejącego programu.

 Wieloprocesorowaść - bardzo duży punkt dla BLYNKa

Dzisiejszy pojedynek należy uznać za mocno wyrównany z  przewagą BLYNKa. Na podsumowania przyjdzie jednak czas następną razą. Więc ciąg dalszy powinien absolutnie nastąpić.

UWAGA
Nie chcę by powtórzyła się historia z BLYNKiem, który na krótki czas zdominował swoim tematem wpisy na tym blogu.

Wszelkie informacje techniczne na temat VIRTUINO będę zamieszczał w osobnym kanale

http://virtuino.blogspot.com/


149



Brak komentarzy:

Publikowanie komentarza