Sekwencyjne zapalanie diodek

Jeśli masz coś do powiedzenia w sprawie LabVIEW napisz. Tutaj są tematy, których nie można uściślić do innych działów.
Marcin_K
Posty: 25
Rejestracja: 08 paź 2012 21:09
Wersja środowiska: LabVIEW 2011

Sekwencyjne zapalanie diodek

Post autor: Marcin_K »

Mam powiedzmy kilkanaście diodek na panelu użytkownika. Zapalają się kolejno, pierwsza się świeci, druga się świeci pierwsza gasi, trzecia świeci druga gasi itp.
To potrafię zrobić za pomocą struktury sekwencyjnej. Moje zadanie jest utrudnione bo chcę, żeby w zależności od użytkownika w akcji brało udział więcej diod na raz.
Tzn. użytkownik da na wejście '3'. Czyli pierwsza się zapala, druga się zapala, trzecią się zapala, czwarta się zapala pierwsza gaśnie, piąta się zapala druga gaśnie itp.
Jak to można zrealizować?
Nie mogę umieścić diodek w tablicy bo chcę je rozmieścić w dowolny sposób a wrzucając je do tablicy mam je w linii prostej :/
Awatar użytkownika
broonet
Posty: 8
Rejestracja: 29 paź 2012 18:56
Wersja środowiska: LabVIEW 2012

Sekwencyjne zapalanie diodek

Post autor: broonet »

Czy możesz jaśniej przedstawić problem? Możesz , chyba, użyć zamiany tablicy na klaster.
Jest funkcja 'Array to Cluster', z klastra wyciągnąć można diody przez Unbundle i wtedy to będą osobne elementy, ale to samo można zrobić przez korzystanie z Index Array.
/:)
Obrazek
Extensa - certyfikowani programiści LabView z Krakowa.
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Sekwencyjne zapalanie diodek

Post autor: Mikrobi »

Struktura sekwencyjna to nie jest dobry pomysł: dużo miejsca, dużo nadmiarowego kodu. Raczej pętla FOR która odczytuje cały wiersz, czyli na wejście dostaje tablicę dwuwymiarową, zawierającą w kolejnych wierszach kolejne stany indykatorów (diod 8-))
Tak jak napisał broonet: jaki efekt chcesz uzyskać na interfejsie? czy możesz przedstawić interfejs? albo lepiej kod?
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Marcin_K
Posty: 25
Rejestracja: 08 paź 2012 21:09
Wersja środowiska: LabVIEW 2011

Re: Sekwencyjne zapalanie diodek

Post autor: Marcin_K »

To ma być animacja przedstawiająca ruch pojazdów. Pas ruchu wyłożony diodami. Jeden pojazd łatwo zrealizować ale pojazdów może być dowolna ilość. Może jechać ich 10 jeden za drugim - i to muszę pokazać jakoś na tych diodach.
Awatar użytkownika
broonet
Posty: 8
Rejestracja: 29 paź 2012 18:56
Wersja środowiska: LabVIEW 2012

Sekwencyjne zapalanie diodek

Post autor: broonet »

Jezdnia to tablica 2D ze zgaszonymi diodami. Do tej tablicy wstawisz w odpowiednich wierszach krótkie wiersze z zapalonymi diodami (samochody) w pozycjach od indeksu 0 potem do indeksu 1 , potem 2 itede.
Jak jezdnia jest pionowo na interfejsie to wstawisz w kolumny, jak poziomo to w wiersze.

Pokazac kod? ;)
Obrazek
Extensa - certyfikowani programiści LabView z Krakowa.
Marcin_K
Posty: 25
Rejestracja: 08 paź 2012 21:09
Wersja środowiska: LabVIEW 2011

Re: Sekwencyjne zapalanie diodek

Post autor: Marcin_K »

Byłbym bardzo wdzięczny za pokazanie kodu :)
Poziomo i pionowo diody mi nie wystarczą. Potrzebuje je ustawiać w dowolny sposób (zakręty)
Marcin_K
Posty: 25
Rejestracja: 08 paź 2012 21:09
Wersja środowiska: LabVIEW 2011

Re: Sekwencyjne zapalanie diodek

