Skocz do zawartości

[Micromouse] Spiderpig


Pomocna odpowiedź

Witajcie!

Chciałbym przedstawić projekt robota micromouse o nazwie „Spiderpig”, nad którym pracuje trzyosobowy zespół. Artykuł ma na celu zdobycie Waszej opinii oraz cennych uwag. Robot powstaje na turniej Robomaticon 2014, organizowany przez koło naukowe Robomatic, wydziału Mechatroniki PW.

1. Założenie

Słowem wstępu dla niewtajemniczonych, zadaniem robota typu micromouse jest jak najszybsze znalezienie drogi do celu w labiryncie (składa się on z 16x16 ościankowanych pól o wymiarach 16,8x16,8x8mm każde).

2. Opis robota

Robot będzie miał kształt okręgu o średnicy około 98 mm. Jego wysokość to ok. 5 cm. Oś napędowa przechodzi przez środek robota. Z tyłu zamontowane będzie jakiś element podtrzymujący (trzeci punkt podparcia). Robot będzie miał 5 czujników analogowych SHARP 4-30 cm do rozpoznawania otoczenia, enkodery do kontroli prędkości oraz żyroskop jednoosiowy kontrolujący skręcanie. Główne elementy konstrukcyjne robota zostały wykonane w technologii druku 3D. Całość wyszyła mniejsza niż się spodziewaliśmy i jesteśmy z tego zadowoleni.

3. Model robota

Początkowo nie planowaliśmy robić modelu robota jednak okazało się to przydatnym narzędziem do projektowania. No i niezbędne do druku 3D. Powstał dość szczegółowy model w Solidworks. Kolorem zielonym oznaczone jest minimalne pole widzenia czujników SHARP. Trzy takie czujniki znajdują się z przodu robota a dwa z tyłu. Żółte tarcze to tarcze enkoderów. Same sensory enkoderów będą zamontowane do płytki PCB widocznej obok baterii. Na dzień publikacji tego artykułu wydrukowana jest górna płytka, dociskająca sharpy do podłoża.

4. Elektronika

Elektronika robota zostanie rozmieszczona na dwóch płytkach PCB. Jedna płytka znajduje się obok baterii (pionowa), druga natomiast będzie zamontowana poziomo na górze robota.

Procesor to ATmega 128A. Dodatkowo do kontroli enkoderów jest użyta ATmega8. Napięcie z lipola jest wzmacniane przetwornicą step-up U3V12F9, 9V 1,4A. Czujnik enkoderów to EVERLIGHT ELITR8307. Podwójny mostek H: TB6612FNG.

Schemat elektroniki w EAGLE wiele razy się zmieniał dlatego nie powstał jeszcze BOARD. (Wcześnie powstało już kilka jego wersji więc nie robiliśmy znowu bezsensownej roboty dopóki projekt nie będzie ostateczny)

5. Silniki

Zdecydowaliśmy użyć silników LP Pololu 30:1, które pobierają max 540 mA. Uznaliśmy, że ważniejsze jest dla większe przyśpieszenie oraz większa precyzja ruchów niż prędkość.

6. Czujniki

Będziemy używać 5-ciu czujników analogowych SHARP z polem widzenia od 4 cm do 30 cm. Analizowaliśmy inne opcje jak ręcznie robione czujniki, ultradźwiękowe czy nawet laserowe jednak opcje te odpadły z kilku powodów. Czujniki ręcznie robione wydawały nam się dosyć skomplikowane (np. potrzeba filtrowania sygnału) oraz mocno rozproszona wiązka z diody natomiast czujniki ultradźwiękowe mało dokładne, drogie i wydaje nam się ,że ciężko byłoby nam obsługiwać kilka na raz (rozproszenie wiązki).

Czujniki SHARP mają bardzo skupioną wiązkę i mogą pracować w dowolnych warunkach oświetleniowych. Cechują się też dużą dokładnością. Głównymi wadami wydaje się cena (40 zł), duży rozmiar oraz stosunkowo długi czas pomiaru (około 30ms dla pierwszego pomiaru).

