Skocz do zawartości

Jakie czujniki do linefollowera? Pomoc w wyborze


kamdz

Pomocna odpowiedź

Witajcie, w najbliższej przyszłości zabiorę się za budowę linefollowera.

Byłem zdecydowany na ten czujnik, ale po przeczytaniu jego opisu na botlandzie bardziej skłaniam się do tego między innymi z uwagi na obudowę, ale także z uwagi na długie nóżki. I teraz moje pytanie: Który z tych dwóch czujników jest dokładniejszy? Który jest lepszy do mojego zastosowania?

Z góry dzięki za pomoc.

Link do komentarza
Share on other sites

kamdz, jeśli nie budujesz "wyścigowej rakiety", to nie będziesz widział między nimi różnicy. Najlepiej wykorzystać KTIRy, bo przy bardziej zaawansowanych projektach okażą się lepsze (są lżejsze i mniejsze).

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Dzięki za szybką odpowiedź. Czyli rozumiem, że w praktyce nie jest do niczego potrzebna ta obudowa? Bo na botlandzie piszą, że te ktiry mogą nie działać, gdy dotkną ziemi, jak z tym jest? To nie przeszkadza?

Aaa i jeszcze jedno pytanie co do linefollowerów. Ta czarna taśma musi mieć szerokość większą od odległości między kolejnymi czujkami, czy jak to z tym jest?

Link do komentarza
Share on other sites

"mogą nie działać, gdy dotkną ziemi"

Oczywiście. A jak wyobrażasz sobie odbicie światła od podłoża, gdy dotkniesz nim do czoła czujnika? Musi być jakiś odstęp a producent dokładnie pisze jaki minimalnie, poniżej którego czułość spada na łeb. Po szczegóły odsyłam do wykresu w karcie katalogowej. Napisz, czy znalazłeś.

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

Znalazłem coś o 1mm, ale nie jestem pewien, czy to to.

Czyli w sumie wystarczy mu zrobić ten odstęp i nie ma problemu?

No i jak to jest z tą czarną taśmą na torach dla linefollowerów? Bo nie wiem w jakiej odległości od siebie dać te czujki...

Link do komentarza
Share on other sites

Nigdy nie jest tak, żeby nie było problemów. Każdy robot jest inny, każdy tor/podłoże/taśma są inne i każde pomieszczenie/oświetlenie są inne. Eksperymentuj, na tym polega frajda, że nie masz gotowca działającego w każdych warunkach. Zrób to tak, byś mógł podnosić lub opuszczać czujniki (może jakieś podkładki pod śruby?), zastanów się nad osłonami od światła zewnętrznego i zrób elektronikę tak elastyczną, byś mógł łatwo regulować prądy diod i poziomy detekcji czujników.

A jak szeroko? Też się zastanów, to Twój projekt. Nie ma jednego pewnego przepisu. Nawet nie wiemy ile ich będzie, czy dajesz jeden na środku, czy dwa jadące po krawędzi taśmy, może jeden a może trzy "w taśmie" i kilka po bokach?

Obejrzyj kilka opisanych tu konstrukcji i sam wyciągaj wnioski. Nie dostaniesz prostej odpowiedzi na takie pytania, chyba że Twoje cacko będzie powolnym mułem bez żadnych aspiracji. Robotom z Lego wystarczą dwa szeroko rozstawione czujniki i jakoś do mety (czasem) docierają..

  • Pomogłeś! 1
Link do komentarza
Share on other sites

