Spisu treści:

Autonomiczny stół do piłkarzyków: 5 kroków (ze zdjęciami)
Autonomiczny stół do piłkarzyków: 5 kroków (ze zdjęciami)

Wideo: Autonomiczny stół do piłkarzyków: 5 kroków (ze zdjęciami)

Wideo: Autonomiczny stół do piłkarzyków: 5 kroków (ze zdjęciami)
Wideo: Final autonomous foosball demonstrastion 2024, Lipiec
Anonim
Autonomiczny stół do piłkarzyków
Autonomiczny stół do piłkarzyków
Autonomiczny stół do piłkarzyków
Autonomiczny stół do piłkarzyków
Autonomiczny stół do piłkarzyków
Autonomiczny stół do piłkarzyków

Głównym celem projektu było ukończenie działającego prototypu autonomicznego stołu do gry w piłkarzyki (AFT), w którym gracz mierzy się z robotycznym przeciwnikiem. Z ludzkiego punktu widzenia stół do piłkarzyków jest bardzo podobny do zwykłego stołu. Gracz (y) po stronie ludzkiej jest kontrolowany za pomocą serii czterech uchwytów, które można wsuwać i wysuwać oraz obracać, aby przesuwać graczy liniowo po polu gry i kopać piłkę w kierunku bramki przeciwnika. Strona autonomiczna składa się z:> Osiem serwosilników służących do manipulowania uchwytami stołu do piłkarzyków> Mikrokontrolera do aktywacji serwosilników i komunikacji z komputerem> Zamontowanej nad głową kamery internetowej do śledzenia piłki i zawodników> Komputera do przetwarzania obrazy z kamery internetowej, implementacja sztucznej inteligencji i komunikacja z mikrokontrolerem Ograniczenia budżetowe prototypu spowolniły nieco projekt i ograniczyły jego funkcjonalność do minimum. Stwierdzono, że odpowiednie silniki do poruszania graczy z konkurencyjną prędkością są bardzo drogie, więc trzeba było użyć serwomechanizmów niższej klasy. Chociaż ta konkretna implementacja była ograniczona kosztami i czasem, większe przełożenie zapewniłoby szybsze granie robota, chociaż kosztowałoby to więcej niż cena podstawowa 500 USD (cena bez zasilacza i komputera).

Krok 1: Montaż płyty sterowania silnikiem

Montaż tablicy sterowania silnikiem
Montaż tablicy sterowania silnikiem
Montaż tablicy sterowania silnikiem
Montaż tablicy sterowania silnikiem
Montaż tablicy sterowania silnikiem
Montaż tablicy sterowania silnikiem
Montaż tablicy sterowania silnikiem
Montaż tablicy sterowania silnikiem

