„Krótki czas” uległ pewnemu wydłużeniu, ale mam nadzieję, że ten wydłużony okres oczekiwania zrekompensuje jakość aplikacji sterującej o nazwie powerLab, której autorem jest Marcin Popławski – inżynier, który dość często projekty moje „zaopatruje” we wsparcie od strony aplikacji PC. Tak oto powstała nowoczesna aplikacja, która dzięki swojej funkcjonalności stała się niejako oddzielnym modułem funkcjonalnym, a w połączeniu z zasilaczem powerBank – silnym narzędziem w każdym warsztacie elektronika.
Wygląd aplikacji pokazano na rysunku 1. Jest to program dla systemu Windows, który sposobem obsługi nawiązuje do współczesnych oscyloskopów cyfrowych. W górnej części wirtualnego ekranu pokazano najważniejsze nastawy urządzenia, czyli aktualną wartość napięcia wyjściowego (Voltage), prądu odbiornika (Current) oraz nastawę wbudowanego ogranicznika prądowego (Current Limit). Główna część tegoż wirtualnego ekranu przeznaczona jest do wyświetlania różnorakich informacji, których to znaczenie zależne jest od trybu, w którym pracuje urządzenie.
Po uruchomienia funkcji „Store” zasilacza na ekranie głównym aplikacji jest rysowany wykres napięcia i prądu odbiornika w funkcji czasu, który możemy w pełni skalować/przesuwać korzystając z wirtualnych pokręteł zgrupowanych w polach Time oraz Voltage/Current w dolnej części panelu sterowania aplikacji. Warto podkreślić, iż regulacji wybranego wirtualnego pokrętła dokonywać możemy za pomocą ruchów myszki i w bardziej wygodny sposób – przy użyciu rolki wbudowanej w mysz.
Przyjrzyjmy się dokładniej przyciskom funkcyjnym zgrupowanym w polu System. Ich funkcjonalność przedstawia się następująco:
- Power – służy do zamykania aplikacji powerLab.
- Ext Mode – włącza/wyłącza rozszerzony (tutaj podstawowy) tryb aplikacji powerLab. W trybie uproszczonym aplikacja jest pomniejszana i pokazuje wyłącznie bieżące napięcie i prąd odbiornika, jak na rysunku 2.
- Top Most – włącza/wyłącza opcję pozostawania „zawsze na wierzchu” aplikacji powerLab.
- Sett – włącza menu konfiguracyjne aplikacji powerLab.
Pokrętła zgrupowane w polach Voltage/Current służą do skalowania (V/Div i A/Div) oraz przesuwania (Position) wykresu napięcia i prądu dla funkcji „Store” i krzywej napięcia dla funkcji „Wave”. Pokrętło Time base położone w polu Time służy do ustawiania podstawy czasu (s/Div) dla rysowanych wykresów. Wszystkie dokonywane w ten sposób ustawienia wyświetlane są w dolnej części wirtualnego ekranu w polach Time base/Voltage/Current. Z kolei, przyciski i pokrętło Cursor zgrupowane w polu Store/Wave służą do obsługi funkcji „Store” i „Wave” zasilacza powerBank. Posiłkując się pokrętłem Cursor możemy przesunąć bieżące położenie kursora (wirtualnej prostej dla funkcji „Store”) w interesujące nas miejsce i podejrzeć (w polu Cursor, w dolnej części wirtualnego ekranu) wartość napięcia i/lub prądu odpowiadające temu położeniu. Użycie przycisku RUN/SEND pozwala na uruchomienie rejestracji przebiegów napięcia i prądu odbiornika dla funkcji „Store” aplikacji (pod warunkiem uruchomienia jej w zasilaczu) lub wysłanie zdefiniowanego wcześniej przebiegu napięciowego, dla aktywnej funkcji „Wave” aplikacji. Wciśnięcie przycisku „Wave” przenosi nas z kolei do przykładowego ekranu Wave, który pokazano na rysunku 3.
W trybie tym możemy za pomocą myszki zdefiniować dowolny przebieg napięciowy złożony maksymalnie z 40 punktów określonych wartością napięcia (minimalny krok 10 mV) i czasu jego osiągnięcia (minimalny krok 10 ms), po czym wysłać go do zasilacza (przycisk RUN/SEND) lub zapisać do późniejszego użycia. Definiując parametry przebiegu arbitralnego należy mieć na uwadze fakt, iż stosowna regulacja napięcia, czyli jego przebieg pomiędzy kolejnymi punktami, odbywa się w sposób dyskretny, więc przy dużych różnicach napięcia pomiędzy kolejnymi punktami i krótkich czasach napięcie wyjściowe zasilacza będzie regulowane w sposób, nazwijmy to, bardzo „skokowy”, gdyż wielkość kroku regulacji obliczana jest na podstawie wyrażenia DV=|Vn-Vn-1|/Tn ,przy czym dla kroku pierwszego Vn-1=VSET (bieżące napięcie).
Poszczególne punkty przebiegu dodajemy poprzez kliknięcie lewym przyciskiem myszki w interesujące nas miejsce mając na uwadze bieżącą skalę wykresu w zakresie czasu (s/Div) i napięcia (V/Div), które to cały czas możemy podglądać w polach Time base/Voltage w dolnej części wirtualnego ekranu. Bieżące położenie kursora myszki oraz odpowiadające mu (w tym trybie) wartości czasu i napięcia możemy cały czas podglądać w polu Cursor. Podobnie, przy użyciu myszki, możemy przesuwać utworzone wcześniej punkty wykresu (poprzez kliknięcie powyżej lub poniżej wybranego miejsca) lub po wcześniejszym zaznaczeniu usuwać je (przyciskiem Delete na klawiaturze). Liczbę utworzonych punktów wykresu napięcia cały czas możemy podglądać w polu Points w dolnej części wirtualnego ekranu urządzenia. Warto podkreślić, iż użycie pokrętła Time zmienia podstawę czasu, co wpływa na „zagęszczenie” punktów wprowadzonego wcześniej wykresu, o czym możemy się przekonać spoglądając na rysunek 4, który przedstawia zdefiniowany wcześniej (rys. 3) przebieg napięciowy przeskalowany z podziałki 0,50 s/Div na 1,00 s/Div.
Przesłaniu zdefiniowanego przebiegu arbitralnego do zasilacza powerBank (użycie przycisku RUN/SEND) towarzyszy automatyczne przejście zasilacza do trybu „Wave”, czyli wyświetlenie stosownego ekranu w ramach graficznego interfejsu użytkownika urządzenia. Należy także zauważyć, że uruchomienie funkcji „Wave” w zasilaczu powoduje dezaktywację wybranych funkcji i pokręteł w ramach interfejsu użytkownika programu powerLab, gdyż w tym czasie (w czasie generowania przebiegu) zasilacz standardowo wyłącza odbiornik interfejsu USART, czyli nie jest w stanie odbierać żadnych danych regulacyjnych. Przycisk Clear służy do wyczyszczenia ekranu i jest aktywny zarówno dla funkcji „Store” (kasuje przebieg napięcia i prądu odbiornika), jak i funkcji „Wave” (kasuje zdefiniowany przebieg napięciowy) aplikacji. Ostatnim z ekranów, jakie nie zostały jeszcze opisane jest ekran ustawień aplikacji powerLab wywoływany po naciśnięciu przycisku Set (rysunek 5).
Znaczenie poszczególnych grup ustawień przedstawia się następująco:
- Data – to pole pozwala na wybór portu szeregowego (COM), pod jakim został zainstalowany nasz zasilacz (a dokładnie, wbudowany weń układ FT232RL) oraz wybór liczby próbek napięcia i prądu (dla funkcji „Store”) jakie będą rejestrowane.
- Waveform: to pole pozwala na definicję „skoku” siatki dla funkcji Wave w zakresie kroku czasu i napięcia.
- Display: to pole pozwala na wybór kolorów dla poszczególnych elementów interfejsu użytkownika (Voltage, Current, Foreground, Backgroung) aplikacji powerLab.
- Device: to pole pozwala na uruchomienie funkcji autodetekcji podłączenia zasilacza do interfejsu COM komputera PC. Po odłączenia zasilacza od portu COM komputera lub problemów z komunikacją odpowiednie kontrolki i wartości w ramach aplikacji powerLab są automatycznie dezaktywowane.
Uważny czytelnik po lekturze artykułu poświęconego zasilaczowi powerBank, z pewnością dostrzeże nieścisłość, a mianowicie fakt, iż powerBank w tamtejszym „wydaniu” nie mógłby współpracować z opisywana aplikacją, ponieważ nie wspierał pełnej funkcjonalności w ramach interfejsu COM. Innymi słowy, niezbędna stała się drobna modyfikacja obsługiwanych i wysyłanych rozkazów sterujących, by w pełni sprostać wymaganiom aplikacji powerLab. W tej chwili aplikacja programu obsługi urządzenia powerBank obsługuje poniższe, wysyłane przez oprogramowanie powerLab, ramki danych:
- Uxxxx – ustawia wartość napięcia wyjściowego zasilacza –> (jednostka 10 mV, zakres 0...2500).
- Ixxx – ustawia wartość prądu ogranicznika prądowego zasilacza –> (jednostka 10 mA, zakres 0...500).
- S? – zapytanie o nastawy zasilacza. W odpowiedzi zasilacz wysyła ramkę bieżących nastaw urządzenia.
- WppLuUxxxxTxxxx – definiuje napięciowy przebieg arbitralny. Znaczenie poszczególnych pól: pp – liczba zdefiniowanych punktów krzywej napięcia (zakres 1...40), u – wskaźnik zapętlenia generacji krzywej napięcia (wartość 0/1), Uxxxx – napięcia poszczególnych punktów krzywej –> (jednostka 10 mV, zakres 0...2500), Txxxx – czasy poszczególnych punktów krzywej –> (jednostka 1ms, zakres 1...1000).
Z kolei budowa ramek danych wysyłanych przez zasilacz do aplikacji powerLab przedstawia się następująco:
- TxxxxUxxxxIxxxx – urządzenie wysyła taką ramkę cyklicznie, po uruchomieniu funkcji Store. Odstęp czasowy tego typu ramki mieści się w zakresie 10...1000 ms, z krokiem 10 ms (wartość występująca po znaku „T”). Oprócz znacznika czasu, wysyłane są wartości: napięcia wyjściowego (jednostka 10 mV, zakres 0...2500) i prądu obciążenia odbiornika (jednostka 1 mA, zakres 0...5000).
- uxxxxixxx – urządzenie wysyła taką ramkę, jeśli lokalnie zmieniane są jego nastawy lub też w odpowiedzi na wysłane wcześniej przez aplikację powerLab zapytanie o nastawy zasilacza (ramka „S?”). Są to dane nastaw urządzenia: wartość napięcia wyjściowego (jednostka 10 mV, zakres 0...2500) i wartość prądu ogranicznika prądowego (jednostka 10 mA, zakres 0...500).
- W1 – urządzenie wysyła taką ramkę w przypadku uruchomienia funkcji „Wave”, więc wtedy, gdy zaczyna generować zaprogramowany wcześniej arbitralny przebieg napięciowy. W ten sposób informuje oprogramowanie powerLab, że nie jest w stanie przyjmować żadnych danych.
- W0 – urządzenie wysyła taką ramkę po wyłączeniu funkcji „Wave”, jak wyżej.
Jak widać, wprowadzono nieznaczne, acz ważne zmiany w stosunku do założeń pierwotnych (projektu z 2015 roku), gdyż okazało się to niezbędne w celu realizacji całej, oczekiwanej funkcjonalności. Dzięki takiemu tandemowi dostajemy do rąk całkiem potężne narzędzie warsztatowe o rzadkiej funkcjonalności, co – mam nadzieję – zrekompensuje czas oczekiwania na finalny produkt, o czym była mowa wcześniej. Jako prawie dwuletni użytkownik tego urządzenia szczerze mogę je polecić każdemu elektronikowi, gdyż poza funkcjonalnością jest ono użyteczne i łatwe w obsłudze, przez co „bije na głowę” nawet urządzenia komercyjne.
Robert Wołgajew, EP