No to tak. Narazie to raczej będzie muł, z uwagi na posiadaną przeze mnie platformę jezdną, ale mam zamiar zamontować w nim 9 czujników na płytce o kształcie półksiężyca. Skorzystam z gotowego algorytmu (https://forbot.pl/blog/algorytm-linefollowera-c-poczatkujacych-id2722)

Zastosuję tam atmege 8, więc w sumie całą obsługę timerów i tak będę robił sam. Tam jest część, kalibracyjna, bierze dane z dwóch czujników( jeden musi byc na czarnym, drugi na białym, zdaję się, że musi o to zadbać na początku konstruktor, ale jeszcze tego nie ogarnąłem do końca)

A co rozumiesz pod pojęciem elastyczna elektronika? Wystarczy jeden wspólny tranzystor na wszystkie diody?

Proszę o wyrozumiałość, bo będzie to mój pierwszy robot.

Z góry dziękuję za pomoc

Aaa jeszcze jedna rzecz. Jakoże mam tylko 6 kanałów adc w atmedze, to będę musiał multipleksować czujniki. I teraz co ja w nich mogę wyłączać? Czy jak wyłączę mu tranzytorem obydwa gnd to on nie będzie działał? Czy muszę każdemu z osobna wyłączać linię sygnałową?

Aaaa nr2 A z tą szerokością taśmy, to chodzi mi o jedną rzecz: jaki ma być jej stosunek do odleglosci między dwoma czujkami? No bo jak taśma będzie między dwoma czujkami( za wąska) no to chyba robot zwariuje, bo nie będzie jej widział? Dobrze myślę? Czyli taśma ma mieć większą szerokość od odległości między dwiema czujkami?

Link do komentarza
Share on other sites

9 jest tak samo dobrą liczbą jak 7, 5 czy 4. Czujniki wcale nie muszą być podłączone do ADC. Ok, to ułatwia kalibrację programową i jest eleganckie, ale nie jest konieczne. Multipleksowanie musisz zrobić tak, by wyłączony czujnik nie zaburzał pracy włączonego. Możesz odcinać emitery tranzystorów od masy innym tranzystorem, możesz wstawić multiplekser analogowy itp. Jeśli to komplikuje Ci konstrukcję a zalety wcale nie są oczywiste, odpuść i wstaw mniej. Może z pięcioma będzie jeździł równie dobrze co z dziewięcioma. Zostaw sobie jedno wejście ADC do pomiaru napięcia akumulatora bo jego uszkodzenie jest kosztowne. Albo wstaw jakiś komparator z diodką LED ostrzegający o rozładowaniu.

Być może rozmieszczenie czujników jest dużo ważniejsze niż ich liczba. Jakiś na środku powinien być, by w stanie ustalonym (gładka jazda po prostej) można było odróżnić taśmę od jej braku. Ale to może być jeden w centrum albo dwa odsunięte od siebie np. o pół szerokości taśmy - wtedy zjazd z toru będzie wykryty szybciej, co wcale nie musi być lepsze. Wtedy parzysta liczba czujników jest OK i oba środkowe jadą po taśmie a kolejne są dalej. Jak daleko? Próbuj. To zależy od dynamiki robota, jego czasów reakcji. Im będziesz chciał zrobić precyzyjniej, tym większe wymagania na szybkość obliczeń i siłę napędów. Jeśli rozsuniesz za bardzo, będą sytuacje gdy żaden taśmy nie będzie widział. To wydaje się źle, ale tym razem wiele zależy od algorytmu. Przecież gdybyś Ty oglądał gołębia na podwórku przez kilka okien w sali (jak procesor patrzy na podłogę przez czujniki) i widziałbyś go w pierwszym, drugim a potem w trzecim już nie to by znaczyło, że jest gdzieś między nimi. Proste algorytmy wtedy zgłupieją, ale lepsze "domyślą się" - można się tu nieźle pobawić. Za to mniejsze odległości niż szerokość taśmy zapewniają jej ciągłą widoczność. A jeśli czujniki będą za wąsko to może się zdarzyć, że dwa na raz ją zobaczą. I znów - prosty algorytm zgłupieje a taki co filtruje to "co widzi" zrozumie tę kombinację sygnałów. Przemyśl to sobie, narysuj kilka opcji rozmieszczenia, kilka sytuacji z taśmą (np. kąty proste), kilka sygnałów wyjściowych i zastanów się jakie decyzje byś wtedy podejmował będąc procesorem. Albo czego potrzebujesz (np. historię trzech ostatnich pomiarów) by takie decyzje poprawnie podjąć. Pamiętaj, że procesor nie patrzy na czujniki ciągle tylko robi "migawki". A i robot nie reaguje od razu tylko z opóźnieniem. Pomyśl jak często musisz te "zdjęcia" robić by nie uciekło coś ważnego. Tak to się robi.

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Wielkie dzięki za obszerne wyjaśnienie. Kod, z którego skorzystam będzie działał poprawnie również gdy kilka czujników zobaczy linię( liczy on wtedy średnią z wag czujników) użyję więc 8 czujników podłączonych do multipleksera analogowego. Dzięki za ten pomysł, nawet nie wiedziałem, że istnieje coś takiego 🙂 Jeżeli dobrze rozumiem ideę jego działania, to jest on bardzo prosty, adres, ustalany przez 3 jego piny jest takim " przełącznikiem " wybierającym, który z portów analogowych zewrzeć do portu, który podpina się do jednego wyjścia analogowego w atmedze? Dobrze myślę? I jeżeli nie będę mierzył napięć ujemnych, to Vee moge zewrzec do gnd tak?

Jak coś to mówię o tym układzie

Zdaję sobie sprawę, że pewnie nie będzie to ultraszybkie rozwiązanie, ale proste i tanie, a robot i tak nie będzie narazie szybki, więc ten multiplekser idealnie się sprawdzi 🙂

Link do komentarza
Share on other sites

Takich multiplekserów jest jak mrówków. Wybrałeś najbardziej popularną (i wiekową) rodzinę tzw. 4000. Mamy w niej trzy popularne typy przełączników analogowych: 4051, 4052 i 4053 oraz kilka bramek transmisyjnych (np. 4066). Obejrzyj 4052, bo być może bardziej optymalnym rozwiązaniem będzie tutaj przełączanie 2x4 a nie 1x8.

Tak, Vee podłączasz do masy.

Acha, seria 4000 była projektowana pod zasilanie 5...15V a im niżej tym bramki były wolniejsze. W porównaniu do TTL (seria 7400) to i tak były to prawdziwe żółwie, ale nie zawsze szybkość była najważniejsza. W multiplekserach analogowych obniżanie zasilania powodowało wzrost rezystancji kanałów tranzystorów transmisyjnych i przy Vcc=5V możesz już mieć kilkaset omów od wejścia do wyjścia. Jakiś czas potem zmodyfikowano technologię CMOS i przeniesiono funkcje 4000 do niższych napięć. Powstały wtedy układy serii 74HC4000, dobrze (i szybko) działające przy 3...5V a mające wyprowadzenia starych 4000. Zobacz zatem, czy nie możesz gdzieś kupić wersji 74HC4051 (lub 52) - sprawdzą się dużo lepiej na niższym zasilaniu.

Wstawiając przełącznik 1:8 możesz wszystkie kolektory tranzystorów czujników podpiąć bezpośrednio pod wejścia a na wyjściu dać jeden wspólny opornik kolektorowy - i tak przecież tylko jeden tranzystor na raz go potrzebuje. Umożliwi to łatwą wymianę rezystora i tym samym regulację czułości całego zestawu, może to być także potencjometr np. 50k lub 20k szeregowo z małym opornikiem (1k?) zapobiegającym zwarciu do 0Ω. Tuż przy wejściu ADC daj kondensator 10nF do masy - przetwornik potrzebuje tego do samplowania, gdy jego wejścia są sterowane przez sporą rezystancję (tutaj: kanału multipleksera). Gdybyś taki sam multiplekser (adresowany tymi samymi wyjściami procesora) dał po stronie LEDów, zaoszczędzisz sporo prądu na oświetleniu czujników - zawsze będzie świecił tylko ten LED którego tranzystor jest wybrany do pomiaru 🙂 I znów wystarczy tylko jeden rezystor do regulacji prądu wszystkich diodek.

Po przełączeniu kanału dobrze będzie chwilę poczekać na stabilizację sygnału, bo inaczej pomiar czujnika N będzie wykazywał zależność od stanu czujnika N-1. Możesz tu użyć funkcji np:

_delay_us(10);

  • Pomogłeś! 1
Link do komentarza
Share on other sites

Okej znalazłem ten inny multiplekser w tme. Kupie 3 bo to minimalna ilość, to faktycznie zastosuję jeden do emitera a drugi do kolektora;)

