Elektroda.pl
Elektroda.pl
X
Elektroda.pl
W2 Usługi badań i pomiarów
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Czujniki do Robota

17 Paź 2005 22:54 2916 19
  • Poziom 26  
    wziąłem się za budowe robota który miał być zrobiony jak naj lepiej i możliwie niskim kosztem.
    nic super skomplikowanego ale nie też zwykła zabawka. można powiedzieć że jest to wstęp do czegoś konkretniejszego.
    na poładzie ma atmega16 na 4Mhz i narazie 6 czujników IR zbudowanych z diody ir i fototranzystora. sygnał prądowy z fototranzystora trafia na zwykły traznystor i dalej na przetwornik ADC do uP.
    układ ten działa lecz jest pewne ale a mianowicie zasiąg jest dość kiepski około 10 cm i na dodatek każdy czujnik ma inną czułość. jest to spowodowane prawdzopodobnie róznicą wzmocnienia trazystorów i nierównym rozłożeniem diod i fotofranzystorów.

    teraz już tego niebęde ruszał ale w 2 konstrukcji chcę zastosować coś pewniejszego. a mianowicie mam taki pomysł.
    generator na kwarcu zegarkowym czyli 36,7...kHz i do tego dioda IR.
    jako odbiornik układzik TSOP1736. i z niego sygnał na przetwornik adc.
    i teraz moje pytanie czy w ten sposób dało by sie zmieżyć w miare dokładnie odległość od obiektu.
    wiem że uklad TSOP ma we wnętrzu filtr , wzmacniacz i demodulator ale komparatora chyba niema. i teraz nie wiem czy sygnał ten będzie czysto cyfrowy (0,1) czy da sie go zmieżyć w stanach pośrednich.

    może inni też mają jakieś dobre pomysły. ważne jednak aby były one w przyzwoitej cenie bo z kasą u mnie jest nienajlepiej.
    na razie chiałem odpuścić sobie ultradzwięki ze wzgledu na duży kąt pomiaru.
  • W2 Usługi badań i pomiarów
  • W2 Usługi badań i pomiarów
  • Poziom 23  
    Witaj

    Z odbiorników TSOP wychodzi sygnał o poziomach logicznych (0,1). Więc raczej do pomiaru odległości się nie nada. Układ albo będzie odbierał zmodulowane IR i da na wyjściu odpowiedni przebieg cyfrowy, albo po przekroczeniu minimalnego poziomu podczerwieni przestanie coś dawać na wyjście.
  • Poziom 26  
    czytałem o tych czujnikach PSD i pomysł ten wydaje się dość dobry ale ma pewien duży minus a mianowicie cena. 19$ to dużo za dużo jak na moje finanse. pozostaje wiec pokombinowac coś innego.
    Jeżeli Tsop ma na wyściu sygnał cyfrowy to może coś troche innego a mianowicie prawie to samo tylkoże na będe regulował prąd diody od 0 do momentu w którym Tsop wykryje sygnał. z wartości tego prądu będe mógł wyliczyć odległość (oczywiści niezbyt dokładnie ale to zawsze coś).

    ciągle czekam na wasze pomysły.
  • Poziom 35  
    skad wziales cene 19$?

    mozna sciagnac z ameryki po 8,5$.. oczywiscie dochodza koszty przesylki itd, ale jak kupisz czesci za ~100$ to za jeden czujnik wyjdzie cie <35zl...

    Od czasu do czasu www.gembara.pl ma w swojej ofercie te czujniki.. (niestety tylko gp2d120, nigdy gp2d12), aktualnie chyba mozna dostac gp2d120 po 45zl... jak potrzebujesz jeden lub 2 to jest to cena do przelkniecia.
  • Poziom 26  
    to i tak za dużo bo musiał bym ich mieć przynajmniej 6 a może więcej.

    co myślicie o miom pomyśle??
  • Poziom 35  
    zdaje się że ma jedną wadę, taki detektor światła będzie działał różnie zależnie od typu materiału od którego następuje odbicie.
    Jeżeli znasz ten materiał to możesz zastosować współczynnik korekcji, który wygląda mniejwięcej tak:

    Dla popularnie używanych materiałów współczynnik korekcji wynosi:
    - Papier biały matowy 200g/m2; 1
    - Metal błyszczący; 1,2 - 1,6
    - Aluminium czarne eloksalowane: 1,2 - 1,8
    - Styropian biały: 1
    - PCW szare: 0,5
    - Karton czarny błyszczący: 0,3
    - Karton czarny matowy: 0,1
    - Drewno surowe: 0,4

    Jeżeli natomiast robot porusza się między przedmiotami z różnych materiałów to twoje rozwiązanie da ci średnie wyniki.

    Jedyne jakieś realne zastosowanie twojego pomysłu widze w tym, żeby wprowadzić 2-3 zakresy działania czujnika.

    Czyli np 10cm, 3cm, 1cm (co dla większosci materiałów w praktyce oznacza 5-10cm, 1,5-3cm, 0,5-1cm). W ten sposób wiesz czy robot znajduje się daleko od przeszkody (>5cm) , dosyc daleko od przeszkody (~5cm) , blisko przeszkody (~2cm), bardzo blisko przeszkody (<1cm).

    Nie sądze, żebyś mógł na coś więcej liczyć.


    Inny sposób (dla wolno poruszającego się robota) to wprowadzić jeden/dwa czujnik(i) gp2d120 na wieży obrotowej.
  • Poziom 26  
    ale załużmy że otoczenie byłoby z jednego materiału. czy pomiary takie jak przedstawiłem były by wtedy dokładne (niemówie tu o dokładności co to 1 milimetra ale żeby wyniki były w miare powtażalne).

    cały czas możecie przedstawiać swoje konstukcje.
  • Poziom 35  
    W skali do centrymetra or so to mysle, ze by byly dokladne... nigdy nie probowalem.
    Jest jedna zaleta tego systemu, ze nie meczysz sie z histereza.
    Jest tez wada.. system nie mialby zbyt duzej szybkosci odswiezania..musialbys ja dobrac sobie eksperymentalnie.

    Najlepiej chyba bedzie zrobic to tak, ze od 0 zwiekszasz natężenie prądu płynącego do diody do momentu aż czujnik zwróci informacje, że nastąpiło odebranie sygnału. W tym momencie "zapisujesz" wartość i odłanczasz na moment prąd od diody... i zaczynasz od nowa.

    Zależność prąd diody/odległość pomiaru zapewne nie będzie nawet w przyblizeniu liniowa, więc będziesz musiał sobie stworzyć jakaś tablice wyników, uzyskanych eksperymentalnie i wg. nich określać odległość odprzedmiotów.

    Daj znac jak to działa.
  • Poziom 26  
    cały dzień myślałem i myślałem i myślałem .... wiem wiem lekarz mówił żebym tego nie robił bo to mi szkodzi ale co tam.
    po tych długich wywodach doszedłem do czegoś takiego jak na schemacie(sorry za jakość ale robiony w paincie ).
    a teraz trochę wytłumaczę: tamta drabinka rezystorowa to przetwornik ADC bardzo szybki i w miarę dokładny (już kiedyś coś takiego testowałem). procesor może na nim wytwarzać modulowany sygnał 36kHz.
    sygnał z stamtąd trafia na przetwornik napięcie prąd który bezpośrednio steruje diodą IR. w ten sposób procesor może wysyłać promieniowanie IR o częstotliwości 36Khz z różną mocą.
    zasada jest taka procesor zwiększ moc sygnału aż do wykrycia go przez odbiornik. w tym momencie procesor zapisuje aktualną moc sygnału jako odległość.

    To powinno działać ale nie uratuje mnie od różnic koloru. Wiec myślałem dalej i wymyśliłem coś takiego. Żeby zmniejszyć czułość odbiornika to przesunę trochę częstotliwość nadawanego sygnału i wykonam drugi pomiar. Wtedy wyjdzie mi inna moc sygnału potrzebna do zareagowania odbiornika.
    Zapiszmy to matematycznie.

    1.sygnał_wyjściowy1 = (sygnał_diody1 * kolor_materiału)/(odległość * k)
    2.sygnał_wyjściowy2 = (sygnał_diody2 * kolor_materiału)/(odległość * k)

    k – jakiś współczynnik który dało by się wyznaczyć doświadczalnie

    z tego równania dało by się wyliczyć kolor materiału (a przynajmniej jego współczynnik pochłaniania światła) i odległość.
    Przynajmniej teoretycznie
    Co sądzicie o takim pomiarze czy to może cię udać ????

    jutro kupię części i będe exsperymentował ale możeci wypowiedzieć sie o moim pomyśle. czekam też na inne pomysły.
  • Poziom 26  
    hmmm coś mi się wydaje że te wzory są coś nie tego ale mam nadzieje że pomysł jest dobry.
  • Poziom 26  
    dobra wstępne testy mam za soba. wyniki no cóż nie są oszałamiające ale nad tym jeszcze pracuje.
    więc muwie. czujnik ma ogromną czulość musiałem zmienić rezysto w żródle prądowym na 4,7Kohm bo mi się tak po pokuju odbijało że cały czas sygnał był wykrywany.
    po drógie ten odbiornik jest jakiś dziwny bo jak wykryje sygnał to daje stan niski na około 8ms. potem wraca do 1.

    teraz konktrety a mianowicie stabilność. i tu sie troche zawiodłem (chociaz nie jest najgożej) bo wynik troche pływa a mianowicie +-10% a czwilami i więcej. ale to cie chba da poprawić. jest jeszcze tego że pomiar trwa dość długo.

    niezważając na przeciwności jeszcze troche poeksperymentuje. narazie mam mało czasu i w sumie robiłem to 3h (składanie i programowanie).
    w weekend niestety doszkoły tak ze dużo nie podziałam ale od poniedziłaku powinienem miec więcej czasu.
    ma ktoś jakieś pomysły od czego tak pływają wyniki ????
  • Poziom 35  
    wiesz, bardzo trudno bez schematu, programu itd. sprawdzic dlaczego tobie plywaja wyniki... ;)

    Ale 10% wydaje sie raczej przyzwoitym wynikiem jak na zastosowana metode
  • Poziom 26  
    schemat jest wyżej. jedyne co się zmieniło to rezystor w sprzeżeniu wzmacniacza operacyjnego (a 400ohm na 4,7kOhm) i dodałem filtr do odbiornika Tsop (100ohm + 10uF). reszta tak samo.
    a te odchyłki to +-10% czyli 10% w góre i 10% w dół czyli razem 20% a chwilami i więcej. czyżby Tsop tak różnie reagował ????
  • Poziom 26  
    widze że zainteresowanie tematem jest marne no cóż.
    wracając do sprawy. dodałem troche filtrów do układu pełno kondensatorów itp. do TSOP'a dałem filtr RC(1k 100uF) lm78l05(osobny tylko do odbiornika) i jeszce jeden filt rc. równolegle z diodą nadawcza rezystor 10k. do każdego scalaka 100nF + 10uF jak najbliżej nóżek.

    dodatkowo progamowo pamięta 8 poprzednich powiarów i oblicza średnią z 4 środkowych wartości.
    zmieniłem rozdzielczość pomiaru do 5 jednostek (aby przyspieszyć pomiar , a tak wogóle to ostatnia cyfra i tak troche pływa tak że to nie szkodzi).

    po tych poprawkach układ skacze tylko troche np z 70 na 75 i spowrotem.
    wiec lepiej już chyba nie będzie.
    dodałem też możliwość zmiany częstotliwości nadawania i efekt jest taki jak oczekiwałem czyli zmniejszenie czułości odbiornika.

    teraz zostaje ostatni problem czyli kolory hmmmmm....
    dalszy ciąg myśle nad jakimś ciekawym równaniem które mogło by pomuc i wpadłem jeszcze na coś takiego że dioda wysyła sygnał o znanej mocy. częśc tej mocy rozprasz się na drodze do przeszkody. potem część jest pochłonięta przez przeszkode (zależnie od kolory jej powieżchni). następnie światło wraca do odbiornika i też traci część światła na pokonanie tej drogi.
    czyli matamatychnie to by wyglądało jakoś tak:
    P_odebrane=P_diody - (P_rozproszone1 + P_pochłonięte + P_rozproszone2)
    czy to się kupy trzyma???
    dalsze testy będe prowadził jutro lub w PN. taka wiec jeszce się odezwe.
    mam nadzieje że ktoś się odezwie :( plisss

    Dobranoc
  • Poziom 23  
    Zainteresowanie jest 
    Rozuniem że dokładność pomiaru którą dotychczas osiągnołeś nie zadowala Cię.
    Nie sądzę żebyś był w stanie uniezależnić pomiar od wpływu współczynnika odbicia IR dla różnych materiałów.
    Nie widzę metody która pozwoli, przy pomiarze uzależnionym od intensywności odbitego IR, skorygować uzyskany pomiar bez znajomości właściwości pochłaniania IR obiektu. Najpierw trzeba by opanować jakąś metodę pomiaru tego współczynnika.
    Należytą dokładność dało tu zastosowanie ultradźwięków. Ale wspomniałeś że pomiar odległości ultradźwiękami ma za duży kąt pomiaru. Można spróbować zmniejszyć ten kąt zwiększając właściwości kierunkowe nadajnika i odbiornika ultradźwięków. Mogło tu by być pomocne np. umieszczenie nadajnika w niewielkiej tubie. Dodatkowo można zwiększyć właściwości kierunkowe odbiornika ultradźwięków poprzez umieszczenie go na początku ponawiercanej rurki. Powstał by w ten sposób kierunkowy mikrofon interferencyjny. Działanie kierunkowe polega na tym że fale dźwiękowe padające zna rurę pod kątem wygaszają się na skutek różnic fazowych. Natomiast wszystkie składowe fali przebiegające prosto wzdłuż rurki, docierają do mikrofonu w tym samym czasie i nie następuje ich wygaszanie. Współczynnik kierunkowości wzrasta wzrasta wraz z częstotliwością.
    Znajdziesz więcej https://www.elektroda.pl/rtvforum/viewtopic.php?t=41543
    Jeśli potrzebujesz aż sześciu czujników w swoim robocie, to aby się wzajemnie nie zakłócały, powinny być wyzwalane sekwencyjnie.


    Pozdrawiam!
  • Poziom 26  
    no wreszczcie postępy.
    dodałem do diody nadawczej równolegle kondensator 100nF i równolegle rezystor 1kOhm
    schemat wygląda tak jak poniżej. w tej chwili z pomocą softwarowej korekcji błędów wachania są nieznaczne o +- 2 jednostki. te już raczej błąd wywołany przez sam odbiornik. Napięcie napewno jest teraz ok bo próbowałem zasilać to z akumulatora i dalej to samo.
    ale lepiej już nie będzie.

    teraz do koloru.
    chcę mój pomysł przedstawić jąśnien. a więc chce zrobić dwa pomiary z rózną częstotliwością nadawczą (36kHz i 32Khz) wtedy otrzmam dwa różne wyniki bo układ Tsop słabiej reaguje na częstotliwość 32kHz.
    następnie chce z jednego wzoru wyliczyć wspólczynik koloru powieżchni od której światło się odbiło i podstawić do drógiego wzoru. wtedy bede miał równanie z 1 niewiadomą (odległością).
    jedyny problem to znalezienie tych wzorów.
    obawiam sie też że straty na drodze niezależą od mocy promieniowania bo wtedy wyjdzie równanie tożsamościowe a którego nić nie wylicze.

    kto zna się na tyle na optyce aby potrafił ułożyć takie równanie światła.

    EDIT:

    zapoznałem się też z materiałami o mikrofonach kierównkowych. to ciekawy pomysł ale zbudowanie takiego rozwiązania tak aby było 6 identycznych czujników może być trudne. tak czy inaczej będe musiał zastosować przynajmniej 2 czujniki ultradzwiękowe(tak dla pewności).

    acha i mam jeszcze ptyanie co do czujników PSD. one dzialją na podstawie mierzenia kąt a odbitego światła. więc jeśli obiekt znajduje się pod kątem do odbiornika to czy nie wpłynie to na wyniki pomiarów ???
  • Poziom 26  
    I dalej 0 odpowiedzi. szkoda.
    więc może chociaż moje rozważania się komuś przydadzą.

    mysłałem dalej nad wzorem i zajżałem do ksiązki of fizy i matmy i wymysłiłem coś takiego.


    Tg(ALFA)=R/L
    R=L*Tg(ALFA)

    POLE(KOŁA)=PI*R^2
    POLE(KOŁA)=PI*L^2*(Tg(ALFA))^2

    MOC(NA M^2)=POLE(KOLA)*P(DIODY)

    MOC(ODEBRANA)= POLE(KOLA)*P(DIODY)*W(WSPÓLCZYNNIK KOLORU)
    MOC(ODEBRANA)= PI*L^2*(Tg(ALFA))^2*P(DIODY)*W

    ten wzór pozwoli (chyba) okresłić odległość od przedmiotu(pod warunkiem że znamy jego W).
    wynik to L i należy go podzielić przez 2.

    mój pomysł z 2 pomiarami przy różnych częstotliwościach chyba się nie uda. bo jak wyznacze z jednego wzoru W i podstawie do drógiego to odległość się skróci i wyjdzie coś takiego
    MOC(ODEBRANA1)*P(DIODY2)=MOC(ODEBRANA2)*P(DIODY1)

    a to jest oczywiste.

    zostaje więc drógi pomysł. czyli pomiar 2 razy z tą samą czułością ale podczas jazdy. wtedy odległość się zmieni a w zostanie ten sam. jeszce to sprawdza.
  • Poziom 23  
    Weź pod uwagę że duży przedmiot umieszczony dalej od czujnika IR może odbić tyle samo promieniowania co mały przedmiot umieszczony bliżej. To może zakłócić pomiar. Jeśli dojdą do tego różnice współczynnika odbicia IR przedmiotów, może być jeszcze trudniej.

    Robisz jakieś praktyczne eksperymenty ze swoją metodą? Jeśli tak to z chęcią poznam wyniki.

    Pozdrawiam.
  • Poziom 26  
    jestem po seri testów praktycznych.

    wyniki:
    - stabilność mieżenia dość dobra +-5%(max) a nawet i mniej
    - dokładność pomiarów zadowalająca
    - wyniki są powtażalne i niema żadnej pętli histerezy
    - odporność na kolor czarny tu cienko ale nie jest tragiczni
    z tej samej odległośći dwa przedmioty (czarna kolumna, głośnik) i blach pomalowana na biało. wynik różnił się o 50% to znaczy
    wynik_białego*0,5=wynik_czarnego
    to troche dolinujące ale nie jest najgożej bo na zwykłej fotodiodzie bez modulacji było dużo gożej.
    - sprawdziłem pomiar na 3 odbiornikach i były identyczne (to dobrze)
    - liniowość tu też nie jest idealnie bo nie idzie uzyskać 0.
    ale w pewnych zakresach jest dość liniowe i najważniejsze nie ma jakiś dziwnych skoków.
    - szybkość pomiarów zależna od odległości ale jeden pomiar to około 1ms dla jednego pomiaru. zależnie od metody szukania odległości moze on wyniosić różne wyniki ale dodam że ja mam tak ustawione że jak coś jest blisko to szybko znajdzie a jak daleko to będzie szukał długo (max 255ms).
    - dodam że zmieniając częstotliwość kluczowania można zmieniać zasięg pomiarów co jest dość ciekawą funkcją.

    ogólnie warto było troche nad tym posiedzieć ale jak robot ma być poważny to trzeba zastosowac jeszcze drógi czujnik. i to najlepiej ultradzwięki, tak mi się wydaje.

    NARA'zie