Załączone zdjęcia to pełny schemat obwodu, a także zdjęcie produktu końcowego do płyty sterującej silnikiem. Wszystkie te wymagane części można kupić w większości dużych sklepów internetowych z elektroniką (w tym Digi-Key i Mouser. Na marginesie, wszystkie użyte tutaj części były przelotowe, a zatem części można zmontować na płycie prototypowej/płycie do krojenia chleba, lub za pomocą dołączonego projektu PCB. Znacznie mniejszy pakiet można utworzyć, używając wielu części do montażu powierzchniowego. Kiedy wdrożyliśmy projekt, podzieliliśmy sterowanie silnikiem na 2 obwody, chociaż nie ma z tego żadnej korzyści poza jakikolwiek konkretny schemat okablowania używany. Mała niebieska płytka implementuje obwód sterujący PWM, który jest w zasadzie tylko taktowanym PIC-12F z pewnym wyspecjalizowanym kodem.

Krok 2: Montaż silnika serwo

Zespół silnika serwo
Zespół silnika serwo
Zespół silnika serwo
Zespół silnika serwo
Zespół silnika serwo
Zespół silnika serwo

Stosowane są dwa różne typy serw. Po pierwsze, ruch poprzeczny jest kontrolowany przez grupę czterech serwomechanizmów o wysokim momencie obrotowym: Robotis Dynamixel Tribotix AX-12. Te cztery działają na jednej linii szeregowej i zapewniają niesamowitą funkcjonalność. Wysoki moment obrotowy umożliwia przełożenie tych serwomechanizmów w taki sposób, aby zapewnić wysoką prędkość styczną dla ruchu bocznego. Udało nam się znaleźć zestaw 3,5-calowych kół zębatych i gąsienic do nich od Grainger w cenie około 10 USD za każdą. Serwa zapewniają ochronę przed przeciążeniem momentu obrotowego, indywidualny schemat adresowania serw, szybką komunikację, monitorowanie temperatury wewnętrznej, komunikację dwukierunkową itp. Wadą tych serw jest to, że są drogie i niezbyt szybkie (chociaż pomaga im przekładnia). Tak więc, aby uzyskać szybszy ruch do kopnięcia, zastosowano Hitec HS-81. HS-81 są stosunkowo niedrogie, mają przyzwoitą prędkość kątową i są łatwe w interfejsie (standardowy PWM). Modele HS-81 obracają się jednak tylko o 90 stopni (chociaż jest możliwe – i nie zalecane – próba modyfikacji ich do 180 stopni). Dodatkowo mają wewnętrzne nylonowe zębatki, które łatwo się rozbierają, jeśli spróbujesz zmodyfikować serwo. Warto byłoby znaleźć obracający się o 180 stopni serwomechanizm, który ma taką prędkość kątową. Cały system jest połączony kawałkami płyty pilśniowej o średniej gęstości (MDF) i płyty pilśniowej o wysokiej gęstości (HDF). Wybrano go ze względu na niski koszt (~5 USD za arkusz o wymiarach 6'x4'), łatwość cięcia i możliwość łączenia z praktycznie każdą powierzchnią. Bardziej trwałym rozwiązaniem byłaby obróbka aluminiowych wsporników, aby utrzymać wszystko razem. Śruby mocujące serwa PWM na miejscu to standardowe śruby maszynowe (#10s) z nakrętkami sześciokątnymi utrzymującymi je z drugiej strony. Metryczne śruby maszynowe 1 mm, o długości około 3/4 cala, utrzymują AX-12 w płycie MDF, która łączy ze sobą dwa serwa. Prowadnica szuflady o podwójnym działaniu utrzymuje cały zespół w dół i w jednej linii z torem.

Krok 3: Oprogramowanie

Oprogramowanie
Oprogramowanie

Ostatnim krokiem jest zainstalowanie całego oprogramowania używanego na komputerze. Składa się z kilku pojedynczych kawałków kodu:> Kod uruchamiany na komputerze przetwarzającym obraz> Kod uruchamiany na mikrokontrolerze PIC-18F> Kod uruchamiany na każdym z mikrokontrolerów PIC-12F Istnieją dwa warunki wstępne do zainstalowania na przetwarzającym obrazie PC. Przetwarzanie obrazu odbywa się za pośrednictwem Java Media Framework (JMF), dostępnego przez firmę Sun tutaj. Dostępny również za pośrednictwem firmy Sun, interfejs Java Communications API służy do komunikacji z płytą sterowania silnikiem przez port szeregowy komputera. Piękno korzystania z Javy polega na tym, że *powinna* działać na dowolnym systemie operacyjnym, chociaż używaliśmy Ubuntu, dystrybucji Linuksa. Wbrew powszechnej opinii szybkość przetwarzania w Javie nie jest najgorsza, zwłaszcza w podstawowych pętlach (której analiza wizji używa całkiem sporo). Jak widać na zrzucie ekranu, zarówno piłka, jak i przeciwnicy są śledzeni przy każdej aktualizacji klatki. Dodatkowo obrys stołu jest umiejscowiony wizualnie, dlatego do stworzenia obrysu wizualnego wykorzystano niebieską taśmę malarską. Bramki są rejestrowane, gdy komputer nie może zlokalizować piłki przez 10 kolejnych klatek, co zwykle wskazuje, że piłka wpadła do bramki, poza powierzchnię gry. Kiedy tak się dzieje, oprogramowanie inicjuje bajt dźwiękowy, aby albo dopingować siebie, albo wygwizdać przeciwnika, w zależności od kierunku celu. Lepszym systemem, chociaż nie mieliśmy czasu na jego wdrożenie, byłoby użycie prostej pary nadajnik/czujnik podczerwieni do wykrywania piłki spadającej do bramki. Całe oprogramowanie użyte w tym projekcie jest dostępne w jednym pliku zip, tutaj. Aby skompilować kod Java, użyj komendy javac. Kody PIC-18F i PIC-12F są dystrybuowane z oprogramowaniem MPLAB firmy Microchip.

Krok 4: Montaż kamery internetowej

Uchwyt do kamery internetowej
Uchwyt do kamery internetowej

Wykorzystano kamerę internetową Philips SPC-900NC, ale nie jest to zalecane. Specyfikacje tego aparatu zostały sfałszowane przez inżynierów lub personel sprzedaży firmy Philips. Zamiast tego wystarczyłaby każda tania kamera internetowa, o ile jest obsługiwana przez system operacyjny. Aby uzyskać więcej informacji na temat korzystania z kamer internetowych pod Linuksem, odwiedź tę stronę. Zmierzyliśmy odległość wymaganą przez ogniskową kamery internetowej, aby zmieścić cały stół do piłkarzyków w kadrze. W przypadku tego modelu aparatu ta liczba okazała się nieco ponad 5 stóp. Do zbudowania uchwytu do kamery wykorzystaliśmy regały półkowe dostępne w każdym większym sklepie z narzędziami. Regały półkowe wystają w górę z każdego z czterech rogów stołu i są usztywnione krzyżowo za pomocą kątowych aluminiowych wsporników. Bardzo ważne jest, aby kamera była wyśrodkowana i nie obracała się pod kątem, ponieważ oprogramowanie zakłada, że osie x i y są wyrównane do stołu.

Krok 5: Wniosek

Wszystkie powiązane pliki projektu można pobrać z tej witryny. Kopię zapasową większości treści witryny można znaleźć tutaj, na moim osobistym hoście. Obejmuje to raport końcowy, który zawiera analizę marketingową, a także rzeczy, które chcielibyśmy zmienić, nasze pierwotne cele i listę faktycznie osiągniętych specyfikacji. Projekt NIE ma być najbardziej konkurencyjnym graczem na świecie. To dobre narzędzie, aby pokazać więcej etapów projektowania takiej bestii, a także porządny prototyp tego typu robota zbudowanego niewiarygodnie niskim kosztem. Na świecie są inne takie roboty i na pewno wiele z nich „pobiłoby” tego robota. Ten projekt został zaprojektowany przez grupę czterech inżynierów elektryków/komputerów w Georgia Tech jako starszy projekt projektowy. Nie otrzymali żadnej pomocy inżynierowie mechanicy i nie wykorzystano finansowania ze strony osób trzecich. To był wspaniały proces uczenia się dla nas wszystkich i przyzwoite wykorzystanie czasu na kurs projektowania dla seniorów. Chciałbym podziękować> dr Jamesowi Hamblenowi, naszemu doradcy sekcji, za jego nieustanną pomoc w strategiach technicznych> dr Jennifer Michaels, profesorowi wiodącemu, aby nie zniechęcić nas do podjęcia bardziej ambitnego projektu> James Steinberg i Edgar Jones, starsi administratorzy laboratorium projektowego, za stałą pomoc w zamawianiu części, rozwiązywaniu problemów i znajdowaniu „fajnych rzeczy”, które można wrzucić do projektu przy niskich kosztach i wysoka funkcjonalność> I oczywiście trzech pozostałych członków mojego zespołu, z których nic z tego nie byłoby możliwe: Michael Aeberhard, Evan Tarr i Nardis Walker.

Zalecana: