Skocz do zawartości

[Micromouse, Linefollower] 2in1 - Pierwsza konstrukcja smd


Pomocna odpowiedź

Napisano

Witam,
Chciałbym przedstawić wam robota "2in1" na którym obecnie pracuję. Główne złożenia to jak z nawy i tematu wynika: Linefollower i Micromouse w jednej konstrukcji plus wykorzystanie czujnika z myszki optycznej.

Mechanika:

Robot składa się z dwóch modułów, pierwszy to moduł główny (Micromouse), zawierający uC, silniki itp., drugi, dopinany, to płytka z czujnikami linii i czujnikami przeszkody dla Linefollowera. Połączenie modułów za pomocą listwy z włókna węglowego.

Podwoziem robota jest płytka pcb 1,5mm wykonana w firmie Satland.

Wymiary: 80mm x 90mm (MM), 120mm x 26mm (LF), co pozwala na poruszanie się po skosie w labiryncie.

Napęd: 2 silniki Pololu 30:1, koła również Pololu, rolę ślizgaczy spełniają śruby łączące moduły.

Czujnik optyczny zamocowany z wykorzystaniem obudowy myszki, prześwit minimalny poniżej 1mm.

Zasilanie:

Akumulator LiPo 7,4V 700mA, silniki zasilane bezpośredni

Stabilizator 5V do zasilania logiki

Stabilizator 1,8V dla wyświetlacza

Elektronika:

Mikrokontroler: ATmega128A, rozmiar wybrany ze względu na potrzebną liczbę pinów i pamięć, gdyż przede wszystkim mam zamiar pobawić się różnymi algorytmami.

Dla osób chcących wykorzystać ten uC i robią to po raz pierwszy: Programuje się go za pomocą pinów PDI i PDO zamiast pinów MISO i MOSI, należy wyłączyć tryb zgodności z ATmega103.

Czujniki ścian/przeszkód: Diody nadawcze IRTSAL6400 + fototranzystory TEFT4300, zarówno na module MM jak i LF. Wyjścia fototranzystorów na piny ADC. Diody nadawcze sterowane układem ULN2003.

Czujniki linii: 12 czujników KTIR podłączonych przez komparatory LM339D, jest jeden potencjometr na wszystkie komparatory. 2 skrajne czujniki wysunięte do przodu.

Czujnik optyczny: PAW3102DB, max 1600cpi.

Zdalne sterowanie: Odbiornik podczerwieni TSOP 36kHz

Wyświetlacz: Wyświetlacz, a w zasadzie cała płytka pochodzi z takiego urządzenia jak krokomierz, urządzenie to zasilane było baterią 1,5V stąd stabilizator 1,8V. Jest to wyświetlacz numeryczny 5 cyfr 7 segmentowych, do sterowania wykorzystam dwa tranzystory, jeden inkrementuje wyświetlaną wartość, drugi resetuje. Tutaj trochę się przeliczyłem, myślałem że da się wyświetlać dowolną wartość poprzez szybkie wystukiwanie, jednak licznik w tym module na to nie pozwala, max co 0,7s.

Dodatki: Pomiar napięcia akumulatora za pomocą ADC, Buzzer, 3 diody LED (czerwona, zielona, niebieska), 3 przyciski plus przycisk resetu.

Oprogramowanie:

Język C bo znam go całkiem nieźle.

Na chwilę obecną został napisany kod odpowiedzialny za definicje pinów, podstawową obsługę poszczególnych elementów i funkcje testujące te elementy typu zapal diodę, zgaś diodę itp. W planach napisanie konkretnych algorytmów

Micromouse:

Jakiś algorytm przeszukiwania.

Algorytm przejazdu odnalezioną drogą z wykorzystaniem czujnika optycznego (myślę że to będzie jeden z najciekawszych etapów)

Linefollower:

Zdalny start/stop

Algorytm PID z wykorzystaniem czujników KTIR

Być może coś innego opartego np. na logice rozmytej

Wykorzystanie czujnika optycznego do śledzenia linii, widziałem projekty wykorzystania czujnika myszki do skanowania, jednak jak na razie po rejestrach nie widzę gdzie siedzi informacja o poszczególnych pikselach, jednak jakby udało się do tego dojść to myślę, że można by porzucić czujniki KTIR. Jakby ktoś coś wiedział na ten temat to piszcie.

Dodatkowe:

Zdalne sterowanie oraz tryb autonomiczny (dla zabawy 🙂 )

Tak więc jak widać sporo przede mną pracy programistycznej.

Jest to chyba pierwszy mobilny robot z czujnikiem optycznym, a na pewno pierwszy MM na forum więc będzie można wiele rzeczy przetestować, porównać z innymi rozwiązaniami itp. Ja nie posiadam innej konstrukcji np. z enkoderami dlatego zachęcam was do dyskusji na ten temat.

schemat.pdf

Witaj na forum!

Widzę, że nie tylko ja wpadłem na pomysł z czujnikiem z myszki do...myszki 😃

