Skocz do zawartości

Teoretyzowanie przed praktyką #1 - podczerwień w robotyce amatorskiej


Treker

Pomocna odpowiedź

Bobby, mogę spróbować odpowiedzieć, choć nie będziesz z tego zadowolony.

Po pierwsze detekcja synchroniczna działa prawidłowo - to znaczy uzyskuje się niezniekształcony sygnał użyteczny tylko wtedy, gdy sygnał wejściowy jest także prawidłowy. Jeżeli wejdą śmiecie - śmiecie też wyjdą i nic na to nie poradzimy.

Po drugie "sprzętowa" linearyzacja takiego skopanego odbiornika będzie bardzo trudna lub wręcz niemożliwa. Można to robić kilkoma metodami ale dwie najważniejsze to wykorzystanie nieliniowych charakterystyk elementów półprzewodnikowych (głównie wykładnicza zmiana prądu w zależności od napięcia na złaczu pn) oraz przybliżanie odcinkami prostych. Pierwsza wymaga przede wszystkim dobrej znajomości zjawiska - czego tutaj brakuje, i takiego dopasowania się do niego, by jak najlepiej i w jak najszerszym zakresie wykorzystać kształt elementu nieliniowego. Druga jest bardziej uniwersalna ale też (a może nawet bardziej) skomlipkowana układowo. Generalnie linearyzacja w takim znaczeniu jest unikana nie tylko ze względu na komplikacje układowe ale także na brak powtarzalności oraz stabilności temperaturowej i długoczasowej. Wniosek: należy zrobić liniowy czujnik 🙂

No i teraz chwila na mój prywatny osąd tego przypadku:

Fototranzystory są elementami naprawdę liniowymi. Nie wiem jak działają tanie chińskie podróbki ale normalne elementy tego typu zachowują liniowość lepszą od 1% w zakresie ponad dwóch rzędów wielkości oświetlenia. To dużo. Musiałeś wyjść poza zakres liniowej pracy albo na skutek zbyt dużych zakłóceń albo z powodu dużej amplitudy sygnału użytecznego. Jeśli prosty układ fototranzystor+opornik był przesterowany, czyli jeżeli napięcie na kolektorze zmniejszyło się gdzieś poniżej 1V, to tam zaczęło po prostu brakować napięcia by prąd kolektora mógł dalej rosnąć. Odbiornik należy zaprojektować wcale nie na największą czułość tylko tak, by nawet największe spodziewane zakłócenia zostawiały jeszcze wystarczający margines na liniowe przeniesienie sygnału użytecznego. Przy takim założeniu może się jednak zdarzyć, że czułość będzie musiała być tak niska, że sygnał wyjściowy będzie naprawdę mały w stosunku do reszty śmieci i np. 10-bitowemu przetwornikowi A/C skończy się rozdzielczość. Wtedy można zrobić cały detektor na zewnątrz procesora, jego sygnał wyjściowy wzmocnić i dopiero coś takiego zapodać na przetwornik. To wymaga kluczy analogowych, ich sterowania oraz jakiegoś wzmacniacza. Cóż, nikt nie mówił, że będzie łatwo. Wbrew pozorom konstrukcje nawet prostych robotów muszą być dużo bardziej uniwersalne niż np. optyczne czujniki przemysłowe, gdzie warunki są ustalone raz na zawsze, taśma się przesuwa, butelki jadą a oświetlenie jest stałe i dowolnie dobre. Tutaj mamy raz dzień a raz wieczór, słońce przez okno, żarówki, lampy błyskowe i jeszcze świetlówki na suficie. Zaprojektowanie pewnie działającego w takich warunkach układu wcale nie jest proste i fajnie, że Treker taką dyskusję wywołał. Ze swojej strony spróbuję oderwać się na chwilę od firmowych projektów (jak zwykle spóźnionych..) i przeprowadzić kilka eksperymentów i pomiarów. Wyniki wraz z komentarzami jak zwykle wrzucę tutaj, może się komuś przydadzą.

Nalelektryzowany, widmo wyładowania w ksenonie znalazłem m.in. tutaj:

http://www.heraeus-noblelight.com/en/applications/arcflashlamps_1/af_photovoltaics/af_photovoltaics_1.aspx

Co prawda jest to jakaś specjalna lampa do badania fotoogniw i była projektowana na najlepszą zgodność z widmem słonecznym ale rysunek ten nie odbiega od innych znalezionych w sieci a obejmuje za to dość szeroki zakres długości fali. Widać tego, że flash błyska w całym zakresie światła wiedzialnego (to jasne, dlatego jest biały) ale dla nas smutne są też dwa piki obecne w bliskiej podczerwienii. Na szczęście wyładowanie lampy jest krótkie więc proste filtry RC powinny sobie z tym radzić. Jeżeli ich brakuje a program napisany jest w taki sposób, że tylko raz na jakiś czas próbkuje czujniki nie uśredniając odczytów, to może (ale nie musi - zależy od szczęścia) się zdarzyć, że akurat trafi na moment oślepienia fotoelementu i błąd w zachowaniu algorytmu gotowy.