7. Zasilanie

Do zasilania zdecydowaliśmy się użyć akumulatora Dualsky Li-pol 800 mAh 20C 2S 7.4V. Prąd z lipola jest wzmacniany na przetwornicy step-up na 9V. 9V jest doprowadzane do silników. Daje to stabilne napięcie na silnikach, których praca nie będzie się zmieniać w czasie eksploatacji baterii. Maksymalny prąd jaki może pobierać robot to około 1,5 A. Do zasilania procesora i elektroniki prąd przechodzi przez stabilizator liniowy na 5V. Pomysł na zwiększenie napięcia zaczerpnęliśmy z robota 3pi Pololu.

8. Sterowanie

Do zagadnienia sterowania na razie podchodziliśmy czysto teoretycznie. Na razie dzięki tej ilości czujników, żyroskopowi i enkoderom będziemy w stanie dokładnie pozycjonować robota i cały czas utrzymywać aktualną wiedzę o położeniu

9. Dodatkowe funkcje

Robot zostanie wyposażony w łatwo demontowalny ekran LCD, który umieścimy gdzieś na robocie. Ekran będzie służył jako debugger i będzie prawdopodobnie zdjęty na czas przejazdu turniejowego. Dodatkowo jest kilka diod i buzzer, celem informowania nas o stanie robota w trakcie przejazdów.

Niektóre rzeczy na pewno można było rozwiązać prościej. Dla nas jednak ważniejsze było nasze zrozumienie tematu i rozwiązania, które wiemy jak działają.

Chciałbym Was prosić drodzy koledzy i koleżanki o opinie na temat tej konstrukcji. Ma to ważny wpływ na finansowanie naszego cudeńka 🙂

Autorami robota są: Aleksander Wilusz, Sebastian Syska, Cezary Chrzanowski

Link do komentarza
Share on other sites

Cześć,

choć nie znam się na micromouse to projekt wydaje się bardzo fajny - życzę powodzenia.

Z mojej strony takie dwie uwagi:

1. Wydaje mi się że na schemacie brakuje kondensatorów (filtrujące 100nF oraz jakiś elektrolityczny/tantalowy) przy TB6612FNG.

Może ich nie trzeba, ale gdzieś czytałem że mogą być problemy z tym mostkiem jak ich nie ma . Ja zawsze wkładam 2 x (100n + 220 uF) tantalowe na oba napięcia zasilania

2. Wydaje mi się że LCD do debugu może być nie do końca wygodny. Czy nie lepiej debugować np przez RS232 albo jeszcze lepiej przez modułu Bluetooth. Wtedy objętość logów może być dużo większa i będzie to czytelniejsze

Pozdr. M.

Link do komentarza
Share on other sites

Tak tak.Schemat jest słaby 😃

Wiem bo sam robiłem 😃 Powstanie lepszy ale wciąż nie jesteśmy pewni kilku elementów.

Co do dodatkowych kondensatorów zasilania mostka silnika to masz na myśli, żeby je dać na wejściu 9V? hmm... a sam kondensator przy złączach silnika, już za mostkiem?

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

Co do dodatkowych kondensatorów zasilania mostka silnika to masz na myśli, żeby je dać na wejściu 9V? hmm... a sam kondensator przy złączach silnika, już za mostkiem?

Mam na myśli coś takiego jak tutaj:

http://botland.com.pl/495-1282-thickbox_default/tb6612-dwukanalowy-sterownik-silnikow.jpg

czyli 100n + 220uF elektrolit/tantal. na obu wejściach zasilających - zarówno 9V jak i 5V

Dodatkowo silniki zabezpieczone przed sianiem w taki sposób:

https://www.forbot.pl/forum/upload_img/obrazki/IMG_4f43ae482b0eb6651.jpg

A generalnie polecam przestudiowanie tego artykułu i zastosowanie wymienionych wskazówek:

