Skocz do zawartości

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


Treker

Pomocna odpowiedź

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.

Tak jest najprościej, nie widziałem, aby ktokolwiek nawet próbował inaczej. Najwyższa pora to zmienić.

Link do komentarza
Share on other sites

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ł.

Czyli w skrócie: robimy pomiar oświetlony, wyłączamy diody, robimy pomiar nieoświetlony, odejmujemy wyniki. Problemem może tutaj być duże obciążenie procesora oraz minimum dwukrotne zmniejszenie częstotliwości skanowania. Jedno i drugie można jednakże załatwić korzystając z odpowiednich elementów (procesor, ADC).

Niestety taka metoda nie bardzo nadaje się do odfiltrowania analogowo - tym samym trzeba korzystać z filtrów cyfrowych. Po pierwsze obciążają one procesor, po drugie często jeszcze zmniejszają częstotliwość użytecznych pomiarów lub wprowadzają opóźnienie do toru regulacji.

Link do komentarza
Share on other sites

Rozumiem teraz o co chodzi, aczkolwiek nie uważam, aby uznawanie pomiaru z niedoświetlającego czujnika za aktualne zakłócenia za całkiem dobre rozwiązanie. Problemem są skrajne czujniki oraz sytuacja, w której nie znajdują się one w linii prostej. Wtedy takie uogólnienie nie działa (albo działa wystarczająco tylko dla środkowych czujników). Poza tym do tego czujnika po pierwsze może wpadać część światła z innych czujników, po drugie jest problem z jego umiejscowieniem - jeśli będzie w linii z pozostałymi to będzie dziłać jak przerwa. Jeśli będzie wysunięty (lub schowany) to będzie dostawać inną ilość zakłóceń niż inne czujniki.

Możliwe, że pewnym rozwiązaniem byłoby połączenie tych dwóch metod. Kluczować załączenia diod i od każdego pomiaru odjąć pomiar z czujnika kontrolnego. a potem to o czym już wcześniej pisałem. Ale to wyeliminowałoby tylko problem doświetlania naszego czujnika przez pozostałe. Problem umiejscowienia go pozostaje.

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

Eksperyment nr 2 polega na zmianie wartości R1. Co to daje? Rozpatrzmy dwa przypadki. W obu z nich wykorzystamy zakres natężenia oświetlenia taki, żeby wywoływał za każdym razem zmiany prądu fototranzystora np. od 10uA do 1mA. Mając opornik 100R dostajemy napięcia wyjściowe od 1mV do 100mV. Zwiększając R1 do np. 2.2k otrzymujemy zakres zmian napięcia wyjściowego (przy tym samym oświetleniu) od 22mV do 2.2V a więc układ nasz jest znacznie czulszy (dokładnie: 22 razy). Fajnie, odpowiednio dobierając R1 możemy zmieniać czułość naszego układu. Czy powinna być jak największa? A to już zależy od tego co chcemy dalej z tym sygnałem robić

Marku, nie wiem czy zapomniałeś, czy celowo pominąłeś pewien fakt. Otóż przy zmniejszaniu prądu fototranzystora spada szybkość jego reakcji na zmianę oświetlenia. I jak do tej pory spotkałem się z wykresem takiej zależności tylko w przypadku KTIRów.

Link do komentarza
Share on other sites

OldSkull: oczywiście masz rację. Fajną stroną tej metody jest łatwe pozbywanie się zakłóceń pod warunkiem... że ma się te zakłócenia podane na talerzu. To z kolei zależy wprost od położenia i orientacji czujnika. Być może nie jest to dobre rozwiązanie dla LFów. Może lepiej byłoby pisać o myszach lub sumo? Tam czujniki patrzą do przodu/na boki i są dużo bardziej narażone na oświetlenie zewnętrzne. W każdym razie metoda jest układowo dość prosta i bez ograniczeń szybkościowych jak inne, korzystające z filtrów - dlatego nie sposób było o niej nie napisać.

BTW: Pisaliśmy razem, a moje nowe dopisało się ułamek sekundy wcześniej do poprzedniego postu 🙂

Sabre: Pisanie o szybkościach zostawiłem sobie na później. Na razie jesteśmy w przedszkolu.

Link do komentarza
Share on other sites

Sabre: Pisanie o szybkościach zostawiłem sobie na później. Na razie jesteśmy w przedszkolu.

Ok, ale czy warto rozważać pewne dane nie biorąc pod uwagę innych kluczowych parametrów. Rozumiem, że nie ma sensu zalewanie ogromną ilością wiedzy na początku, ale o pewnych faktach warto wspomnieć chociażby, aby nie wejść w ślepą uliczkę kierując się tylko np. czułością kosztem właśnie szybkości reakcji.