Link do komentarza
Share on other sites

marek1707, cieszę się, że przyłączyłeś się do dyskusji. Właśnie na taką rozmowę liczyłem 🙂

Pozwolę sobie tylko skopiować wykres o jakim mówisz i umieścić go na naszym serwerze. Przynajmniej będziemy mieli pewność, że nie zginie:

Link do komentarza
Share on other sites

Wydaje mi sie, że podobny problem był poruszony w worklogu mojego robota pozwole sobie przytoczyć wypowiedź mirka

A co się stanie gdy oświetlenie będziemy podkręcać jeszcze bardziej? Prąd wyjściowy tranzystora będzie rósł od 0 tylko do wartości ograniczonej opornikiem i.. wzrost się zatrzyma. Napięcie wyjściowe osiągnie max (ok. 4.8V) i koniec. Mierzyć silniejszego światła w tym układzie nie możemy. Jeśli oświetlenie zewnętrzne naszego czujnika jest duże to koniec, jesteśmy ślepi bo tranzystor czujnika wszedł w nasycenie i wszystko co jest jeśniejsze niż pewien max jest nieodróżnialnie białe. Pomysłem jest wtedy zmiana opornika. Jeśli dasz opornik np. 10 razy mniejszy to ten sam prąd tranzystora wywoła 10 razy mniejsze napięcie. OK, mamy zmianę czułości i jednocześnie górnego zakresu pomiarowego, prawda?

Może to jest jakaś metoda eleiminacji zakłóceń ? Należało by "tylko" napisać program który odpowiednio kalibrował by czułość układu w zależności od oświetlenia...

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

To ja pozwolę sobie trochę rozwinąć moją (chyba poznaję ten styl 🙂 ) tezę jako że odpowiednia czułość jest istotną, ale nie jedyną cechą dobrego czujnika.

Aby zabrać się za poprawę działania czujników optycznych/IR musimy zdać sobie sprawę, że proste problemy są już rozwiązane. Wiadomo jak zrobić dobrą czułość, jak zapewnić dużą szybkość działania czy oszczędność energii. Kiedy czytam Wasze worklogi albo relacje z zawodów, to prawdziwym kłopotem są w większości przypadków zakłócenia zewnętrzne. Aby z nimi walczyć musimy zatem je poznać, bo przecież czujnik czy procesor muszą odróżniać je od sygnału użytecznego na podstawie jakichś cech dystynktywnych. Jeżeli sygnał "obcy" nie będzie w żaden sposób odróżniał się od "naszego" sygnału to nie ma siły, nie pozbędziemy się go żadną metodą. To prowadzi do kolejnego wniosku: jeżeli nie możemy wpływać na charakter zakłóceń, to jedynym wyjściem jest zmiana sygnału użytecznego tak, by jak najbardziej od nich się różnił.

Moim zdaniem moglibyśmy podyskutować o kilku klasach zakłóceń:

1. Stałę lub w miarę stałe - słońce, oświetlenie żarowe, promieniowanie cieplne podłoża itp

2. Wolnozmienne - składowa zmienna 50 lub 100Hz od oświetlenia wyładowczego (świetlówki, lampy HID) a nawet w pewnym stopniu i od żarówek

3. Szybkozmienne - zakłócenia szerokopasmowe od świetlówek (zapłony, mrugania itp)

4. Chwilowe i przypadkowe - lampy błyskowe

5. Promieniowanie własnych (np. w myszach?) i obcych (sumo?) czujników.

Jeśli ktoś ma jeszcze jakieś pomysły, proszę o dopisanie.

Od razu mówię, że nie mam gotowych recept na pozbycie się wszystkich ww rodzajów zakłóceń choć jedne rozwiązania narzucają się od razu a inne trzeba by wypróbować lub choćby przedyskutować. W kolejnych dniach spróbuję odnieść się po kolei do każdego punktu i może razem dojdziemy do jakichś ciekawych wniosków 🙂

Link do komentarza
Share on other sites

1. Stałę lub w miarę stałe - słońce, oświetlenie żarowe, promieniowanie cieplne podłoża itp

W tym punkcie należy pamiętać o tym, że może to być zakłócenie tylko na części toru. Często zdarza się tak, że 3/4 tras/ringów jest zacienione, a mały fragment areny oświetla na przykład słońce. Ja z mojej strony nie spotkałem innych zakłóceń, niż te jakie wymieniłeś.