ZAKŁÓCENIA PRACY MIKROKONTROLERÓW

Pozdr. M.

Link do komentarza
Share on other sites

Witajcie!

Znalazłem chwilę czasu i przerobiłem schemat elektroniki. Teraz łatwiej się czyta i dodałem niektóre z zabezpieczeń procesora z listy którą podesłałeś.

🙂

Jeszcze tylko musimy dodać żyroskop....

Link do komentarza
Share on other sites

Witaj ps19.

Szczerze powiem, że nie wiem jak korzystać z UART. Mamy tutaj mało doświadczenia i staramy się limitować rozwiązania, których nie znamy.

Przesyłanie po jednym bicie na każdym pinie jest na pewno bardzo prymitywne - to wiemy 😃

Link do komentarza
Share on other sites

Witajcie po małej przerwie 🙂

Sesja...

Projekt BOARD jako tako mamy gotowy ale sam zapomniałem, że jeszcze nie wiemy jak z żyroskopem. No właśnie mamy tutaj pewien problem..

Namierzyliśmy taki żyroskop: http://www.pitlab.pl/pitlabsklep/uklady-scalone/ly503alh-detail.html

I jest kilka problemów..

Przede wszystkim jak to zamontować na robocie (tak fizycznie) i jak zalutowac takie dziwne złącza? Czy on nie musi być jakoś centralnie na robocie?

Druga rzecz jak z tego sprawnie korzytsac? znaczy moze ktos wie jak to zrobic najprosciej aby mieć wzkazania kątowe? 🙂

Link do komentarza
Share on other sites

Nie wiem co to znaczy "Projekt BOARD jako tako mamy gotowy..", ale jeśli masz na myśli płytkę drukowaną i to zrobioną wg schematu zaprezentowanego wcześniej (a nie widziałem żadnej poprawionej wersji), to możesz go od razu wyrzucić do kosza i zabrać się za dogłębne zrozumienie tego co rysujesz zanim przejdziesz do PCB. Najważniejsza moja uwaga jest taka: jeśli chcesz być dobrze zrozumiany, używaj języka i reguł przyjętych w środowisku. Naszym językiem przekazywania idei struktury projektu są schematy i nie jest to zbiór przypadkowych symboli. Reguły rządzące łączeniem poszczególnych elementów pozwalają z kolei budować większe bloki wykonujące bardziej skomplikowane funkcje. Innymi słowy:

1. Co mam myśleć, gdy widzę element opisany KOND, ale wyglądający jak kwadrat z dwoma kółkami w środku? Czy to jest jakieś, złącze ale omsknęła się ręka na klawiaturze czy jednak jest to kondensator z dziwnym symbolem ? Chyba jednak złącze, bo przecież w innych miejscach kondensatory wyglądają OK.

2. Elementy oprócz wartości (2k, 10uF) powinny też mieć swoje numery (R5, C7). Prosisz o uwagi do schematu, ale chyba nie chcesz ich dostać bo jak mam wskazywać elementy? To drugie coś od góry w lewym rogu? Żałosne.

A teraz w szczegółach:

3. Co to jest "WSTECZNY_ZABEZ" i dlaczego? Jeśli to rzeczywiście jest dioda, to dlaczego dwie szeregowo, dlaczego tak idiotycznie włączona (m.in. kierunek) no i przede wszystkim możesz przez nią przepuścić ze 100mA. Czy chcesz tędy napędzać całego robota?

4. Co to jest STEP_UP i czy nie potrzebuje czasem na wyjściu jakichś pojemności? Zakładam, że na wejściu ma coś pt. KOND i że to coś ma 33uF - dziwna pojemność ale co tam, to jednak chyba jest kondensator. Przewidziałeś tu elektrolit czy jednak coś ceramicznego i dlaczego? Jaka jest częstotliwość pracy tego STEP_UP?

5. Co to jest STAB5V? Nie pisz mi, że stabilizator 5V, tylko jaki tam zaplanowałeś?

