Skocz do zawartości

Tablica liderów


Popularna zawartość

Pokazuje zawartość z najwyższą reputacją od 04.04.2015 we wszystkich miejscach

  1. 15 punktów
    Witam wszystkich! =) Od dłuższego czasu zbieram się do opisu mojej pierwszej "poważniejszej" konstrukcji. Jako że semestr się dopiero zaczyna i jeszcze jest czas na cokolwiek, a na dodatek w ciągu ostatnich dni została otworzona kolejna edycja konkursu z Proxxonem, przyszedł czas na zrealizowanie tego planu. Tym samym z wielką przyjemnością prezentuję robota mobilnego klasy micromouse: Let Me Out 1. Pomysł Podczas zeszłorocznych wakacji moje zainteresowanie zostało skierowane w kierunku dwóch zagadnień: roboty klasy micromouse oraz silniki krokowe. Z tego pierwszego bardzo szybko podjąłem decyzję o budowie takiego robota. Interesując się zaganieniem drugim (silników krokowych), dowiadując się o ich możliwościach i ograniczeniach zacząłem się zastanawiać nad ich wykorzystaniem w robocie klasy micromouse. Niestety, przewalając internet dniami i nocami nie znalazłem żadnego sensownego opisu zrealizowanej i zbadanej konstrukcji napędu robota mobilnego opartego na silnikach krokowych. W ten sposób narodził się pomysł o zaprojektowaniu, zbudowaniu i przetestowaniu takiego rozwiązania. 2. Założenia projektowe • Spełnienie podstawowych warunków konstrukcyjnych oraz programowych zawartych w regulaminie konkurencji micromouse. Robot projektowany był tak, żeby mógł wziąć udział w zawodach w Polsce. • Oparcie projektu o procesor z rodziny AVR W tamtym momencie STM-y dopiero wynurzały mi się zza horyzontu, więc zdecydowałem się na popularnego AVR-a, którego już dobrze znałem i umiałem go programować. • Konstrukcja umożliwiająca poruszanie się po skosie labiryntu Aby móc zastosować bardziej złożone algorytmy przemierzania labiryntu. • Zastosowanie silników krokowych jako napęd główny robota • Umożliwienie bezprzewodowej komunikacji z robotem Głównie w celu odbierania danych o aktualnym stanie zmapowania labiryntu przez robota i możliwości wizualizacji aktualnej sytuacji na komputerze. • Zaprojektowanie płytki PCB w sposób umożliwiający wykonanie jej metodą fototransferu Oczywiście w celu zaoszczędzenia na czasie i funduszach, zdecydowałem się na warsztatową metodę wykonywania płytki. • Implementacja algorytmu pozwalającego na rozwiązywanie algorytmu metodą "floodfill" 3. Konstrukcja Mechaniczna 3.1 Napęd 3.1.1 Silniki Jako napęd zdecydowałem się na użycie silników krokowych. Zalety silników krokowych (+) Sterowanie pozycją - dokładne sterowanie w otwartej pętli sterowania (+) Silnik pracuje z pełnym momentem w stanie spoczynku (+) Żywotność silnika wyznaczona wytrzymałością łożysk i cewek - brak szczotek Wady silników krokowych (-) Przeznaczone do pracy z małymi prędkościami (-) Możliwość wystąpienia zjawiska "gubienia kroków" (-) Duża emisja ciepła (-) Duża masa i rozmiary (-) Skomplikowany sposób sterowania Ze wszystkich silników krokowych dostępnych na polskim rynku, silniki o kodzie producenta S20STH30-0604A firmy Pololu najbardziej nadawały się do projektowanej konstrukcji. Porównanie parametrów wybranych silników krokowych z popularnymi mikrosilnikami Pololu Parametr • Silnik krokowy • Mikrosilnik Pololu 30:1 Waga • 60g • 10g Wymiary • 20 x 20 x 30 mm • 10 x 12 x 24 mm Napięcie zasilania • 3.9 V • 3-9 V Pobór prądu • 600 mA • 120-1600 mA Moment obrotowy • 140 g*cm (0.017 Nm) • 600 g*cm (0.059 Nm) Średnica wału • 4 mm • 3 mm Cena • 100 zł • 70zł Sterowanie • Trudne • Proste Problemy do rozwiązania w projektowaniu napędu opartego o silniki krokowe: Problem: Silniki krokowe przeznaczone są do pracy przy niewielkich prędkościach obrotowych (zazwyczaj 4-10 RPS to ich maksymalne osiągi). Rozwiązanie: Zasilanie silników z dużo wyższego napięcia (w tym wypadku 24 V). Pozwala to na skrócenie czasu narastania prądu na cewkach, prez co można je przełączać częściej, w efekcie uzyskując wyższą prędkość obrotową. (Udało mi się rozkręcić te silniki do 45 RPS - w powietrzu, nie na jadącym robocie) Problem: W robocie potrzebne jest napięcie 24 V Rozwiązanie: Zasilanie silników z przetwornicy step-up, generującej 24 V z napięcia zasilania (7.4 V bądź 15.8 V) Problem: Zasilając silnik z wyższego napięcia, prąd na cewkach będzie proporcjonalnie większy, co po przekroczeniu wartości nominalnej (600 mA) prowadzić będzie do ich spalenia Rozwiązanie: Zastosowanie gotowego modułu sterownika silnika krokowego z ogranicznikiem prądu (funkcja Chopper) 3.1.2 Koła Jako koła wybrano gumowe koła firmy Solarbotics o średnicy 2.8 mm i szerokości 13 mm. Koła mają świetną przyczepność i doskonale nadają się do tego zastosowania. Jedyną jak dotąd zaobserwowaną wadą jest bardzo duża zdolność do zbierania kurzu i drobnych odpadów, przez co jazda po zabrudzonej powierzchni bardzo szybko doprowadza do zmniejszenia przyczepności kół. 3.1.3 Mocowania silników Niestety na rynku nie istnieją mocowania do silników krokowych w tym rozmiarze (Nema 8), więc musiałem takie mocowania wyprodukować sam. Mocowania silników zostały zaprojektowane w programie TinkerCad dostępnym w wersji przeglądarkowej. Zamówienie przyjęło i wykonało techniką druku 3D koło naukowe działające przy Politechnice Wrocławskiej "Rapid Troopers". Mocowania zawierają 4 otwory na śruby mocujące silnik do elementu, oraz 4 otwory na śruby służące do przytwierdzenia silnika wraz z mocowaniem do platformy. 3.1.4 Podwozie Jako podwozie wykorzystałem płytkę PCB z elektroniką, przedstawioną w dalszej części artykułu 4 Elektronika Schemat elektroniczny jak i płytka PCB zostały zaprojektowane w programie CadSoft Eagle. 4.1 Zasilanie Robot może być zasilany z jednego bądź dwóch (połączonych szeregowo) akumulatorów Li-Po 7.4 V o pojemności 250 mAh. Dwa akumulatory stosowane są w celu podwyższenia napięcia na wejściu przetwornicy, co skutkuje obniżeniem poboru prądu z akumulatora i wydłużeniem możliwego czasu działania robota. 4.1.1 Zasilanie silników Silniki zasilane są napięciem 24 V podawanym z przetwornicy step-up opartej o układ XL60098. Przy pracy pobierają 1 - 1.2 A. 4.1.2 Zasilanie logiki Wszystkie układy logiczne zasilane są napięciem 5 V uzyskiwanym z przetwornicy step-down D24V6F5. Powodem zastosowania przetwornicy zamiast stabilizatora liniowego jest różnica napięć na wejściu i wyjściu układu. Występuje tu obniżenie napięcia z ~16 V do 5 V, co przy stabilizatorze liniowym generowałoby bardzo duże ilości ciepła i mogłoby prowadzić do jego uszkodzenia lub poparzenia użytkownika podczas obsługi robota. 4.2 Procesor Jednostką sterująca całego robota jest ośmiobitowy procesor AVR Atmega 128 firmy Atmel, taktowany zewnętrznym kwarcem 16 Mhz. Procesor zasilany jest napięciem 5 V. W celu zmniejszenia rozmiarów robota, zastosowano procesor w obudowie TQFP64. 4.3 Czujniki odległości Jako czujniki odległości zastosowano diodę LED SFH4550 działającą w paśmie podczerwieni. W robocie umieszczono 6 takich zestawów. Dwa skierowane w przód, dwa na boki oraz dwa odchylone od diametralnej robota o 45°. Prąd płynący przez diody IR to 95 mA, co daje wystarczające natężenie światła do dokładnego odczytywania odległości przy jednoczesnym braku konieczności uważania na przepalenie się diody spowodowane długim świeceniem przy zbyt dużym prądzie. 4.4 Sterowniki silników Zastosowano sterowniki firmy Pololu oparte na modula A4988. Sterowniki pozwalają na pracę w trybach: pełnokrokowym, półkrokowym, ćwierćkrokowym, 1/8 oraz 1/16 kroku. Funkcja ograniczania prądu (chopper) pozwala sterować silniki wyższym napięciem bez ryzyka uszkodzenia cewek silnika. Kolejną zaletą zastosowania sterowników silników krokowych jest możliwość sterowania silnika za pomocą tylko jednego pinu (tylko jeden pin mikrokontrolera podaje sygnał częstotliwościowy odpowiedzialny za taktowanie silnika). W celu umożliwienia generowania sygnałów o różnej częstotliwości, każdy ze sterowników obsługiwany jest przez inny timer. Obydwa szesnastobitowe timery sterujące działają w sprzętowym trybie Clear on Compare Match. Pozwala to na automatyczne generowanie sygnału o zadanej częstotliwości bez udziału samej jednostki obliczeniowej. 4.5 Interfejs komunikacyjny Jako interfejs komunikacyjny robota służą dwie diody LED, buzzer, interfejs UART wraz z modułem bluetooth HC-05 oraz dwa przyciski. Programowanie robota realizowane jest poprzez interfejs SPI. 4.6 Płytka PCB Płytka PCB na której zostały umieszczone wszystkie elementy robota została zaprojektowana za pomocą programuy CadSoft Eagle. Długość: 101 mm Szerokość: 94 mm Płytka pełni jednocześnie funkcję podwozia robota. Takie wymiary pozwalają na swobodny obrót robota w miejscu między ścianami, oraz jazdę po skosie w labiryncie. Płytka w swoim kształcie jest symetryczna, lecz główna masa elementów skupiona została przy tylnej części. Powoduje to brak efektu kołysania się robota ze względu na dociśnięcie tyłu do podłoża. Płytka została stworzona metodą fototransferu oraz wytrawiona w warunkach domowych. Otwory wykonano na wiertarce stołowej. Prostokątny otwór na środku płytki jest miejscem na wystające elementy silników, w których znajdują się gniazda przewodów zasilających. Warstwa Top zawiera wszystkie układy scalone, czujniki, silniki, akumulatory i złącza. W przedniej części robota znajdują się czujniki, mikrokontroler, układ ULN2003 (sterowanie diodami LED) oraz jeden z akumulatorów. Z tyłu umieszczono sterowniki silników krokowych, obydwie przetwornice, moduł bluetooth, drugi akumulator oraz buzzer. Silniki znajdują się w osi symetrii robota Na dolnej stronie płytki umieszczono jedynie kilka rezystorów oraz slizgacz, znajdujący się w diametralnej robota, w jego tylnej części. Zdjęcie poniżej pokazuje stopień upakowania elementów i modułów w robocie. 5 Oprogramowanie Główną częścią projektu było rozwinięcie oprogramowania związanego z obsługą peryferii oraz algorytmem rozwiązującym labirynt. Program napisany został w języku C. 5.1 Pomiary odległości Pomiar z każdego z czujników dokonywany jest z częstotliwością 200 Hz. Zastosowano pomiar różnicowy z uśrednianiem wyników. 5.2 Sterowanie prędkością robota Prędkość robota sterowana jest częstotliwością sygnału podawanego na sterowniki silników. 5.3 Algorytm Zaimplementowany algorytm opiera się na algorytmie Dijkstry, służącym do znajdywania najkrótszej drogi w grafie. 6 Podsumowanie Projektowanie, budowa oraz zaprogramowanie robota zostały zrealizowane zgodnie z założeniami. Robot dobrze radzi sobie w labiryncie. 6.1 Sprawność silników krokowych w robocie mobilnym Podczas jazdy kroki są gubione dość rzadko, co pozwala na wystarczająco dokładne wysterowanie robota w otwartej pętli sterowania z kompensacją pozycji od czujników odbiciowych. Osiągane maksymalne prędkości podczas testów (oczywiście poza labiryntem i po prostej) sięgają 2 m/s. Głównymi wadami tych silników w robocie są ich masa, wielkość, konieczność stosowania sterowników silników krokowych oraz wyższego napięcia. Kolejną wadą jest konieczność ograniczania przyspieczeń, w celu zminimalizowania gubionych kroków. Zaletą stosowania silników krokowych jest brak konieczności stosowania sprzężenia zwrotnego w postaci enkoderów obrotowych. Sterowanie robotem klasy (2.0) w otwartej pętli regulacji Sterowanie w otwartej pętli regulacji z wykorzystaniem silników krokowych jest możliwe. Rozwiązanie to jest wygodniejsze i prostsze do zrealizowania, aczkolwiek posiada bardzo dużą wadę, w postaci braku informacji o gubionych ktokach. Cała kalibracja pozycji opierać musi się na odczytach z czujników odbiciowych. Budowa tego robota z pewnością przyczyniła się do znacznego poszerzenia mojej wiedzy na temat budowy robotów mobilnych, projektowaniu schematów elektronicznych oraz płytek PCB, kategorii micromouse oraz silników krokowych. Niestety nie miałem dostępu do pełnowymiarowego labiryntu, dlatego filmiki z testów są tylko na ćwiartce labiryntu. Robot jeździ wolno, bo w momencie kiedy zaczął działać i poprawnie rozwiązywać labirynt, semestr zaczął być tak gorący że musiałem porzucić prace nad jego rozwojem i zająć się studiami. Na pewno może jeździć o wiele szybciej - pozostaje tylko kwestia gubienia kroków. Zeby pokazać w sumie clue sprawy związanej z zastosowaniem silników krokowych, poniżej filmik na którym robot jedzie z wyłączonymi czujnikami, z wgraną na stałe sekwencją (prosto, prawo, lewo, prosto itp.) Widać jak dokładne może być pozycjonowanie się na silnikach krokowych (które i tak dobierane było "na oko"). Jazda bez sprzężenia od czujników A tutaj testy na labiryncie. Robot rozwiązujący labirynt Nie chcę się już bardziej szczegółowo rozpisywać na poszczególne tematy, żeby artykuł nie rozrósł się do rozmiarów nieczytelnych. Jeśli kogoś interesują detale budowy tego robota i używania tego napędu, zapraszam do dołączonej w załącznikach prezentacji oraz raportu z budowy robota. Jeśli jesteś zainteresowany schematami elektronicznymi tego robota - napisz w komentarzu. KoNaR - Bartlomiej Kurosz - Micromouse Let Me Out.pdf Zastosowanie silnikow krokowych w robotach mobilnych.pdf
  2. 13 punktów
    Witam po dłuższej przerwie, z tego co kojarzę to mój pierwszy post na Forbocie - wcześniej pisałem jeszcze na dioda.com.pl. Przedstawiam projekt inteligentnej kawalerki oparty o Raspberry Pi i kilku modułów pracujących w magistrali I2C i 1wire. Umożliwia on na automatyzację instalacji elektrycznej mieszkania poprzez m.in. sterowanie oświetleniem przez dedykowaną aplikację www, rozszerzenie funkcji przycisków światła w mieszkaniu poprzez niezależne przypisywanie funkcji np.gaszenie wszystkich świateł włącznikiem przy łóżku, a zapalanie tylko oświetlenia dodatkowego. Monitorowanie temperatury w pomieszczeniu i na zewnątrz, oraz informowanie komunikatami głosowymi o zdarzeniach. System jest elastyczny i modyfikowany w zależności od zachcianek użytkownika, dzięki czujce ruchu, możemy np. w zaprogramowanych nocnych godzinach delikatnie rozjaśniać światła dekoracyjne, nie oślepiając zaspanego nocnego marka. Innym przykładem który pojawił się podczas używania systemu, było wysłanie diodą IR sygnału do włączenia się telewizora po wejściu do mieszkania, lub w przypadku braku użytkowników w mieszkaniu i zwiększonym zużyciu prądu (np zostawione żelazko) - poinformowanie i wyłączenie sprzętów. Ilość możliwych funkcji do zrealizowania jest ogromna niestety każda kolejna powoduje dodatkowe koszty. O ile część modyfikacji można wykonać małym kosztem - jak wspomniane sterowanie ir, to już realizacja pomysłu zabezpieczenia łazienki przed zalaniem poprzez sensor wody i elektrozawór na głównym przyłączu wodociągowym wiąże się z dodatkowym nakładem pracy. W projekcie użyłem popularnych i wspieranych przez społeczności użytkowników części oraz oprogramowania. W krótkim wstępie nie sposób wymienić wszystkich funkcjonalności i drobnych smaczków o których sam dopiero sobie przypominam. W dalszej cześci opiszę działanie całego systemu od strony programowej i sprzętowej oraz udostępnię kody źródłowe strony www i skryptów odpowiedzialnych za automatykę wraz z obrazowym poradnikiem jak to wszystko uruchomić. Mam nadzieje że dam radę bo trochę tego się uzbierało, na początek film z działania: Część sprzętowa. Pierwszym etapem prac było przerobienie instalacji elektrycznej w mieszkaniu. Tutaj głównym założeniem było wykorzystanie standardowych pojedynczych bistabilnych przycisków i pociągniecie wszystkich przewodów włączników i punktów oświetleniowych do jednego punktu. Gniazda zasilające zostały podzielone na 3 sekcje - kuchnia, sprzety rtv, łazienka. Punktów oświetleniowych jest 5, włączników razem z dzwonkiem na zewnątrz również 5. Do włączników został pociągniety przewód 2 x 1.5mm2, tak aby w przypadku demontażu systemu, można było podłączyć wszystko na stałe. Przewody do punktów oświetleniowych 3x1.5mm2, 3 linie gniazd zasilających 3x2.5m + dodatkowy przewód 5x2.5mm2 do trójfazowego zasilania kuchni. Do centralnego punktu zostało doprowadzone 5 sztuk skrętki cat.5 i wyprowadzone odpowiednio do: łazienki, kuchni, routera, oraz dwóch rogów pomieszczenia. Skrętka umożliwia podłączanie do całego systemu np. czujników w magistrali 1-wire, czy sterowanie sygnałem PWM układami mocy oświetlenia ledowego. Łacznie wykorzystałem około 150metrów przewodów. W skrzynce rozdzielczej zamontowane zostały zabezpieczenia oraz listwy rozdzielcze umożlwiające podłączanie urządzeń do układów wejść - wyjść. Poniżej zdjęcia z procesu wymiany instalacji elektrycznej. Cześć sprzętowa - elektronika. Tutaj zastosowane zostały: - Raspberry Pi - jako główny mózg całego systemu - Moduł 8 wejść - wyjść firmy Kamami. - Moduł przetwornika A/C firmy Adafruit. - Moduł 16 wyjść PWM firmy Adafruit. - 2 Czujniki temperatury DS18B20 - Konwerter napięć 3.3 <> 5V - Moduł 4 przekaźników. - 2 Moduły transystorów mosfet do sterowania ledami. - Głośniki komputerowe zasilane z USB Wszystkie podłączenia wykonane zgodnie ze standardowymi przykładami danych modułów czy czujników nie ma tu jakiś skomplikowanych połączeń - wszystkie moduły pracują na magistrali I2C przy zasilaniu 5V - dlatego potrzebny był dodatkowy konwerter napięć tak aby można było podłączyć magistralę do 3.3 woltowego Raspberry Pi. Czujniki na magistrali 1wire spokojnie dają radę przy 15 metrowej skrętce podłączone bezpośrednio pod RPI. Wykorzystane oprogramowanie. - Framework WebIOPi. Głównym frameworkiem użytym w projekcie jest WebIOPi. Jest to gotowa aplikacja dedykowana dla komputera RaspberryPi pozwalająca na sterowanie podłączonymi do niego urządzeniami za pomocą strony internetowej lub skryptów działających w tle. Framework dostępny jest w postaci gotowej paczki instalacyjnej dla systemu linux. Aplikacja uruchamia na komputerze serwer www, na którym możemy uruchomić stronę internetową, a z jej poziomu sterować poszczególnymi urządzeniami. WebIOPi pozwala na sterowanie i monitoring ponad 30 urządzeń pracujących zarówno na magistrali I2C jak i 1-Wire. Framework rozdziela układ sterowania na dwa podstawowe elementy – część sterowania i monitoringu dostępną z poziomu przeglądarki dla użytkownika oraz część komputera, pracującą niezależnie. Skrypty wykonywane na komputerze napisane są w języku Python. Framework pozwala na pracę wielu skryptów jednocześnie. Od strony przeglądarki wykorzystana jest technologia jQuery. Użyłem wersji 0.7 webiopi. Więcej na temat samego farameworka znajdziecie tutaj: http://webiopi.trouch.com/ -Framework Bootstrap - strona www w PHP Bootstrap to środowisko służące do budowania responsywnynych stron internetowych, pozwala na bardzo dokładne dopasowanie do stron własnych potrzeb. Zawiera 12-kolumnową siatkę, zarówno w wersji ze stałą jak i z automatyczną szerokością. Posiada bogaty pakiet UI - począwszy od typografii,poprzez formularze, tabele, po nawigacje i ikonki. Całość dopełnia kolekcja skryptów JS pozwalająca na obsługę animacji ekranu. System operacyjny: Komputer Raspberry Pi działa pod kontrolą systemu operacyjnego Raspbian. Baza danych: Baza danych wykorzystana w projekcie to MySQL w wersji 5.5.41. Baza ta służy do rejestracji wszystkich zdarzeń. Pozwala na długoterminową rejestrację temperatury, napięć i prądów w całym systemie. Zapis danych realizowany jest za pomocą skryptów powłoki systemu (Bash) uruchamianych w określonym czasie za pomocą systemowego narzędzia Cron. Dane z bazy pozwalają na późniejsze tworzenie wykresów poszczególnych parametrów na stronie www. Sporą częścia projektu jest strona www - aplikacja internetowa, stąd wykorzystanie bazy MySQL i frameworka PHP, nie chciałbym się rozpisywać na temat samego pisania i uruchamiania strony www bo ta może mieć dowolną formę. Z poziomu systemu wbudowanego chodzi o to, że strona www wywołuje funkcję javascriptową frameworka webiopi, np. po wciśnięciu przycisku wywoływana jest funkcja zmiany stanu wejścia z "0" na "1" lub funkcja okresowo sprawdzająca dane z czujnika temperatury. Dzięki wykorzystaniu frameworka korzystamy praktycznie z gotowego rozwiązania które realizuje dwukierunkową komunikację www - raspberry. Uruchomienie systemu - nie jest to poradnik krok po kroku jednak przedstawia gotowy przepis. - Instalacja i podstawowa konfiguracja raspbian - tutaj odsyłam do poradników w internecie - Instalacja fail2ban Ten etap nie jest konieczny jednak ze względu na mnóstwo botów próbujących dostać się do raspberry podłączonego do internetu polecam użycie tego programu. Pozwala on na dodawanie reguł blokujących połączenia z Internetu po ustalonej liczbie nieudanych logowań. Zapobiega to atakom typu brute-force. W pliku konfiguracyjnym pakietu, dostępne są m.in. ustawienia monitorowanego portu, maksymalna liczba nieudanych prób połączenia, czas blokowania danego adresu IP . Ze względu na powtarzające się przypadki uzyskania próby dostępu do komputera ilość możliwych prób dostępu to 3, a czas blokady 30 dni. Ponieżej zrzut ekranu pokazujący adresy IP zablokowane w ciągu zaledwie jednego dnia. Potwierdza to tylko konieczność stosowania tego typu zabezpieczeń, oraz nie używania prostych haseł do tego typu systemów. Oczywiście nie raz zdarzyło się mi zablokować samego siebie - jednak w przypadku fizycznego dostępu do RPI nie stanowi to większego problemu. Po zabezpieczeniu dostępu do komputera, kolejnym krokiem jest instalacja pakietu i2ctool. Jest to pakiet dzięki któremu możliwa jest obsługa i diagnostyka magistrali I2C. Po zainstalowaniu pakietu możemy sprawdzić podłączone urządzenia za pomocą polecenia i2cdetect –y 1. Wyświetli nam ono listę podłączonych urządzeń w formie matrycy adresowej. Adresy wyświetlane są w formie szesnastkowej. Adresy poszczególnych urządzeń konfigurowane są za pomocą odpowiednich połączeń wyprowadzeń na danych modułach. W prezentowanym rozwiązaniu pod adresem 20 znajduje się moduł 8 wejść – wyjść. Adres 40, to układ 16 wyjść PWM. Adres 48 zajmuje przetwornik analogowo – cyfrowy. W celu umożliwienia sterowania magistralą niezbędne jest też dodanie użytkownika do grupy i2c. Po poprawnym zainstalowaniu I2C widoczny jest taki wynik polecenia i2cdetect: Obsługa magistrali 1-wire, nie wymaga instalacji dodatkowego oprogramowania w systemie. Lista podłączonych urządzeń wraz z ich adresami dostępna jest po sprawdzeniu zawartości katalogu systemowego /sys/bus/w1/devices/, wynik polecenia ls dla tego katalogu został przedstawiony na zdjęciu poniżej. Do magistrali zostały podłączone dwa czujniki temperatury DS18B20. Dla najnowszego raspbiana powyższy opis może być trochę przekłamany, ja korzystałem z dystrybucji pobranej w styczniu 2015 roku, ostatnio przy zabawie z raspberry i uzyciu najnowszego systemu konieczne jest dopisanie linijki w pliku konfiguracyjnym. Opisane jest to m.in tutaj: http://osworld.pl/raspberry-pi-obsluga- termomertrow-ds18b20/ Głównym etapem jest instalacja najważniejszego frameworka, pakietu WebIOPi. Instalacja polega na pobraniu spakowanej paczki ze strony autora i uruchomieniu skryptu instalacyjnego. Tutaj żeby nie kopiować internetu również odsyłam na stronę gdzie opisana jest cała instalacja: http://webiopi.trouch.com/INSTALL.html Dostępne sa tam również przykłady dla konkretnych urządzeń oraz dokumentacja pozwalająca zrozumieć zasadę działania. W dalszej części przedstawie fragmenty swoich skryptów, dla konkretnego rozwiązania. Początek etapu instalacji: Po zainstalowaniu pakietu. I wydaniu polecenia startowego /etc/int.d/webiopi start, możemy za pomocą przeglądarki internetowej otworzyć domyślną stronę internetową frameworka WebIOPi. Adres strony to numer IP komputera oraz domyślnie port :8000. Po wpisaniu adresu, strona będzie wymagała uwierzytelnienia w postaci domyślnego hasła. Widok domyślnie hostowanej strony został przedstawiony na zdjęciu poniżej. Są to podstawowe elementy frameworka umożliwiające sprawdzenie jego działania w tym przypadku działania układów wejść -wyjść. Po sprawdzeniu działania podstawowych funkcji frameworka, należy za pomocą pliku konfiguracyjnego określić sposób jego działania. Polega to na dopisaniu wszystkich adresów urządzeń które mają być obsługiwane. W projekcie będą to 3 urządzenia w magistrali i2c, opisane jako adc, mcp oraz pwm. A także 2 urządzenia magistrali 1-wire opisane jako temp1 oraz temp2. Każde ze zdefiniowanych urządzeń prezentuje na stronie diagnostycznej rejestrowane parametry oraz jeżeli jest to możliwe, przyciski do sterowania testowania i zadawania wartości. Na tym etapie możliwe jest dokładne sprawdzenie działania wszystkich podzespołów. Po zakończeniu testów, w pliku konfiguracyjnym należy podać ścieżkę docelowej strony sterującej, oraz dodać aplikację do skryptów startowych systemu. Dokładny opis: http://webiopi.trouch.com/Tutorial_Basis.html Kolejnym krokiem jest instalacja serwera apache wraz z modułami bazy danych mysql potrzebnymi do jej obsługi. Po instalacji wymagane jest stworzenie bazy danych, potrzebnej do rejestracji parametrów z czujników. Instalacja serwera FTP, znacznie ułatwia wymianę plików z komputerem, oraz późniejsze edytowanie skryptów odpowiedzialnych za działanie systemu. W prezentowanym rozwiązaniu został zainstalowany pakiet proftpd. Współpracuje on z programem fail2ban zabezpieczając dodatkowo zawartość przed niepowołanym dostępem. Wszystkie niezbędne pakiety zostały zainstalowane. Za pomocą protkołu FTP została wgrana strona www oraz skrypty sterujące do ścieżki wcześniej ustawionej w pliku konfiguracyjnym WebIOPi. Aplikacja internetowa: Aplikacja internetowa. Aplikacja internetowa w formie strony www została napisana wykorzystując języki HTML, CSS i JavaScript. Wykorzystanie skryptów JavaScript pozwoliło na wyświetlanie i sterowanie parametrami sterownika na stronie bez konieczności jej przeładowywania. Jednym z założeń było stworzenie strony działającej na urządzeniach mobilnych. Zostało to zrealizowane przy pomocy frameworka Bootstrap, który automatycznie dopasowuje jej zawartość do szerokości i proporcji ekranu. Interfejs aplikacji został zaprojektowany w formie prostokątnych kafli, z których każdy odpowiada za inną funkcję. Poniżej został przedstawiony widok strony startowej na komputerze z monitorem o rozdzielczości 1920x1080, oraz telefonu komórkowego o takiej samej rozdzielczości. Pomimo takiej samej rozdzielczości ekranu, strona została odpowiednio powiększona i dopasowana do komfortowego przeglądania jej na telefonie komórkowym. Poszczególne zakładki zostały ukryte w formie rozwijanego menu dostępnego pod jednym przyciskiem (prawy górny róg). Strona składa się z 4 głównych zakładek: monitoring, oświetlenie, diagnostyka oraz ustawienia. Pierwsza zakładka to jednocześnie strona startowa. Wyświetla ona najważniejsze rejestrowane parametry takie jak temperatura w pokoju dziennym, temperatura na zewnątrz, prąd pobierany przez cały obiekt, stan poszczególnych punktów oświetlenia, napięcie zasilania sterownika, oraz stan elementów nadzorujących bezpieczeństwo w obiekcie. Poszczególne kafelki wyświetlają informacje o tych parametrach oraz pozwalają na interakcję w postaci uruchamiania określonych funkcji. W przypadku przekroczenia nominalnej wartości danego parametru, np. temperatury w pokoju dziennym wyższej niż 22 stopnie Celsjusza, kafelek wyświetlający ten parametr zmienia kolor na pomarańczowy. Użytkownik zostaje również powiadomiony o tym fakcie, odtworzeniem informacji „Temperatura w pomieszczeniu jest za wysoka”, za pomocą podłączonych do komputera głośników. Odtwarzaniem dźwięku zajmują się niezależnie pracujące skrypty. Analogiczna sytuacja ma miejsce w przypadku zbyt niskiej wartości temperatury. Kafelek zmienia kolor na niebieski, a użytkownikowi zostaje odtworzony komunikat „Temperatura w pomieszczeniu jest za niska”. Aplikacja internetowa spełnia tylko rolę interfejsu komunikacyjnego z użytkownikiem, nie jest niezbędna do działania całego systemu, jednak pozwala na sterowanie systemem oraz podgląd zarejestrowanych parametrów. Kafelek odpowiedzialny za wyświetlanie temperatury, jest jednocześnie przyciskiem otwierającym okno wykresu, który generowany jest na podstawie ostatnich 200 pomiarów temperatury, rejestrowanych co 15 minut.: Wykres generowany jest za pomocą biblioteki Google Chart API, pozwalającą na dowolną konfigurację wyświetlanych elementów. Po kliknięciu na dany punkt wykresu, w prawym górnym rogu wyświetlana jest szczegółowa informacja o zarejestrowanym parametrze. Wykres jest animowany, pozwala na powiększenie danego fragmentu w celu dokładniejszej analizy, co w przypadku np. pomiaru prądu, umożliwia zlokalizowanie źródła zużycia energii elektrycznej. Poszczególne elementy kodu potrzebne do zrealizowania wykresu to skrypt rejestrujący temperaturę i datę wykonania pomiaru do bazy danych, oraz skrypt generujący wykres, korzystający z biblioteki Google Chart API. Aktualne parametry pobrane ze sterownika wyświetlane są na stronie www za pomocą java skryptu korzystającego z możliwości frameworka WebIOPi. Jako przykład zostanie przedstawiona funkcja odświeżająca wszystkie parametry na stronie startowej z interwałem 500ms. Jej kod jest zaprezentowany poniżej: Kolejną główna kartą aplikacji internetowej jest oświetlenie. Za pomocą tej podstrony możemy sterować wszystkimi punktami oświetleniowymi, oraz monitorować ich stan. W zależności od sprzętowej konfiguracji systemu wyświetlane są tu kafelki odpowiedzialne za włączanie lub wyłącznie oświetlenia, a także sterowanie jego jasnością. Kafelek w prawym dolnym rogu pozwala na włączanie lub wyłączanie wszystkich lamp w pomieszczeniu. Ikona żarówki podświetlona na żółto informuje o zapalonej danej lampie. Wyświetlany stan jest zależny od rzeczywistego stanu wyjścia przypisanego do sterowania danej lampy. Sterowanie fizycznymi przyciskami może odbywać się niezależnie od działania aplikacji internetowej. W przypadku włączenia światła przez użytkownika w pomieszczeniu przy wykorzystaniu fizycznego przełącznika, stan przycisku w aplikacji internetowej również ulegnie zmianie. Ostatnim elementem na stronie jest sterowanie jasnością oświetlenia LED. Odbywa się ono poprzez przesuwany pasek, który zadaje wartość z przedziału 0-100 w zależności od swojej pozycji. Jednocześnie wartość ustawiana jest na przypisanym wyjściu cyfrowym w module PWM, który generuje przebieg prostokątny o wypełnieniu procentowym z przedziału 0-100. Karta „diagnostyka” jest bardzo przydatna w procesie montażu i serwisowania całego systemu. Umożliwia wykonywanie niektórych komend systemu, bezpośrednio z poziomu przeglądarki, pozwala na sprawdzanie stanu i adresów podłączonych do magistral urządzeń, posiada opcje restartu lub wyłączenia systemu, oraz wykonuje testowe odtwarzanie komendy głosowej konieczne w przypadku regulacji nagłośnienia. Ostatnią zakładką jest zakładka „Ustawienia”, która docelowo ma służyć do ustawień wyglądu poszczególnych ekranów, wartości krytycznych dla danych parametrów, oraz włączania i wyłączania poszczególnych funkcji systemu. Programami nadzorującymi pracę systemu są skrypty wykonywane cyklicznie lub na żądanie użytkownika. Skrypty wykonywane cyklicznie w systemie, zostały napisane w jezyku powłoki Bash, zaś skrypty odpowiedzialne za działanie systemu w zależności od stanu poszczególnych urządzeń napisane są w języku Python. Skrypty te wykonują większość zadań całego systemu inteligentnego budynku i są podstawą jego działania. Cykliczne wykonywanie programów zrealizowane jest za pomocą systemowego narzędzia CRON, uruchamia on co 15 minut skrypt odpowiedzialny za pomiar temperatury z czujnika temperatury i zapis jego stanu do bazy danych. Dzięki temu możliwe jest generowanie przebiegów temperatury w aplikacji internetowej. Dla każdego czujnika istnieje osobny skrypt. Kod skryptu przedstawia się następująco: Programy realizujące poszczególne funkcje systemu to skrypty pracujące pod kontrolą frameworka WebIOPi. Pozwalają one na nadzorowanie np. stanu przycisków i w przypadku jego zmiany wykonanie określonej funkcji. Ze względu na możliwość sterowania oświetleniem zarówno z aplikacji internetowej, jak i fizycznych przycisków, pojawił się problem zmienionej pozycji przełącznika światła, w przypadku zgaszenia lampy z poziomu aplikacji internetowej. Przypisanie funkcji światła na stałe do przycisku, uniemożliwiło by sterowanie nim z innych źródeł. Rozwiązaniem tego problemu jest poniższy kod, reagujący tylko na zmianę stanu przycisku i zmieniający stan lampy w zależności od tego czy jest zapalona czy zgaszona. Innym przykładem funkcji systemu są funkcje realizowane poprzez wywołanie danego makra przez użytkownika. Po wciśnięciu przycisku z poziomu przeglądarki wywoływana jest funkcja frameworka, wykonująca dane makro napisane w języku Python. I tak makro „shutdown” wykonuje polecenie systemowe „reboot” po czym zwraca do funkcji wartość „Sterownik: system zostanie wyłączony”, dzięki czemu aplikacja może wyświetlić odpowiedni komunikat. Przykładowe funkcje przedstawia poniższy fragment kodu. Za pomocą opisanych skryptów możliwa jest realizacja dowolnej funkcji żądanej przez użytkownika. W prezentowanym rozwiązaniu zostały zaimplementowane m.in. takie funkcje jak gaszenie światła w całym mieszkaniu za pomocą włącznika przy łóżku, który jednocześnie zapala tylko lampkę nocną. Szybkie przełączenie przycisku przy drzwiach wejściowych wyłączające wszystkie światła, bez konieczności wyłączania wszystkich po kolei. Skrypty powiadamiające użytkownika za pomocą odtwarzanych komunikatów, realizują swoją funkcje tylko w przypadku odpowiedniej pory dnia. Czujnik ruchu niezbędny w skrypcie alarmowym, w przypadku rozbrojonego alarmu załącza z minimalną jasnością oświetlanie LED, umożliwiając dojście do łazienki bez konieczności zapalania świateł. Podwyższony pobór prądu, który w przypadku dłuższego braku ruchu w pomieszczeniu, pozwala na poinformowanie właściciela o włączonym odbiorniku energii elektrycznej. Nie jestem w stanie opisać całego kodu aplikacji - bo jest go sporo, zamieszczam źródła do przejrzenia - które raczej nie pozwolą na bezpośrednie uruchomienie systemu ale dla kogoś korzystającego z opisanych frameworków mogą być przydatne. Na koniec jeszcze film z testów czujnika temperatury. Inteligentna kawalerka.zip
  3. 12 punktów
    KTR-X1 8x8 To pojazd zdalnie sterowany do wykonywania zadań w bardzo trudnym terenie, charakteryzuje się prostotą konstrukcji, niskim środkiem ciężkości oraz uniwersalnością. KTR-X1 8x8 zbudowany jest z dwóch sekcji połączonych przegubem, dzięki temu każda sekcja jest niezależna, dodatkowo ruchome wahacze dają ogromne możliwości w pokonywaniu przeszkód w terenie. Pojazd obojętnie w jakim terenie się porusza,oraz jak stoi, zawsze ma doskonałą przyczepność na wszystkie 8 kół. Dzięki temu że KTR-X1 jest hybrydą można bez obaw wybrać się na dalekie wyprawy gdyż prądu nam nie zabraknie. Specyfikacja: Podwozie: rama stalowa z profila zamkniętego 30x30x1,5 spawana Wahacze: profil zamknięty 40x80x2 wspawane bloki łożyskowe Osie: stal utwardzana Poszycie: blacha aluminiowa 0.8mm wzmacniania kątownikami Przegub: blacha stalowa 10mm plus łożyska Przeniesienie napędu: przekładna łańcuchowa przełożenie1,5:1 Napęd: 4 silniki 24V / 450W każdy (moc znamionowa) 123 RPM Układ skrętu: pompa hydrauliczna 120 bar plus dwa siłowniki Sterownik silnika: Sabertooth 4x32A Sterownik pompy: Sabertooth 2x32A Zasilanie: Akumulatory kwasowe 12V 40Ah 2x Układ ładowania: silnik spalinowy 200c OHV plus alternator 28V 55A Koła: 145/70/6 Pilot sterowania: HK-T6 Oświetlenie: led 2x9W przód, 2x2W tył Układ chłodzenia: 2x wentylator 4800 RPM Przyłącza: szybkozłącze montażowe plus gniazdo zasilania Spalanie: 0,5-1,2l/mth Masa: 140Kg Prędkość max: 8km/h Wymiary: szer 90cm, dłu 192cm, wys 68cm, prześwit 27cm Dalsze plany: Pług do śniegu obrotowy (zrobiony) Zamiatarka (dalszy etap) Kosiarka (dalszy etap)
  4. 11 punktów
    Witam serdecznie Pragnę zaprezentować mój zdalnie sterowany pojazd o wdzięcznej nazwie Przebiegły Tyran Podstępności Konstrukcja powstawała przez 5 miesięcy. Zbudowana jest głównie ze stali i aluminium. Pojazd waży 24 kg i ma 60 cm długości. Prędkość maksymalna to około 15-20 km/h. Konstrukcja nie posiada skrętnej osi, skręcanie odbywa się jak w czołgu Każde koło jest napędzane własnym silnikiem z przekładnią z chińskiej wkrętarki. Każdy silnik pobiera bodajże 26A maksymalnie i działa na 12V. Za zasilanie odpowiadają dwa żelowe akumulatory 12V po 10Ah każdy, a także 8 litowo-jonowych akumulatorów 3,7V - 2200 mAh. Silniki są sterowane z Arduino Pro Mini przez mostki zbudowane z tranzystorów mosfet. Na pokładzie znajduje się także drugie Arduino gdyż zabrakło mi pinów na wszystkie podzespoły Komunikacje z trzecim Arduino będącym pilotem zapewniają moduły radiowe HC-11 433MHz. Oświetlenie przednie zapewniają 2 LEDY 1-watowe, 2 LEDY 3-watowe i 2 halogeny po 35W. Tylne oświetlenie to cztery 1-watowe czerwone LEDY. Na dachu znajduję się odsuwana klapa zasłaniająca wyrzutnie rakiet. Otwiera się dzięki gwintowanemu prętowi zamocowanemu na osi silnika i nakrętce przytwierdzonej do ruchomej części. Wyrzutnia rakiet zmienia kąt strzału dzięki serwu. Mieści 6 pocisków. Odpalanie działa tak że każda rakieta ma wokół lontu owinięty cienki drucik, dwa końce drucika są połączone z akumulatorem poprzez przekaźnik. Gdy przełącze przekaźnik, prąd przepala drucik i następuje zapłon. Każda rakieta ma swój własny przekaźnik więc mogą być odpalane niezależnie.
  5. 10 punktów
    Cześć, chciałbym przedstawić Wam mojego robota Celem pracy było wykonanie zdalnie sterowanego robota dobrze radzącego sobie w terenie, który wysyła obraz i dane z czujników do operatora. Budowa: Pierwszy etap budowy to projekt CAD w programie Autodesk Inventor 2015. Zawieszenie to uproszczona wersja systemu jezdnego rocker - bogie. (Link do wiki z zasadą działania wikipedia ) Zawieszenie: Praca zawieszenia: Silniki to Pololu 37Dx57L mm z przełożeniem 100:1, do tego adaptery na hex 12mm, i koła z Wild thumpera. Na maszcie znajduje się dedykowany moduł kamery do Raspberry Pi, wraz z reflektorami + dwa serwa Tower Pro do sterowania ruchem masztu. Oprócz tego z boku jest mała skrzyneczka w której znajduje się buzzer oraz czujnik wilgotności i temperatury DHT22: Całość projektu wygląda następująco, z tyłu widać zamontowaną antenę: Konstrukcja została wykonana tak jak przewidywał projekt, oprócz tego robot został oklejony folią moro, co dodało mu powagi ;D Praca zawieszenia: Elektronika: - Raspberry Pi - główny komputer sterujący, - Moduł rozszerzeń podłączany do portów GPIO (zawiera przetwornik ADC MCP3008, zegar RTC, cyfrowy kompas HMC588L i układ Darlingtona ULN2803A) - Silnikami sterują elektroniczne regulatory prędkości używane w samochodach RC, - Generator PWM Adafruit - generuje sygnał do serwomechanizmów i ESC, - Nano router TP-Link TL-WR703N do zapewnienia łączności WiFi, został lekko zmodyfikowany - przylutowałem złącze RPSMA do podłączenia zewnętrznej anteny. - Akumulatory to pakiety ogniw 18650, zostały stworzone dwa - jeden 2S do zasilana elektroniki, drugi 3S do zasilania serwomechanizmów i silników. Półka elektroniki: Pozostałe elementy: Oprogramowanie: Aplikacja sterująca na PC wykorzystuje bibliotekę QT, i SFML (obsługa pada Xbox), na robocie całość została napisana w Pythonie Okno wygląda następująco, jak widać znajdują się tam wszystkie odczyty z czujników, sterowanie światłami, buzzerem, oraz przycisk uruchamiający kamerę: Strumieniowanie video: Aby zapewnić jak najmniejsze opóźnienie i obraz HD został użyty Gstreammer. Starałem się wszystko opisać w dużym skrócie, jak macie jakieś pytania to piszcie
  6. 10 punktów
    The way I see it, if you're gonna build a line follower, why not do it with some style? W ten oto wyjątkowy dzień OCT 21 2015, chciałbym zaprezentować swoją najnowszą konstrukcję, na początek jednak please excuse the crudity of this model. I didn't have time to build it to scale or paint it - a tak na poważnie brak czasu i masa obowiązków a zostało trochę rzeczy do dopieszczenia m.in wydruki 3d. Tak więc dokumentacja, porządne zdjęcia, i filmy pokazujące pełne możliwości tej konstrukcji zostaną opublikowane w późniejszym terminie - a robot na bank pojawi się na Robotic Arenie we Wrocławiu (możliwe że gdzieś wcześniej). ELEKTRONIKA Projekt składa się z czterech płytek PCB zaprojektowanych w CadSoft EAGLE. Płyta główna - grubość 1mm, pokrycie HASL bezołowiowy (plated gold), grubość miedzi 35um. Sercem robota jest 32 bitowy PIC32MX270F512H, do jego dyspozycji jest również osobny 1mb pamięci NVSRAM z podtrzymaniem bateryjnym Microchip 23LCV1024 (np. zapamiętanie trasy w trakcie zmiany głównej baterii). Napięcie 5.9V zapewnia przetwornica ST1S10PHR, natomiast za 3.3V odpowiada Microchip MCP1826S. Do sterowania silnikami - Toshiba 6612FNG. Na płytce znajdują się również trzy rejestry przesuwne NXP 74HC595 do sterowania efektami świetlnymi. 3 przyciski w tym dwa maleństwa do obsługi tablicy. Możliwość odbioru IR przez Vishay TSOP34836. P-MOSFET IRLML6401 do ochrony wejścia przed odwrotną polaryzacją. Większość drobnicy w obudowach 0603 Płytka czujników - grubość 0.8mm, pokrycie HASL bezołowiowy (plated gold), grubość miedzi 35um. KTIR0711S oraz miejsce pod SHARP GP2Y0D340K. Płytka enkodera i płytka silnika - grubość 0.8mm, pokrycie HASL bezołowiowy (plated gold), grubość miedzi 35um. Płytka przeznaczona do podłączenia enkoderów AS5040 - z prawie lustrzanym odbiciem z obu stron w celu obsługi dwóch kół robota z wykorzystaniem jednego wykonania PCB dla obydwóch stron. Razem z płytką silników imituje "kominy" filmowego De Loreana. FLUX CAPACITOR - 12 białych diod LED (wlutowanych do góry padami) odpowiada za efekt pracy kondensatora strumienia. RADIATION METER - dzielnik rezystorowy + ADC -> pomarańczowa dioda 0603 zaczyna migać w momencie spadku napięcia baterii. TIME CIRCUITS - tablica z niezależnym podświetleniem każdej daty - dwoma przyciskami ustawiamy na niej przed jazdą tryb w jakim ma robot pracować. NEONY - 3 wytrawione na głównej płytce + cztery 3mm diody do podświetlenia rurek wychodzących od płyty głównej do płytki enkoderów. OUTATIME - element obowiązkowy MR FUSION - na spodzie - bateria, góra skrywa w sobie malutki włącznik. ŚWIATŁA niezależne sterowanie światłami: przednimi (osobno wewnętrzne osobno zewnętrzne) oraz tylnymi (stopy, migacze, wsteczny). LICZNIK - when this baby hits 88cm/s you gona see some serious shit - wskazuje prędkość, przy 88cm/s odpalają się neony. MECHANIKA CDN... __________ Komentarz dodany przez: Treker Ale kolega punktów w regulaminie działu złamał... Ciężko wyliczyć wszystkie... Jednak w związku z oryginalnością konstrukcji poprawiłem niezbędne minimum i opublikowałem
  7. 10 punktów
    Witam, chciałbym zaprezentować manipulatora mojej konstrukcji. Głównymi założeniami projektu były: - Zbudowanie manipulatora o 6 stopniach swobody, - minimalne rozmiary z zachowaniem jak największej funkcjonalności oraz podobieństw do tych pracujących w przemyśle, - zachowanie szeroko pojętej estetyki. Na sam początek przeprowadziłem parę prób co do sterowania silnikami dc (bo takie planowałem użyć (cena)). Następnie zabrałem się za rysowanie modelu CAD robota, który powstał w programie Catia V5. Dodatkowo przeprowadziłem symulację ruchów manipulatora, co zapobiegło kilku błędom. Jako materiały do budowy brałem pod uwagę PMMA, stal oraz aluminium. Są one stosunkowo łatwe w obróbce i ogólno dostępne. Ważnym kryterium przy projektowaniu było zapewnienia odpowiedniej sztywności całej konstrukcji oraz fakt że w czasie projektowania i budowania nie miałem dostępu do frezarki/drukarki 3D, przez co całość musiała być tak zaprojektowana abym był w stanie wykonać wszystkie części samodzielnie. Robot jest łożyskowany w osiach 1-4. Końcowo ze stali wykonane są osie obrotowe 1-2, 2-3, 3-4. Z aluminium platforma obrotowa, mocowanie ramienia i kilka mniejszych części. Elementy z PMMA to większość konstrukcji głównie z płyt 2 i 4 mm wycinane na waterjet'cie. Kształtowanie polegało na podgrzewaniu hot air’em, następnie nadawaniu kształtu na kancie biurka. O samym "procesie" wytwarzania części mógłbym dużo pisać bo praktycznie wszystko robiłem samodzielnie w mniej lub bardziej elegancki sposób, dlatego najlepiej będzie odpowiadać na Wasze pytania (jeśli będą). Sam chwytak powstał trochę później, głównie dlatego że nie był niezbędny do funkcjonowania manipulatora a trzeba było ciąć koszty. Model chwytaka też powstał w Cati (razem z symulacją ruchu) i w tym przypadku został on wydrukowany z racji bardzo małych kształtów. Problematyczne okazało się znalezienie odpowiednio małego napędu, przekładni, łożysk. W środku znajdują się dwa przyciski krańcowe, a sterowanie jest siłowe. Za ruch ramion odpowiadają silniki DC z przekładniami. Silniki osi 1 -3 pochodzą z rozmontowanych drukarek, a przekładnie do nich otrzymałem z demontażu serw modelarskich. W osiach 4-6 zamontowane są silniki z dedykowaną przekładnią. Jako sprzężenie zwrotne wykorzystałem enkodery optyczne które też pochodzą z drukarek. Rozdzielczość dla każdej z osi wynosi >=0.1. Pracę silników kontrolują regulatory PID. Nad pracą robota czuwa ATxmega 128A1. Początkowo w ramach testów układ powstawał na płytce uniwersalnej. Ostatecznie płytkę PCB zaprojektowałem w AD13 w ramach pracy przejściowej. Może nie będę rozpisywał się za bardzo nad elektroniką w załącznikach jest schemat. Elektronika zasilana jest z 12 VDC w środku znajdują się 2 przetwornice na 3,3V oraz 5V (na schemacie sa LM317). Kod napisany w środowisku eclipse w C. Pisanie oprogramowania było najbardziej czasochłoną czynnością. Standardowo DMA, ADC, PWM, WDT, USART, PLL, Timery. Całość zamknięta jest w metalowej obudowie gdzie na górnej części umieszczony jest grzybek, wyświetlacz, 4 przyciski, oraz 3 diody. Na przednim panelu jest złącze DB15 służy do programowania, oraz podłączania dodatkowych urządzeń (wyprowadzono z niego kilka pinów uC i wszystkie napięcia). Następnie mamy złącze zasilania 12V DC, złącze usb służące do podłączenia do PC, bezpiecznik oraz włącznik zasilania. Po przeciwnej stornie znajdują się złącza do podłączenia manipulatora. Przez robota przeprowadzonych zostało 38 przewodów z czego 34 są używane reszta to nadmiar. Od spodu sterownika znajduje się wentylator. Obecnie mamy 3 możliwości kontrolowania manipulatora. - Poprzez PC (RS-232), powstała dedykowana aplikacja napisana w Lazarusie (Delphi). Umożliwia ona pełną kontrolę manipulatora, pomiar prądu silników, wymuszeń skokowych, tworzenie sekwencji ruchowych, modyfikację wzmocnień regulatorów PID, kalibrację itp. - Poprzez Smartphonea, powstała aplikacja na androida napisana w AppInventorze. Umożliwia kontrolę każdej osi manipulatora, kalibrację, odtwarzanie sekwencji oraz wysyłanie pojedynczych rozkazów. - Poprzez przyciski znajdujące się na obudowie sterownika. Dają takie możliwości jak sterowanie każdą z osi oraz wybór sterowania tzn. Aby sterować poprzez inne źródło najpierw musimy włączyć tą opcję na sterowniku. Jakby nie było ciężko napisać że projekt jest "skończony". W dużym stopniu udało mi się zbliżyć do manipulatora przemysłowego, a co za tym idzie można na nim testować przeróżne algorytmy, sposoby sterowania, kinematyke itp. z tą różnicą że nie kosztuje 100 tys. pln, a całe oprogramowanie jest "wymienne". Jeśli chodzi o koszty to: - elektronika ok. 700 zł, - mechanika ok. 1550 zł (650 zł to chwytak). Suma: 2250 zł (to ta optymistyczna wersja Smile). jak na przeciętnego studenta to dość sporo jak na zabawkę Smile. Pewnie pojawi się pytanie "kraj taki piękny, unia europejska, manna z nieba nie da się otrzymać jakiegoś dofinansowania na tego typu projekty ?." - Niestety nie, lub po prostu zbyt dużo papierków, chodzenia, proszenia i czekania. Jak napisałem we wstępie, manipulator stał się podstawą mojej pracy magisterskiej, która polegała na zbudowaniu systemu sterowania z wykorzystaniem logiki rozmytej. Końcowym efektem było zmniejszenie przeregulowań napędów o 64,5% w stosunku do tradycyjnego regulatora PID. Praca w załączniku. Podsumowując projekt uważam za udany nauczył mnie wielu rzeczy z różnych dziedzin nauki i to jest najcenniejsze, ale jak to przy takich projektach bywa teraz zrobiło by się pewne rzeczy inaczej/lepiej. Chciałbym też podziękować za pomoc kilku pracownikom wydziału MT oraz Elektrycznego. NIE JESTEM AUTOREM PLATFORMY JEZDEJ Kilka filmików z działania manipulatora, miłego oglądania. Zachęcam do zadawania pytań. Manipulator - code C.zip Manipulator - App lazarus.zip Schematic.PDF PDM_MarekSliz.pdf
  8. 9 punktów
    Przedstawiam mój projekt który zrealizowałem w ostatnim czasie, jest to prosty manipulator osadzony na platformie mobilnej. Założeniem tego projektu było maksymalne uproszczenie konstrukcji i sterowanie jej za pomocą kontrolera od Playstation 3. Całość miała też po naciśnięciu przycisku wykonywać określone funkcje automatycznie. Konstrukcja jest rozwojowa, będzie wyposażona w kamerkę bezprzewodową i dodatkowe czujniki. Konstrukcja to zmaterializowane pomysły z głowy. Przebieg budowy był improwizacją, aczkolwiek niektóre elementy były projektowane. Podwozie zostało zaprojektowane od podstaw, manipulator to zmodyfikowany projekt dostępny w sieci. Podwozie: Manipulator: BUDOWA MECHANICZNA Większość elementów konstrukcyjnych to wydruki 3D. Gąsienice i koła to produkcja LEGO, koła zostały odpowiednio zmodyfikowane przez wklejenie w nie łożysk tocznych. Naciąg gąsienic zrealizowany jest za pomocą podwójnego mimośrodu w tylnych kołach. Wszystkie śruby, nakrętki i podkładki są oczywiście nierdzewne. W każdym połączeniu ruchomym ramienia znajduje się tulejka mosiężna. Nakrętki samochamowalne. ELEKTRONIKA Podwozie napędzane jest przerobionymi serowomechanizmami TowerPro MG995, manipulator wyposażony w TowerPro MG90, tryby metalowe. Do zasilania zastosowano pakiet Litowo-polimerowy 7,4V 1300mAh, na pokładzie znajduje się przetwornica obniżająca odpowiednio napięcie do pracy serw. Mózgiem Jest Arduino UNO z USB host shieldem + Bluetooth. Użytkownik informowany jest o napięciu pakietu i w odpowiednim momencie też ostrzegany sygnałem dźwiękowym za pomocą testera. Na przodzie umieszczono dwie diody led. Podsumowując: - 2x TowerPro MG995 - 3x TowerPro MG90 - Pakiet LiPo 7,4V 1300mAh - Przewornica 3/5A - Arduino UNO - USB Host Shield 2.0 - USB Bluetooth - LiPo tester - 2x LED STEROWANIE Zgodnie z założeniami całość sterowana jest za pomocą Kontrolera od PS3. Lewy analog odpowiada za jazdę, prawy analog obsługuje ramię główne i ramię manipulatora. Przycisk analogowy R2 odpowiedzialny jest za uchwyt. Przycisk R1 powoduje zapamiętanie uścisku, czyli trzyma przedmiot beż konieczności trzymania przycisku R2. Kolejno, przycisk L1 pozwala włączyć oświetlenie LED na przodzie. START uruchamia pętle z programikiem który ma za zadanie podnieść przedmiot oddalony o 15cm przed obrócić się o 180 stopni, położyć przedmiot przed sobą, ponowne naciśnięcie tego przycisku wychodzi z pętli. Czas obrotu dobrany empirycznie. Powtarzalność miejsca uzyskana na poziomie 0,5cm (zadowalająca) SELECT służy do włączenia testu wszystkich serw, ustala określone pozycje, wyjście z pętli po ponownym naciśnięciu przycisku. Podsumowując: - LEWY ANALOG -> jazda - PRAWY ANALOG -> manipulator - R2 -> uchwyt manipulatora - R1 -> zapamiętanie uchwytu - L1 -> włączenie oświetlenia - START -> program wykonujący przenoszenie obiektu (w pętli) - SELECT -> Program testujący pracę serw (w pętli) OPROGRAMOWANIE Program dla płytki mikrokontrolera napisany został w środowisku Arduino IDE, zmodyfikowano w dużym stopniu przykład PS3BT. EFEKTY Zdjęcia: Aktualizacja 29.02 Platforma posiada kamerkę bezprzewodową przekazującą kolorowy obraz i dzwięk. Film: Pierwsze testy sterowania padem: https://www.youtube.com/watch?v=ACa2hxboEXs
  9. 9 punktów
    Cześć! Jako że ostatnio na Forbocie jest opisywanych coraz mniej robotów biorących udział w zawodach postanowiłem opisać swojego robota nanosumo. Sam robot powstał już jakiś czas temu (ok 1,5 roku temu), ale do dzisiaj nieźle mu szło na zawodach i ogólnie jestem całkiem zadowolony z konstrukcji. Wyciągnąłem z niej wiele wniosków i mam nadzieję że kolejna będzie jeszcze lepsza Mechanika : Rama robocika zbudowana jest z malutkich kawałków laminatu, na których ściankach są umieszczone od środka zębatki. Wszystkie koła zebate jak i silniki pochodzą ze znanych 9 gramowych serw. Największym wyzwaniem było upchnięcie dwóch silników na sobie tak by nie podnosiły za mocno całej konstrukcji oraz były dobrze spasowane z zębatkami. Same silniki są przyklejone do siebie oraz do podstawy robota. Koła to przerobione nakrętki mosiężne, w tym momencie nie umiem powiedzieć skąd pochodziły. Wywierciłem w nich otworki i odlałem małe silikonowe oponki. Z przodu robota widoczny jest pług przymocowany na stałe jak i opadający. W sumie nie jestem pewien czy kiedykolwiek pomógł mi podważyć przeciwnika, a czasami sprawiał kłopot z postawieniem bez opadnięcia przed rozpoczęciem walki. Elektronika: Robotem steruje atmega8 taktowana 8mhz z zewnętrznego kwarcu. Ma wgrany bootloader, by oszczędzić pinów na płytce. Oczami są 4 czujniki, z czego jeden jest nieaktywny, gdyż nie miałem miejsca na moduł startowy i musiałem pozbyć się diod ir. Czujniki to, jak w każdej mojej konstrukcji, tsopy i diodki ir smd. Są naprawdę fajne pod względem zasięgu (który da się regulować), jednak zajmują sporo miejsca na pcb. Diodki są sterowane tranzystorami, jednym na parę diod. Mostek to malutki 24 pinowy qfn od freescale - MPC17531. Czujniki linii to ktiry0711s zamocowane na samym dole robota. Moduł startowy postanowiłem umieścić w całości w robocie. Chciałem mieć pewność, że moduł za każdym razem się poprawnie zaprogramuje, a następnie bez problemu wystartuje. Oprócz tego jest trochę drobnicy, nie ma regulatora, wszystko zasilane jest bezpośrednio z li-pola 140 mAh. Program: Zawsze staram się pisać jak najprostsze programy do walczących robotów i tak też było w tym przypadku. W sumie tradycyjnie "wyifowane" warunki na czujniki i poszczególne reakcje silników - nic szczególnego. Pora na osiągnięcia: - 1 miejsce Robomaticon 2015 - 1 miejsce TTR 2015 - 1 miejsce Roboxy 2015 - 2 miejsce Sumochallenge 2015 - 1 miejsce RoboticArena 2015 - 3 miejsce Robomaticon 2016 W tym roku nanoHaker2 dostał się także do ćwierćfinałów Robotchallenge 2016. Robot jest już stary i szykuję powoli nową konstrukcję, w nadziei że w końcu uda się zdobyć podium w Wiedniu I jeszcze na koniec parę zdjęć : Jak znajdę jakieś filmiki z udziałem nanoHakera wrzucę linki. Mam nadzieję, że się podobało i czekam na pytania Pozdrawiam, Piotrek
  10. 8 punktów
    Odkryłem ciekawy sposób na darmowe płytki drukowane dla uczniów i studentów i postanowiłem się nim z wami podzielić. Najpierw podam instrukcje potem opiszę możliwości produkcyjne i otrzymane dzisiaj płytki. NIEAKTUALNE! NOWE INSTRUKCJE TUTAJ! Instrukcje: 1. Wchodzimy w link. Jest to mój reflink po rejestracji z którego dostajecie dodatkowe $5 na płytki (4 warstwy etc.). 2. Rejestrujemy się poprzez wyświetlony formularz. 3. Wysyłamy z konta e-mail na który się zarejestrowaliśmy maila do service@pcbway.com ze zdjęciem legitymacji uczniowskiej/studenckiej i informacją że chcemy skorzystać z http://www.pcbway.com/free_pcb.html. 4. Czekamy na odpowiedź. 5. Składamy zamówienie przez stronę, czekamy aż status zmieni się na "ready to pay" jeszcze nic nie płacimy. 6. Odpisujemy na ostatniego maila (z potwierdzeniem kwalifikacji do programy darmowych płytek) z prośbą o adres do zapłacenia kosztów przesyłki. 7. Płacimy podane koszty przesyłki na ten adres przez PayPal. Koszt przesyłki to $10 za 7 dni albo $25 za 3 dni. Do tego dochodzi czas produkcji - max. 4 dni. 8. Czekamy na płytki. Ograniczenia darmowych płytek: 1. Wielkość płytki 10cmx10cm. 2. Maksymalnie 2 warstwy. 3. Ilość kopii: 5 lub 10. 4. Minimalny rozmiar wiertła 0.3mm. 5. Minimalna szerokość ścieżki 6 mil. 6. Na jednej płytce maksymalnie jeden unikalny projekt. 7. Maksymalnie 30 płytek w zamówieniu (chodzi o panelizacje). 8. Kolor soldermaski: czerwony, niebieski, zielony, żółty. Ceny płytek poza programem studenckim to $13 za 2, $35 za 4 i $154 za 6 warstw. Za dodatkową opłatą można ominąć ograniczenia z powyższej listy. Za umieszczenie na ich stronie zdjęć otrzymanych płytek można dostać $5 do wydania u nich. Moje obserwacje: Zamówiłem u nich płytki 3x5cm, 10 sztuk. Otrzymałem je po 10 dniach pomimo wybrania tańszej przesyłki. Jakość moim zdaniem co najmniej równa Satland Prototype. Soldermaska idealnie ostra i równa, silk screen bardzo czytelny, nawet gdy bardzo mały (opisy pomiędzy padami elementu 1206). Wszystkie warstwy są dobrze nałożone, otwory wycentrowane. Dobrze się lutuje. Został dodany numer identyfikacyjny płytki na silk screenie pod elementem. Galeria: Skan gotowej płytki (białe wewnątrz otworów to tło skanera): Stosik otrzymanych płytek: Zlutowana płytka (będzie wkrótce osobno opisana):
  11. 8 punktów
    Ten robot był eksperymentem w kilku dziedzinach jednocześnie. Po pierwsze, jest to mój pierwszy skończony dwunożny robot kroczący. Po drugie, jako mózgu użyłem nowego wówczas układu ESP8266. Po trzecie, po raz pierwszy użyłem sub-micro-serwa zasilane napięciem 3V. Na koniec, nawet obudowa była eksperymentem, sprawdzającym jak dobrze plastik ze starych opakowań nadaje się do tego celu. Później dla tego własnie robota wytrawiłem swoją pierwszą płytkę drukowaną. Ostatnim eksperymentem, który się niestety już nie powiódł, było użycie optycznego cyfrowego czujnika odległości, który z jakiegoś powodu okazał się nie działać. Ale do rzeczy. Robot ten bardzo mocno bazuje na projekcie znanym ogólnie jako "Bob" (http://www.robotrebels.org/index.php?topic=11.0). W zasadzie jest to moje podejście do zrobienia jego miniaturoej, pomniejszonej wersji. Niestety nie posiadałem dostępu do drukarki 3D, żeby zrobić obudowę i szkielet, zatem podszedłem do tematu tak jak zwykle -- zlepiając ze sobą losowe części i lutując wszystko "na pająka". Wyszło mi coś takiego: Dużym wyzwaniem były gniazdka do serw, bo ich rozstaw nóżek to 1.27mm. Moduł ESP8266, którego użyłem, ma rozstaw padów 2mm, więc już trochę łatwiej. Diody świecące dodałem, żeby widzieć czy robot jest włączony czy nie. Stopy są wycięte ze starej karty kredytowej. Gumka recepturka przytrzymuje baterię. Zadowolony z tej konstrukcji, postanowiłem zrobić do niej obudowę ze starego opakowania (tak zwanego "blistera") po gamepadzie. Wyciąłem z niego kawałek w miarę płaskiego plastiku, narysowałem na nim siatkę pudełka, wyciąłem i skleiłem Kropelką. Po dopasowaniu do robota powycinałem otwory. Potem dokleiłem trochę kawałków starych zabawek do ozdoby... Z czasem wymieniłem stopy na wykonane z takiego samego materiału jak obudowa i dodałem robotowi moduł ładowania baterii (jest to pojedyncze LiPo, więc dość łatwo je ładować). Do programowania wykorzystałem powstający wówczas dopiero firmware NodeMCU dla ESP8266, który pozwolił mi oskryptować wszystko w Lua. Było to bardzo wygodne, gdyż mogłem na żywo testować kod w konsoli, na którą po prostu łączyłem się telnetem. Przy okazji próby używania PWM do kontrolowania serwomechanizmów, znalazłem dwa błędu w NodeMCU, które zostały szybko poprawione (https://github.com/nodemcu/nodemcu-firmware/issues?q=is%3Aissue+author%3Adeshipu+is%3Aclosed). Jest tu zastosowany jeden trik, gdyż NodeMCU obsługuje co najwyżej 3 kanały PWM (zrobili to do kontroli diody RGB), a ten robot ma 4 serwomechanizmy. Otóż dwa z tych serwomechanizmów sterowane są tym samym sygnałem i zawsze mają tę samą pozycję -- to nie przeszkadza przy tym sposobie chodzenia, jaki ma ten robot: W tym stanie robot postał na półce jakiś rok -- zabrałem go na dwie konferencje, żeby się pochwalić. Niestety, po powrocie z ostatniej przestał działać -- urwał się jeden z padów na ESP8266, do których przylutowane były druciki. Niestety nie dało się tego naprawić bez praktycznego przebudowania całego robota, więc robot sobie leżał i czekał na lepsze czasy. Lepsze czasu nadeszły, gdy kupiłem odczynniki do trawienia płytek i postanowiłem spróbować w tym swoich sił. Zrobiłem płytkę dla naszego bohatera: A w zasadzie całą serię płytek, gdyż nie udało mi się jej poprawnie wytrawić za pierwszym razem: W końcu udało się zrobić coś, co miało większość potrzebnych połączeń i wywiercić w tym otwory, łamiąc przy tym tylko trzy wiertła. Po zlutowaniu całości, tak jak wspomniałem wcześniej, czujnik odległości okazał się nie działać, ale robot nadal chodzi i do tego teraz może mrugać oczami: Być może jeszcze kiedyś wrócę do tego projektu i spróbuję uruchomić ten czujnik, albo użyć innego. Mógłbym też znacznie rozszerzyć jego repertuar zachowań, na przykłąd nauczyć go tańczyć. Ogólnie z robota jestem bardzo zadowolony, dostarczył mi naprawdę wiele zabawy przy budowie i nauczył przy tym dużo, choć jest to chyba projekt przy którym jak dotychczas napsułem najwięcej komponentów (w sumie dwie płytki esp8266, jeden sensor optyczny, który zniszczyłem przy lutowaniu, milion nieudanych płytek, wiertełka). __________ Komentarz dodany przez: Treker 1 - Poprawiłem temat, w którym nie działał encja µ. 2 - Typ robota należy wybierać z listy rozwijanej zamiast wpisywać go ręcznie. 3 - Opisy robotów muszą zawierać jedno zdjęcie w załączniku, które jest prezentowane w katalogu robotów oraz na stronie głównej. Tym razem poprawiłem, pamiętaj proszę na przyszłość o tych zasadach. [ Dodano: 14-10-2015, 11:06 ] 1 - Nie lepiej by było naprawić forum tak, żeby działała? 2 - Nie widziałem tam nigdzie listy rozwijanej. UPDATE: Już widzę, jest na szaro po stronie etykiety pola, musiałem jakimś cudem przeoczyć, przepraszam. Jakoś mogę to naprawić? 3 - Jestem pewien, że załączyłem jedno zdjęcie jako załącznik, własnie tak, jak piszesz. Nie mam pojęcia czemu się to nie pojawiło. Poprawiłem teraz.
  12. 8 punktów
    Cześć! Jako że już po sezonie to postanowiłem opisać tu moją i mateuszm konstrukcję. Robot powstał w ramach rekrutacji do koła naukowego robotyków KoNaR i debiutował na Robotic Arenie 2015. Był to nasz debiut w konstruowaniu robotów, ponieważ wcześniej żaden z nas tego nie robił. Mechanika Głównym założeniem mechaniki robota było wykorzystanie w pełni maksymalnej dopuszczalnej masy oraz skupienie jej w podstawie. W osiągnięciu tego celu pomógł nam projekt Autodesk Inventor, w którym to został wykonany szczegółowy projekt robota uwzględniający wszystkie drobne elementy mechaniczne. Podstawa robota została wykonana z trzech elementów: - ostrze z węglika spiekanego - płytka stalowa 3mm - płytka górna, 2mm, która łączyła dwa elementy wymienione wyżej W płytkach zostały wycięte otwory, w których następnie umieszczone były małe, okrągłe płytki z czujnikami białej linii. Stal była cięta laserowo oraz później frezowana. Napęd robota stanowiły znane i lubiane silniczki Pololu HP z przekładnią 50:1 przykręcone bezpośrednio do podstawy za pomocą dedykowanych mocowań. Podpięte do elektroniki były przy pomocy złączy ARK co umożliwiło ich łatwy demontaż w celach serwisowych. Obudowa robota została wykonana z laminatu 1mm. Na obudowie znajduje się nazwa robota oraz nasze imiona i nazwiska. Obudowa mocowana jest do podstawy za pomocą śrub, a jej elementy są do siebie lutowane. Dach robota wykonaliśmy z 2 mm przeźroczystego szkła akrylowego. Finalnie robot mierzy w najwyzszym miejscu 33,7 milimetra od podstawy do dachu, a od podłoza do dachu 37,2. Jego podstawa ma wymiary 98,9 mm na 99,6 mm. Masa waha się od 490 do 499g w zależności jak bardzo nakarmimy robota przed zawodami Elektronika Priorytetem projektu robota była jego dobra konstrukcja mechaniczna, w wyniku czego wymiary płytki z elektroniką były z góry narzucone. Elektronika została zaprojektowana w programie KiCad po zaimportowaniu wymiarów przeznaczonych na nią z programu Inventor. Elektronika robota dzieli się na dwie płytki: główną, która znajduje się tuż nad podstawą robota oraz dodatkowej, na której umieściliśmy włącznik zasilania, interfejs komunikacyjny oraz złącze na moduł startowy. Płytki połączone zostały ze sobą taśmą FFC. Mała płytka widoczna na zdjęciu nad płytką główną służy nam jako podstawka pod akumulator LiPo 7.4V, którym zasilamy robota. Sercem naszego robota został mikroprocesor STM32F1. Wybór tej rodziny wynikał z łatwości ich programowania przez początkujących. Czujniki odległości wykorzystane w robocie to znane i lubiane cyfrowe Sharpy 40cm. Umieściliśmy je 4, dwa z przodu oraz po jednym na bokach. Na czujniki białej linii użyliśmy dwa KTIRy 0711S. Jak wcześniej wspomniałem zostały one umieszczone na małych płytkach, które umieściliśmy w wycięciach w podstawie. Na sterowniki silników wybraliśmy dwa, podwójne mostki H TB6612. Zostały one dobrane ze względu na ich dobrą wydajność prądową, co umożliwiło nam skuteczne wysterowanie silników Pololu bez obawy o to, że przy pełnym zwarciu mostki ulegną uszkodzeniu. Płytki zostały wykonane metodą termotransferu oraz wyfrezowane za pomocą Dremela i pilników ręcznych. Software Kod robota został napisany w środowisku System Workbench for STM32 (SW4STM32) z użyciem generatora kodu konfiguracyjnego STM32CubeMX. Program podzielony był na dwie sekwencje: startową i walki. W pierwszej ustawiana była konfiguracja algorytmu robota oraz dostępne były funkcje testu czujników (widoczny na zdjęciu poniżej - cztery czerwone diody, które odpowiadały za pokazanie aktualnego stanu czujników) oraz czyszczenia kół (drobna funkcja pomocnicza ustawiająca małą prędkość na kołach). Sekwencja walki załączała się po otrzymaniu przez robota sygnału startowego z modułu. Większa część algorytmu walki opierała się na prostych if-ach z odpowiednio dobranymi nastawami silników w każdym przypadku, co okazało się wystarczające w większości starć. Następnie zostały dodane pewne udoskonalenia, o których już rozpisywać się nie będę Osiągnięcia - II miejsce Robomaticon 2016 - I miejsce Robotic Tournament 2016 - III miejsce Festiwal Robotyki Cyberbot 2016 - II miejsce [Minisumo] oraz I miejsce [Minisumo Deathmatch] Trójmiejski Turniej Robotów 2016 - II miejsce Opolski Festiwal Robotów 2016 - I miejsce Robotic Day 2016 [Praga] A poniżej kilka filmów z udziałem robota: 2Weak4U vs Hellfire 2Weak4U w Wiedniu 2Weak4U vs Dzik 2Weak4U vs Shevron (chyba) 2Weak4U w Deatmatchu [Rzeszów] 2Weak4U vs Szwagier Pozdrawiam i do zobaczenia w następnym sezonie, Aleksander
  13. 7 punktów
    Witam, pragnę zaprezentować serwomechanicznę ramię nad którym pracowałem przez jakiś czas, zdaje sobie sprawę iż nie jest doskonałe i wymaga jeszcze dopracowania wielu szczegółów, poniekąd jestem konstruktorem amatorem lecz to co robię sprawia mi wielką przyjemność i poczucie osiągania danego celu poprzez naukę, cierpliwość i wytrwałość Serworamię V.1.0. zbudowane jest na podstawie plastikowej obudowy w której zamieszczony jest transformator wraz z przetwornicą napięcia do której to przytwierdzone jest jedno z wielu serw mg995 towerPro dzięki temu obrot ramienia wynosi niemal 230 stopni :-> Wysięgnik ramienia oraz 2 moduł ramienia napędzany jest przez sprzężone serwa mg995 przez co siła uciągu jest podwójna - zapewnia to stabilność oraz znaczne zwiększenie siły wykonywanej pracy. Ostatni moduł ramienia oraz chwytak to spreparowane gotowe konstrukcje zakupione w sklepie botland również napędzane przez serwa mg995 Ogolnie całość napędza 7 serw mg995, zasilacz 150W/12V wraz z przetwornicą 300W step down nastawioną na 6V za bezpieczeństwem odpowiada moduł czujnika temperatury i wentylatora na przetwornicy który pokazuje aktualną temperaturę stabilizatora napięcia. Prąd jaki osiąga podczas pracy przy dużym oporze to blisko 8 Amper. Sterownik jaki zastosowałem obecnie to serwokontroler Polulu mini Maestro 12 kanałowy lecz nie jest on wystarczający do takich prac z powodu częstego "gubienia" zapisanych sekwencji pracy, przez co odtworzenie przynosi wiele uśmiechu myslę o zastosowaniu Arduino w celu tworzenia skryptu oraz przekaźników do zasilania serw - całość będzie bezpieczna, gdyż styki na mini maestro przy gniazdach GoldPin praktycznie się stopiły od prądu przez nie płynącego. z pewnościa konstrukcja wymaga poprawek i wielu modyfikacji, lecz sam nie ukrywam nie mam wystarczająco wiele czasu by działać z tym na bieżąco. zapraszam na film: (video od polowy filmu) __________ Komentarz dodany przez: Treker Następnym razem pamiętaj o dodaniu zdjęć o proporcjach ~3:2 w załączniku (jest one wyświetlane w katalogu robotów). Teraz poprawiłem to za Ciebie
  14. 7 punktów
    Witajcie! Bolt to robot klasy Linefollower Standard. Został zaprojektowany, zbudowany oraz zaprogramowany przez kolegę Hubert.M oraz mnie. Jest on naszą najnowszą konstrukcją. Konstrukcja mechaniczna. Robot składa się z 2 płytek PCB, wykonanych przez firmę SATLAND Prototype. Płytki połączone są dwiema węglowymi listewkami, a z tyłu robota znajduje się aluminiowa podpórka zabezpieczająca przed przewróceniem się robota. Podpórkami listwy czujników są tranzystory w obudowie TO92. Silniki użyte w robocie to popularne Pololu HP 10:1. Koła wykonał dla nas hungrydevil. Masa robota z baterią wynosi 69 gramów. Elektronika. Zdecydowaliśmy się na mikrokontroler STM32F103C8T6. Silniki sterowane są układem TB6612. Zastosowane czujniki linii to KTIR0711. Czujników na chwilę obecną jest 9. Zastosowaliśmy moduł bluetooth HC-05. Zastosowanie modułu znacznie ułatwiło strojenie robota. Ponadto stan każdego czujnika jest odzwierciedlony diodą LED. Robot zasilany jest pakietem Li-pol o pojemności 150mAh. Część logiczna robota zasilana jest napięciem 3.3V. Program. Algorytm robota jest napisany w języku C. Zastosowano regulator PD. Dzięki modułowi BT wszystkie nastawy regulatora mogą być ustawiane bez ponownego programowania robota. Ponadto, program pozwala na np. zdalne sterowanie robota po połączeniu z komputerem. Do zażądania robotem napisaliśmy 2 aplikacje – na telefony z systemem android, aplikacja pozwala na wystartowanie robota, a także na jego zatrzymanie. Z Kolei aplikacja na PC oprócz podstawowej funkcjonalności pozwala na dobieranie nastaw robota. Ponadto można za jej pomocą rysować wykresy uchybu i pochodnej z uchybu. Bolt ma brata bliźniaka, o nazwie Bez Nazwy. Jest on nieco szybszy od Bolta (bo czerwony). Osiągnięcia i plany na przyszłość. - 2 miejsce na Konkursie robotów SEP Gdańsk 2015 - 4 miejsce na SUMO Challenge 2015 W robocie planujemy jeszcze bardziej poprawić jakość sterowania, oraz rozważamy wykonanie węższej listwy czujników z czujnikiem odległości, aby móc startować w kategorii LF Enhanced. Film z przejazdu:
  15. 7 punktów
    Idąc za ciosem, tym razem chciałem przedstawić (najprawdopodobniej) pierwszego na tym forum robota klasy Ketchup House. W pracach nad jego stworzeniem brało udział 5 członków Koła Naukowego Robotyków. Nazwa Nazwa Pomidor wydaje się być dość zrozumiała z uwagi na nazwę konkurencji w której startuje, jednak numeracja już niekoniecznie Otóż bezpośrednim protoplastą tego robota jest robot Pomidor (1). Robot miał parę błędów konstrukcyjnych, które powodowały, że nie spisywał się najlepiej. W związku z tym podjęliśmy decyzję o zrobieniu dużo bardziej zaawansowanego robota – Pomidora 2. Jednak na jakiś czas przed zawodami stwierdziliśmy, że nie zdążymy wykonać go w wymarzonej przez nas formie, więc powstał robot będący hybrydą tych dwóch podejść – Pomidor 1.5. Konstrukcja okazała się na tyle udana, że na jej podstawie powstała kolejna generacja robota – Pomidor 1.6 (o której będzie zapewne w kolejnym poście). Zawody Ketchup House Ponieważ jest to dość egzotyczna kategoria (przynajmniej w Polsce), pozwolę sobie ją najpierw krótko opisać. Moim zdaniem, Ketchup House jest zdecydowanie najbardziej nieprzewidywalną i widowiskową konkurencją odbywającą się na zawodach konstruktorskich. W każdej, trwającej 3 minuty rozgrywce udział biorą 2 roboty. Polem ich zmagań jest biała, kwadratowa plansza o wymiarach min. 1,8x1,8m. Na planszy znajduje się 10 czarnych linii (5 poziomych i 5 pionowych) o szerokości 12mm, tworząc kwadrat o wymiarach 1,2x1,2m, podzielony na 16 mniejszych kwadratów o wymiarach 0,3x0,3m. Na skrzyżowaniach umieszczane są puszki z tytułowym keczupem. Są to typowe stalowe puszki o średnicy 53 mm, wysokości 74 mm i masie ok. 163 g. W każdej, trwającej 3 minuty potyczce biorą udział 2 roboty. Ich zadaniem jest przemieszczenie puszek na swoją linię „domową”. Na początku rozgrywki na planszy znajduje się 5 puszek. 2 z nich, zaznaczone na zielono, znajdują się w ustalonych pozycjach (skrzyżowania C2 oraz C4). Położenie 3 pozostałych puszek jest losowane tuż przed rozpoczęciem pojedynku. Aby zrównoważyć szanse robotów na zwycięstwo, każda z dolosowywanych puszek musi się znaleźć na innej z linii B, C, D. Na początku pojedynku roboty są umieszczane w pozycjach A3 oraz E3. Na znak sędziego roboty są uruchamiane. Od tej pory, aż do zakończenia pojedynku nie ma możliwości ingerencji w ich działanie. Jeżeli podczas rozgrywki robot poruszy jedną z puszek w wylosowanej pozycji, to na jej miejsce dostawiana jest kolejna. Dostawienie następuje po przejechaniu przez robota do następnego skrzyżowania. W trakcie jednego pojedynku na planszy może się pojawić łącznie do 12 puszek. Istnieje zupełna dowolność w sposobie przemieszczania i odstawiania puszek. Nie ma także ograniczeń co do sposobu poruszania się po planszy – roboty mogą poruszać się po wyznaczonych liniach, ale nie muszą. Przypadkowe zderzenia na ogół nie są karane, jednak niezgodne z zasadami jest zamierzone „dążenie do zderzenia” (np. wypychanie poza planszę). Roboty powinny wykrywać i omijać przeciwnika. Po upływie 3 minut następuje zakończenie potyczki. Roboty (jeżeli zachodzi taka potrzeba) są zatrzymywane. Za każdą puszkę dotykającą linii bazowej przyznawany jest 1 punkt. (Na rysunku poniżej przykładowa sytuacja na koniec pojedynku, zakończona wynikiem 5-4 na korzyść robota 2 (niebieskiego)). Mechanika Po tym dość przydługim wstępie, teraz parę słów o samej konstrukcji. Bazę robota stanowią dwie płyty laminatu szklano-epoksydowego. Obie płytki stanowią dwojaką rolę - po pierwsze są to bazowe komponenty, do których montowane są wszystkie pozostałe części, po drugie zaś - rozmieszczone są na nich wszystkie połączenia elektryczne. Obie płyty mają kształt prostokąta o wymiarach 200x190 mm, w którym wycięto V-kształtne wycięcie. Płyty są ze sobą skręcone za pomocą mosiężnych dystansów. Układ napędowy stanowią dwa silniki POLOLU z przekładnią 298:1. Wcześniej stosowaliśmy silniki o dużo mniejszym przełożeniu, jednak podczas naszych pierwszych zawodów okazało się, że jazda ze zbyt dużą prędkością jest nieopłacalna – podczas zderzeń sędzia zawsze uznawał, że to nasza wina, gdyż jechaliśmy z dużo wyższą prędkością (poza tym zastosowanie tak dużego przełożenia pozwoliło nam na uzyskanie większej dokładności enkoderów). Koła podporowe (Kastora) oraz koła napędowe także pochodzą od POLOLU – zostały wybrane głównie ze względu na odpowiedni rozmiar. Do unieruchamiania puszki wykorzystujemy ramkę napędzaną serwomechanizmem. Aby mieć możliwość dokładnego sterowania oraz monitoringu siły, zdecydowaliśmy się na Dynamixela AX-12A (duży wpływ na to miał także fakt, że akurat taki posiadaliśmy w schedzie po starszym projekcie ) Na zawodach zaobserwowaliśmy, że ze względu na wystające kółka czasami robotowi zdarza się zakleszczyć (np. o puszkę) aby uniknąć takich sytuacji wydrukowaliśmy osłonę okalającą całego robota. Elektronika Schemat ideowy całego układu elektronicznego można zobaczyć na rysunku poniżej: Mózgiem robota jest STM32F100RB, będący częścią zestawu STM32 Discovery VL. Zdecydowaliśmy się na takie rozwiązanie, aby móc podczas zawodów zmieniać szybko algorytm pomiędzy potyczkami i mieć możliwość jego szybkiego wymienienia w razie awarii. Jak można zaobserwować na rysunku robot jest wyposażony w dużą ilość czujników. Zdecydowanie najważniejszymi z punktu widzenia algorytmu sterowania są czujniki odbiciowe. Jest ich aż 17 (na dolnej płytce) ich rozmieszczenie można zaobserwować na rys. poniżej. Aby móc dopasowywać się do różnych plansz, układ wyposażono w komparatory oraz potencjometr, które pozwalają na ustawienie poziomu, od którego wykrywana jest czerń. KTiRy można przyporządkować do 3 grup. Czujniki oznaczone numerami 4-11, znajdujące się w przedniej części robota, są wykorzystywane w algorytmie jako źródło danych regulatora sterującego jazdą po prostych, a także (w mniejszym stopniu) do wspomagania obrotu. Czujniki w przednich rogach płytki (odpowiednio 11 i 12 oraz 13 i 14) były wykorzystywane przy dowożeniu puszek - do dokładnego pozycjonowania puszek na linii oraz jako czujniki awaryjne podczas jazdy po prostej. Transoptory po bokach (15, 16 i 17 oraz 18, 19 i 20) umożliwiają wykrycie dojazdu do skrzyżowania oraz są głównymi sensorami wykorzystywanymi w algorytmie obrotu. W toku testowania okazało się, że bardzo przydatne byłyby dodatkowe czujniki, które umożliwiłyby jazdę po linii do tyłu. Aby nie wytrawiać całej płytki od nowa, wykonano dodatkową tylną płytkę, na której znajdują się 3 czujniki (o numerach 1-3) Kolejnymi ważnymi czujnikami były enkodery. Na początku stosowaliśmy enkodery optoelektryczne, które do poprawnego działania wymagały zastosowania komparatorów oraz przejścia żmudnego procesu kalibracji (dla każdego z KTiRów z osobna dobieraliśmy nastawy potencjometru). Jednak gdy tylko pojawiły się enkodery magnetyczne dla silników POLOLU, nasze problemy odeszły do lamusa. (Dla porównania – sygnał z enkoderów optoelektrycznych oraz z magnetycznych) Poza tym stosowaliśmy czujniki odległości – do wykrywania puszki oraz do wykrywania przeciwników na planszy. Aby uniknąć cross-talku do jednego zadania wykorzystaliśmy analogowe czujniki SHARP (4-30) a do drugiego czujniki ultradźwiękowe. Aby ustawić odpowiedni kąt czujników ultradźwiękowych – tak, aby wykrywały jedynie przeciwnika, a nie puszkę, zaprojektowaliśmy specjalne mocowanie, umożliwiające modyfikację ich kąta nachylenia. Dla ciekawskich, poniżej są schematy: Na koniec, tradycyjnie, krótki filmik pokazujący działanie robota: [ Dodano: 28-03-2016, 22:01 ] Nie chcąc przedłużać i tak przydługiego już posta, o algorytmie będzie nieco więcej przy okazji opisu robota Pomidor 1.6.
  16. 6 punktów
    Witam! Na wstępie chciałbym podziękować użytkownikowi Hudyvolt, który zaraził mnie zamiłowaniem do robotyki oraz "za rękę" przeprowadził przez budowę pierwszej konstrukcji - Dziękuję! Chciałbym Wam przedstawić Pikę - mojego trzeciego i zarazem najmłodszego robota kategorii LF standard. Jest to udoskonalona wersja mojego poprzedniego flagowca - Dzidy, z którą udało mi się odnieść pierwsze zwycięstwo na zawodach. Konstrukcja mechaniczna Na budowę robota składają się standardowo 2 płytki PCB (homemade) - płyta główna stanowiąca jednocześnie podwozie robota oraz listewka z czujnikami. Spójność robota zapewnia pojedyncza listewka z włókna węglowego. Aluminiowe felgi zostały wykonane przeze mnie w technologii WEDM, opony natomiast zostały odlane z poliuretanu 30'. Jako ślizgacz zapobiegający unoszeniu się przodu robota podczas nagłych przyspieszeń zastosowałem kondensator ceramiczny - znakomita odporność na ścieranie! Z kolei przód opiera się na 2 spiłowanych koralikach, które znalazłem gdzieś w domu. Napęd 2x Silnik Pololu HP 10:1 - spisują się rewelacyjnie. Elektronika Za realizację programu odpowiada uC ATmega128, do której za pośrednictwem komparatorów analogowych podłączonych jest 14 czujników KTIR. Stan każdego z czujników wyświetlany jest na dedykowanej do tego diodzie LED. Pozwala mi to na błyskawiczną diagnozę poprawności odczytów - kilka razy uratowało mnie to przed żmudnym poszukiwaniem przyczyny dziwnego zachowania robota. Zdarzało się, że czujniki ulegały delikatnemu uszkodzeniu, mianowicie podawały fałszywy stan jedynie w przypadku delikatnego uderzenia co powodowało zamruganie diody wskazującej na wadliwy czujnik. Sterowanie silnikami odbywa się przy pomocy pojedynczego, dwukanałowego mostka H - Toshiba TB6612FNG. Na pokładzie znajduje się również moduł Bluetooh HC-05, który komunikuje się z uC poprzez interfejs UART. Do wysyłania i odbierania danych używam prostego a zarazem sprytnego terminala na androida - "Bluetooth spp pro". Zasilanie Energię, zależnie od charakteru trasy, dostarczają pakiety Li-Pol 7.4V firmy Dualsky o pojemnościach: 220mAh, 300mAh oraz 550mAh. Najczęściej stosuję akumulator o pojemności 300mAh - mam wrażenie, że robot jeździ na nim nieco szybciej, taki złoty środek pomiędzy masą a wydajnością. Stan naładowania pakietu jest ciągle wyświetlany na 3 diodach LED. Lekkiej modyfikacji poddałem również gniazdo zasilania w robocie - wiszące na oryginalnych przewodach często powodowało mi zwarcia przy samej PCB - przewody od ciągłych zmian pakietów ulegały przełamaniu. Wykorzystałem fabryczne gniazdo, które po delikatnym przycięciu wkleiłem na 2 delikatnie odchudzone goldpiny. Z tym rozwiązaniem nie miałem jeszcze żadnych problemów. Do zasilania części cyfrowej Piki zastosowałem tradycyjny stabilizator 5V, który przy tej ilości diod wyraźnie się grzeje, lecz jeszcze w granicach rozsądku Program Algorytm napisany został w języku C. Opiera się na regulatorze PD z kilkoma pomniejszymi modyfikacjami. Nowa regulacja obliczana jest z interwałami ok. 8ms. Do wprowadzania nastaw, jak już wcześniej wspominałem służy moduł Bluetooth - szalenie wygodne rozwiązanie. Osiągnięcia -I miejsce na zawodach CYBERBOT 2015 w kategorii LineFollower Standard -I miejsce na zawodach ROBO~motion 2015 w kategorii LineFollower Standard (Vmax= 2.70m/s, Vśr = 1.90 m/s) -I miejsce na zawodach Copernicus Robots Tournament 2015 w kategorii Linefollower -I miejsce na zawodach "Opolski Festiwal Robotów" w kategorii Balluf LineFollower -I miejsce na zawodach "Trójmiejski Turniej Robotów 2015" w kategorii Linefollower Standard -IV miejsce w turnieju ROBOXY 2015 w kategorii LineFollower
  17. 6 punktów
    Witam, przedstawiam autonomicznego robota balansującego. Robot balansujący na Atmega 1284P 20MHz. Obsługuje komunikację oraz zmianę wsadu za pomocą bluetooth. Ponadto istnieje możliwość sterowania robotem za pomocą pilota IR, oraz zmiany nastawów regulatorów. Posiada system autonomicznej jazdy z wykorzystaniem 3 sensorów ultradźwiękowych. Delikatne ruchy robota w stanie spoczynku spowodowane są dużymi luzami w przekładniach silników. Robot radzi sobie bez problemów ze średniej wielkości nachyleniami podłoża. Sterowanie odbywa się poprzez aplikację na system android, która to wyświetla także podstawowe informacje o robocie (napięcie baterii, wielkość całki w regulatorze pochylenia itp). Tryb autonomicznej jazdy opiera się o trzy ultradźwiękowe czujniki odległości. W oparciu o ich wskazania, robot samoistnie podejmuje decyzje co do dalszej drogi. Jest to ostateczna wersja robota która posiada także prócz trybu autonomicznego, tryb zdalnego sterowania na odległość do 100 metrów. Zaimplementowany moduł auto diagnozy potrafi wykryć 32 ostrzeżenia i błędy, np od niskiego napięcia 12v 5v, po jego niestabilność, uślizg kół, luzy na piastach, opory toczenia i przekładni... itp.... itd... Uruchomienie poszczególnych funkcji robota odbywa się poprzez komendy terminala uart, lub wygodniej pilot ir. Wszystkie parametry robota wyświetlane są na 5 pulpitach 4 wierszowego wyświetlacza lub uproszczone w dedykowanej aplikacji na system android. __________ Komentarz dodany przez: Treker Witam na forum, następnym razem proszę pamiętać o zdjęciu w formie załącznika, które widoczne będzie później w katalogu robotów oraz na stronie głównej. W tym przypadku już poprawiłem
  18. 6 punktów
    W tym tygodniu mam dużo pracy i jeszcze nie udało mi się usiąść do myszy, ale ostatnio zdefiniowałem sobie problem przyspieszenia i dzisiaj zupełnie przypadkiem zapaliła mi się lampka w głowie: przyczepność i wynikający stąd poślizg to sprawa wtórna. To co istotne to II zasada dynamiki: F=m*a Czyli możliwości przyspieszania myszy zależą głównie od jej bezwładności (masy) i siły, czyli momentu silnika dzielonego przez promień koła. Żeby nie mielić na pusto wzorów, spróbujmy policzyć jaki moment powinien mieć silnik napędowy dla zadanego przyspieszenia, albo może lepiej z jakim przyspieszeniem mogę próbować rozpędzać mysz obecnym napędem. Moja mysz bez zasilania waży równiutko 100 g. Na razie jeżdżę z ciężkim pakietem 1600mAh o masie 102 g. Docelowo pakiet, powiedzmy 180mAh waży 20 g. Masa obecna to 202 g, docelowa120 g. Teraz siła. Silnik Pololu z przekładnią 10:1 ma moment 0,029 Nm. Średnica koła to 42 mm, stąd promień to 21 mm. Tak więc maksymalna siła na jednym kole przy pełnym wysterowaniu silnika to: F = M / r = 0,029 / 0,021 = 1,38 N Silniki są 2 więc mamy łączna siłę 2,76 N. Do tego dojdzie tarcie kulki podporowej, więc zaokrąglam siłę do 2,5 N. Teraz przyspieszenie dla obecnego i docelowego rozwiązania. a = F / m a1 = 2,5 / (9,81*0,202) = 1,26 m/s^2 a2 = 2,5 / (9,81*0,120) = 2,12 m/s^2 Gdybym zmienił przekładnię na 30:1 o momencie 0,059 Nm, to miałbym siłę na kole 2,8 N i łączną powiedzmy 5,4 N. Przyspieszenia to odpowiednio 2,73 m/s^2 oraz docelowo 4,59 m/s^2. Tutaj czuć ogień! Dla kompletu informacji warto podać jeszcze prędkości postępowe obu porównywanych napędów: P10:1 ma prędkość obrotową 3000 obr/min => 50 obr/s, więc prędkość liniowa to obrotowa razy obwód: 50 * 2 * Pi * 0,021 = 6,6 m/s P30:1 ma prędkość obrotową 1000 obr/min => 16,67 obr/s, więc prędkość liniowa to obrotowa razy obwód: 16,67 * 2 * Pi * 0,021 = 2,2 m/s Celem konkurencji jest najkrótsza eksploracja i najszybszy przejazd. Zakładając że eksploracja pozwala na jazdę komórka po komórce, więc robot musi rozpędzić się przez połowę komórki a w drugiej części hamować. Mając przyspieszenie i drogę można policzyć czas przejechania komórki dla obu napędów (10:1 i 30:1): t = sqrt( l / a) t10 = sqrt(0,18 / 2,12) = 0,29 s t30 = sqrt(0,18 / 4,59) = 0,20 s Tutaj widać że trzydziestka bije na głowę dziesiątkę. Szybkość przejazdu to trochę bardziej skomplikowana sprawa. Zróbmy to na jakimś przykładzie, tak aby przyjąć ilość odcinków o zadanej długości, np taki labirynt: ma 12 przejazdów po 1 komórce 3 po 2 komórki 4 po 3 5 po 4 2 po 5 1 po 11 komórek 1 po 12 komórek. Teraz trzeba wyliczyć jaki odcinek potrzebny jest do rozpędzenia się do maksymalnej prędkości. Wychodzę ze wzoru na czas rozpędzania do Vmax: t = v / a t10 = 6,6 / 2,12 = 3,11 s t30 = 2,2 / 4,59 = 0,47 s dochodzę do wzoru na drogę jaką pokona rozpędzając się do Vmax l = a * t^2 l10 = 2,12 * 3,11^2 = 20,5 m l30 = 4,59 * 0,47^2 = 1,01 m Już bez większego liczenia widać że napęd 10:1 aby się rozbujać potrzebuje 20 m i zupełnie nie nadaje się do tego typu robota. Napęd 30:1 rozpędzi się na maksa na drodze 6 komórek labiryntu i drugie 6 będzie hamował, więc w tym labiryncie tylko w jednym przejeździe przez chwilę osiągniemy maksymalną prędkość. To pokazuje że warto rozważyć nawet jeszcze wolniejszy napęd dający jeszcze większe przyspieszenie. W międzyczasie zrobiłem arkusz kalkulacyjny do przeliczenia 4 napędów: 10:1, 30:1, 50:1 i 100:1. Odcinki labiryntu podzieliłem na część w której robot się rozpedza i część z jaką jedzie z maksymalną prędkością. Policzyłem czasy pokonywania drogi przyspieszając, czas jazdy z maksymalną prędkością i łączny czas jazdy. Wyszło mi coś takiego: 10:1 = 6,59 + 0 = 6,59 s 30:1 = 4,6 + 0,06 = 4,66 s 50:1 = 2,77 + 4,01 = 6,77 s 100:1 = 0,73 + 18,97 = 19,7 s Wyniki oczywiście będą się zmieniały w zależności od masy i drogi labiryntu, ale dla zastałych warunków wyraźnie widać, który napęd jest optymalny.
  19. 6 punktów
    Cześć, Od jakiegoś czasu już się zbierałem do opisu konstrukcji. Hexapod, jak sugeruje nazwa, ma 6 nóg i chodzi . Powstał jako projekt 3-osobowego zespołu w ramach koła naukowego w ciągu ostatnich 4 miesięcy. Mechanika 12 stopni swobody, Hitec HS 645MG. Konstrukcja z blachy aluminiowej o grubości 3mm, elementy trzymające serwa z blachy aluminiowej 8mm. Od dołu podparcie na łożysku wkręconym w płytę korpusu. Masa konstrukcji 2100g. To chyba tyle. Całość konstrukcji wykonana przez nas na frezarce(dwuosiowej bez sterowania numerycznego i stołu obrotowego, więc łuki i fazy na ręcznym CNC ). Model 3D w Inventorze jest dość szczątkowy, takie minimum jakie bylo potrzebne do sprawdzenia czy to będzie działać. Żeby nie tracić czasu od razu przeszliśmy do fizycznego modelu 3D. Elektronika Całość układu sterowania opiera się o gotowe rozwiązania-na pokładzie jest Raspberry Pi i MiniMaestro. Układy komunikują się poprzez UART, z konwerterem poziomów po środku. Sterowanie W wielkim skrócie-robot rozwiązuje sobie równania różniczkowe, rzuca rozwiązania na kinematyke odwrotną, i tak w kółko. Serwa ustawiają się stosownie do wyliczonych pozycji. Informację o tym gdzie mają trafić wysyłamy przez UART. W tej chwili system sensoryczny sprowadza się do tego, że jest maszyna stanów, którą mogłby zarządzać sygnaly z czujników, tyle że czujników nie ma(jeszcze), jest za to bezprzewodowa klawiatura Robot może chodzic do przodu, do tyłu, i obracać się przez chodzenie jedną połową robota do przodu, drugą do tyłu. Zasilanie W robocie jest lipol 2S o pojemności 6000mAh. Do niego są 2 przetwornice na 5V. Jedna 5A do części logicznej Maestro i do Raspberry, druga na 9A na samo zasilanie serw. Podsumowanie Opis dość lakoniczny, bo skupiłem się na konkretach. Jeżeli będą jakieś pytania odpowiem. Robot w obecnym stanie pozostanie już niedługo, będzie trochę bardziej zaawansowany i mądrzejszy, ale o tym napiszę jak już taki będzie. Prace są w toku cały czas Zdjęcie robota: Filmik z chodzenia: Filmik z samego wiosłowania:
  20. 6 punktów
    Cześć wszystkim, Chciałbym przedstawić zrealizowany na Politechnice Śląskiej (w ramach trzech równoległych prac magisterskich) projekt grupowy. Jego celem było opracowanie stanowiska laboratoryjnego do badania systemów sterowania wielowirnikowych bezzałogowych obiektów latających. Docelowo systemów sterowania tolerujących uszkodzenia. Podział prac magisterskich: • zaprojektowanie i wykonanie platformy quadrocoptera o możliwości celowego wprowadzania wybranych uszkodzeń (moja część), • opracowanie aplikacji na urządzenie mobilne (tablet) umożliwiającej sterowanie platformą, zadawanie uszkodzeń oraz prowadzenie telemetrii, • wykorzystanie środowiska symulacyjnego (V-REP) do testowania zachowania platformy przy wprowadzanych uszkodzeniach oraz do testowania opracowanych algorytmów sterujących. W skrócie więc: platforma quadrocoptera wyposażona została w układy pozwalające na wprowadzanie trzech uszkodzeń (każde innego typu): uszkodzenie fragmentu śmigła, uszkodzenie sterownika silnika, utrata komunikacji. Wykorzystując tablet jesteśmy w stanie połączyć się z symulatorem quadrocoptera. Możemy sterować, wprowadzać uszkodzenia. Przy użyciu tego samego tabletu (bez konieczności modyfikacji aplikacji) łączymy się do rzeczywistej platformy, gdzie możemy zrobić dokładnie to samo plus dochodzi tutaj również telemetria. Po co wprowadzać uszkodzenia? W celu sprawdzenia jak zachowuje się obiekt pod ich wpływem. W trakcie przeprowadzania eksperymentów dane zapisywane są na zewnętrznym nośniku. Dane te mogą następnie zostać wykorzystane np. w Matlabie. Można na ich podstawie starać się opracować algorytmy, które będą tolerować uszkodzenia. Platforma quadrocoptera Quadrocopter został wykonany z użyciem zarówno gotowych jak i autorskich komponentów. Komponenty oznaczone jako dostępne są to układy, w które wyposażona jest większość platform multiwirnikowych. Wyjątkiem jest tutaj urządzenie mobilne, którego użycie nie byłoby możliwe bez opracowania własnych modułów. Ponieważ głównym celem pracy nie było opracowanie własnego kontrolera lotu, wykorzystano układ DJI Naza-M Lite (2). Do tego zaprojektowane zostały: moduł zasilający (4), moduł nawigacyjny (5) oraz moduł z czujnikami (6). Moduły te zaprojektowane zostały przy wykorzystaniu oprogramowania Altium Designer, a wyprodukowane dzięki uprzejmości gliwickiej firmy KONO, za co im serdecznie dziękuję. Moduł zasilający Jego zadaniem jest zasilanie modułu nawigacyjnego, modułu z czujnikami + 2 dodatkowe wyjścia. Wykorzystano tutaj dwie przetwornice ST1S10 które mogą mieć jedno wspólne, bądź dwa odrębne źródła zasilania. Uwzględnione zostało tutaj zabezpieczenie przed odwrotną polaryzacją zasilania. Istnieje również możliwość rozłączenia mas i zasilania (zworki). Napięcie wejściowe 10 - 20V i wyjściowe 5V. Moduł nawigacyjny Jest to brakujące ogniwo pomiędzy urządzeniem mobilnym a kontrolerem lotu. Wyposażony został w 32-bitowy mikrokontroler STM32F103 o maksymalnej częstotliwości taktowania 72 MHz. Na obwodzie znajduje się układ BTM-222, oraz wyprowadzone złącza UART dla modułu z czujnikami, oraz dodatkowe np. dla minikomputera. Telemetria (obecnie): stan naładowania akumulatora, orientacja platformy w przestrzeni (yaw, pitch, roll). Zapisywane dane na karcie SD: aktualny czas systemowy (uaktualniany przy nawiązywaniu połączenia z tabletem), komendy sterujące (z tabletu), orientacja platformy, stan naładowania akumulatora, stan poszczególnych uszkodzeń. Układ awaryjnego przejmowania kontroli: przy użyciu jednego z kanałów aparatury radiowej mamy możliwość przełączania użytkownika (np. gdy zawiesi się aplikacja tabletu, zerwana zostanie łączność Bluetooth). Funkcja ta została zrealizowana całkowicie w sposób sprzętowy, bez wykorzystania mikrokontrolera. Timelapse projektowania tego ukłądu: Moduł z czujnikami Układ ten wyposażony został w mikrokontroler STM32F407 o maksymalnej częstotliwości taktowania 168 MHz. Zaimplementowany został tutaj system operacyjny czasu rzeczywistego Free RTOS V8.2.1. Określanie orientacji platformy: realizowane na podstawie pracy doktorskiej pana S. O. Madgwicka. Aktualnie pracuje w konfiguracji czujnika IMU, tj. z wykorzystaniem akcelerometru i żyroskopu MPU6050. Na obwodzie znajduje się wyprowadzenie dla modułu GPS i kompasu (do dalszego rozwoju). Włączając do filtru dane z kompasu możliwe jest uzyskanie absolutnej wartości kąta yaw. Moduł jako kontroler lotu: obwód posiada również odpowiednie złącza sygnałów wejściowych i wyjściowych, dzięki czemu istnieje możliwość rozwoju algorytmów stabilizujących. Układ ten może zatem również pełnić rolę autopilota. Dodatkowe układy: zewnętrzna pamięć EEPROM, barometr, złącze dla czujnika ultradźwiękowego, podczerwonego, brzęczyka, diody RGB. Obecnie wykorzystywany jest jedynie ułamek możliwości tego obwodu. Timelapse projektowania tego ukłądu: Aplikacja mobilna Interfejs aplikacji mobilnej posiada trzy główne zakładki: zakładkę sterowania, zakładkę stacji naziemnej oraz zakładkę do zadawania uszkodzeń i telemetrii. Łączy się z modułem nawigacyjnym poprzez łączę Bluetooth. Aplikacja została napisana w języku Java z wykorzystaniem środowiska Eclipse dla systemu operacyjnego Android. Projektowana była na urządzenia o przekątnej ekranu powyżej 5 cali. Minimalną wersją Androida, którą obsługuje aplikacja, jest 4.2. Zakładka sterowania: Jednym z założeń było opracowanie interfejsu sterującego podobnego do aparatury radiowej. Aplikacja wysyła ramki sterujące z częstotliwością 50 Hz, podobnie jak w przypadku aparatury. Dane te zawierają procentowe wypełnienie każdego z czterech kanałów (yaw, throttle, pitch, roll) i w module nawigacyjnym konwertowane są na odpowiednie sygnały PWM. Ramki sterujące wysyłane są z częstotliwością 50 Hz, podobnie jak ma to miejsce w przypadku aparatury radiowej. Problemem występującym w przypadku sterowania z poziomu tabletu jest brak fizycznego czucia drążków sterujących, co powoduje konieczność odwrócenia wzroku od platformy raz na jakiś czas w celu spojrzenia na tablet. Może to być niebezpieczne Zakładka stacji naziemnej: ma na celu wizualizacje wzajemnej odległości pomiędzy quadrocopterem, a pilotem. Zakładka zadawania uszkodzeń: oprócz wizualizacji danych na wykresach, posiada funkcje umożliwiające zadanie uszkodzenia. Aktywowanie jednej z trzech kontrolek spowoduje pojawienie się okna dialogowego na którym można wybrać czas, po którym zostanie zadane i/lub anulowane uszkodzenie. Stanowisko badawcze Jednym z problemów było opracowanie odpowiedniego stanowiska do testowania platformy. Wprowadzanie uszkodzeń w powietrzu mogłoby się udać, ale byłyby to próby jednorazowe Wykorzystano imadło przegubowe, którego szczęki zastąpiono wydrukowanym na drukarce 3D elementem. Jest on przykręcany do dolnej płyty quadrocoptera. Stanowisko to posiada 3 stopnie swobody, umożliwiając obrót pitch i roll w zakresach ok. -40° ÷ 40° oraz nieograniczony obrót yaw. Możliwe jest również wykorzystanie zasilacza laboratoryjnego do prowadzenia testów/eksperymentów. Stanwoisko przedstawione zostało w filmach na końcu. To chyba tyle. Zamieszczony opis, zdjęcia i filmy nie oddają ilości czasu spędzonego przy tym projekcie, ani liczby wykonanych prototypów. Na PCB znalazłem tylko 2 niewielkie błędy, które udało się w prosty sposób naprawić. Wisienką na torcie z mojej perspektywy byłoby opracowanie własnego kontrolera lotu i pozbycie się gotowego - ale to może innym razem Jeżeli kogoś interesują szczegóły wprowadzania uszkodzeń, sterowania, protokołu komunikacyjnego, wyniki badań itp. to dołączam do załączników moją pracę magisterską (schematy na końcu). Autorzy projektu: Łukasz Szustak (symulator), Michał Stobiński (aplikacja mobilna), Grzegorz Wójcik (platforma quadrocoptera). PDM_Grzegorz_Wojcik.pdf
  21. 6 punktów
  22. 6 punktów
    Antiga ma już swoje lata i dziesiątki stoczonych walk za sobą, więc czas wysłać ją na emeryturę. Od dłuższego czasu pracuję nad nowym robotem minisumo. Tym razem chciałem wykonać spory skok technologiczny w stosunku do tego co jest znane w tej kategorii. To co wyróżnia nową konstrukcję to zastosowanie silników bezszczotkowych z wirującymi magnesami. Pomysł wpadł mi do głowy już dawno, a do rozpoczęcia prac zmotywował mnie brak informacji w internecie na temat takich konstrukcji (chyba jestem pionierem) oraz konieczność napisania pracy magisterskiej (dwie pieczenie na jednym ogniu). Obronę miałem na początku lipca i od tamtej pory nic przy robocie nie robiłem, dlatego zakładam ten temat. Mam nadzieję, że wasza konstruktywna krytyka zmotywuje mnie do dalszego działania. To krótko o robocie: NAPĘD Tak jak wspomniałem we wstępie, napęd stanowią dwa silniki BLDC. Wybrałem modelarskie outrunnery NTM Prop Drive Series 28-30A 750kv. Dobierając silniki kierowałem się przede wszystkim rozmiarem oraz współczynnikiem Kv. Outrunnery (zewnętrzny wirnik), ponieważ oponę mogę odlać bezpośrednio na wirniku dla oszczędności miejsca. ENKODERY Do wysterowania silnika bezszczotkowego niezbędna jest informacja o położeniu wirnika. Do tego celu zastosowałem enkodery magnetyczne AMS AS5040. PÓŁ-MOSTKI Tutaj zastosowałem scalone układy TI DRV8332. Co prawda za ich pomocą nie jestem w stanie wykrzesać pełni możliwości silników, bo podają tylko 8A, ale zależało mi na prostocie. CZUJNIKI Standard: 8x SHARP340K i 4x KTIR0711S STEROWANIE 3 mikrokontrolery XMEGA. 1x XMEGA128A3U i 2x XMEGA32E5. XEMGA128A3U - układ główny: odczyt czujników, realizacja algorytmu walki. XMEGI32E5 - po jednej na silnik: odczyt z enkodera, generowanie PWM na półmostki, odbieranie komend z głównego uC po USART Aż 3 XMEGI, bo nie wiedziałem czy jedna podoła obsłudze dwóch silników BLDC oraz czy ja będę w stanie napisać taki kod Teraz wiem, że jedna XMEGA da radę i ja chyba też Na pokładzie jest też moduł BT HC-05 do zmiany parametrów, sterowania itd. Schemat blokowy co i jak: KONSTRUKCJA Elektronikę musiałem rozmieścić na dwóch PCB (pomijając małe PCB z KTIRami), podział na schemacie powyżej. Duża moc silników, duży pobór prądu, krótki czas działania na baterii. W podwozu jest otwór z klapką zatrzaskową do szybkiej wymiany. Lipol powinien wytrzymać ok. od pół do pełnej minuty ostrego przepychania. Tylna oś z silnikami i enkoderami jest jednym podzespołem. Na początku planowałem aby pomiędzy przodem a tyłem był jeden stopień swobody (takie zawieszenie), ale jedyne łożyska, które jeszcze zmieściłem w robocie były za słabe i ulegało uszkodzeniu przy samym manipulowaniu robotem nie mówiąc już o walce. PCB projektowane w Altium Designer 15, konstrukcja w Autodesk Inventor Pro 2015 Na chwilę obecną projekt robota to bardziej PROOF OF CONCEPT, niż robot na zawody. Chciałem przede wszystkim sprawdzić czy podołam z wysterowaniem silników BLDC i jak to się będzie sprawdzać w praktyce. Robot jeździ, jednak tylko jako zdalnie sterowany z BT. Nie wiem jeszcze dlaczego, ale nawet najprostsze algorytmy walki autonomicznej nie działają - robot wariuje, na pewno nie robi tego co zakładałem. Podejrzewam, że namieszałem coś z komunikacją USART pomiędzy XMEGAmi. Zastosowana metoda wysterowania silników to też najprostsza z możliwych, ale miło się zaskoczyłem i silniki działają bardzo dobrze. PLANY - zmiana półmostków - osobne mosfety ze sterownikiem scalonym - obecne układy pod względem mocy są wystarczające, ale ich budowa utrudnia zastosowanie lepszych metod sterowania silnikami - zmiana metody sterowania silnikami - obecnie jest totalne minimum, brak jakiegokolwiek sprzężenia zwrotnego (no poza pomiarem położenia wirnika, który jest niezbędny) - jeden mikrokontroler - może w końcu nauczę się programować STMy - jedno PCB - dzięki temu robot będzie niższy - złącze baterii - teraz jest standard na przewodzie i pomimo zastosowania klapki wymiana jest zbyt trudna i długa
  23. 6 punktów
    Katka to czworonożny robot kroczący z nogami w układzie ssaka. Jest to efekt moich dość wczesnych eksperymentów z budowaniem czworonożnego kroczącego robota o jak najniższej cenie całkowitej. Dzięki zastosowaniu ssaczej konfiguracji nóg możliwe było obliczenie kinematyki odwrotnej dla każdej z nóg pomimo tego, że mają one tylko po dwa serwomechanizmy -- po prostu współrzędne nóg ograniczone są do pionowej, dwuwymiarowej płaszczyzny. Pozwala to jednak na całkiem przyzwoitą kontrolę, a w szczególności, na przemieszczanie środka ciężkości i przesuwanie stóp w liniach prostych po ziemi, dzięki czemu możliwy jest statycznie stabilny chód bez poślizgów. Niestety, są też ograniczenia. Stopy mogą się przesuwać po ziemi jedynie w przód i w tył, zatem niemożliwe jest porządne skręcanie. Owszem, możemy nogami po jednej stronie robota iść szybciej, a po drugiej wolniej albo nawet w przeciwnym kierunku, na zasadzie skręcania czołgu na gąsienicach, ale wiąże się to z dość dużymi poślizgami stóp i w związku z tym sporą nieprzewidywalnością. W sytuacji prawdopodobnie mogłoby pomóc dodatkowe serwo w pasie, pozwalające na skęt tułowia, ale to wymagałoby całkowitej przebudowy robota, więc nie próbowałem tego. Robot jako mózg wykorzystuje Arduino Pro Mini, początkowo umieszczone na domowej roboty płytce z dodanym zasilaniem dla serw, później przełożone na płytkę drukowaną od mojego innego robota. Zasilanie zapewnia pojedyncze ogniwo LiPo z power banku USB, uzupełnione o dużo za duży kondensator elektrolityczny oraz moduł boost zwiększający napięcie do 5V. Elementy wykonawcze to cztery mikroserwa SG90, najtańsze jakie tylko istnieją. Odbiornik podczerwieni pozwala na zmianę trybów działania robota za pomocą pilota TV. Kilka listewek i dźwignie dołączone do serw posłużyły do zbudowania ciała i nóg robota. Elektronika i bateria są przypięte gumką recepturką. Ustawienie nóg nie jest optymalne pod względem ich zasięgu. Tylne nogi musiały zostać obrócone "tyłem naprzód" w stosunku do pierwotnego projektu (oraz w stosunku do tego, jak zazwyczaj wyglądają ssaki), aby uniknąć plątania się z przednimi nogami. Ten układ można jeszcze znacząco poprawić, niestety wymagałoby to przebudowania i przeprogramowania robota, na co nie mam raczej wystarczającej motywacji. Robot ten przez jakiś czas występował "w owczej skórze", wypychając pluszową zabawkę - owcę. Niestety, nie do końca dopasowane wymiary zabawki oraz ślizganie się owiniętych materiałem nóg znacznie pogarszały wydajność chodu, więc zrezygnowałem z tego rozwiązania. Filmik z chodzącym robotem:
  24. 6 punktów
    Witam! Chciałbym przedstawić swoje „dzieło” - robota klasy linefollower. W końcu siadłem i opisałem go. Bocik zwie się Typhoon, pomimo że nie rozwija jakichś zabójczych prędkości, choć na początku wydawało mi się, że jeździ w miarę szybko . Głównym założeniem było to, że robot miał działać i wykonywać swoje zadanie w miarę możliwości bezawaryjnie – udało się to spełnić Innym założeniem było to, aby wystąpić z robotem na zawodach Roboxy 2013. Od pomysłu do pierwszej jazdy minęło trochę ponad 20 dni. Uważam ten czas za błyskawiczny, jak na moje standardy Konstrukcje, które mnie zainspirowały przy tworzeniu to: Tsubame użytkownika Sabre Silver Shaft użytkownika Naelektryzowany Konstrukcja Dość standardowa, składa się z dwóch płytek – płytki głównej i płytki z czujnikami. Obie dwustronne, wykonane metodą termotransferu. Przód robota opiera się na dwóch małych kawałkach drewna przyklejonych do płytki z czujnikami. Robot jest napędzany dwoma silnikami Pololu HP z przekładnią 30:1, które są przymocowane za pomocą mocowań samoróbek, wykonanych z laminatu. Koła zostały wytoczone z ternamidu, oponki zostały wykonane z silikonu formierskiego. Koła z oponami mają średnicę 30mm, a ich szerokość to 18mm Wymiary: Długość - 11cm Szerokość - 10cm Masa z akumulatorem - 140g Masa bez akumulatora - 100g Elektronika Większość elementów jest montowana powierzchniowo. Mózgiem robota jest mikrokontroler ATmega16A, taktowany zewnętrznym kwarcem 16MHz. Posiada 8 czujników linii Ktir0711s oraz 1 czujnik przeszkód Sharp GP2Y0D810Z0F, o zasięgu 10cm. Silniki są sterowane za pomocą mostka H tb6612fng. Do komunikacji z użytkownikiem robot posiada 2 przyciski i 4 diody LED. Posiada również odbiornik podczerwieni TSOP, który dodałem podczas projektowania jako „może się przyda”, jednak nie wykorzystałem go do tej pory. Zasilanie Robot wozi na sobie akumulator Li-Pol Redox 500mAh 7,4V. Starcza on na dość długo. Silniki są zasilane z przetwornicy ST1S10PHR, ustawionej na 6V, zaś część logiczna zasilana jest ze stabilizatora 5V. Program Został napisany w języku C. Jest to prosty algorytm PD. Jeździ w miarę sensownie do wypełnienia PWM 180/255. Zdjęcia: Czujniki Mocowanie silników Całość Filmiki: Omijanie przeszkód. Stary algorytm, trochę wypada na zakrętach. Sukcesy? Typhoon na swoich debiutanckich zawodach – Roboxy 2013 zajął 3 miejsce. Należy tu jednak wspomnieć, że wszystkich robotów było 4 Nie mniej jednak i tak byłem zadowolony, że nie zajął ostatniego miejsca Podsumowując Robot sprawił mi wiele radości z projektowania, składania, programowania. Trochę się przy nim nauczyłem.
  25. 6 punktów
    pKubik (pico-Kubik) to malutki (mieszczący się w dłoni) czworonożny robot z trzema stopniami swobody na nogę. Celem było stworzenie czegoś, co będzie tanie i proste do wykonania, a jednocześnie będzie więcej niż tylko zabawką i pozwoli na eksperymentowanie z poważnymi algorytmami. Dzięki małym wymiarom robot swobodnie mieści się na biurku i nie jest potrzebna specjalna przestrzeń do testów. Niewielka waga całości daje relatywnie dużą wytrzymałość na upadek inne wypadki. Do tego można go z łatwością zabrać ze sobą na zajęcia czy zawody. Użycie standardowych, łatwo dostępnych i popularnych części pozwoliło znacznie ograniczyć cenę (całość można zbudować za mniej niż 200 zł przy zamawianiu części z Chin) oraz uniknąć problemów z naprawianiem uszkodzeń i szukaniem części zamiennych. W wersji podstawowej robot jest kontrolowany przez klon Arduino -- może wówczas poruszać się po płaskim terenie sterowany pilotem od telewizora. Jednak prawdziwa zabawa zaczyna się, kiedy podłączymy przez port szeregowy, SPI lub I²C coś bardziej zaawansowanego, jak na przykład mały komputer z Linuksem (użyłem VoCore), moduł Bluetooth czy WiFi (wówczas można sterować nim z komputera stacjonarnego), czy OpenMV (nadal czekam na swoją płytkę, żeby to wypróbować).
Tablica liderów jest ustawiona na Warszawa/GMT+02:00
×