Chociaż ciekawie sprawa wyglądała na jednych zawodach, gdy trasa do linefollowerów wykonana była z kilku bannerów sklejonych białą taśmą izolacyjną. Łączenie było równe i nie wyglądało na kłopotliwe... Jednak, taśma jaka została użyta dla czujników IR wyglądała na czarną... Taka ciekawostka 🙂 Wtedy wystarczyła regulacja komparatorów, jednak nie łatwo było wpaść na sam fakt istnienia takiego problemu.

Nie każde zakłócenie jesteśmy wstanie wychwycić gołym okiem, więc czujnik powinien radzić sobie bez specjalnego strojenia z szerokim zakresem zakłóceń. Problematyczne są zawody, na których infrastruktura pozwala na wykorzystywanie oświetlenia scenicznego. Masa różnych lamp/reflektorów z każdej możliwej strony. Zdarzało się już, że takie oświetlenie było uruchamiane podczas rozgrywania konkurencji, więc warunki były zależne od czasu kiedy się startowało.

Link do komentarza
Share on other sites

W przypadku problemów z podłożem nie. W innych przypadkach pewnie tak, jednak jazda z kawałkiem pudełka od pizzy na czujnikach to mało profesjonalne rozwiązanie, które dodaje zbędną masę na ramieniu.

Link do komentarza
Share on other sites

Ja tam co prawda specjalistą w tych sprawach nie jestem, ale, podsunę teorię stosowaną w układach audio.

Teroria, opiera się na stwierdzeniu, że jeżeli fala, dla przykładu na wodzie, natknie się na swojej drodze, na depresją, to zostanie zniwelowana, o głębokość tej depresji.

Skoro światło to też fala, jeżeli użyć by dwóch czujników, lub jednego i odpowiedniego algorytmu, jeżeli zmiksujemy, sygnał odebrany, z odwróconym o 90° sygnałem zakłucającym, co nie powinno być wielkim problemem, bo sami generujemy sygnał użyteczny, otrzymamy sygnał wyjściowy pozbawiony zakłóceń, lub z znacznie zredukowanym szumem/zakłuceniami.

Druga sprawa jak mi przemkła przez myśl, to algorytm, stosowany w uśredniaczach sygnału analogowego (opisany w książce Sztuka elektroniki, jeszcze na procu MC6800). Nie wiem czy przydatny, ale jak pamiętam, zwiększa odstęp sygnał szum.

Co do czujników zerknijcie sobie na czujniki TSL250.

http://www.stanford.edu/class/ee122/Parts_Info/datasheets/tsl250.pdf

Link do komentarza
Share on other sites

BlackJack: krótka choć bardzo spóźniona odpowiedź:

Tak, światło ma dualną naturę i zabawy w mieszanie spójnych strumieni z przesuwaną fazą bawią się fizycy na całym świecie a o interferecji to już chyba każdy słyszał, ale my nie rozpatrujemy zjawisk na tym poziomie. Z punktu widzenia naszych układów nie ma znaczenia jakie medium przynosi informację - to równie dobrze może być fala akustyczna albo promieniowanie podczerwone lub widzialne. Nas interesuje już tylko sygnał elektryczny uzyskany z czujnika a tam nie ma śladu po delikatnej strukturze światła. Nasze czujniki oddają napięcie (lub prąd) odpowiednie do natężenia promieniowania padającego na strukturę półprzewodnikową. Dopiero po takim przetworzeniu, gdy obserwujemy jakby tylko "obwiednię" (a raczej energię) strumienia możemy coś z tym dalej zrobić. Masz rację w tym, że metoda odejmowania jest fajna bo uwalnia nas od żmudnego oddzielania sygnału użytecznego od śmieci. Nawiasem mówiąc sygnał należy przesunąć o 180° żeby ta operacja miała sens i dotyczy to tylko przebiegów okresowych. Bardziej ogólną jest operacja zmiany znaku 🙂 prawda? Takie odwrócone, "czyste" zakłócenia po dodaniu do sygnału z czujnika odbierającego całość spowodują, że na wyjściu dostaniemy tylko nasz sygnał. Kłopot jest w tym, by takie "czyste" zakłócenia złapać. Jeżeli walczymy np. tylko z oświetleniem zewnętrznym, to wyobrażam sobie jeden dodatkowy czujnik (najlepiej taki sam jakie siedzą pod podwoziem) wystawiony do góry. Sygnał z niego byłby właśnie "czystymi" zakłóceniami i można by go odjąć np. od sygnałów z czujników linii. Oczywiście tak prosto wygląda to tylko w teorii, bo przecież czujniki linii widzą jednak inne świtało otoczenia niż ten na górze. Po pierwsze - dużo słabsze ale to najmniejszy problem. Po drugie światło nie musi być rozproszone i jednorodne, tylko pochodzić np. ze słońca zaglądającego przez okno czy reflektora na suficie. Wtedy w zależności od położenia każdy dolny czujnik zobaczy inne zakłócenie. W każdym razie układ taki można zbudować i poeksperymentować. W najgorszym razie można po prostu skręcić jego czułość do minimum i tym samym odejmować zero.