Ale czemu mówisz, że 2x4 będzie lepsze od 1x8? Czas może będzie o te 40us krótszy w 2x4 (stosując ten delay co mi zaleciłeś 🙂) ale program będzie dużo prostszy w 8x1. Jest może jeszcze jakaś inna zaleta tego 2x4, o której nie wiem?

Link do komentarza
Share on other sites

Może lepiej, zanim zaczniesz cokolwiek budować pokaż schemat, przynajmniej fragmenty, bo coś mi tu dziwnie pachnie. Robiąc przełączanie czujników wystarczy, by każdy tranzystor stał sztywno na masie swoim emiterem a kolektor miał podłączony do muxa. Po drugiej stronie, na jednej wspólnej linii opornik do Vcc plus kondensator do masy i tyle - cały system. Wybrany tranzystor dostanie zasilanie, pociągnie prąd i "zrobi" na oporniku wyjściowym napięcie. Ten niewybrany nie będzie zasilany, ale niczego nie popsuje.

Drugi multiplekser, skoro i tak go będziesz mieć, ew. do załączania LEDów w czujnikach.

2x4? To tylko sugestia - napisałem "być może". Chciałem byś sam rozważył kilka opcji. Rzeczywiście, przy 2x4 mniej jest przełączania na zewnątrz i może trochę szybciej, ale linii procesora już tyle samo (2+2 vs 3+1).

Program nie musi być "prostszy", przynajmniej gdy mówimy o tych stopniach komplikacji. Pętla przemiatająca 8 czujników nie jest dużo prostsza od pętli powtarzanej tylko 4 razy, ale za to mierzącej za każdym razem dwa czujniki. Przecież cała inteligencja i komplikacja kodu (czyli to co najciekawsze) i tak będzie gdzie indziej.

Link do komentarza
Share on other sites

No ale to nie jest tak zrobione jak pisałem. Jeszcze raz przeczytaj to co wyżej. Oczywiście nie musisz robić dokładnie tak jak radziłem, ale przynajmniej napisz dlaczego.

Transoptory i multipleksery mają swoje symbole z numerami i nazwami nóżek. Spróbuj narysować to lepiej, bo na razie nic nie wiadomo - a przecież to jest głównym celem schematu - przekazać ideę układu. Albo zmień program albo rysuj tak jakbyś próbował wytłumaczyć komuś jak to będzie zrobione. Teraz mało kto zrozumie to co pokazałeś.

Link do komentarza
Share on other sites

No ale ja nie do końca rozumiem co Ty wyżej napisałeś... Emiter na sztywno do masy, czyli gnd emitera do masy. Kolektor do muxa, czyli rozumiem, że przez ten multiplekser do adc atmegi. A opornik do vcc czego? I kondensator do której masy? LEDy w czujnikach to są te emitery tak?

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.