6. Przyjęło się, że VSS jest zarezerwowaną nazwą dla masy (bo SS oznacza Sources, czyli że jest to zasilanie źródeł tranzystorów nMOSFET, czyli GND). U Ciebie, nie dość, że jest to jakieś dodatnie zasilanie, to jeszcze puszczone przez dławik z 5V. Jaki dławik i dlaczego tak? Co w takim razie zasilasz z czystej szyny 5V? Jeżeli nic, to po co jest tam tyle kondensatorów 100n?

7. Absurdalnie wielkie coś (kondensator???) na wyjściach do silników. Już nie chce mi się tego w kółko powtarzać, ale zapytam tak: po co obciążasz mostek tak ogromną pojemnością? Jaki jest cel generowania tak ogromnych zakłóceń na zasilaniu +9V? Wytłumacz to proszę.

8. Dlaczego DIPSWITCH zwiera piny procesora przez oporniki 2.2k do masy? Czy jest w tym jakaś głębsza myśl?

9. Co to jest podłączone do PB3 i PB4, takie z symbolem prostokącika (jak opornik?), ale oznaczone LED4? Bo przecież nie dioda LED - ona wygląda jakoś inaczej. Czy to jakaś podpucha, żeby imperialistyczny szpieg nie wiedział co przesłać do swojej centrali?

10. Jaki jest cel obciążania wyjść czujników kondensatorami wprost do VSS? Nie wiem, miałeś już jakieś podstawy elektroniki? Coś z teorii obwodów? Wzmacniacze? Sprzężenia zwrotne? Impedancja wyjściowa? Warunki generacji? Świta? Nie, trudno. W każdym razie chciałbym uzyskać jakąś ciekawą odpowiedź a pytanie: dlaczego tak, a jeśli będzie ciężko, to przynajmniej na inne: co chciałeś przez to osiągnąć?

11. Domyślam się, że prostokąt opisany jako REZONATOR jest kwarcem, czy rezonatorem ceramicznym (bo ma 3 wyprowadzenia)?

12. Nie wiem jak to jest w Eaglu, ale formalnie nie możesz nadawać dwóch różnych nazw tej samej sieci. Dlatego nazwa MGND jest bezprawna, bo jest podłączona wprost do GND.

Tych kilka uwag sprawia, że z mojego puntu widzenia powyższy schemat jest kompletną kaszaną i w żadnym wypadku nie może być punktem wyjścia do jakichkolwiek myśli o płytce drukowanej. Już nie komentuję faktu 10 drutów między procesorami tylko dlatego, że nie wiesz co to np. UART lub SPI i że chyba nie planowałeś się tego dowiedzieć w ciągu miesiąca - bo tyle ten projekt tu zalega bez żadnych poważniejszych ruchów. Trochę marnie to wygląda, nie uważasz?

Link do komentarza
Share on other sites

1. Brak kropek w większości połączeń.

2. 10 linii łączących procesory jest totalnie bez sensu, lepiej użyć jakiejś magistrali typu UART, I2C (TWI), SPI - zmarnowałeś 10 linii aby uzyskać 4 linie 😉 .

Na tym procesorze można to zrobić bez żadnych dodatkowych scalaków, wystarczy, że wyświetlacz podłączysz pod inny port i masz wolne ADC.

3. Popatrz na numerowanie pinów w Atmedze, a unikniesz mnóstwa przelotek m.in przy DIP switchu

Moim zdaniem lepiej zrobić projekt całkiem od początku - zbyt dużo do poprawy 😋

Link do komentarza
Share on other sites

No i robot powstał 🙂

I miejsce na robomaticonie 🙂 Może nie w najlepszym stylu ale jesteśmy bardzo dumni 🙂

Pora jeszcze poprawić program i zamontowac zyroskop...to na inny czas..

Pozdrawiamy

frozzins, niedziala, Laszlo900

Link do komentarza
Share on other sites

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...

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.