Wszelkie uśredniacze sygnałów są filtrami dolnoprzepustowymi. I te zrobione w technice cyfrowej i ich analogowi bracia bazują na odróżnianiu sygnału od śmieci na podstawie cech częstotliowściowych lub czasowych - to tylko kwestia punktu widzenia, bo obie dziedziny są wymienne. Jeśli masz dużo szumu w układzie szerokopasmowym a wiesz, że Twój sygnał to np. mowa, której wystarczy pasmo 300Hz-3kHz to w najprostszym przypadku robisz filtr przepuszczający wszystko poniżej np. 3.5kHz i poprawa jest znaczna - zniknął cały szum powyżej 3.5kHz. Gdyby sygnał był jednak muzyką zajmującą np. 10kHz to ten sam filtr załatwiłby - oprócz szumów - także wszystkie wysokie tony oraz przebiegi impulsowe takie jak np. szybkie ataki czy perkusję i wtedy degradacja jakości przekazu byłaby nie do przyjęcia. Tak więc każda metoda jest do czegoś dobra ale nie ma niestety jednej uniwersalnej, tak jak nie ma uniwersalnego filtru oddzielającego "dobre" od "złego".

Link do komentarza
Share on other sites

Wydaje mi się, że i tak należy najpierw przeprowadzić testy i wyłonić najbardziej zakłócający czynnik. Należy tylko ustalić warunki każdy mógłby wtedy przeprowadzić ów eksperyment we własnym zakresie i podzielić się wynikami...

Link do komentarza
Share on other sites

Marku, ja pisałem ogólnie, a ty piszesz, jak dobrze rozumiem o czujniku do LineFlwera, bo na ten tor głównie chyba zeszła dyskusja, ale tak masz rację.

Natomiast co do czujników, jest jeszcze jeden, wbrew pozorom łatwo dostępny czujnik optyczny, z sporymi chyba możliwościami, mianowicie czujnik z myszy optycznej. Ciekawe czy to mogłoby zostać zastosowane do czegoś ?

Link do komentarza
Share on other sites

Znajomi kiedyś robili eksperymenty z czujnikami z myszy. Problemem okazało się to, że są one bardzo wrażliwe na odległość soczewki od podłoża. Plan był taki, aby dwóch czujników użyć do wykrywania przemieszczenia i rotacji robota, ale niestety ich kalibracja okazała się zbyt trudna do zrealizowania.

Link do komentarza
Share on other sites

Czujnik z myszy jest zwykłą "kamerką" ale o bardzo małej rozdzielczości. To układ optyczny determinuje odległość i głębię ostrości a nie sam czujnik. Przy wykorzystaniu firmowego obiektywu z myszy, czyli plastikowej prawie kulki, mechanika przeszczepu sprowadza się do przełożenia całości i ustawienia odległości rzędu 1mm od podłoża, bo tak działa mysza. Korzystając z innego obiektywu można zrobić chyba dowolnie inną konfigurację. Z drugiej strony fizyka jest zawsze taka sama więc jeśli chcemy mieć większą głębię ostrości to stracimy na jasności (przesłona) no i długość (w tym wypadku wysokość) zespołu będzie większa. Mam taki czujnik i kilka bardzo różnych obiektywów od kamer płytkowych więc i takie eksperymenty wchodzą w grę 🙂

W sumie to temat czujników jest niesamowicie szeroki. Inne wymagania mają LFy, inne myszy a jeszcze o co innego chodzi w cośtam-sumo. Tak, pisałem o podążaczach za linią choć na zakłócenia działania cierpią od czasu do czasu chyba wszyscy. Masz rację, inaczej bym projektował i badał czujnik czarnej linii a inaczej detektor obecności/odległości białej ściany. Każda konkurencja ma swoje wymagania ale generalnie wszyscy chcieli by, żeby ich czujnik był mały, szybki i niezawodny a to trudne. Planowałem skupić się na zagadnieniach ogólnych i pokazać kilka układów przeznaczonych do własnych eksperymentów lub dalszej dyskusji po to, by wyjść z zaklętego kręgu fototranzystora lub KTIRa podłączonego wprost do komparatora. Jasne, to też może działać ale jak widać, Wasze wymagania rosną.. 🙂

Link do komentarza
Share on other sites

Ja w domu posiadam czujniki optyczne na podczerwień, przemysłowe, zwykłe, najtańsze czujniki, krańcowe 1/0. Co ciekawe one też reagują na kolor, oświetlenie, nie tylko dystans, mogę poeksperymentować, jak się będą zachowywały, jako czujni linii. Niby mają odległość detekcji 7cm, ale zmienia się ona w zależności co się przed nimi postawi.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.