Potencjometr do czujników linii daj 1 bo co bało by dawać takie podzielenie? Chciałeś zmieniać wartość przy której mikrokontroler widzi lub nie widzi linii? To raczej nic nie da bo robot będzie gubił linię.

I taka rada na przyszłość, lepiej wrzucać schemat w formie pliku graficznego niż pdf'a. Więcej osób wtedy zerknie do środka i coś podpowie 🙂

Czujnikiem z myszki zainteresowałem się czytając wątek z forum, zmontowałem na płytce stykowej i działa więc można coś próbować zrobić, tylko tak jak pisałem pewnie przy dużych prędkościach będzie szaleć, na moje myszce pisze że ma speed 28cal/s ale zobaczymy w praktyce mam nadzieję.

To jednak zostanę przy jednym 🙂

A wiesz może jak zrobić jpg w Eagle? bo aktualnie nie mam żadnych programów do obróbki grafiki.

Po woli zabieram się za układanie tego na płytce. I mam pytanie do konstruktorów linefollowerów, czy w Satland przecinają płytki na części czy trzeba to samemu robić?, bo z moich kalkulacji wychodzi że lepiej zrobić wszystko na jednej i przeciąć.

btw. wychodzi mi, że będę miał wolny prostokąt 4cm X 9cm, jeżeli ktoś planuje jakiś układ na takiej powierzchni to mogę wstępnie udostępnić.

A wiesz może jak zrobić jpg w Eagle? bo aktualnie nie mam żadnych programów do obróbki grafiki.

File -> Export -> Image

Dalej już sobie poradzisz 🙂

Warstwa Dimensions, to warstwa, po której wycinają. Jeśli na formatce będzie kilka płyte,k to dostaniesz je osobno. Ja praktycznie zawsze tak robię 🙂

ja polecam exsportować do pdf(lepsza jakość) ale jeśli dajesz obrazek do daj większą rozdzielczość bo ta domyślna jest trochę za mała 😕

Pdf już jest pod pierwszym postem.

W 99% programów tak właśnie to się robi, aż mi wstyd, wrzucam obrazek

Dzięki, jak będę miał wstępne projekty płytek to wrzucę do sprawdzenia, a na razie czekam na krytykę (konstruktywną) co do schematu.

Kilka uwag ode mnie. Nie są to błędy, po prostu powiem jak to miałem rozwiązane i działało bez problemów:

- nigdy nie miałem rezystorów 1M przy komparatorów, nie były konieczne

- wydaje mi się, że masz za małe rezystory przy diodach w czujnikach. Jak będą świeciły zbyt mocno będziesz miał problemy z odbiciami od płytki i trasy

- do switchy mógłbyś dodać filtry RC

Ad1. Ja mam tak podłączone CNY70 i działają, koszt rezystorów nie jest duży i z miejscem na płytce z czujnikami linii też raczej nie będzie problemu więc zostawię, najwyżej nie przylutuję.

Ad2. Chodzi Ci o te 200R będą to 220R takie jak w typowym podłączeniu, w swoich CNY70 też takie mam, a jakie proponujesz?

Ad3. Kondensator 100nF (jak przy resecie) wystarczy czy coś innego masz na myśli

Ad2. Chodzi Ci o te 200R będą to 220R takie jak w typowym podłączeniu, w swoich CNY70 też takie mam, a jakie proponujesz?

Przy zasilaniu z 5V możesz połączyć nawet 4 diody z KTIRów w szereg i dla prądu 20mA dać im rezystor 10Ω, zaoszczędzisz całą masę prądu 😉.

Dzięki, tak chyba zrobię.

[ Dodano: 04-09-2013, 11:27 ]

Zacząłem robić listę komponentów jakie potrzebuję, co by je mieć przed wysłaniem płytki do wykonania no i do oszacowania kosztów konstrukcji.

No i właśnie cena silnika 30:1, a 10:1 różni się bardzo nieznacznie i zastanawiam się czy nie kupić od razu 10:1, konstrukcja nie powinna być zbyt ciężka więc powinny go pociągnąć, co o tym myślicie?

adammarsz, wszystko zależy od tego czy dasz radę oprogramować robota, aby dał radę jeździć z silnikami 10:1. Jeśli ma to być robot do testów to wystarczą ci silniki 30:1. Przy 10:1 potrzebowałbyś albo turbiny, albo bardzo zaawansowanych algorytmów i sprzętu aby opanować robota na torze.

Jeśli będziesz miał komparatory na płytce z czujnikami, to będzie ona dość ciężka. Będziesz miał problemy z bezwładnością. Wydaje mi się, że w tej sytuacji lepiej zostać przy 30:1 HP, ponieważ tych szybszych i tak nie dasz rady wykorzystać teraz. Dla 10:1 HP, robot nie powinien ważyć więcej niż jakieś 150g, niby dużo, ale w praktyce szybko zobaczysz, że to bardzo mało 🙂

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...