W moim projekcie muszę używać markerów LED na podczerwień do identyfikowania lokalizacji punktów w przestrzeni za pomocą algorytmów stereowizji i wielu kamer na podczerwień. Potrzebuję również każdego znacznika LED, aby miał unikalny rozpoznawalny identyfikator, co jest moim obecnym problemem.
Myślałem, że każda dioda LED będzie migać między dwoma stanami jasności (czy to możliwe?) W rozpoznawalnej sekwencji, ale nadal być wystarczająco jasna, aby śledzić w niższym stanie jasności.
Nie wiem, jak to zaimplementować, ani naprawdę od czego zacząć. Jestem programistą, ale nigdy wcześniej nie pracowałem z rzeczywistymi obwodami. Czy możesz mi pomóc zacząć?
Każdy wydaje się być ruszania z Arduinos te dni, więc coś w tym jest chyba to, czego szukasz. Wydaje się jednak, że zamierzasz dużo używaćdiod LED w tym projekcie, co byłoby trudne z arduino. To wszystko znajduje się poza górą mojej głowy *, ale może być możliwe równoległe użycie tranzystora i dużego rezystora, tak że gdy tranzystor jest wyłączony, prąd przepływa przez duży rezystor i dostajesz słabe światło. Gdy go włączysz, prąd przepływa przez tranzystor z powodu niższego oporu i uzyskujesz jaśniejszy stan. Zakładając, że to działa, możesz użyć komponentów cyfrowych, takich jak mikrokontrolery, do sterowania tranzystorami i uzyskania wymaganego flashowania. Załączony jest schemat tego, co mam na myśli (wartości są dowolne, prawdopodobnie będziesz musiał je zmienić w swoim obwodzie):
Niezależnie od tego, jak to zrobisz, będzie to dość trudne, biorąc pod uwagę, że nie zrobiłeś dużo elektroniki. Powodzenia!
*jest późno; może to być całkowicie błędne i w ogóle nie działać. ymmv.
źródło
Zrobiłbym odmianę pomysłu penjuina. Użyłbym stanu włączenia i wyłączenia do wygenerowania dwóch poziomów. Zamiast próbować śledzić diodę LED w stanie wyłączonym (lub niskim), ustaw stan wyłączony na krótki i po prostu śledź w stanie włączonym.
Nie wspomniałeś również, ile diod LED musisz śledzić i jak szybko się poruszają.
źródło
Tak, dwustanowe „przyciemnienie” i „jasne” jest łatwe. Biorąc pod uwagę każdy obwód, który mocno miga diodą LED z tranzystorem, dodajesz jeden opornik na tranzystorze. Następnie, gdy tranzystor jest całkowicie wyłączony, rezystor umożliwia słabe świecenie. Zacząłbym od rezystora o dokładnie takiej samej wartości, jak rezystor ograniczający prąd, już podłączony do diody LED. (Każda dioda LED potrzebuje opornika ograniczającego prąd).
Dla kilku markerów niezależna bateria i zegar 555 na każdym będą najprostszym sprzętem markera. (plus kilka rezystorów i kondensatorów).
Ogólny system jest prostszy, jeśli można zsynchronizować diody LED: włącz wszystkie markery na początku cyklu, następnie wyłączaj jeden marker na raz, aż wszystkie się wyłączy, a następnie włącz je ponownie i rozpocznij cykl od nowa. Ilość energii potrzebnej do podtrzymania migania kilku diod LED przez kilka godzin zwykle waży znacznie mniej w postaci jednej lub dwóch baterii centralnych zamiast jednej baterii na diodę LED. (Wymaga to komparatora IC na każdej diodzie LED lub kilku rejestrów przesuwnych lub Arduino emulujących te rejestry przesuwne w centralnej lokalizacji). (Wymaga to dużej ilości przewodów od jednego znacznika do drugiego lub od każdego znacznika do jakiegoś centralnego punktu - więc może to nie być możliwe dla Twojej aplikacji.)
To znacznie upraszcza oprogramowanie rozpoznające widzenie, jeśli komputer może bezpośrednio sterować diodami LED. Następnie, gdy komputer szuka LED_5, może wyłączyć i włączyć LED_5 i mieć pewność, że jedna migająca dioda LED musi być LED_5. Być może przy użyciu czegoś w rodzaju konwertera USB na 8-bitowy port równoległy , który (z 8 rezystorami, jednym na diodę LED) może bezpośrednio kontrolować 8 diod LED lub (z 4 rezystorami, jeden na kolumnę) matrycę 4x4 z 16 diodami LED. (Wymaga to jeszcze jednego przewodu, kabla USB od komputera do konwertera, ale nie wymaga żadnych baterii, tranzystorów ani dodatkowych układów - może to być najprostsze dla programisty, który nie jest elektroniką, aby zaczął działać).
źródło
Myślę, że możesz wpaść w kłopoty po stronie widzenia rzeczy, jeśli szybkość klatek kamery nie jest wystarczająco wysoka w stosunku do szybkości ruchu diod LED.
diody LED będą musiały przełączać się od wysokiej do niskiej przy pewnej rozsądnej wielokrotności liczby klatek na sekundę kamery, co najmniej 2 klatki na zmianę stanu, aby upewnić się, że niektóre klatki mają światło tylko z jednego stanu zamiast mieszania z dwóch stanów, co oznacza, że potrzebujesz dwóch ramek na każdy bit danych błysniętych przez diody LED, aby określić, który to marker. oczywiście najlepszy będzie do tego krótszy kod.
Jeśli znaczniki poruszają się na odległość większą niż ta, która jest w tej samej kolejności co ich odległość od siebie w ramce, wówczas system wizyjny może stracić pewność w prawidłowym określeniu, które błyski należą do którego znacznika.
źródło
symulacja tego obwodu - Schemat utworzony przy użyciu CircuitLab
Ryciny 1, 2 i 3 diody LED.
Rysunek 2. Kodowanie PWM.
Za pomocą modulacji szerokości impulsu (PWM) można zmieniać pozorną jasność, zmieniając współczynnik włączenia / wyłączenia. Ryc. 2 pokazuje sekwencję dużej mocy, małej mocy i dużej mocy.
W swojej aplikacji należy ustawić wystarczająco wysoką częstotliwość PWM, aby czujnik kamery nie widział migotania. Modulacja danych lub szybkość przełączania między wysoką i niską jasnością musiałaby wynosić co najwyżej połowę liczby klatek na sekundę, a bardziej prawdopodobne około jednej dziesiątej częstotliwości klatek, aby móc ją właściwie rozpoznać.
Konieczne może być również odniesienie się do kąta wiązki z diod LED. Brzmi tak, jakby Twoje kamery nie były cały czas ustawione na osi.
źródło