Link do komentarza
Share on other sites

Być może nie jest to dobre rozwiązanie dla LFów. Może lepiej byłoby pisać o myszach lub sumo?

Wydaje mi się, że to słuszne podejście, ponieważ w LFach czujniki przewidziane są troszkę do innych zadań niż szukanie przeciwnika. Dobrze by było, gdyby wypowiedzieli się tutaj konstruktorzy *sumo/MM. Ja dopiero zaczynam przygodę z MM, więc jeszcze nie mam dużo do powiedzenia. Co do linefollowerów to nigdy nie używałem filtrów i "dawało radę", teraz dopiero próbuję się bawić z takimi rzeczami. Na dobrą sprawę wystarcza tutaj prosty filtr medianowy.

Na upartego, znając ułożenie czujników oraz charakterystykę trasy - szerokość linii, można pokusić się nawet o jakąś predykcję. Skoro linia jest widoczna na prawych skrajnych czujnikach, to nie realne jest, aby w kolejnym pomiarze pojawiła się po przeciwnej stronie itd. Pobawię się, zrobię testy i dam znać 🙂

Link do komentarza
Share on other sites

I o to mi właśnie chodzi. O to, by pokazać pewne możliwości i przekonać do własnych eksperymentów. Nie chcę skupiać się na szczególnych rozwiązaniach i dawać przepisów "na czujnik linii" czy "detektor ściany". Przykłady jakie przywołuję mają tylko pomóc w wyobrażeniu sobie konkretnej sytuacji przestrzennej. Nie traktujcie ich jak warunku stosowania tej czy innej metody. Każdy kto będzie robił coś własnego i tak napotka na mnóstwo nowych problemów i pytań, których teraz nie przewidzimy. Niech przynajmniej wie, że istnieje coś więcej niż KTIR i komparator. Jednym zależy na prostocie a inni mają żyłkę badacza, ale niech obaj wiedzą co mogą zyskać a co jest w danym rozwiązaniu nieosiągalne. Ostateczny wybór i tak będzie należał do autorów projektów.

Link do komentarza
Share on other sites

marek1707, Twoje niektóre posty zawierają więcej wiadomości niż kilka artykułów i stron razem wziętych. Może dużo osób nie udziela się w tym temacie, jednak na pewno sporo więcej czyta i wyciąga wnioski 🙂

Link do komentarza
Share on other sites

Ojej, mam nadzieję, że nie zrezygnowaliście z czytania i że powyższe wpisy nie stały się waszą lekturą do snu 🙂

Omawiając problem odejmowania sygnałów doszliśmy ostatnio do wzmacniacza sumującego (ze znakiem) prądy, który twardo trzymając napięcie w węźle sumacyjnym pozwalał na odseparowanie źródeł od siebie i zamianę prądu na napięcie. Do pełni szczęścia brakuje nam jeszcze czujnika oświetlenia. Wykorzystam tutaj tę samą konfigurację OA, bo cóż w dzisiejszych czasach znaczy jeden wzmacniacz więcej?

Układ ten "za darmo" robi nam pewną bardzo ważną rzecz. Otóż jeśli na wejście (+) dostanie takie samo napięcie co czujnik linii (tutaj: 2V), to na wyjściu wzmacniacza również dostaniemy to samo. To z kolei oznacza, że w zupełnej ciemności, gdy fototranzystor nie będzie wysysał żadnego prądu, na wyjściu będzie dokładnie tyle ile potrzeba by nie zaburzać równowagi we wzmacniaczu czujnika linii. Nie musimy niczego kalibrować itd. Jeżeli jednak jakieś światełko w tunelu się pojawi, Ic zrobi się > 0, to samo popłynie przez Rfb i na wyjściu wzmacniacza napięcie wzrośnie. Wyjście wzmacnaicza jest źródłem napięciowym tzn. będzie trzymało swój potencjał niezależnie od prądu zeń pobieranego a to niedobrze. Stopnień czujnika linii ma bowiem wejście prądowe. Na szczęście nie trzeba wiele kombinować: korzystając z tego, że węzeł sumacyjny ma stały potencjał wystarczy wstawić rezystor szeregowy a prąd w nim płynący będzie wprost proporcjonalny do różnicy napięć.

Mamy więc sytuację taką: jeden czujnik otoczenia - ten na powyższym rysunku - oddaje napięcie Uo = 2V+(Ic*Rfb). Przy Ic=0 jest ono równe 2V. Wyjście tego wzmacnaicza podłączamy przez rezystor do węzła sumacyjnego czujnika linii. Jeżeli chcemy miec wpływ na każdy czujnik linii osobno, każdy musi dostać osobny potencjometr:

