Skocz do zawartości
paradox91

Jakie czujniki lini.

Pomocna odpowiedź

Zamiast komparatorów użyte są bramki negujące (nie pamiętam ich nazwy, nie jestem w tym dobry).

Przerzutnik Schmitta, takie opóźnienie przełączania po polsku (na wiki jest opis).

A tak dodam tylko, że jak na pierwszego l-f to właśnie polecałbym najprostsze i najłatwiej dostępne czujniki (i najtańsze przede wszystkim). Szkoda zmarnować te droższe, a rozbieżności w CNY70 np można programowo w kilku linijkach rozwiązać (tylko wymaga to używania ADC).

Udostępnij ten post


Link to post
Share on other sites

Wydaje mi się że będzie to bardzo podobny efekt jak by to podpiąć bezpośrednio do wejścia mikrokontrolera. Przy czym ten próg jest taki dosyć uniwersalny, bo to zmiana stanu na wyjściu będzie przy 2,5V.

Ostatnio właśnie podpoiłem tak czujniki, bez żadnego komparatora prosto do uC i puki czujnik są blisko ziemi to jest wszystko w porządku, ale muszą być tak blisko że praktycznie drą po podłożu. Więc muszą być tam dane TCRT5000, które mają większy zasięg niż CNY70.

Udostępnij ten post


Link to post
Share on other sites

Czyli podsumowując - KTIR'y mają najniższą rozbieżność między egzemplarzami, ale dobrze działają bardzo blisko podłoża, CNY70 pracują przy dużej odległości (dodatkowo mają osłonięty fototranzystor i diodę) ale nie trzymają parametrów między egzemplarzami, pośrednim wyborem jest tcrt5000 - sprawdzone i przetestowane.

Co do CNY70 - może mam takiego farta, ale stosowałem je w moim pierwszym robocie (podłączane przez komparator) i nie miałem żadnych problemów z kalibracją. Dodatkowo wystarczyło spojrzeć na robota hiszpanów, którzy wygrali zawody w Łodzi - CNY70 ustawione w rządku dają radę więc wybaczcie, ale nie podzielę zdania że są kiepskie.

Czego by paradox91 nie wybrał, przy podłączaniu przez adc można każdy błąd skorygować softem.

Udostępnij ten post


Link to post
Share on other sites

Nawyk teoretycznie spośród CNY70 też można wybrać x sztuk, które będą miały podobną charakterystykę, ja tak zrobiłem w Psotku. Softem według mnie zbyt wiele nie zdziałasz przy tak ogromnej różnicy, u mnie było tak, że przy odczycie ADC na 2 czujnikach na białej powierzchni, jeden miał około 50, drugi 450. Softem ciężko zrobić korekcję czegoś, co ma o 50% węższy zakres (da się to zrobić, ale będzie ogromna niedokładność). Z własnego doświadczenia powiem wam, że do algorytmu z PID nie ma lepszych czujników od KTIR0711S. Przy 5 czujnikach wziętych z tasiemki kolejno, 10-cio bitowy ADC (napięcie odniesienia 5V) na białej powierzchni dawał takie rezultaty: 32, 32, 33, 31, 35. Więc dopóki nie znajdę lepszych transoptorów odbiciowych będę używał tych.

Co do małej odległości pracy, to również nie jest do końca prawdą, działają znakomicie i przy 5mm nad podłożem. Problemy zaczynają się wtedy gdy robot podskoczy i odległość między czujnikami a podłożem nagle się zmieni, przez co robot skalibrowany do działania na stałej wysokości czujników nagle zaczyna głupieć. To też da się rozwiązać softem, ale tylko częściowo, można rozszerzyć "okienko" wykrywania czarnej linii, przez co oddalenie czujnika od podłoża nie będzie wykrywane jako czarna linia. Ma to jednak swoją wadę, robot reaguje wolniej na zakręty.

Udostępnij ten post


Link to post
Share on other sites

Ja używałem już CNY70 i zauważyłem ten sam problem co sabre, duża rozbieżność pomiarów, dlatego nie bardzo polecam. Za to o KTIR0711S słyszałem złą opinie, na temat iż w czasie podskoku robota robot całkowicie się gubi. Miałem nadzieje że ktoś tutaj za proponuję coś nowego ale cóż... Chyba jednak wybiorę KTI...

