Skocz do zawartości

Pomoc przy pierwszym micromousie


Moher

Pomocna odpowiedź

Witam,
w ramach projektu razem ze znajomymi chcielibyśmy stworzyć naszego pierwszego większego robota. Zdecydowaliśmy się na micromousa. O ile z samym programem nie mamy większego problemu, to będąc odpowiedzialnym za mechanikę dość ciężko idzie mi orientowanie się na rynku silników i czujników. Podstawy elektroniki mam opanowane, poradniki na stronie również przeczytałem i nie miałem z nimi większego problemu. Jednak mam problem z rozrysowaniem od podstaw całego schematu i wyboru części do niego. W Internecie widziałem jedynie poradniki albo do elementarnych linefollowerów, albo gotowe schematy micromousa. Ja jednak chciałbym stworzyć coś własnego, brakuje mi jednak rozeznania i doświadczenia. Czy mógłby ktoś pomóc mi w projektowaniu takiego układu (możliwy skype?), nie chodzi o prowadzenie za rączkę, bo jak mówiłem z gotowców nie chcę korzystać, ale wyjaśnienie typu: "zacznij od tego, potem pokombinuj z tym i z tym"; a także w zaproponowaniu części mechanicznych. Mimo iż jest to pierwszy taki nasz robot, chcielibyśmy pokazać go na zawodach (szkoła bierze udział), nie zamierzamy jednak ładować w niego bardzo dużo pieniędzy, więc szukamy części przede wszystkim o najlepszym stosunku ceny do wydajności. Czy jest ktoś tutaj chętny, kto zgodziłby się zostać moim mentorem? 😉

Z góry dzięki za pomoc.

Pozdrawiam

Link do komentarza
Share on other sites

"..szukamy części przede wszystkim o najlepszym stosunku ceny do wydajności"

Czy myślisz, że autorzy rozwiązań opublikowanych w sieci mieli inne cele? Że wkładali bezsensownie drogie elementy nie dające w zamian czegoś fajnego? Dlaczego tak bardzo nie chcesz korzystać z gotowych schematów? Przecież to chyba najszybsza droga do uzyskania działającej konstrukcji. W czasie budowy i tak będziesz musiał pokonać wiele trudności i rozwiązać mnóstwo problemów. Schematy robotów nie są jakieś skomplikowane. Jeżeli chcesz w nich grzebać i to potrafisz, możesz to robić, ale wybory podejmowane przez autorów są często wielopłaszczyznowe a Ty na pewno będziesz w zupełnie innej sytuacji i podjąłbyś inne. Np. procesor: jest wiele rodzin mikrokontrolerów. Znasz którąś na tyle, by móc oszacować czy podoła? Czemu ma dać radę? Właśnie tego masz się dowiedzieć w czasie spisywania założeń i późniejszej realizacji. Jeśli jesteś początkującym po przejściu kilku kursów, nie masz i szybko nie będziesz miał kompetencji do podejmowania rozsądnych wyborów. Bierz gotowca który Ci najbardziej pasuje lub zakładaj worklog, napisz w nim ze szczegółami co planujesz i czekaj na porady. Opisuj wszystko co Ci przyjdzie do głowy. Chcesz żeby mysz była szybka czy na początek wystarczy, by przejeżdżała przez labirynt? Jeśli nic nie macie, musicie wybrać sposób zasilania, rodzinę procesorów, program w którym będziecie rysować schematy i projekt PCB. A może jakiś gotowy kontroler? itd itd..

Link do komentarza
Share on other sites

Chcesz żeby mysz była szybka czy na początek wystarczy, by przejeżdżała przez labirynt?

Chcę, żeby była w miarę szybka, nie musi oczywiście bić od razu rekordów. Chcę po prostu, aby to nie był jakiś banalny projekt, tylko żeby coś tam jednak wnosił.

Przed gotowcami tak się bronię, ponieważ z zabawy w robotykę chciałbym jak najwięcej wynieść co by mi w pracy zawodowej się przydało (na co dzień zajmuję się sprzętem komputerowym), a z doświadczenia wiem, że im więcej przy czymś się nakombinuję, to tym więcej się nauczę.

@up

Przeglądałem kilka projektów, jednak nie mam porównania jak te roboty sprawdzają się "w polu".

Jeśli mam już korzystać z gotowego projektu, to moglibyście zaproponować czyjś worklog, w którym jest mniej więcej wytłumaczone dlaczego autor wybiera takie części, a schemat jest opisany na tyle czytelnie bym mógł dokładnie przeanalizować jego działanie? Generalnie projekt kompletny i dobry do nauki, bo większość z tych wrzuconych jest pisana dość skrótowo, a początkującemu jest dość ciężko się połapać w dyskusji starych wyjadaczy 😉

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