Regulacje całości zaczynamy od Rfb we wzmacniaczu czujnika otoczenia. Zmieniamy nim czułość mierząc napięcie na wyjściu OA, umieszczając czujnik w różnych położeniach i zapalając różne światła w pokoju. Wszystko po to, by nie dopuścić do nasycenia tranzystora i wzmacniacza.

W zależności od typu użytego OA będziemy dysponować różnymi zakresami napięć wyjściowych. Jedne pracują np. tylko do Vcc-1.5 a inne potrafią na wyjściu dociągnąć praktycznie do swojego Vcc. Trzeba to każdorazowo sprawdzić w danych katalogowych i jest to zupełnie niezależne od zakresu napięć wejściowych, o któych pisałem wcześniej. Dzisiaj już tłumaczenie względami ekonomicznymi ("A bo był tani to wziąłem") raczej nie ma sensu. Istnieją całkiem fajne i niedrogie wzmacniacze typu RRIO (Rail-to-rail In/Out), które jak sama nazwa wskazuje radzą sobie z sygnałami o pełnym zakresie GND-Vcc zarówno na wejściu jak i na wyjściu.

Załóżmy jednak, że ktoś ma nieprzebrane zasoby LM324 i bardzo daleko do sklepu. Przy zasilaniu tego wzmacniacza z 5V musimy liczyć się z tym, że nie dostaniemy na wyjściu więcej jak 3.5V. Trudno, musi wystarczyć. Jeśli utrzymamy napięcie węzła sumacyjnego na 2V, to mamy jedynie 1.5V zakresu zmian na wyjściu i w tym musimy się zmieścić przy regulacji czułości. Zakładając, że w najgorszych waunkach nasz fotranzystor zrobi sobie np. Ic=800uA, to nasz Rfb=1.5V/800uA czyli 1.8k. Wtedy na wyjściu dostaniemy Uo=3.5V. Fajnie, mamy już źródło sygnału jaki będziemy odejmować od czujników linii.

Następne, nie podłączając jeszcze właśnie skalibrowanego czujnika otoczenia do czujników linii musimy odpowiednio ustawić czułość tych ostatnich. Zaczynamy od potencjometrów regulujących położenie punktu pracy, czyli zmieniających wyjściowe napięcie wzmacniacza w ciemności. W tym celu możemy odłączyć fototranzystory lub tak je pochować, by zrobić im czarną dziurę. Ponieważ LM324 całkiem dobrze radzi sobie na wyjściu z niskim napięciami, możemy wszystkim ustawić np. 200mV. Dołączamy fototranzystory, te zaczynają wysysać ze swoich węzłów prąd, więc napięcia na wyjściach wzmacniaczy rosną. Teraz naszym zadaniem jest kręcić ich Rfb tak, by potrafiły przenieść wszystko bez nasycania. Wszystko, czyli najgorszy przypadek: białe podłoże plus najjaśniejsze oświetlenie przy którym robot ma jeszcze jeździć. Oczywistym jest, że pod podwozie powinno się go dostawać jak najmniej ale zupełne stłumienie może być bardzo trudne. Coś będzie "przeciekać" przez szczeliny z boku, coś przez samo PCB itd. Obserwując napięcia na wyjściach wzmacniaczy i regulując Rfb doprowadzamy do sytuacji, w której żaden z czujników nie dojeżdża zbyt blisko 3.5V. Dla pewności możemy sprawdzić, czy najechanie na czarną linię coś w ogóle zmienia 🙂 Moim zdaniem różnica mniejsza niż 200-300mV będzie oznaczać jakiś problem w założeniach lub w konstrukcji czujnika. W założeniach, jeśli wymyśliliśmy sobie zbyt duży zakres światła z otoczenia. Wtedy nasz sygnał z linii po prostu w nim ginie i może być zbyt mały do prawidłowego odtworzenia go w kompratorze. Możemy jasniej świecić diodą LED - wtedy lepiej sygnał linii "wydobędziemy" z ogólnego oświetlenia (które względnie przygaśnie) lub tak zmienić konstrukcję czujnika by lepiej widział światło LED odbite od trasy niż to stałe, które przychodzi z zewnątrz. Czarne rurki termokurczliwe, zabudowanie boków podwozia itp. Jeżeli jednak amplituda sygnału z linii jest wystarczająca, dalej jest już prosto.

