piątek, 9 czerwca 2017

Widget EVENTOR - programowanie klocków lego cz.3


Do akcji wkracza 007 - widget EVENTOR

 

Dziś druga część zeszłotygodniowego wpisu. I próba odpowiedzi na pytanie - czy można za pomocą BLYNKa sterować działaniem układu mikroprocesorowego bez konieczności jego programowania ?
Oczywiście - takie było założenie, które legło u podstaw tej znakomitej aplikacji. Możliwość swobodnego kojarzenia widgetu w telefonie z wybranym portem mikrokontrolera i tym sposobem  zdalne (naprawdę zdalne bo z każdego miejsca na świecie) przejęcie nad nim kontroli. A wszystko to trwa reklamowane 5 minut. Bez nauki języka programowania i konieczności dodawania czegokolwiek w kodzie procesora oprócz biblioteki BLYNK i 1-3 linijek otwierających internetowy dostęp do serwera BLYNK. Genialnie prosty i genialnie szybki sposób na zdalne zarządzanie własnym mikroprocesorowym urządzeniem. Z jednym ograniczeniem - widget w podstawowej konfiguracji może tylko tyle na ile pozwalają mu własności konkretnego portu, do którego jest dowiązany. Tego jedynego i szlus. Jeśli chcemy połączyć widget z kilkoma portami procesora lub stworzyć jakiekolwiek zależności pomiędzy portami, widgetami i zmiennymi musimy zakasać rękawy i zabawić się programistę.
Ale jest szansa by to zmienić. A tej szansie na imię EVENTOR.


Wracamy więc do naszego przykładu z poprzedniego posta(u). Moduł oczywiście pozostaje bez zmian i bez zmiany pozostaje schemat działania urządzenia.

Nasz cel to przeniesienie bloku funkcji programu z pamięci mikroprocesora do serwera BLYNK. Jak? - to właśnie zadanie widgetu EVENTOR. Nowy schemat blokowy obrazujący przepływ sygnałów pomiędzy elementami wej/wyj, mikroprocesorem serwerem BLYNK i aplikacją w telefonie wyglądał będzie teraz następująco:



Kwadrat po prawej stronie to mikroprocesor. Spróbujemy zrealizować identyczny schemat działania programując funkcje nie w mikroprocesorze a w telefonie (a tak naprawdę to w serwerze BLYNK).
W pierwszej kolejności usunięte zostaną wszystkie zależności pomiędzy wejściami i wyjściami w programie mikroprocesora. Jednocześnie wyprowadzone zostaną stany przycisków z modułu do aplikacji BLYNK poprzez piny wirtualne. Porty odbiorników będą bezpośrednio sterowane z aplikacji. Pozostawimy w programie mikroprocesora timer/licznik bo takiej funkcji nie ma jeszcze dostępnej w EVENTORze. By móc nim sterować z zewnątrz dodamy sygnał START/STOP na dodatkowym pinie wirtualnym.
Po tych zabiegach program niesłychanie się uprościł (tu >>>>) - tak naprawdę to już nic w nim nie ma poza bibliotekami BLYNKa, deklaracjami portów i licznikiem czasu. Zrezygnowałem nawet z migania vLEDem w aplikacji - twórcy aplikacji wprowadzili do systemu informację o połączeniu z modułem.
 

Mikroprocesor mimo degradacji ma wciąż do odegrania sporą rolę - jest nośnikiem biblioteki BLYNKa i dopasowuje sygnały, wyjścia i zmienne do standardów tej aplikacji. A przy okazji może jeszcze w wolnej chwili coś wykonać - ot choćby taki licznik czasu.

Trzeba nieco zmodyfikować ekran aplikacji w telefonie - mimo podobieństwa do poprzedniej wersji funkcje poszczególnych widgetów są już inne.


Czas teraz na  wprowadzenie do serwera BLYNK zaplanowanych funkcji urządzenia. Na filmie pokazana jest procedura tworzenia funkcji powiązania przycisku 1 i przycisku 3 z odbiornikami.



Sygnałem aktywnym przycisków i odbiorników jest zero jak wynika ze schematu układu.
A tu 7 zaprogramowanych funkcji dających razem identyczną funkcjonalność do tej zawartej wcześniej w mikroprocesorze.


I wynik programowania z pomocą EVENTORa



Widget EVENTOR to w zasadzie baaardzo prosty edytor funkcji logicznej pozwalający określić różne zależności pomiędzy wirtualnymi pinami a danymi (liczby, znaki) i określić reakcję pinów rzeczywistych i wirtualnych w odpowiedzi na spełnienie określonych warunków. Bardzo prosty (programiści powiedzą nawet - bardzo prymitywny) bo na dobrą sprawę udostępniona została tylko jedyna jedyna z wielu funkcji logicznych języka programowania - funkcja IF - i to bez ELSE.

I to ma być ta wielka zapowiadana w kilku postach REWOLUCJA???!!!!
Przecież nawet taki appinventor bije na głowę wyglądem i funkcjonalością wszystko to co oferuje EVENTOR.
Ale moim zdaniem właśnie TAK.
Choć wielu rzeczy jeszcze nie widać zbyt wyraźnie bo to dopiero początek rewolucji BLYNKa i początek (mam nadzieję) rozwoju EVENTORa, już dziś ten widget jest bardzo atrakcyjną alternatywą lub raczej znakomitym uzupełnieniem do programowania na poziomie mikrokontrolera.
  • Przede wszystkim oddziela proces programowania od konkretnej platformy sprzętowej.
  • Umożliwia łatwą i szybką zmianę funkcjonalności wewnątrz systemu bez konieczności grzebania w kodzie mikroprocesora
  • Pozwala na błyskawiczne połączenie funkcji zgoła różnych systemów, modułów i programów tworząc z nich jeden wielki konglomerat kontrolowany z jednej aplikacji BLYNK
  • Świetnie integruje funkcje modułu mikrokontrolera z bogatymi funkcjami czy możliwościami telefonu/tableta, który jest najczęściej bardziej skomplikowanym systemem wieloprcesorowym niż tworzony przez nas projekt.
  • Przenosi proces projektowania funkcjonalności systemu z poziomu mikroprocesora o szczebel wyżej - na poziom lokalnego serwera BLYNK lub do chmury
  • W pełni usieciowuje lub inaczej integruje nasze projekty z Internetem - nasz projekt staje się drobiną w zasobach sieci ale może z tych zasobów czerpać nieograniczenie.
I ten ostatni element jest moim zdaniem najciekawszy. Ale nad powyższymi cechami będziemy się zastanawiać w kolejnych wpisach.

A na razie czekamy cierpliwie na ciąg dalszy........

Brak komentarzy:

Publikowanie komentarza