Nic nie stoi na przeszkodzie, byś w swoim worklogu napisał na wstępie, że nie wiesz co i jak chcesz zrobić więc zaczynasz przegląd schematów arbitralnie przez Ciebie wybranych. Zapodajesz jakiś i zadajesz szczegółowe pytania. Nikt nie będzie za Ciebie robił takiego przeglądu i zastanawiał się czy opis Ci przypasuje bo jest wystarczająco łopatologiczny. Możemy tu odpowiadać na pytania szczegółowe, dotyczące konkretnej konstrukcji, ale nikt nie ma czasu bu szukać Ci wzorców. To Twoje zadanie. Reszta jest prosta: znajdujesz coś interesującego + coś czegoś nie rozumiesz, pytasz - my odpowiadamy. Albo odzywa się Autor i twierdzi, że akurat taki element miał w szufladzie albo po prostu nie chciało mu się kombinować. Te schematy są zwykle skrajne proste choćby z tego powodu, że ludzie naprawdę nie mają pieniędzy na to drogie hobby oraz to, że projektowanie płytek pod skomplikowane układy to dla wszystkich początkujących problem nie do przejścia. W rezultacie zostaje na myszy tylko to, co naprawdę być powinno a z kolei oferta czujników czy napędów jest na tyle ograniczona , że po dziesiątym schemacie czujesz, że widziałeś już wszystkie.

Link do komentarza
Share on other sites

Moher, Micromouse to trudna kategoria na początek, ale rozwiązania są podobne jak wszędzie.

W większości projektów występują ze 2 różnie czujniki odległości, ze 3 procesory, jakieś silniki z przekładniami.

Poprzeglądaj co zostało użyte, popytaj, załóż workloga to pomożemy.

marek1707, z drugiej strony mam wrażenie że ludzie używają np. KTIRów "bo wszyscy tak robią". Na samym RS są ze 4 inne modele, z czego jeden który wybrałem. Tańszy i marginalnie lepszy.

A co do projektowania to gdyby BGA dało się używać rozsądnie w warunkach domowych świat byłby piękniejszy.

Link do komentarza
Share on other sites

Nie wiem co rozumiesz pod pojęciem warunki domowe. Nie przylutujesz tego lutownicą, to fakt, ale mając nawet prosty, może lekko przerobiony toster, trochę wprawy i dobrą rękę spokojnie to kładziesz. Niektórzy mogą mięć problemy z lutowaniem pinów co 0.4 czy 0.5mm więc i TQFP są już barierą. Inna sprawa, że już samo projektowanie płytki jest trudniejsze choćby z powodu liczby pinów (nie wiem o jakich BGA myślisz, są przecież od kilku do kilku tysięcy kulek), liczby warstw i koniecznych technologii (średnice przelotek, izolacje, szerokości ścieżek). Jednak to wszystko daje się robić a montaż możesz zamówić w firmach, które robią to zawodowo. Jeden scalak to pewnie zrobią Ci od ręki.

A jeśli chcesz wejść w domowy montaż i demontaż BGA czy QFN, to inwestycja w jakiś sprzęt do tego też nie jest jakimś wielkim wyzwaniem. Ale moim zdaniem do montażu wystarcza dyspenser pasty z małym kompresorkiem, piec SMD (ew. toster z dorobionym regulatorem temperatury) plus odpowiednie oznaczenia krawędzi układu na PCB. Do demontażu zaś zwykły, ręczny hot air plus ew. podgrzewany stolik. U mnie to się sprawdza przy robieniu modeli i całkiem skomplikowanych prototypów (do kilku sztuk, bo na więcej szkoda czasu) a płytki w dłuższych seriach montujemy u producentów kontraktowych.

Rozwiązania typu "KTIR lub inny czujnik odbiciowy tego typu" traktuję jak jedno, bo to ten sam pomysł a różni się jedynie typem użytego czujnika/scalaka. Na schemacie często nawet nie widać różnicy, bo dioda IRED i fototranzystor zawsze tam wyglądają tak samo.

Link do komentarza
Share on other sites

Wracam ponownie po miesiącu ferii i przemyśleń nad całą konstrukcją. Zasięgnąłem rady znajomego i jak na razie mam spory problem z wybraniem czujników. Otóż w większości projektów występują najzwyklejsze Sharpy, jednak kolega stanowczo je odradził, myślałem też nad czujnikami takimi jak te:

Link

Plan był taki: szerokość korytarza to 18 cm. Szerokość robota powiedzmy 8cm (wartości tylko podglądowe, by wyjaśnić zasadę działania). Zatem ustawiam cztery takie czujniki w rogach myszy, tak by sprawdzały czy ściana znajduje się w odległości ~6cm od czujnika. Wówczas przy pewnym odchyleniu pewien czujnik przestanie wykrywać przeszkodę, co znaczy, że robot zbliża się do tej drugiej ściany. Do tego użyłbym dwóch czujników po bokach ustawionych na większą odległość, które sprawdzałyby czy ściana się kończy i można skręcić. Z przodu jakiś sharp to regulacji prędkości silnika.