Podłączamy czujnik otoczenia przez osobne potencjometry do węzłów sumacyjnych wzmacniaczy linii. Stawiamy robota na jasnym podłożu, unieruchamiamy i włączamy diody LED. Sytuacja będzie opanowana, gdy uda nam się tak ustawić potencjometr danego czujnika, by napięcie na wyjściu jego wzmacniacza nie zmieniało się podczas zmian oświetlenia. Jeśli napięcie rośnie to znaczy, że opornik jest za duży i za mało prądu z czujnika otoczenia wchodzi do węzła. Jeśli napięcie maleje to znaczy, że przesadziliśmy i zbyt dużo prądu otoczenia "zasypuje" węzeł czujnika. W szczwególnym przypadku, gdyby czyjnik otoczenia widział dokładnie to samo światło rozproszone co czujnik linii, to tyle samo sygnału zakłóceń dostaniemy z jednego jak i z drugiego czujnika a to oznacza, że potencjometr szeregowy powinien mieć taką samą wartość jak Rfb czujnika otoczenia. Twedy przez oba będzie płynął ten sam prąd: jeden do węzła czujnika otoczenia, drugi do węzła czujnika linii. Ponieważ oba węzły są na tym samym potencjale to i prądy będą równe.

Cóż, układ wyszedł trochę większy niż zwykle widzę tu na schematach ale i możliwości ma niezłe. Gdyby ktoś miał ochotę pobawić się czymś podobnym, niech pyta o szczegóły. Dopóki nie wnikamy w zjawiska dynamiczne lub szczegóły dotyczące prądów polaryzacji czy stabilności termicznej, liczenie czegoś takiego sprowadza się do czterech działań i paru prostych praw fizyki, prawda? 🙂

Gdy teraz czytam co napisałem widzę, że zostały tu jeszcze pewne ważne a nie omówione wcześniej szczegóły. O nich oraz o tym jak zacząć odróżniać sygnał nasz od obcego w sytuacji braku osobnego czujnika zakłóceń opowiem gdy..

CDN 🙂

  • Lubię! 2
Link do komentarza
Share on other sites

Hm, jakoś tak wątek zdechł..

No nic, korzystając z chwili czasu zkleciłem układzik opisany powyżej.

Z typowego LM324 🙂 wykorzystałem dwa wzmacniacze zasilane z 5V. Rezystorowy dzielnik napięcia 43k/22k robi mi napięcie odniesienia 1.7V podane na wejścia (+) obu wzmacniaczy. Dwa fototranzystory L-93DP3C podłączone do wejść (-) są czujnikami. Jeden trasy, drugi oświetlenia. Wzmacniacz czujnika trasy dostał Rfb=10k a temu od otoczenia wystarczyło sprzężenie zwrotne przez 2.2k. Wyjście czujnika otoczenia połączyłem z węzłem czujnika trasy trymerem wieloobrotowym 5k. Białą kartkę z wyklejonym kawałkiem czarnej taśmy oświetliłem LEDem podczerwonym LD271.

Wszystkie elementy optoelektroniczne dostały czarne koszulki termokurczliwe ale ich nie podgrzewałem, wystarczyło samo nasunięcie.

Całość została zmontowana na małej płyteczce uniwersalnej i zawieszona ok. 8 cm nad podłożem, oczywiście fototranzystorami w dół 🙂 Przeprowadziłem opisaną procedurę kalibracji a potem zacząłem się bawić. Różnica napięcia otrzymywanego z czujnika między białą kartką a czarną taśmą wynosiła ok. 400mV co jest zupełnie wystarczające do pracy komparatora (którego już nie zrobiłem). Wszystko odbywało w deszczowe popołudnie więc było raczej szaro, ciemno i smutno. Po zapaleniu lampy biurkowej czujnik zwariował i oddawał głównie wielkie 100Hz z zasilanej z sieci żarówki. Gdzieś tam na tym tle był sygnał z linii ale zakłócenia sieciowe nie dawały szans na jego prawidłowe odtworzenie. Nie mówiąc już o 1.5V przesunięciu w górę składowej stałej. Żaden komparator by tego nie łyknął. Pokręciłem trymerem i.. wszystko jak ręką odjął 🙂 Zniknęło 100Hz, zniknęło przesuwanie punktu pracy itd. a sygnał z czarnej linii stał jak wmurowany. Mogłem dowolnie zapalać i gasić żyrandol, oddalać i przybliżać lampę na biurku i dopiero bezpośrednie trafienie żarówą 100W (już chyba zabronioną) pokonało mój zestaw. Takich warunków jednak chyba raczej nikt nie przewiduje pod podwoziem LFa więc raczej jestem spokojny o działanie w mniej drastycznych sytuacjach.

Wsiadłem więc na rower i z radości zrobiłem ze 30km dodatkowo 🙂 Ech, jesień idzie.

  • Lubię! 1
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.