Skocz do zawartości
Zaloguj się, aby obserwować  
Konrad94

Takeshi

Pomocna odpowiedź

Cześć ! 🙂

Chciałbym przedstawić moją pierwszą poważną konstrukcje robota minisumo, która obejmuje temat mojej pracy inżynierskiej. Praca zajęła mi 4 miesiące nie licząc pracy pisemnej - przez ten czas praca objęła:

• Przegląd typowych rozwiązań technicznych podobnych konstrukcji

• Projekt platformy w programie Autodesk Inventor Professional 2015

• Projekt ideowy schematu układu elektronicznego w programie Eagle 7.7.0

• Projekt dwustronnych obwodów drukowanych w programie Eagle 7.7.0

• Złożenie konstrukcji: wytrawienie obwodów drukowanych i montaż SMD/THT

• Oprogramowanie mikrokontrolera przy użyciu programu Atmel Studio 6.2 oraz testy

Założeniem projektowym było stworzenie uniwersalnego robota - uniwersalność tą udało się uzyskać, dodając panel użytkownika, czyli wyświetlacz LCD oraz klawiaturę.

Dzięki wyświetlaczowi LCD, robot posiada dodatkowe funkcje informacyjne, natomiast dzięki klawiaturze – możliwe jest dokonywanie różnych ustawień i testów.

Oczywiście dla niektórych użytkowników panel ten będzie wydawał się zbędnym dodatkiem w tego typu konstrukcjach, dlatego na wstępie zaznaczam, że jest to robot minisumo bardziej o charakterze edukacyjnym. 😉

Innymi założeniami, które udało się zrealizować to:

a) Odejście od gotowych platform programistycznych - zaprojektowano od podstaw systemu mikroprocesorowy w środowisku Atmel z użyciem programatora AVR Dragon.

b) Bazowanie na komponentach firmy Analog Devices - zaprojektowano układ elektroniczny z wykorzystaniem układów scalonych oferowanych przez czołowego producenta przyrządów półprzewodnikowych – firmy Analog Devices. Głównym źródłem informacji stały się dokumentacje elementów, wedle których powstawały poszczególne moduły robota. W sumie wykorzystano 6 układów scalonych tejże firmy.

c) Redukcja zakłóceń – na etapie projektowania obwodu drukowanego – zastosowano różne techniki optymalizujące działanie układu elektronicznego.

d) Budowa kanapkowa robota – pierwsza tak poważna konstrukcja wymagała przemyślanej budowy, którą w razie problemów, można byłoby modyfikować. Tak powstała cztero – warstwowa struktura robota: aluminiowa podstawa, dwie płytki drukowane oraz panel użytkownika.

Zasilanie

Źródłem zasilania są ogniwa litowo - polimerowe firmy Redox 1100 mAh o napięciu 7,4 V.

Logika zasilana jest napięciem 3,3 V, natomiast optoelektronika (czujniki IR, wyświetlacz) napięciem 5 V.

Układ zabezpieczony jest przed odwrotną polaryzacją tranzystorem MOSFET.

W trakcie działania silników, możliwa jest opcja podglądu aktualnego napięcia - stworzono układ pomiarowy z wykorzystaniem między innymi dzielnika napięcia i sprzętowego ADC mikrokontrolera.

Mikrokontroler

Systemem mikroprocesorowym sterującym całym układem elektronicznym jest 8 bitowy mikrokontroler ATmega644PA. Wybrano jeden z najbardziej rozbudowanych mikrokontrolerów 8 – bitowych oferowanych przez producenta Atmel. Wybór był przede wszystkim podyktowany ilością wejść/wyjść, ponieważ wykorzystano wszystkie piny mikrokontrolera. Ponadto stosunkowo wysoka pojemność pamięci FLASH, SRAM, EEPROM wynika z chęci dalszej rozbudowy części programowej robota.

Napęd i sterowanie

Do napędu wykorzystano popularne silniki Pololu HPCB 50:1 z obustronnym wałem oraz wyposażono je w kompatybilne enkodery magnetyczne równiez firmy Pololu

Sterownikiem silników jest popularny scalony mostek H o nazwie TB6612. Jako jeden z niewielu oferowanych sterowników, umożliwia przepływ stosunkowo dużego ciągłego prądu wyjściowego o wartości maksymalnej 2 A. Taką wydajność prądową udało się uzyskać scalając dwa kanały mostka H, w rezultacie jeden mostek H steruje jednym silnikiem.

Czujniki

Wszystkie czujniki na swoich wyjściach wystawiają sygnał cyfrowy.

Wykorzystano popularne czujniki KTIR0711S w roli czujników ringu. Aby uzyskać cyfrowy odczyt skorzystano z zewnętrznego komparatora AD. Możliwe jest ustawienie progu czułości czujników na poziomie programowym, funkcję tą zapewnia potencjometr cyfrowy AD.

Po zapoznaniu się z bardzo dobrym artykułem na stronie https://www.forbot.pl/forum/topics61/czujnik-optyczny-vt4761.htm zdecydowałem się stworzyć własne czujniki przeciwnika. Po za tym nie chciałem inwestować w stosunkowo drogie, powszechnie stosowane czujniki SHARP 😐 . Udało się skonstruować czujniki wykrywające obiekty w odległości nawet ok. 30 cm. 🙂

Program

Mówi się, że hardware to tylko połowa sukcesu i tak też sprawdziło się w przypadku mojej konstrukcji 😕

Dużo czasu zajęło mi napisanie dobrego programu. Panel użytkownika przysporzył dłuższej pracy nad programem. W rezultacie powstał bardzo rozbudowany kod rozłożony na kilka własnych bibliotek. Jakkolwiek uważam prace nad projektem zakończoną i udaną jak na pierwszą autonomiczną konstrukcję.

Program powstał w języku C. Zastosowano tzw. sterowanie bez namysłu, czyli szybkie podejmowanie decyzji przez robota podczas walki na zasadzie określenia par typu bodziec - odruch.

Zewnętrznymi źródłami przerwań są sygnały pochodzące od enkoderów oraz czujników ringu.

Na wszystkie pytania chętnie odpowiem w komentarzach 😃

Pozdrawiam, 🙂

Konrad

Galeria:

Filmy:

IMG_5a9efd24456e34397.thumb.jpg.33c5604d8d2d8e88d3481013a51fee49.jpg

  • Lubię! 1

Udostępnij ten post


Link to post
Share on other sites

Podoba Ci się ten projekt? Zostaw pozytywny komentarz i daj znać autorowi, że zbudował coś fajnego!

Masz uwagi? Napisz kulturalnie co warto zmienić. Doceń pracę autora nad konstrukcją oraz opisem.

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ść
Napisz odpowiedź...

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

Zaloguj się, aby obserwować  

×
×
  • Utwórz nowe...