To rozwiązanie było wg niego zbyt niedokładne. Jednak nie wiem w jaki sposób skonstruować własny czujnik oparty na diodzie IR i fotodetektorze, by sprawdzał się lepiej. Moglibyście polecić jakieś rozwiązanie lub jeszcze lepiej konkretną lekturę na ten temat? Co jest nie tak z sharpami? Większość je raczej poleca, a nie miałem okazji dokładnie go o to spytać.

Link do komentarza
Share on other sites

Nie masz szans zrobić niczego lepszego (w sensie dokładności, odporności na zakłócenia, wielkości, poboru prądu, poświęconego czasu) niż poczciwe Sharpy. Wstaw analogowe - nie będziesz musiał podejmować decyzji o odległościach w trakcie projektowania. Wstawisz i sam zobaczysz jakie odległości są dobre a jakie już nie. Są takie mierzące już od 4cm - moim zdaniem będą tu idealne. Zapytaj kolegę co mu nie pasuje.

Przede wszystkim jednak zastanów się nad algorytmem samej jazdy przy założeniu, że mysz robi wszystkie możliwe błędy w sensie utrzymania toru jazdy. Skręca lekko na boki mimo równego wysterowania silników, zakręty nie mają 90° a prędkość (czyli przejechana droga w ustalonym czasie) jest inna niż zakładałeś w programie. Mysz staje nagle w komórce (jeżeli staje, bo może nie musi) i co ma zrobić? Pomijam algorytmy rozpoznawania ścianek, budowania mapy i rozwiązywania samego labiryntu - to akurat jest najprostsze, bo na to znajdziesz gotowe rozwiązania. Twoim zdaniem jest wymyślić algorytmy samego ruchu i eliminowania błędów jazdy/pozycjonowania tak by nie zaczepiała się o rogi i ścianki. Co ma zrobić gdy nie stoi na środku komórki? Czy ma próbować ustawić się na środku czy znany błąd weźmie pod uwagę przy przemieszczaniu się do następnej komórki? Jeśli ma zakręcić, musi zrobić inne obliczenia trajektorii niż gdy ma dalej jechać prosto. itd..

Pomyśl nad czujnikiem bezwładnościowym np. na I2C - to daje naprawdę dużego kopa jeśli chodzi o estymację położenia. Akcelerometr+żyroskop to dziś taniocha a naprawdę warto. Na krótkich odcinkach czasu/drogi błędy dryftu duże nie są, a same manewry możesz robić na policzone wcześniej i zaplanowane dla danego ruchu przebiegi przyśpieszeń i kątów. To zupełnie zmienia podejście do obmyślania sposobu poruszania się stworka. Najwyżej na początku tego nie użyjesz.

Link do komentarza
Share on other sites

Sharpy mają jedną bardzo ważną wadę - są wolne. Z tego co pamiętam to czas uzyskania pomiaru z analogowego sharpa to jakieś 40ms. Wszystko zależy od prędkości micromouse'a jaką chcesz uzyskać. Zakładając, że będzie to 1m/s to pomiar dostaniesz co jakieś 4cm przejechanego dystansu. Jest to już za mało, by skutecznie wywnioskować ułożenie ścian i pozycję robota w labiryncie. Jeśli natomiast prędkość robota będzie w granicach 10-20 cm/s to użycie Sharpa może mieć już sens.

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

A te czujniki co w linku? Jest sens je stosować czy odpadają zupełnie? Bo oprócz sharpów to nie widzę innej alternatywy będącej w moim zasięgu, przynajmniej na początek 😉

Link do komentarza
Share on other sites

Z opisu wynika, że jest to czujnik cyfrowy - pokazuje jedynie czy obiekt znajduje się w pobliżu czy nie. Do micromouse'a potrzebujesz raczej odległości w jakiej znajduje się obiekt.

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

Jeśli ustawiłbym te czujniki tak:

Plan był taki: szerokość korytarza to 18 cm. Szerokość robota powiedzmy 8cm (wartości tylko podglądowe, by wyjaśnić zasadę działania). Zatem ustawiam cztery takie czujniki w rogach myszy, tak by sprawdzały czy ściana znajduje się w odległości ~6cm od czujnika. Wówczas przy pewnym odchyleniu pewien czujnik przestanie wykrywać przeszkodę, co znaczy, że robot zbliża się do tej drugiej ściany. Do tego użyłbym dwóch czujników po bokach ustawionych na większą odległość, które sprawdzałyby czy ściana się kończy i można skręcić. Z przodu jakiś sharp to regulacji prędkości silnika.

Zastanawiam się czy jednak już nie lepszym rozwiązaniem byłoby użycie tych sharpów :/

Link do komentarza
Share on other sites

Do opisanego algorytmu nada się również Sharp cyfrowy. Nie myśl jednak, że mysz będzie się mogła poruszać szybciej niż 20cm/s przy pomocy takiego algorytmu. Jeśli chcesz się ograniczać do takiej prędkości to możesz spróbować wykorzystać też Sharpa analogowego. Będziesz mógł lepiej oszacować pozycję robota w labiryncie.

  • Pomogłeś! 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!

Gość
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.