P.S.

A tak dodam tylko, że jak na pierwszego l-f to właśnie polecałbym najprostsze i najłatwiej dostępne czujniki

Pisałem wcześniej że to nie pierwszy LF, chce zrobić naprawdę dobrą konstrukcje "The best of my life" 😅

Udostępnij ten post


Link to post
Share on other sites

... na końcu swojego postu dopisz "so far" 🙂

W czasie podskoku robota MOŻE się zgubić, to nie zależy tylko od czujników, zależy też w dużej mierze od programu i robota (odpowiednio dobrana granica "między 0 a 1", a robot na dużych kołach lub ciężki robot też nie podskoczy.)

Udostępnij ten post


Link to post
Share on other sites
Raczej nie na pierwszego LF potrzebuje naprawdę czegoś porządnego.

Paradox91, i tu się kłania stosowanie znaków interpunkcyjnych :]

edit: Nie no, bez przesady :] To ja nie zrozumiałem do końca, ale już się wyjaśniło.

Udostępnij ten post


Link to post
Share on other sites

A co powiecie na pomysł zrobienia czujnika, który by podawał stan 0/1, ale mający autokalibrację?

Myślałem, żeby robić oddzielne płytki z czujnikiem, rezystorami, jakimś małym uC, na tiny45 i innymi rzeczami potrzebnymi, żeby to działało. Ewentualnie jeszcze diodę do sygnalizacji.

Jednak koszty są dość wysokie - za tinego45 trzeba bulić 8zł 😐

Udostępnij ten post


Link to post
Share on other sites

Jak już dawać uc to może dane po uarcie? bo zauważ, że jak miałbyś mieć 5 czujników to 6 I/O nie wystarczy.

Udostępnij ten post


Link to post
Share on other sites

Myślałem nad tym pomysłem ale według mnie to nie ma sensu, poco robi osobno taki układ i bawi się z tym aby wszystko działało (jeżeli coś nie będzie działa to musimy szuka błędu w dwóch prockach) skoro można zrobi wszystko na jednym uC w innej funkcji i efekt będzie ten sam.

Udostępnij ten post


Link to post
Share on other sites

No prawie, bo w przypadku osobnego uC dla każdego czujnika możemy prowadzić stałą autokalibrację i to dla każdego czujnika osobno, więc odchyłki pomiędzy egzemplarzami nie będą aż tak bolesne.

A program dla wszystkich tinych będzie taki sam, więc nie będzie problemy ze znalezieniem błędu, bo taki układ będzie można oddzielnie testować.

Udostępnij ten post


Link to post
Share on other sites

Mihau, ale to samo możesz zrobić w jednym uC, kalibracja to dobranie po jednej stałej dla każdego czujnika (ew dwóch, przemnożyć i coś dodać), trochę stukania w klawiaturę i po kłopocie. Oczywiście teoretycznie wedle wszelkich znanych mi nauk 😃 A jak teoria sprawdzi się w praktyce tu już niedługo...

Udostępnij ten post


Link to post
Share on other sites

Kalibrację robi się tak, że się zapisuje najmniejszą największą wartość czujnika(odpowiednio czarny i biały) i liczy się średnią, którą się traktuje jako granicę czarny/biały.

Ale to jeden sposób, można też robić to inaczej.

Kiedy każdy czujnik będzie miał własnego uC kalibrację będzie można przeprowadzać non-stop, co przy jednym uC może być trochę stratne. Tak mi się wydaje. Wtedy mamy większy zapas mocy obliczeniowej dla samego mózgu i można mieć lepszy algorytm.

Udostępnij ten post


Link to post
Share on other sites

Nie widzę powodu, aby nie robić tego na jednym uC. Po prostu sprawdzasz na bieżąco, czy odczyt w tym momencie nie jest większy od max/mniejszy od min, jeśli jest to wpisujesz odczyt do min/max i obliczasz średnią. Nie ma sensu dawać więcej niż 1 uC, wystarczy jeden procek, najlepiej wysoko taktowany i nie ma problemu.

Udostępnij ten post


Link to post
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...