Post autor: Marcin_K »

Pomoże ktoś z tym kodem? ;)
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Sekwencyjne zapalanie diodek

Post autor: Mikrobi »

Kontrolek w dowolny sposób, skoro maja tylko współrzędne x i y w kwadratowym układzie współrzędnych raczej nie ustawisz.
Całość sprowadza się do stałej tablicy będącej wzorem skrzyzowania i operowaniu funkcją Replace Array Subset oraz warunków typu:
- jeśli dojechałem do zakrętu to zamiast inkrementować/dekrementować pozycję w wierszu inkrementuję/dekrementuję pozycję kolumny.
Przykład poniżej przejazd i zakręt.

Obrazek

Samo rozwiązanie na elementach tablicy średnio mi się podoba. Zastanów się nad rozwiązaniem z indykatorem Picture i wstawianiem obrazka samochodu.
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Marcin_K
Posty: 25
Rejestracja: 08 paź 2012 21:09
Wersja środowiska: LabVIEW 2011

Re: Sekwencyjne zapalanie diodek

Post autor: Marcin_K »

Dzięki za pomoc ale jak ja mam tym sterować? :P

Dobra, już mniej więcej ogarnąłem ale tym rozwiązaniem nie zadowole mojego promotora :|

Jakieś wskazówki co do tego rozwiązania z wstawianiem obrazka samochodu?
Moje skrzyżowanie jest dość złożone. Będzie się na nim w jednej chwili dużo działo. Muszę znaleźć sposób na wygenerowanie dużej ilości pojazdów i przemieszczanie ich ...
Ostatnio zmieniony 01 lis 2012 22:05 przez Marcin_K, łącznie zmieniany 2 razy.
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Sekwencyjne zapalanie diodek

Post autor: Mikrobi »

Wskazówki ponizej:

Obrazek

Obrazek

Pole do popisu jest duże.
Na przykład tablica z obrazkami samochodów może być dwu wymiarowa, kolejne samochody w wierszu mogą być obrócone o określony kąt w lewo lub w prawo.
To pozwoli je wykorzystać jako obrazki zakręcającego samochodu. Do tego samego obrazka ze skrzyżowaniem można wprowadzać dowolną liczbę obiektów.
Zamiast obrazków o formacie jpg można wykorzystać png i korzystać z transparencji by uniknąć efektu jasnego prostokąta widocznego wokół niebieskiego samochodu stojącego na skrzyżowaniu.

Samo sterowanie skrzyżowaniem trzeba będzie solidnie przemyśleć i przećwiczyć na jak najprostszych wariantach - jeden samochód, dwa jadące w różnych kierunkach itd.
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Marcin_K
Posty: 25
Rejestracja: 08 paź 2012 21:09
Wersja środowiska: LabVIEW 2011

Re: Sekwencyjne zapalanie diodek

Post autor: Marcin_K »

Wielkie dzięki!
Sterowanie skrzyżowaniem mam zrobione. Teraz walczę właśnie z animacją. Wykorzystując zaproponowane przez Ciebie rozwiązanie będą możliwe takie sytuacje, że kilka pojazdów jedzie jeden za drugim po jednym pasie, raz 4, raz 1, raz żaden, przez np. 30 minut tzn. zmienne natężenie ruchu? Czy te wszystkie pojazdy muszę przed odpaleniem symulacji umieścić je w tablicy czy zgodnie z zapotrzebowaniem będę je mógł tworzyć na bieżąco?
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Sekwencyjne zapalanie diodek

Post autor: Mikrobi »

Można wstawiać w dowolnej chwili w taki sposób jak wstawiany jest pojedynczy samochód. Trzeba kontrolować lokalizację kolejnych samochodów, ale można to robić na bieżąco. Trzeba odpowiednio zakodować, ale Draw Unflaten Pixmap.vi można wywołać dowolną ilość razy dla dowolnej ilości obiektów i ich lokalizacji.
...w granicach zdrowego rozsądku i zasobów sprzętowych 8-)
Ostatnio zmieniony 02 lis 2012 12:59 przez Mikrobi, łącznie zmieniany 1 raz.
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
ODPOWIEDZ