Skocz do zawartości

Przeszukaj forum

Pokazywanie wyników dla tagów 'Freestyle'.

  • Szukaj wg tagów

    Wpisz tagi, oddzielając przecinkami.
  • Szukaj wg autora

Typ zawartości


Kategorie forum

  • Elektronika i programowanie
    • Elektronika
    • Arduino, ESP
    • Mikrokontrolery
    • Raspberry Pi
    • Inne komputery jednopłytkowe
    • Układy programowalne
    • Programowanie
    • Zasilanie
  • Artykuły, projekty, DIY
    • Artykuły redakcji (blog)
    • Artykuły użytkowników
    • Projekty - DIY
    • Projekty - nasze roboty
    • Wiadomości
  • Pozostałe
    • Oprogramowanie CAD
    • Druk 3D
    • Napędy
    • Mechanika
    • Zawody/Konkursy/Wydarzenia
    • Sprzedam/Kupię/Zamienię/Praca
    • Inne
  • Ogólne
    • Ogłoszenia organizacyjne
    • Dyskusje o FORBOT.pl
    • Na luzie
    • Kosz

Szukaj wyników w...

Znajdź wyniki, które zawierają...


Data utworzenia

  • Rozpocznij

    Koniec


Ostatnia aktualizacja

  • Rozpocznij

    Koniec


Filtruj po ilości...

Data dołączenia

  • Rozpocznij

    Koniec


Grupa


Znaleziono 121 wyników

  1. Witam, przedstawiam wam projekt, nad którym pracowałem przez ostatni rok. Jest to manipulator 5-osiowy zbudowany w oparciu o płytkę Arduino Uno. Mechanika Podstawę wykonałem ze sklejki oraz dwóch desek przykręconych wkrętami. Reszta ramienia jest zrobiona z plexi o grubości 3mm. Przy podstawie zamontowałem również trzy małe kółka dla stabilizacji. Serwa jakich użyłem to TowerPro MG946R oraz Redox S90. Elektronika Mózgiem robota jest płytka Arduino Uno z napisanym przeze mnie programem. Ramieniem steruje się za pomocą płytki z potencjometrami 1k, którą samodzielnie zaprojektowałem i wykonałem. W przyszłości planuję na pewno udoskonalić chwytak i być może dodać kolejne serwo, żeby się obracał. Zdjęcia: Filmik:
  2. Siemanko, chciałem Wam przedstawić projekt, który stworzyłem z czwórką moich przyjaciół. A zarazem chciałem zadać pytanie czy istnieje tak konstrukcyjnie wyglądający robot do układania kostki w Polsce? Jeśli tak, mógłby ktoś konkretnie nam wskazać link lub jakiekolwiek informacje na jego temat. Opis naszego projektu: Ekipa Matthew’a to grupa pięciu uczniów z Liceum Ogólnokształcącego w Kole, w której skład wchodzą Mateusz, Kacper, Kuba, Maciek i Jacek. Dokładnie rok temu, za zadanie postawili sobie zbudowanie robota. Miał on układać kostkę Rubika, a jego nazwa – Matthew – wzięła się od nazwy huraganu, ponieważ w zamyśle miał on być bardzo szybki. Czy faktycznie taki jest? Robot układa kostkę pomieszaną w losowy sposób w około 10-15 sekund, co zdecydowanie zadowala chłopaków, ponieważ jest to pierwszy w Polsce tak skonstruowany robot, a czas ten jest rekordem Wielkopolski, a może nawet Polski. W przyszłości wynik ma być jeszcze lepszy. Technicznie maszyna odbiega od innych robotów układających kostkę, takich jak te, zbudowane z klocków LEGO. Niektóre elementy są wydrukowane w szkolnej drukarce 3D, co oczywiście utrudniło zadanie, gdyż niektóre części musiały zostać zaprojektowane w programie 3DS Max. Każdy z chłopców miał przy realizacji projektu inne zadanie. Mateusz zajmował się projektowaniem obiektów w 3D oraz programowaniem. Kacper miał ubrać wszystkie silniki w konstrukcję robota. Jacek zaprojektował wygląd maszyny, Kuba zajmował się stroną i całą oprawą graficzną, a Maciek był w projekcie głównym programistą. Więcej dowiecie się na Naszym facebook'u Kilka zdjęć:
  3. CZarro1998

    GoldRider

    Witam wszystkich forbotowiczów Chciałbym wam zaprezentować robota GoldRider omijającego przeszkody. Jest to mój pierwszy post, ale nie pierwsza konstrukcja. Ten robot był zbudowany ok. 2 lata temu i był tak jakby "przerywnikiem" przy budowie inny większych projektów . Czas budowy to jakieś kilkanaście godzin(już nie pamiętam ). Konstrukcja mechaniczna Do budowy użyłem pudełko po starym Samsungu, jako ślizgacz obciętą piłeczkę pingpongową, koła od starej zabawki oraz magicznego kleju na gorąco . Jak widać nic mnie to nie kosztowało oprócz czasu, a elektronika to już inna sprawa. Elektronika Sercem tej zabaweczki jest ATmega8A-PU zaprogramowana w Arduino IDE. Robot wyposażony jest w ultradźwiękowy czujnik odległości HC-SR04 oraz inne elementy potrzebne do prawidłowej pracy urządzenia np. kondensatory. Za zasilanie odpowiada stabilizator 5V L7805CV, bateria 9V (tak wiem tragedia , ale i tak stoi na półce), kilp na baterię oraz przełącznik od starej lampka. Napędem są 2 serva PowerHD AR-3603HB praca ciągła. Można było jeszcze pobawić się w dodanie funkcji skanowania terenu, ale skupiałem się na innych projektach. Dzięki wszystkim za uwagę ! Na koniec mały spoiler nadchodzących opisów
  4. Witam wszystkich serdecznie Chciałbym przedstawić wielozadaniowego robota o nazwie KT-tronic. Pracowałem nad nim dość długo, ze względu na złożoną budowę. Robot ten może pracować w trzech trybach wybieranych przy pomocy odpowiednich przełączników. Te tryby to: • Line Following • Zdalne sterowanie • Autonomiczna jazda z omijaniem przeszkód Ten ostatni nie jest gotowy. Jest to jedynie plan na przyszłość. Konstrukcja mechaniczna Głównym materiałem, z którego została wykonana konstrukcja robota, jest polistyren wysoko udarowy HIPS. Materiał ten wybrałem ze względu na łatwość obróbki. Wszystkie części zostały zaprojektowane w programie SolidWorks, następnie każda z osobna wydrukowana i „przeprasowana” na kawałki polistyrenu przy pomocy żelazka. Należy jednak ograniczyć czas prasowania, ponieważ polistyren może się odkształcać pod wpływem temperatury. Tak gotowe elementy wycinałem zwykłym nożem do tapet i szlifowałem papierem ściernym. Napęd robota stanowią cztery silniki Pololu o przełożeniu 100:1, sterowane przy pomocy dwóch sterowników TB6612FNG. Do nich dołączone są koła o średnicy 80mm. Silniki zasilane są za pomocą akumulatora Li-Pol 11,1V o pojemności 900mAh. W robocie znajduje się 9 serwomechanizmów. Najmocniejsze dwa poruszają całymi rękoma. Ich moment wynosi 12kg*cm. Każda ręka złożona jest z czterech serw. Dziewiąte serwo porusza korpusem. Wszystkie serwomechanizmy otrzymują napięcie 6V, które zapewnia przetwornica step-down D24V22F6. Przetwornica zasilana jest tym samym pakietem Li-Pol co silniki. Całość waży 4,1kg. Wysokość robota to 42cm, a długość jednej ręki to 30cm. Elektronika Płytka PCB została wykonana w firmie Satland. Pracą robota steruje mikrokontroler ATmega2560. Wybrałem ten procesor głównie ze względu na ilość sprzętowych kanałów PWM. Zasilanie pochodzi z pakietu Li-Pol 7,4V, stabilizator liniowy stabilizuje napięcie do 5V. Zdecydowałem się na zastosowanie dwóch akumulatorów, głównie po to, by oddzielić zasilanie silników od zasilania procesora. Pozwoliło to zmniejszyć wpływ zakłóceń generowanych przez silniki. Na płycie dodatkowo znajdują się: • Mostki TB6612 • Złącze do programowania • Buzzer • Diody sygnalizujące poprawnie wykonane kolejnych części programu • Dzielniki napięcia. Przy pomocy wejść ADC mierzone jest napięcie z akumulatorów zasilających. Przy zbyt wysokim rozładowaniu robot przestanie pracować i buzzer zacznie piszczeć • Goldpiny do podłączenia czujników KTIR, wyświetlacza LCD, czujników HC-SR04 i odbiornika PS2 do komunikacji bezprzewodowej Tryby pracy: Line Following 5 transoptorów odbiciowych KTIR0711S znajduje się na płycie umieszczonej pod podwoziem robota. Czujniki znajdują się na wysokości ok. 1cm od podłogi. Jest to pewne utrudnienie podczas np. zdalnego sterowania, ponieważ robot ma trudności z pokonywaniem wyższych progów Zdalne sterowanie Do zdalnego sterowania wykorzystałem gamepad od PS2 z odbiornikiem. Dane przesyłane są do mikrokontrolera poprzez SPI. Maksymalny zasięg wynosi 8m. Omijanie przeszkód Robot będzie wykorzystywał dwa czujniki ultradźwiękowe HC-SR04. Jeden umieszczony zostanie na dole konstrukcji, a drugi na samej górze, być może przyczepiony do serwomechanizmu, żeby zwiększyć kąt wyszukiwania przeszkód. Poniżej przedstawiam zdjęcia poszczególnych elementów oraz etapy budowy Zdjęcie poniżej przedstawia projekt robota wykonany w programie SolidWorks Poniżej filmik, na którym robot wykonuje ruchy sekwencyjne. Polecam ściszyć głośność, ponieważ w kilku momentach odsuwam krzesło z tabletem nie chciałem, by kamera drgała przy chodzeniu, więc zastosowałem się do takiego sposobu Plany na przyszłość: • Pomalować robota, żeby zamaskować niedoskonałości i ślady łączenia części • Dokończyć trzeci tryb tj. omijanie przeszkód • Koniecznie muszę wzmocnić mocowanie korpusu z serwomechanizmem do podstawy. Robot zbyt mocno buja się na boki, czego serwo może po pewnym czasie nie wytrzymać
  5. Cześć! Chciałbym Wam przedstawić robota „Foto robotoid”, którego wykonałem na zamówienie artysty, Przemysława Jasielskiego . Robot ten powstał na wystawę „Aparat. Retrogresja poprzez postęp technologiczny”, w Sculpture Center Cleveland. Autor o wystawie: Artyści Przemysław Jasielski i Rainer Prohaska prezentują niecodzienne podejście do sztuki i technologii. W ich ujęciu krytyczna idea dlaczego i jak używać najnowszych technologii w sztuce jest zdecydowanie ważniejsza niż czysta fascynacja nowymi gadżetami technicznymi. Pytanie dlaczego powinniśmy dany projekt zrealizować jest o wiele ważniejsze niż to, jakimi środkami osiągamy cel. Rezultatem tej strategii są zawsze fizyczne obiekty dostępne dla widza w realnym świecie, tworzone w opozycji do finalności, produktywności i wydajności. Zawsze zawierają one sporą dawkę poczucia humoru. Jest to ciągłe eksperymentowanie i zabawa definicją obiektu rzeźbiarskiego w kontekście nauki i technologii. Założenia Robot ma mieć możliwość wykrywania zwiedzających galerię i robienia im zdjęć aparatem Nikon D200. Migawka aparatu ma być wyzwalana poprzez fizyczne naciśnięcie spustu. Ruch aparatu ma być możliwy w dwóch osiach Wykonywane zdjęcia mają być drukowane Robot ma mieć możliwie „surowy” wygląd – elektronika i przewody na wierzchu Zdjęcia nie mają być idealne - wręcz przeciwnie, wymagana jest pewna ich losowość i niedoskonałość (tylko pół twarzy w kadrze, zdjęcie rozmyte, nieostre itp.) Konstrukcja mechaniczna Konstrukcja nie mogła być zbyt kompaktowa, tak aby robot z daleka przyciągał wzrok. Dlatego też pionowa oś obrotu nie pokrywa się ze środkiem ciężkości najcięższego elementu urządzenia - aparatu. Wymusiło to konieczność starannego ułożyskowania osi obrotu. Oprócz tego, serwomechanizmy napędzają osi poprzez dodatkowe, zewnętrzne przekładnie zębate. Rozwiązanie to ma na celu zmniejszenie obciążeń działających na elementy serwomechanizmów, uzyskanie dodatkowego momentu i zmniejszenie prędkości obrotowej. Dodatkowo, fajnie wygląda Konsekwencją zastosowania dodatkowych przekładni była konieczność przerobienia serwomechanizmów, tak aby posiadały odpowiedni zakres ruchu. Oznaczało to usunięcie mechanicznej blokady i połączenie potencjometrów mierzących pozycję bezpośrednio z osiami obrotu. Był to najtrudniejszy element całej konstrukcji. Początkowo, chciałem pokrętła potencjometrów przykleić do osi przy użyciu kleju na gorąco, albo kleju do metalu. Niestety, nawet minimalna niewspółosiowość łączonych elementów powodowała, że takie połączenie szybko ulegało uszkodzeniu. Ostatecznie, zastosowałem coś w rodzaju sprzęgła - kawałek gumy wyciętej z dętki rowerowej, wklejony pomiędzy potencjometr i oś - działa bez zarzutu Elektronika Do wykrywania osób znajdujących się w pomieszczeniu zastosowałem czujnik Kinect v2. Docelowe pomieszczenie miało być pozbawione okien, więc nie było problemów niekorzystnym wpływem oświetlenia słonecznego. Do sterowania serwomechanizmami wykorzystuję płytkę DFrobot Romeo. Jest oparta na Arduino Leonardo, jednak posiada dodatkowe złącza, które znacznie ułatwiają podłączenie czujników czy serwomechanizmów. Ważną zaletą jest też możliwość dołączenia osobnego źródła zasilania dla serw. Do wyzwalania migawki użyłem dodatkowego wężyka spustowego, którego przycisk jest wciskany orczykiem serwomechanizmu. Rozwiązanie to było podyktowane głównie łatwiejszym montażem, w porównaniu do wciskania spustu bezpośrednio na aparacie. Oprogramowanie Główny program robota wykonuje się na laptopie, do którego podłączony jest Kinect, Romeo, drukarka i aparat. Program jest napisany w jeżyku C# i pozwala na konfigurację parametrów pracy robota, takich jak zakres ruchu serwomechanizmów, minimalne i maksymalne odstępy pomiędzy robieniem kolejnych zdjęć, prawdopodobieństwo sfotografowania określonych części ciała. W programie wyświetlane jest także ostatnio zrobione zdjęcie. Do odczytywania danych z Kinecta wykorzystuję oficjalne SDK, które jest rewelacyjne - byłem zaskoczony z jaką łatwością mogę pobierać potrzebne dane. Pozwala ono na odczytywanie współrzędnych 24 części ciała, z których program losuje sobie jedną, która będzie śledzona do momentu wykonania kolejnego zdjęcia. Na podstawie otrzymanych współrzędnych obliczane jest wymagane położenie serwomechanizmów, które jest następnie przesyłane do płytki Romeo. W następnej iteracji spróbowałbym odczytywać aktualne położenie serw z potencjometrów. Pozwoliłoby to na stabilniejsze działanie regulatora, który teraz tylko szacuje aktualne położenie na podstawie czasu jaki upłynął od zadania zmiany położenia. Najbardziej skomplikowane okazało się pobieranie zrobionych zdjęć z pamięci aparatu. Niestety nie jest możliwe robienie zdjęć, kiedy aparat pracuje w trybie pamięci masowej i jest widoczny jako zwykły dysk wymienny. Funkcjonalność taką umożliwia tryb PTP (Picture Transfer Protocol), który umożliwia zdalne kontrolowanie aparatu. Niestety, utrudnia to dostęp do pamięci aparatu z poziomu programu. SDK udostępniane przez Nikona zawiera przykłady, które nie działały dla wykorzystywanego modelu. Ostatecznie, wykorzystałem aplikację Smart Shooter 3, która zapisuje zrobione zdjęcia na dysku komputera, skąd już łatwo mogę je odczytać. Podsumowanie Robot został entuzjastycznie przyjęty zarówno przez jego pomysłodawcę jak i przez publiczność obecną na wystawie. Dla mnie był okazją aby w końcu zapoznać się z czujnikiem Kinect, którego łatwość obsługi i funkcjonalność zrobiła na mnie duże wrażenie. Mam nadzieję, że powyższy opis będzie dla kogoś pouczający i być może stanie się inspiracją przy kolejnych projektach Pomysłodawca robota, Przemysław Jasielski
  6. Witam, chciałbym przedstawić wam jedną z moich ostatnich konstrukcji - robota wielozadaniowego. Prace nad robotem zacząłem około rok temu gdzie zaprojektowałem i wykonałem pierwszą jego "wersję". Przez następne 6 miesięcy stopniowo ją modernizowałem. W założeniach miała to być platforma czterokołowa wyposażona w manipulator, jednak stwierdziłem że trochę źle zaplanowałem kilka kwestii i robot zostanie już w aktualnym stanie a platformę z manipulatorem potraktuję jako osobną konstrukcję. W obecnym stanie robot pełni następujące funkcje: • bezkolizyjne poruszanie się, realizowane z pomocą dalmierza Sharp GP2Y0A21YKOF, na pewnym etapie używałem również ultradźwiękowego czujnika HC-SR04 ale nie wychodziło mi za bardzo łączenie dwóch pomiarów w programie i postanowiłem zostawić samego Sharpa. • radiowa komunikacja z pilotem sterowniczym • pomiar naświetlenia miejsca w jakim znajduje się robot i załączanie latarki • pomiar prędkości obrotowej dwóch przednich kół, za pomocą tarczy i transoptorów CNY70 (nie jest co prawda zbyt dokładny, ale jest) Krótki opis budowy robota : • Mikrokontroler główny to Atmega32 • Mikrokontroler nadajnika to Atmega16 • Zasilanie : Żelowy akumulator 12V , pojemność 2200 mAh , napięcie jest stabilizowane przez stabilizatory LM7805 oraz LM338 • Mostki H to scalone mostki L298 zabezpieczone diodami , jeden na tył i jeden na przód • LM339 jako komparator do 2 transoptorów CNY70 , pracujących jako enkodery • Napęd kół robota to 4 przerobione analogowe serwa CYS3600 • Serwo obracające czujnikiem Sharp to Tower Pro SG-90 • Serwo obracające latarką to Redox S90 • Moduł radiowej komunikacji to HM-R868S i HM-T868S • Wyświetlacze LCD 16x2 Mechanika Cała konstrukcja mechaniczna wykonana została z odpadów blachy aluminiowej o grubości 3mm. Podwozie , koła, mocowania serw, wsporniki i błotniki narysowane zostały w cadzie i wypalone laserem. Robot posiada lekko amortyzowane zawieszenie Amortyzator jest bardzo prostej budowy- w uchwycie serwomechanizmu wkręcone są dwie teflonowe tulejki które umożliwiają przesuwanie uchwytów po prowadnicach które wykonałem ze śrub M8x90 a na śrubach osadzone są sprężyny o średnicy 8mm które amortyzują przesuwający się uchwyt. Tarcie między tulejami a prowadnicami postarałem się wyeliminować poprzez zastosowanie smaru teflonowego. Możliwa jest regulacja długości rozstawu kół i wysokości zawieszenia. Pokrywa obudowy wykonana jest z przeźroczystej pleksi o grubości 4mm. Pokrywa miała służyć zamontowaniu na niej manipulatora . Aluminiowe błotniki stanowią ochronę razie upadku lub przewrócenia się robota oraz nadają konstrukcji trochę lepszy wygląd. Koła mają średnicę 120 mm i zostały wykonane z 3 sklejonych ze sobą blach aluminiowych o grubości 2mm. Jako oponkę zastosowałem zużyte paski rozrządu przyklejone Poxipolem. Koła zamontowane są do serw za pomocą orczyków. Elektronika Robot posiada kilka płytek modułowych wykonanych metodą termotransferu. Na każdej płytce zastosowałem złącza goldpin co umożliwia szybką zmianę podłączeń , modernizację lub wymianę płytek. Dzięki przeźroczystej pokrywie każda płytka jest dobrze widoczna i łatwo dzięki temu przedstawić komuś budowę robota. Jednym podoba się odsłonięta "kabelkologia" , inni jednak wolą gdy wnętrze robota jest zasłonięte, każdy ma swój gust . Wszystkie płytki rysowałem w programie Eagle. Zasilacz Jako osobną płytkę postanowiłem również wykonać sekcję zasilania. Użyłem dwóch stabilizatorów - do części elektronicznej LM7805 natomiast do zasilania napędów użyłem regulowanego stabilizatora LM338. Chłodzone są radiatorem i małym wentylatorkiem. Płyta główna Jest to płytka na której znajduję się główny mikroprocesor Atmega32 wraz z wyświetlaczem lcd. Na płytce umieszczone są również przyciski służące do zmiany parametrów jazdy, buzzer , złącze programatora oraz 3 diody sygnalizacyjne. Płytka posiada również 2 rzędy złącz goldpin zasilających. Płytki z mostkami H Jako że robot posiada 4 niezależnie napędzane koła użyłem dwóch podwójnych scalonych mostków L298. Zabezpieczyłem je diodami Schottky'ego 3A. W sumie standardowa konfiguracja, na wyjścia silników podłączyłem kondensatory 470uF. Płytka obsługująca enkodery Jako komparator analogowy zastosowałem LM339. Płytka posiada 4 gniazda do obsługi transoptorów. Ogólnie to pomiar za pomocą CNY70 i tarcz nie był zbyt dokładny, obecnie ta funkcja jest nieaktywna ale przynajmniej sporo się nauczyłem i wiem już co zmienić w nowej konstrukcji . Pilot sterowniczy Posiada wyświetlacz LCD 16x2 oraz mikroprocesor Atmega16. Do transmisji radiowej użyłem zestawu HM-R868S i HM-T868S . Transmisja nie jest co prawda zbyt dokładna, nie można nią przesyłać jakichś specjalnie dokładnych i ważnych danych ale do sterowania robotem, przesyłania wartości wypełnienia zestaw nadał się całkiem dobrze. Zasięg na jakim sprawdzałem działanie transmisji to około 120m (na osiedlu, ale między mną a robotem była otwarta przestrzeń). Dane wysyłam przez UART na prędkości 9600 bps. Pilot posiada również termometr , działający na czujniku LM35 podłączonym do przetwornika ADC. Konfigruacja podłączenia przycisków na pilocie jest możliwa dzięki złączom goldpin. Program Program w robocie jak i w pilocie sterowniczym jest napisany w Bascomie. Gdy zaczynałem pracę nad robotem potrafiłem programować tylko w tym języku, jednak zauważyłem wady i zalety tego języka i nastepna konstukcja napewno zaprogramowana będzie w języku C. Film : https://www.youtube.com/watch?v=aPf2Hxaa8Ck Wnioski Podsumowując , wiele rozwiązań wychodziło już podczas samych prac, modernizacji itp. więc nie wszystko pracuje tak jak powinno. Jest to w sumie moja pierwsza poważniejsza konstrukcja i dużo nauczyłem się przy jej budowie. Na obecnym etapie stwierdziłem że dalsze modernizację nie mają sensu i lepiej po prostu zacząć od nowa projektować nową platformę . Tym razem skupię się bardziej na projektowaniu mechaniki pod manipulator, lepszym napędzie, zastosowaniu kamery bezprzewodowej i analizie obrazu mniejszych płytkach i lepszej transmisji z robotem, chciałbym umożliwić sterowanie za pomocą aplikacji na Androidzie. Każda uwaga , krytyka i sugestia będzie mile widziana i przydatna przy projektowaniu następnej konstrukcji . Chciałbym również bardzo podziękować wszystkim którzy pomogli mi przy budowie robota, udostępnili materiały i narzędzia oraz służyli radą i krytyką Pozdrawiam
  7. 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)
  8. Cześć! Chciałbym zaprezentować wam mojego robota o imieniu Janusz. Był to temat mojej pracy inżynierskiej. Robotem sterujemy zdalnie za pomocą innego komputera bądź laptopa z dostępem do internetu. Robot jest o tyle ciekawy, bo jest to chyba pierwsza konstrukcja na forbocie korzystająca z platformy Robot Operating System (ROS). Dzięki niej robot tworzy mapę otoczenia. Budowa: Złożenie robota wykonano w programie Autodesk Inventor. Zastosowanie systemu CAD umożliwiło wprowadzanie licznych zmian i poprawek bez potrzeby tworzenia rzeczywistych prototypów. Rama została wykonana z profili aluminiowych 20x20x15 [mm], a także płyt z pleksiglas. Rysunek poniżej przedstawia widok złożenia zaprojektowanej konstrukcji. Specyfikacja: -Wymiary: 530x440x580 [mm] -Waga: 8,5 [kg] -Ładowność: 3 [kg] -Prędkość: 0,5 [m/s] Napęd: Robot posiada napęd na cztery koła tzw. napęd burtowy (na podobnej zasadzie jeżdżą czołgi). W robocie zastosowano silniki Pololu 70:1 Metal Gearmotor 37Dx54L wraz z enkoderami magnetycznymi. Silniki zasilane napięciem 12 [V] charakteryzują się wysokim momentem obrotowym 1,37 [Nm], a także zadowalającą prędkością obrotową na poziomie 150 [obr/min]. Silniki przenoszą napęd na koła, za pomocą półosi wykonanych w technologi druku 3D z nylonu. Koła robota zostały zdemontowane z samochodu zabawki. Silnik wraz z kołami: Półoś: Część elektroniczna: Robot zasilany jest z akumulatora żelowego o pojemności 7,2 [Ah], wystarcza na ponad dwugodzinną pracę. Kinect zasilany jest poprzez stabilizator napięcia LM2940. Arduino Mega 2560 zasilane jest poprzez przewód USB i za pomocą dwóch motor shieldów MC33926 steruje pracą silników. Zastosowane enkodery inkrementalne umożliwiają pomiar z rozdzielczością 48 impulsów na obrót. Po przeliczeniu jeden impuls enkodera występuje co 0,08 [mm] przejechanej trasy. Schemat elektryczny wykonano w programie Eagle i pokazano poniżej. Oprogramowanie: W celu umożliwienia sterowania ruchem robota i budowy mapy otoczenia wykorzystano platformę programistyczną ROS. Jest ona zbiorem bibliotek i narzędzi pozwalających nie tylko na sterowanie, ale także symulację oraz wizualizację ruchu pojazdu. Jedną z głównych zalet Robot Operating System jest fakt, iż jest to platforma całkowicie darmowa, zarówno do celów naukowych, jak i komercyjnych. Oparta jest na systemie operacyjnym Linux, a możliwe języki programowanie to C++ lub Python. Sterowanie robotem odbywa się za pomocą klawiatury. Poniżej przedstawiono widok operatora (istnieje możliwość powiększenia okna z widokiem z kamery, co ukazano na filmie). Robot tworzy mapę za pomocą metody odometrycznej, niestety obarczona jest narastającym błędem wraz ze wzrostem przebytej trasy.Spowodowane miedzy innymi poślizgiem kół czy błędnym odczytem z czujników. Poniżej przedstawiam uzyskaną mapę korytarza akademika (w przyszłości postaram się skalibrować czujniki, tak aby uzyskać lepszą dokładność). Perspektywy rozwoju: W przyszłości zamierzam zamiast notebooka zastosować Raspberry Pi 2 z wgranym systemem operacyjnym linux. Napisać dodatkowe oprogramowanie zwiększające funkcjonalność robota. Dodanie pakietu navigation zapewni autonomiczność platformy, czyli możliwość poruszania się bez udziału operatora. Innym kierunkiem rozwoju może być napisanie oprogramowania do sensora Kinect, umożliwiającego wydawanie poleceń za pomocą gestów lub rozpoznawanie przedmiotów. Jest to mój pierwszy zbudowany robot. Z racji tego że wykonywałem go w akademiku bez profesjonalnego sprzętu część mechaniczna ma wiele wad i niedociągnięć. Sporo czasu zajęło zrozumienie i poznanie platformy programistycznej ROS. Dla zainteresowanych mogę udostępnić program na arduino. Proszę o opinie. Poniżej przedstawiam film z działania robota: __________ Komentarz dodany przez: Treker Poprawiłem filmik, teraz wszystko się zgadza
  9. 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
  10. Witam serdecznie forumowiczów! Nazywam się Karol i mam 15 lat. Interesuję się robotyką i elektroniką od września zeszłego roku, wcześniej zajmowałem się mocno amatorsko informatyką (strony WWW, programy, cmd itp.). Właśnie skończyłem prace nad moim pierwszym poważniejszym projektem jakim jest Orion 250 - prosty robot mobilny z wieloma funkcjami i zastosowaniami + aplikacja mobilna dedykowana właśnie dla niego. Konstrukcja i zasilanie(#1); elektronika(#2): #1 Robot wykonany jest głównie z wyciętej plexy i pianki modelarskiej. Każde koło ma swój osobny 5V silnik DC z przekładnią (jak się nie mylę 1:120). Robot jest również wyposażony w prosty wysięgnik magnetyczny na serwie 9g. Aktualnie zasilam go z najprostszych "paluszków" [=6x AA], co daje w granicach 9-12V. W najbliższym czasie, zamierzam kupić zwykły pakiet w miarę wydajnych li-pol'i (3S). #2 Chciałem zastosować jakiś uC z "własnej kolekcji" ale stwierdziłem, że nie będę się "rzucał na głęboką wodę" i wybrałem po prostu... Arduino uno. Za sterowanie silnikami odpowiada moduł mostka H: L298N, który bez problemu sobie ze wszystkim radzi. Robot wyposażony jest również w ultradźwiękowy czujnik odległości hc-sr04 jednak na razie go nie podłączyłem. Komunikacja z telefonem odbywa się za pośrednictwem bluetooth'a, z racji, że robot miał być raczej tani, zamiast wyrafinowanych BTM-222 itd. zakupiłem na allegro moduł HC-05 za 20zł który przesyła dane do Atmegi za pośrednictwem UART'a. Dodatkowo przygotowałem płytkę z wyświetlaczem LCD (z Noki) 3110 z własnym zasilaniem (li-pol 1S). Podłączenie modułu do Arduino jest ułatwione dzięki wyjściu kanda, które na nim umieściłem. #3 Inne: po dołączeniu do pojazdu swojego smartphon'a, powstaje możliwość odbioru aktualnego obrazu z kamer, a także wykresów z sensorów (czujnik ruchu, czujnik przechylenia, czujnik dźwięku itd.) z dowolnego miejsca na Ziemi - tym razem z pomocą wi-fi. Aplikacja: Postanowiłem, również, napisać dedykowaną aplikację dla robota na tablety i smartphony z Androidem. Wydaje mi się, że program jest w miarę prosty/wygodny, aczkolwiek to jest moja opinia. Dla zainteresowanych umieszczam załącznik (folder), w którym znajdziecie schemat prototypu, zdjęcia konstrukcji a także aplikacja, którą możecie przetestować (dodaję również "notę", w której wyjaśnione jest starowanie a także dokładana specyfikacja komunikacji i komendy, które są wysyłane). Co wchodzi w skład projektu? Co musiałem zrobić?: -opracować i zaprogramować aplikację - Robot Controler bt, dla urządzeń z Androidem; -zaprogramować płytę główną, w tym wypadku, Arduino; -przygotować konstrukcję mechaniczną robota a także zaprojektowanie i wykonanie strony elektronicznej; Zalety konstrukcji: √ tani (jak na robotykę) koszt wykonania = w granicach 200zł [ja oczywiście wydałem o wiele więcej] √ dedykowana aplikacja - to znacznie ułatwia sterowanie √ możliwość sterowania z dowolnego urządzenia z bluetooth (komputer-za pośrednictwem monitora portu szeregowego, tablet, smartphone) √ odbiór aktualnego obrazu, a także wykresów z sensorów (czujnik ruchu, czujnik przechylenia, czujnik dźwięku itd.) z dowolnego miejsca na Ziemi Osiągnięcia: II miejsce na Ogólnopolskim Festiwalu Robotyki Cyberbot (w Poznaniu) Schemat (prototypu) robota: Oto krótki film z działania robota: Podziękowania dla: Wszystkich osób, które wspomogły mój projekt na Polak Potrafi. W szczególności: firmie Hybrid Lizard a także Pani Małgorzacie Wyszyńskiej. Serdecznie dziękuję również firmie, która mnie wspiera: Roboty i Spółka Dla zaintersowanych: w załączniku umieszczam; kilka zdjęć, schemat, aplikację oraz kod QR a także notę informacyjną. Zapraszam do komentarzy. Prosiłbym aby komentując: mieć na uwadze, że jest to moja pierwsza konstrukcja i mam 15 lat. Co zrobiłem źle/bez sensu? Co Wy (o wiele bardziej doświadczeni) byście poprawili w Orioni'e? Pozdrawiam, Karol www.mechatrobot.pl - mój workblog ## Orion 250 - Załącznik
  11. Maciek991

    GIMBOT

    Cześ, moim najnowszym projektem jest jeżdżąca platforma testowa. Ma ona posłużyć do testowania różnych rozwiązań: mechanicznych, elektronicznych oraz programistycznych. Jeżeli wszystko pójdzie zgodnie z planem to już niedługo będziecie mogli poczytać troszkę artykułów na jej przykładzie, które będą dotyczyły m.in.: analizy obrazu w czasie rzeczywistym przy pomocy Raspberry Pi, implementacji algorytmu odnajdującego najlepszą drogę przy pomocy danych z czujników oraz GPS oraz wiele, wiele innych moim zdaniem ciekawych tematów. Będą one dostępne tutaj Ale koniec opowiadania o tym co będzie. Przejdźmy do tego co jest czyli opisu robota w obecnym stadium rozwoju. Oprogramowanie oraz procesor Obecnie pojazd jest wyposażony w dwa mikrokontrolery ATmega 328p oraz ATmega 2560. Do których w przyszłości dołączy jeszcze jeden procesor z rodziny STM oraz Raspberry Pi. Kod tego robota jest bardzo ciekawy, głównie ze względu na to, że w większości wypadków nie korzystałem tutaj z wysokopoziomowej biblioteki Arduino, jednak w kilku funkcjach została ona użyta. Kod już niebawem postaram się wrzucić na GitHub'a. Czujniki Obecnie w platformie zastosowany jest tylko jeden przemysłowy czujnik odbiciowy, jednak niedługo pojawi się tutaj 5 czujników ultradźwiękowych oraz wiele więcej czujników innego typu, na przykład TCRT5000L. Konstrukcja Konstrukcja stworzona jest z arkusza blachy aluminiowej. Napęd Konstrukcja jest napędzana dwoma silnikami. Przeniesienie napędu zrealizowane jest na łańcuchach rowerowych. Komunikacja Obecnie komunikacja robota oparta jest o protokół radiowy o częstotliwości 2,4Ghz. Skorzystałem tutaj z gotowego radia. W przyszłości mam zamiar połączyć komunikację radiową działającą na częstotliwości 433Mh oraz sieć Wi-Fi. Waga Platforma waży około 9kg. Waga jest oczywiście podana razem z akumulatorem. Zasilanie Konstrukcja jest zasilana akumulatorem żelowym o pojemności 12 Ah. Przewody Wbrew pozorom temat przewodów jest bardzo interesujący. Obecnie zasilanie z akumulatora do płytki sterującej silnikami poprowadzone jest miedzianymi przewodami YDY o przekroju 1,5 mm2. Ponieważ wszystkie inne przewody miały zbyt małe maksymalne obciążenie prądowe przez co podczas użytkowania, najzwyczajniej w świecie topiła się izolacja. Funkcje Obecnie robot działa tylko w dwóch trybach: -Autonomiczny (robot sam pokonuje przeszkody za pomocą czujnika odbiciowego) -Manualny (sterujemy za pomocą pilota) TESTY Tutaj chciałbym Wam przedstawić filmik z pierwszych jazd (sterowanie przy pomocy pilota radiowego) Postępy będę umieszczał na blogu KLIK! Oraz będę starał się uaktualniać ten post Co sądzicie o tej konstrukcji? __________ Komentarz dodany przez: Sabre Dodaj jedno zdjęcie robota jako załącznik, wyświetli się ono na stronie głównej.
  12. Pomimo, że roboty balansujące już kilkakrotnie pojawiały się na forbocie, chciałbym zadebiutować na forum prezentując moją nową konstrukcję. Skoro jest cała armia linfollowerów i minisumo, to niech i robotów balansujących przybędzie. Początkowo myślałem, że będzie to ciężkie i złożone zadanie. Jednak w praktyce okazało się jedynie trochę czasochłonne. Działanie konstrukcji dało mi bardzo wiele satysfakcji, dlatego szczerze polecam ten projekt osobom, które już dość swobodnie czują się w robotyce, a chcą spróbować czegoś nowego. Odwrócone wahadło jest dość intrygującym urządzeniem, które aby się utrzymać w pionie, wymaga ciągłej kontroli i precyzyjnej regulacji. Właśnie dlatego projekt taki sprawia naprawdę dużo frajdy. Założenia: Robot ma utrzymywać równowagę i przemieszczać się w kierunku zadanym przy pomocy pilota od telewizora. Służyć ma przede wszystkim dobrej zabawie i poszerzeniu doświadczenia. Ma wykorzystywać żyroskop i akcelerometr oraz poruszać się na silnikach krokowych. Konstrukcja wykonana w domowych warunkach, z wyjątkiem ramy, która została wydrukowana u kolegi. Konstrukcja: Rama robota jest wydrukowana na drukarce 3d z materiału PLA w czterech częściach, które zostały później ze sobą skręcone. Koła to połączenie bezkonkurencyjnych pod względem jakości półpneumatycznych kół Lego oraz wydrukowanej z PLA felgi, która pozwala na przymocowanie do huba POLOLU. Ten ostatni bezpośrednio trzyma się wału silnika. Robota napędzają silniki krokowe, które są łatwiejsze w obsłudze, niż zwykłe silniki DC z enkoderami. W tym konkretnym zastosowaniu niezbędne jest uzyskanie dokładnie ustalonej prędkości obrotowej – inaczej robot nie będzie się dobrze trzymał. Niestety natura silników krokowych pozostawia sobie wiele do życzenia. Nie mogą one osiągać zbyt dużych prędkości, a to oznacza, że robot nie będzie zbyt żwawy, a przy większych prędkościach może okazać się niestabilny. Elektronika: Układy sterujące robotem postanowiłem umieścić na dwóch płytkach drukowanych. Na dole robota znajduje się płytka ze sterownikami silników, czujnikiem LSM6DS3 oraz prostym układem zasilania. Druga płytka zawiera mikrokontroler, odbiornik podczerwieni i moduł bluetooth. Czujnik LSM6DS3 to żyroskop i akcelerometr, który pozwala na pomiar kąta pochylenia robota. Zarówno impulsy sterujące silnikami, dane z czujnika oraz zasilanie płyną przez 24-żyłową taśmę FFC. Sterowanie: Idea sterowania odwróconym wahadłem była już wielokrotnie opisana, dlatego nie będę dublował kolegów z różnych forów. Mój robot wykorzystuje filtr komplementarny (do ustalenia aktualnego kąta wychylenia na podstawie pomiaru żyroskopu i akcelerometru), regulator PD (do utrzymania zadanego kąta) i regulator PID (do obliczenia kąta, o jaki powinien się wychylić robot na podstawie prędkości silników). Seria tych wszystkich obliczeń wykonywana jest z częstotliwością około 104 Hz, ponieważ na taką częstotliwość pracy został ustawiony czujnik, który generuje przerwania. Całym robotem steruje mikrokontroler ATmega88P taktowany z częstotliwością 12MHz. Bez najmniejszych problemów radzi sobie w 10 ms ze wszystkimi obliczeniami, które w wielu miejscach zawierają operacje zmiennoprzecinkowe. Wspomniany wcześniej moduł bluetooth był wykorzystywany przy dostrajaniu regulatorów oraz do debugowania programu. W tej chwili robot jest sterowany pilotem od telewizora.
  13. 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.
  14. 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
  15. Witam, przedstawiam robota, z którym męczę się już od jakiegoś czasu... Były próby na silnikach DC ale ze względu na duże luzy na przekładniach przerzuciłem się na silniki skokowe. 1. Wstęp Określenie robot balansujący odnosi się do robotów działających na zasadzie odwróconego wahadła. Problem odwróconego wahadła jest popularnym problemem w teorii sterowania i jest on częstym tematem prac oraz badań naukowych ze względu na niestabilność układu, który wymaga odpowiedniego sterowania, aby utrzymać punkt równowagi. Do grupy robotów balansujących możemy zaliczyć wiele różnych konstrukcji. Zaczynając od dwukołowych robotów, których środek ciężkości znajduję się powyżej osi obrotu, przez roboty utrzymujące równowagę na piłce, aż do robotów humanoidalnych. Oprócz robotów możemy zaliczyć również niektóre nowoczesne pojazdy transportu. Rysunek 1.1. Rożne konstrukcje robotow balansujących: a) robot balansujący na kuli Razero, b) dwukołowy robot nBot, c) humanoidalny robot ASIMO Rysunek 1.2.Przykładowe pojazdy transportu: a) dwukołowy pojazd Segway HT model i170, b) jednokołowy pojazd Solowheel Ze względu na niestabilność robotów balansujących są one ciekawym obiektem badań. Pozwalają one na zastosowanie wielu metod sterowania, przetwarzania sygnałów oraz wymagają uwzględnienia ograniczeń czasowych wynikających z pracy w trybie rzeczywistym. Zaletą robotów balansujących w porównaniu do innych układów wahadeł odwróconych, przy których niezbędna jest jednostka ruchu liniowego bądź w przypadku robotów poruszających się po okręgu - podstawa, jest ograniczenie zajmowanego miejsca, łatwość transportu oraz możliwość zmiany kierunku ruchu w miejscu. Głównym problemem jest trudność z poruszaniem się po nierównym podłożu, ale również złożoność systemu sterowania w celu utrzymanie równowagi, który komplikuje się jeszcze bardziej przy dodatkowej funkcjonalności robota. 2. Pomiar kąta wychylenia robota Pomiar kąta wychylenia wahadła od pionu może być realizowany na co najmniej dwa sposoby w robotach balansujących. Pierwszym, rzadziej stosowanym sposobem jest pomiar odległości między czujnikami zamontowanymi w górnej części robota, a podłożem z obydwu stron. W przypadku, gdy robot jest w równowadze odległości są sobie równe, natomiast gdy robot się przechyla powstaje różnica między tymi odległościami. Znając różnice można wyznaczyć kąt wychylenia oraz jego kierunek. Drugim, częściej stosowanym sposobem jest zastosowanie specjalnych czujników jakimi są akcelerometr, mierzący przyśpieszenie liniowe w swoich osiach, oraz żyroskop, mierzący prędkość kątową w swoich osiach. 2.1. Akcelerometr Akcelerometr mierzy przyśpieszenie liniowe w swoich osiach. Na ich podstawie, z założeniem, że jedyne przyśpieszenie jakie działa na układ jest to przyśpieszenie grawitacyjne, stosując funkcje trygonometryczne możemy wyznaczyć kąt wychylenia wahadła na podstawie dwóch wartości: Rysunek 2.1. Pomiar kąta wychylenia na podstawie dwóch wartości przyśpieszeń z akcelerometru 2.2. Żyroskop Żyroskop mierzy prędkość kątową w swoich osiach. Aby otrzymać kąt na podstawie prędkości kątowej wystarczy scałkować odczyt z żyroskopu. 2.3. Filtr komplementarny Akcelerometr reaguje na zmianę przyśpieszenia przez co charakteryzuje się częstymi i krótkotrwałymi zakłóceniami. Pomiar kąta na podstawie odczytu żyroskopu wiąże się z błędem wynikającym z całkowania chwilowych błędów, przez co błąd całkowity wraz z upływem czasu zwiększa się. Rysunek 2.2. Schemat ideowy filtru komplementarnego W celu eliminacji błędów chwilowych kąta mierzonego na podstawie pomiarów z akcelerometru stosuje się filtr dolnoprzepustowy, lecz skutkiem takiego zabiegu są opóźnienia względem rzeczywistej zmiany orientacji. W przypadku pomiaru kąta poprzez całkowanie odczytu z żyroskopu stosuje się filtr górnoprzepustowy, lecz w wyniku tego otrzymamy pomiar niewrażliwy na powolne zmiany kąta wychylenia. Filtr komplementarny powstaje poprzez zsumowanie obydwu tych kątów, dzięki czemu otrzymujemy kąt niewrażliwy na zakłócenia chwilowe wynikające z pomiarów z akcelerometru oraz na sumaryczny błąd całkowania pomiaru z żyroskopu. Wzór filru komplementarnego: Rysunek 2.3. Porównanie działanie filtru komplementarnego dla różnich współczynników a oraz dodatkowego uśrednienia pomiarów z akcelerometru 3. Układ regulacji Odwrócone wahadło jest układem niestabilnym. Wymaga on specjalnego sterowania, aby doprowadzić do jego stabilności. Stosowane są różne metody sterowania wahadłem odwróconym takie jak: regulator PID, regulator liniowo-kwadratowy ( LQR – ang. linear-quadratic regulator), model sztucznych sieci neuronowych oraz regulator z logiką rozmytą. W pracy został zastosowany regulator PID. 3.1. Regulator PID Regulator proporcjonalno-całkująco-różniczkujący (PID) składa się z trzech członów, których celem jest uzyskanie wartości zadanej. Regulator realizuje algorytm: Rysunek 3.1. Schemat regulatora PID Dobór parametrów regulatora kąta wychylenia (stabilności) można zilustrować jako robota przytwierdzonego poprzez sprężynę do ściany (człon proporcjonalny) oraz tłumik (człon różniczkujący). Zaczynając od doboru wzmocnienia Kp przy zerowych pozostałych wzmocnieniach, zwiększa się go aż do wystąpienia oscylacji. Następnie zwiększa się wzmocnienie Kd aż oscylacje zostaną wygładzone. Rysunek 3.2. Analogia doboru parametrów regulatora PD do wahadła przymocowanego przy pomocy sprężyny oraz tłumika 3.2. Kaskada regulatorów PID Niestety jeden regulator nie sprawdza się do końca. Widać niedokładne zamontowanie czujników przez co robot mimo że utrzymuje równowagę to ciągle przemieszcza się w jednym kierunku. Aby temu zapobiec niezbędny jest drugi regulator ze sprzężeniem zwrotnym z prędkością. Wyjściem z regulatora prędkości jest zadany kąt który wchodzi do wcześniej wyznaczonego regulatora kąta wychylenia. Dzięki temu zabiegowi nie tylko robot stoi w miejscu ale również dodaje to możliwość sterowania robotem poprzez zadawanie prędkości. Parametry regulatora prędkości zostały dobrane metodą prób i błędów. 4. Konstrukcja 4.1. Część mechaniczna Jeżeli chodzi o konstrukcje mechaniczną to wzorowałem się na robociku, który nosi nazwę B-robot. Całość zaprojektowana została w programie Autodesk Inventor, a drukował kolega z forum mosi2. Rysunek 4.1. Konstrukcja mechaniczna robota balansującego 4.2. Część elektroniczna Zastosowane elementy w większość są to wybory typu „byle tańszy”, więc są one średniej jakości. Jeśli chodzi o akcelerometr i żyroskop to użyłem popularny moduł MPU6050 (chiński tani moduł) przez co filtrowanie wymagało poza zastosowaniem filtru komplementarnego to jeszcze dodatkowego uśredniania odczytu a akcelerometru. Do komunikacji użyłem modułu bluetooth HC-05. Silniki krokowe 42HS48-1684 (1.68A na cewkę; 200 kroków na obrót; 0,44Nm; rozmiar NEMA 17). Jako sterowniki posłużyły mi moduły Pololu A4988, wcześniej również używałem tanich chińskich odpowiedników... ale mają one ograniczony prąd i nie dało się ustawić go powyżej 1.2A na cewkę przez co brakowało momentu obrotowego i trzeba było zainwestować w oryginalne moduły. Jako zasilania użyłem LiPol Redox 1300mAh 11.1V. Zostały wykonane dwa obwody drukowane metodą termotransferu. Pierwsza jako mózg robota, gdzie znajdują się sterowniki, bluetooth, miejsce na montaż serwa modelarskiego. Natomiast druga służy jako pomiar napięcia na poszczególnych ogniwach oraz sygnalizowania stanu baterii poprzez krótką linijkę LED (dodatkowo gdy napięcie na którymś ogniwie spadnie poniżej 3.1V wysyłany jest sygnał do „mózgu”, żeby nie załączać silników. Jako mikrokontrolery zostały zastosowane 16-bitowe dsPIC33FJ128GP802 ze względu na możliwość pracy na 80MHz (40MIPS) oraz ze względu, że firma Microchip wysyła darmowe próbki mikrokontrolerów. W przypadku użycia tego mikrokontrolera w układzie monitorującym stan baterii jest to troszeczkę użycie armaty przeciwko komarowi ale ze względu, że wstępnie miało wszystko znajdować się na jednym obwodzie drukowanym to postanowiłem zastosować taki sam (program był praktycznie gotowy). 4.3. Oprogramowanie „Mózg” z częstotliwością 250Hz (co 4ms) odczytuje nowe wartości z akcelerometru i żyroskopu, przelicza je na kąt, przepuszcza pomiary przez regulatory oraz wystawia nowe prędkości silników. W między czasie sprawdza czy nie zostały odebrane nowe dane oraz czy stan baterii nie wymusza wyłączenia silników. W LabView został napisany prosty program, w którym możliwe są zmiany wzmocnień regulatorów w trybie on-line, odczyt danych pomiarowych takich jak uchyb, kąt i prędkość silników oraz włączanie i wyłączanie silników robota. Rysunek 4.2. Program napisany w LabView Program na urządzenia mobilne z systemem Android został napisany w AppInventor2. Niestety posiada on dużo ograniczeń - głównym jest brak wsparcia dla multitouch'a co ogranicza możliwość jazdy prosto oraz skręcania w tym samym czasie. Rysunek 4.3. Program napisany w AppInventorze do sterowania robotem 5. Podsumowanie Jako podsumowanie odsyłam do krótkiego filmiku robota. W przyszłości chciałbym jeszcze dodać kolejny regulator w kaskadzie, który regulował by położenie robota oraz implementacja czegoś w rodzaju prostych G kodów, dzięki czemu robot mógłby posłużyć jako nauka programowania dla dzieci (nieco zabawniejszy „żółwik”). Kolejną rzeczą jaka chciałbym poprawić to wyznaczyć parametry regulatorów symulacyjnie w Matlab'ie ale póki co został wyznaczony dopiero model matematyczny. Dodatkowo wspomniałem już o ograniczeniach AppInventora, więc oczywiście przewidziany jest nowy program napisany na Androida, który nie będzie posiadał tych wad.
  16. 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.
  17. Nie mogłem się zdecydować do jakiej kategorii go zaklasyfikować, czy to jest "line follower"? Z tekstu powinno wyniknąć. Opis projektu Zakres pracy: Projekt, wykonanie i instalacja systemu sterującego robotem dystrybuującym paszę dla zwierząt (krowy w oborze). Zadania robota: Robot porusza się po zadanych torach, wytyczonych przez linie indukcyjne. Z punktów dystrybucyjnych robot pobiera paszę w zadanych proporcjach a następnie rozkłada ją (rozsypuje) w punktach karmienia zwierząt. Punkty te noszą nazwę grup. Grupy gromadzą krowy o podobnych wymogach żywieniowych. Grupy mogą mieć postać odcinków obejmujących wiele krów lub mogą być zredukowane do punktów, w których znajduje się jedna krowa. Przed rozłożeniem świeżej paszy, robot szczotkami usuwa pozostałości starej karmy. Sterownik umożliwia zaprogramowanie o jakiej porze, jaka pasza i do których grup zostanie dostarczona. Cechy części mechanicznej: Jednorazowo można załadować do 1000kg paszy. Robot został zaprojektowany do pracy ciągłej 24/7. Moc silnika napędu: 20KM. Robocza prędkość jazdy: 0.3m/s Dokładność pozycjonowania +/-1cm na odcinku 200m. Masa urządzenia: ok.1000kg Konstrukcja mechaniczna robota: Robot jest wyposażony w silnik spalinowy napędzający alternator i pompę hydrauliczną. Start ilnika zapewnia akumulator i rozrusznik elektryczny. Pompa hydrauliczna wytwarza cisnienie robocze dla elementów wykonawczych (silniki i siłowniki). Elementy wykonawcze są uruchamiane przy pomocy bloku zaworów sterowanych elektrycznie. Część zaworów w bloku sterowana jest proporcjonalnie a część dwustanowo. Konstrukcja sterownika: Należy mówić raczej o całym systemie obejmującym część mobilną zainstalowaną na robocie oraz infrastrukturę w której robot się porusza. Cześć mobilna składa się z dotykowego panelu sterowania i diagnostyki, szafki sterowniczej z wbudowaną jednostką centralną, joysticka, anten naprowadzających, czujników (temperatura, ciśnienie, indukcyjne), wyłączników krańcowych , wyłączników bezpieczeństwa. Część stacjonarna to: generator sygnału indukcyjnego, sieć odbiorników radiowych umożliwiających odbiór poleceń z robota oraz sieć ścieżek indukcyjnych. Procesory: Atmega128, Atmega32 Wejścia analogowe: 10 Wejscia cyfrowe: 10 Wyjscia analogowe PWM: 4 Wyjscia cyfrowe: 9 Serial Port przez Bluetooth: 2 Zadania systemu sterowania: 1. Praca robota w trybie automatycznym, półautomatycznym i ręcznym. 2. Wyswietlanie stanu robota. 3. Definiowanie paszy, punktów dystrybucji, grup, linii, czasów karmienia. 4. Dystrybucja paszy według składu oraz ilości i czasu zadanego przez użytkownika – pobranie z punktu/punktów dystrybucyjnych i wysypanie w zadanym punkcie lub odcinku grupy. 5. Komunikacja radiowa z urządzeniami stacjonarnymi. 6. Sterowanie urządzeń na hali – mixer (otwarcie,zamknięcie) , bramy (otwarcie, zamknięcie), generator sygnału dla linii indukcyjnej (wybór drogi jazdy) 7. Pomiar ilości paszy w zbiorniku z analizą zakłóceń odczytu oraz adaptywnym ich filtrowaniem. 8. Planowanie sposobu optymalnego i równego rozkładania paszy. 9. Ruszanie, zatrzymanie, zmiana kierunku jazdy: do przodu/do tyłu i utrzymanie zadanej prędkości jazdy (PID). 10. Utrzymanie zadanej trasy jazdy (PID). 11. Włączanie / wyłączanie wyładunku paszy i szczotkowania (czyszczenia) według programu użytkownika. 12. Unikanie kolizji z obiektami na hali (przedmioty, zwierzeta i ludzie). 13. Dodatkowe, rozwojowe, które w tym projekcie nie miały zastosowania: 1. Sterowanie wieloma robotami w tym samym czasie 2. Wyznaczanie tymczasowych punktów lub odcinków wyładowania bez konieczności zmian w programie użytkownika przy pomocy fizycznych znaczników początku i końca (RFID, lub optyczne) 3. Prawidłowe prowadzenie kierunku ruchu robota przez skrzyżowania dwóch lub więcej linii indukcyjnych Ciekawsze aspekty projektu (niektórzy nazywają to wyzwaniami - to tygrysy lubią najbardziej): Cały system jest moim pomysłem i moją konstrukcją. Jest układ modułowy, dwuprocesorowy z wymianą danych po szynie I2C. W pracy wykorzystałem płytki developerskie dla układów z montażem SMT aby uniknąć dość niewdzięcznych czynności związanych z lutowaniem i uruchamianiem miniaturowych obwodów. Skupiłem się na głównych zadaniach prowadzących do powstania konstrukcji działającej i spełniającej oczekiwania uzytkownika. W trakcie projektu sterowania okazało się, że konstrukcja robota nigdy nie była projektowana jako urządzenie automatyczne. Jest to wózek z napędem hydraulicznym do pracy pod nadzorem operatora. W późniejszym czasie elektronika sterująca została dodana. Ten pierwotny system sterowania został źle zaprojektowany i był bardzo awaryjny. Ostatecznie nastąpiło jego nieodwracalne elektryczne uszkodzenie. Naprawa okazała się nieopłacalna. W tym momencie zaczął się mój projekt. Trudnym do spełnienia warunkiem było załozenie braku modyfikacji istniejącej konstrukcji mechanicznej. Efektem jest: niewystarczająca ilość czujników (szczególnie trudno jest sterować i stabilizować prędkość jazdy a jest to konieczność ponieważ obciążenie robota się zmienia a trasa nie jest pozioma – pierwszy odczyt prędkości pojawia się po ok.2s. od załączenia silnika, a gdzie czas na utrzymanie stałej prędkości? A co jeśli po tych 2s. odczytu nie będzie , bo właśnie zwierzęta urwały kabel od czujnika?) , awaryjny, bardzo niedokładny system wyładunku (a wymagania do dokładności wyładunku to +/- 2kg), niedokładnie, nierówno położona linia indukcyjna wyznaczająca trasy, obecność dużych przedmiotów stalowych zniekształcających sygnał linii indukcyjnej. W trakcie prac usunąłem uszkodzenia oraz wykonałem regulację w samym pojeździe, takie jak: system paliwowy silnika, centralka zapłonowa, odpowietrzenie instalacji hydraulicznej i wymiana oleju, wymiana uszkodzonego zaworu, zmiana położenia anten. Robot pracuje w dynamicznie zmieniającym się środowisku. Powietrze jest mocno zapylone i wilgotne. Wszystkie powyższe trudności przezwyciężyłem! Dało to ogromną satysfakcję i nowe doświadczenia. Dodatkowo zadowolenie uzytkownika oraz utrzymanie konstrukcji mechanicznej w pierwotnym stanie bez dodatkowego wkładu finansowego na modernizację. Pracę podzieliłem mniej więcej tak: 1. Poznanie własności mechanicznych konstrukcji: a) Sterowanie silnikiem spalinowym b) Własności i specyfika pracy hydrauliki: starzenie instalacji, wycieki, niedobór oleju, praca w szerokim zakresie temperatur, niewystarcząca wydajność pompy hydraulicznej, niepodziewane skoki ciśnienia c) Powstawanie luzów mechanicznych i ich wpływ na sterowność. d) Własności napędu i ich zmiana wraz ze zmianą parametrów oleju hydraulicznego. e) Własności systemu skrętów i ich zmiana wraz ze zmianą parametrów oleju hydraulicznego. f) Dynamika jazdy robota. g) Waga elektroniczna: zachowanie w czasie postoju, ładowania, rozładowania, dryft czasowy i temperaturowy, h) System wyładunku: zależność pracy od rodzaju paszy, zakres przypadkowości działania, wpływ wilgotności i temperatury na szybkość wyładunku. i) Awaryjna konstrukcja czujnika wykrywającego znacznik początku trasy i możliwości kompensacji błędów w oprogramowaniu. j) Niedokładności czujnika pozycji linii i mozliwość ich kompensacji w oprogramowaniu. 2. Zapoznanie z rozchodzeniem fal radiowych w środowisku pracy i dobranie odpowiedniego rozwiązania zapewniającego pewne , odporne na zakłócenia i zaniki połaczenia radiowego sterowanie. 3. Zaprojektowanie i wykonanie prototypowej wersji elektroniki mobilnej, generatora i odbiorników. 4. Zaprogramowanie podstawowych funkcji sterowania („klocków”): jazda, skręty, odczyt czujników, analiza wagi, sterowanie prostymi funkcjami przez serial port i panel dotykowy itp. 5. Budowa symulatora obiektu. Większość prac programistycznych można wykonać „na biurku” zamiast w terenie. W terenie następuje w większości jedynie weryfikacja założeń i składanie oprogramowania z gotowych „klocków”. Jest to o tyle istotne, że robot jest w ruchu oraz należy analizować wiele parametrów w tym samym momencie. 6. Stacja monitorowania w czasie jazdy – połączenie przez bluetooth. Symulacja obiektu przy pomocy zewnętrznego układu nie odpowie na ważne pytanie: jak zachowuje się pasza , często niejednorodna , o różnej gęstości i wilgotności, w trakcie załączania i wyłączania elementów mechanizmu wyładunku. Wszystkie obserwowane parametry można zapisywać do późniejszej analizy. 7. Zapewnienie bezpieczeństwa developera. Zbudowałem bezprzewodowy, radiowy system zatrzymywania robota w razie niespodziewanych reakcji programu (np. ustawienie maksymalnej prędkości jazdy, niekontrolowany zjazd z trasy), które mogłyby spowodować „ucieczkę” maszyny lub zniszczenia w okolicznych obiektach. To urządzenie jest niezależne od głównego systemu procesorowego i reaguje na zanik transmisji z „pilotem”. Transmisja jest dwukierunkowa. Najdłuższy czas reakcji to 5ms. Można korzystać z dwóch trybów „stopu”: chwilowego i trwałego. Przerywane są kluczowe obwody robota powodujące wyłączenie silnika, spadek ciśnienia roboczego, zamknięcie zaworów itp. 8. Praca nad softwarem. To etap zajmujący najwięcej czasu: poprawki i rozbudowa oprogramowania, który w zasadzie nadal trwa. Użytkownik po początkowym zachłyśnięciu się możliwościami robota, przywykł już do dużej oszczędności czasu w pracy i teraz proponuje kolejne dodatkowe funkcje. 9. Dla usprawnienia poszukiwania błędów programowych w stacjonarnej części radiowej systemu, zaprojektowałem i wykonałem urządzenie monitorujące jednocześnie transmisje kablową RS485 oraz radiową w paśmie 433MHz z możliwością zapisywania wyników do późniejszej analizy. 10. Zapewnienie bezpieczeństwa uzytkownika. Osiągnąłem 100% poziom bezpieczeństwa sterownika w trakcie 12 miesięcznej ciągłej pracy urządzenia, tzn. system zawsze poradził sobie z sytuacją awaryjną. System prawidłowo reaguje na: „zawieszenie” sterownika (rzadkie zupełne wyłączenie-najczęściej prawidłowa kontynuacja po samoresecie procesorów), brak sygnału linii indukcyjnej, blokowanie (zakleszczanie) zaworów hydraulicznych, stop awaryjny z przycisków operatora, przetarcie lub zerwanie kabli, sygnał ze zderzaków mechanicznych. Dotyczy to zdarzeń symulowanych i rzeczywistych. Oczywiście ten bardzo optymistyczny wynik nie przesądza o instalacji niezależnego, fabrycznego systemu bezpieczeństwa. Ale to już kolejny projekt.
  18. Witam. Chciałbym zaprezentować konstrukcję która była tematem mojej pracy inżynierskiej. Przedmiotem pracy było opracowanie struktury autonomicznego wózka magazynowego. Główne cele jakie miała sprłniać konstrukcja to: - Ustalenie trajektorii ruchu wózka na podstawie lay-out’u wybranego fragmentu hali montażowej z naniesieniem linii dla czujników odbiciowych. - Zasada określenia pozycjonowania wózka we współrzędnych hali -odbiór za pomocą modułu Bluetooth informacji weryfikowanych za pomocą kodów RFID o zgodności ładunku, miejsca odbioru i dostarczenia. - Optymalizacja trasy bezkolizyjnego przejazdu z wysyłaniem danych za pomocą interfejsu Bluetooth do urządzenia kontrolującego i podglądu trasy. - Dobór zestawu czujników odpowiadających za bezpieczeństwo poruszania się po magazynie. Mając wcześniejsze doświadczenie z konstruowania podobnych konstrukcji opisane tutaj zdecydowałem się po raz kolejny na konstrukcję z laminatu . Konstrukcję wykonano jako robot mobilny klasy (2,0) – unicycle. Jako napęd zastosowane zostały podwójna przekładnia Tamiya 70168 w konfiguracji przełożenia 115:1 wraz z kołami Tamiya 70111. Podnośnik to konstrukcja własna zbudowana na łożyskach liniowych z napędów CD oraz pręcie gwintowanym (przekładnia liniowa) który poruszany jest silnikiem DC poprzez przekładnię zębatą. Jako czujniki położenia podnośnika zastosowane zostały dwie krańcówki mechaniczne. Robot porusza się po torze wyznaczonym przez czarną linię (linefolower), z naniesionymi znacznikami punktów załadunku/rozładunku przesyłki. do wykrywania lini zastosowana jest listwa pięciu czujników cny70, krańcowe czujniki wysunięte są o 3mm do przodu. Robot na podstawie znanego miejsca startu i wcześniej zaprogramowanej mapie layoutu, po podaniu danych przejazdu (punkt pobrania, punkt dostarczenia, numer ładunku), wyznacza optymalną trasę przejazdu. Poruszanie się po hali montażowej wiąże się z koniecznością wykrywania przeszkód znajdujących się na trasie przejazdu. do tego celu zastosowane są 2 sharp GP2Y0A41SK0F w przedniej części robota, które służą tez do pozycjonowania robota względem pobieranego ładunku. W tylnej częsci został umieszczony czujnik ultradźwiekowy HC-SR04 wykrywa przeszkody znajdujące sie za robotem głównie podczas nawrotów robota. Jednym z założeń projektu była identyfikacja pobranego ładunku i sprawdzenie jego zgodności, do tego celu został zastosowany gotowy moduł MP01611 Mera-Projec. Modół ten to czytnik RFID ze zintegrowaną anteną, współpracuje on etykietami UNIQUE 125 kHz zainstalowanymi w paletach. Komunikacje robota zapewnia moduł bluetooth HC-06 współpracujący z aplikacją na smartphonie. Elektronika składa się z kilku modułów. Wszystkie moduły połączone są z płytą główną. Sercem układu jest mikrokontroler Atmega32 zasilany przez stabilizator D24V6F5. Do sterowania silnikami kół zastosowany jest mostek TB6612FNG, a podnośnikiem steruje popularny L293d. Całośc zasilana jest ogniwem litowo-polimerowym o pojemności 800mAh i napięciu 7,4V (2S). Robot posiada uchylną klapę co zapewnia łatwy dostęp do wnętrza. Program został napisany w Bascomie co nie było łatwym tematem ze względu na brak wielu funkcji (np.tabela wielowymiarowa), co zmotywowało mnie teraz do nauki języka C. Schemat blokowy programu. Film przedstawiający robota podczas pracy wraz z zrzutem obrazu z aplikacji androidowej: Pozdrawiam.
  19. Na początku lipca ukończyłem swój pierwszy "poważny" projekt. Jest to robot mobilny oparty o (jak sama nazwa wskazuje) mikro komputer RaspberryPi 2, sterowany przez internet. Wystarczy podłączyć go do internetu, wpisać na dowolnym urządzeniu z przeglądarką internetową i stabilnym połączeniem internetowym jego IP i gotowe. Mamy sterowanie ze strony internetowej wraz z podglądem obrazu z kamery oraz przydatną funkcją, która pokazuje czas działania komputera pokładowego (brzmi bardziej epicko niż malinka ). Robot rozbudowywany nie będzie - ze względu na prądożerność. Pobierał zbyt wiele energii elektrycznej, nawet żeby dołożyć chociażby jeszcze jedną rzecz. W związku z tym musiałem go rozmontować. Ale spokojnie. Obecnie zbieram pieniądze na następny projekt oraz obmyślam plan na jeszcze 2 lub 3 inne. Oto fotka: Po więcej informacji, a także filmik prezentacyjny zapraszam na bloga: raspberrybotics.blog.pl do zakładki "Projekty". Dodatkowo zamieszczam ankietę - jaki #M@linowy projekt chcielibyście zobaczyć jako następny. pi@raspberry~$ sudo shutdown now Film: https://www.youtube.com/watch?v=EVruzPgLvmg Więcej zdjęć: ---Strona ze sterowaniem--- ---Jak pracowałem (kod zakryty, pochwalę się nim [a przynajmniej fragmentem], jak go rozbuduję)---- ---Więcej fotek samego robota--- ---Przejściówka zasilania do silników---
  20. Witam wszystkich bardzo serdecznie! Choć od dawna śledzę tą stronę to dopiero teraz znalazłem chwilę czasu i odwagi do napisania pierwszego posta. Pragnę zaprezentować kolegom robota o nazwie AWM-01 jest on wynikiem mojej pracy magisterskiej pt. "Programowanie robota mobilnego". Broniłem się prawie dwa lata temu:) Studiowałem informatykę i do piątego roku nie wiedziałem dokładnie co to jest rezystor i dlatego pisanie tej pracy oraz tworzenie robota było fantastyczna przygodą. Ogólny zarys: Bardzo chciałem zbudować robota uniwersalnego za pomocą którego mógłby testować różne algorytmy. Nie wiedziałem dokładnie co ostatecznie będzie mi potrzebne dlatego taki robot wydawał się optymalnym rozwiązaniem. Ponadto chciałem aby robot miał możliwie prostą ale i zwartą konstrukcję. Po przekopaniu całego forum doszedłem do następujących wniosków: 1. Modułowa konstrukcja 2. Możliwość rozbudowy o dodatkowe shieldy 3. Łatwa i tania wymiana uszkodzonego elementu 4. Duży wachlarz możliwości 5. Komunikacja z komputerem za pomocą bluetootha 6. Pilot na podczerwień 7. Pomiar poziomu akumulatora Specyfikacja techniczna Robot ma kształt koła o średnicy 91 mm. Sercem robota jest arduino NANO. Podwozie zostało wykonane z płyty PCB – 1,5 mm grubości, która pełni jednocześnie rolę płyty głównej. Płytka została wytrawiona w domowych warunkach metodą termotransferową. Koła mają średnicą 32 mm i są napędzane silnikami firmy Pololu z przekładnią 1 : 100. Silniki są przykręcone do płyty głównej za pomocą dwóch aluminiowych mocowań, pomiędzy silnikami, a płytą główną robota są umieszczone podkładki o grubości 1,5 mm wykonane z płyty PCB - podwyższają one całego robota – co umożliwia zamontowanie na jego spodzie akumulatora. Z przodu zostało zamontowane mikro serwo modelarskie. Na środku jest złącze umożliwiające wpięcie arduino, natomiast z tyłu robota znajduje się mostek H – w tym przypadku jest to układ L293, moduł Bluetooth, oraz odbiornik podczerwieni. Od spodu jest zamontowana płytka na akumulator- jest ona przykręcona za pomocą śrubek M3, a rolę dystansów pełnią tulejki. Do każdego silnika jest zamontowany enkoder odbiciowy. Uzyskałem w ten sposób rozdzielczość ok. 10 impulsów na milimetr przy jeździe prosto oraz ok. 6,5 impulsów na jeden stopień podczas obrotu względem własnej osi – jak się potem okazało parametry te są wystarczające. Wykorzystany w tym robocie akumulator to dwu celowy akumulator li-poli o pojemności 250 mah firmy Dualsky – Po pełnym naładowaniu wystarcza on na ok. 15 minut ciągłej pracy robota. Użyty w robocie czujnik odległości to HC-SR04, ale na płycie głównej jest też złącze dla analogowego czujnika firmy sharp. Do komunikacji z komputerem wykorzystałem układ btm222. Robotem można sterować za pomocą pilota na podczerwień. W ramach pracy magisterskiej udało mi się zrealizować: 1. Budowa robota i pilota do sterowania. 2. Oprogramowanie pilota – powstały dwie wersje programu (Assembler i C++ Atmel Studio). 3. Oprogramowanie robota – sterowanie pilotem (Arduino IDE C++). 4. Program do sterowania robotem z komputera – ( Visual Studio .NET C#) Wizualizacja przebytej drogi przez robota oraz odczytów z czujnika odległości. Za pomocą programu można wyznaczyć ścieżkę jaką ma podążać robot. 5. Implementacja algorytmu bug-2 który w sprzyjających warunkach umożliwia robotowi dotarcie do wyznaczonego punku przy jednoczesnym omijaniu przeszkód a następnie powrót do punktu startowego. (Arduino IDE C++). Z przodu pod spodem robot ma dodatkowe złącze na płytkę z czujnikami odbiciowymi - niestety z braku czasu nigdy nie powstała. Poniżej zamieszczam kilka zdjęć samego robota. Pilot ma trzy przyciski ( cztery kombinacje), dwie diody IR, diodę informującą o zasilaniu oraz diodę wskazującą pracę programu. uC Attiny13. Przykładowy "tor przeszkód" dla robota. Przykładowa mapa zapisana przez robota. Fioletowa linia - droga przebyta przez robota. Pomarańczowe kropki - odkryte przeszkody.
  21. Witam Kolegów! Już od jakiegoś czasu interesuję się elektroniką, programuję Arduino oraz w czystym C ogarniam Atmegę8, jednak do tej pory nie było zainteresowania robotami, aż do zeszłego tygodnia… Przedstawiam mojego nowego, pierwszego robota – światłoluba Pixi Bazą do jego wykonania były: - plexi 3mm (jakieś stare zapasy, niestety porysowana....) - kółko wleczone z Bricomarche - Li-pol 2S 360mAh, - serwa HXT900, - kółka do modelu halowego - płytka wytrawiona według projektu autora artykułu według którego powstał robot - kawałek płytki prototypowej z wlutowanym stabilizatorem L7805CV (5V, 1,5A) - trochę śrubek M3, dłuższe wkręty do zamocowania kółek i gumowe uszczelki do drzwi, gniazdko JST Robot powstał z elementów, których jako modelarz mam pełno w szufladach . Serwa miały spaloną elektronikę, dlatego do samolotów się już nie nadawały, jednak jak się okazało, silniki były sprawne – do napędu robota idealne . Mały li-pol pochodzi z modeli halowych – lekki, tani, oraz można go wielokrotnie ładować. Koła do modelu halowego mają rozwiercony otwór na oś, aby móc go zamocować wkrętem wprost do serwa. Nie jest to idealne połączenie, ale moment potrzebny do napędzania tak lekkiego i małego robota przenosi bez problemu, a przynajmniej wygląda bardzo ładnie . Schemat działania robota rozumiem, ale chyba nie do końca. Trawiona płytka na zdjęciu, jest moim pierwszym trawionym dziełem (i wyszła za pierwszym razem !) Poszukuję informacji, nt. tego, jak odkłada się napięcie na tranzystorze- Uce. Rozumiem, że jeśli jest zatkany, mamy tam pełne 5V, jeśli jest nasycony, mamy tam 0V – tak ? Jednak gdzie znajdę charakterystykę tego, co się dzieję pomiędzy tymi dwoma stanami ? PS. Następny będzie linefollower - elementy już czekają . Tutaj kilka zdjęć mojej konstrukcji
  22. Witam wszystkich użytkowników. Wraz z kolegą chcielibyśmy wam przedstawić efekt naszej pracy inżynierskiej jakim był: Projekt i wykonanie platformy Stewarta z wykorzystaniem serwomechanizmów. Celem niniejszej pracy było zbudowanie platformy Stewarta oraz przystosowanie jej do pracy jako urządzenie wykonawcze dla przykładowych obiektów. Były wśród nich: obiekt „Ball & Plate” (ang. Kula na Płaszczyźnie), sterowanie realizowane przez joystick oraz algorytm utrzymywania stałego poziomu górnej płaszczyzny MPU6050. Kinematykę urządzenia wyliczono korzystając z geometrii klasycznej, a przede wszystkim z funkcji trygonometrycznych i twierdzenia Pitagorasa. Pracę wykonano w oparciu o pewne założenia i uproszczenia usprawniające proces inżynierski realizacji. Praca przedstawia wynikłą w toku jej realizacji problematykę, sposoby jej rozwiązania, jak i konstrukcję elektryczną, mechaniczną wraz z algorytmami sterowania. Napędy obiektu zostały zbudowane w oparciu o serwomechanizmy, zaś elektronika powstała z wykorzystaniem platformy Arduino posiadającej obszerną bazę gotowych bibliotek zawierające proste w implementacji funkcje takie jak np. regulatory, czy funkcje generujące sygnał sterujący dla serwomechanizmów. Regulację obiektem typu „Ball & Plate” zbudowano w oparciu o regulator PID. Do umieszczenia pracy na forum publicznym skłoniła nas bardzo uboga ilość informacji na temat sterowania obiektem Ball&Plate dostępnej w polskim internecie, zwłaszcza przy wykorzystaniu do tego platformy Stewarta. W pracy zostały zastosowane uproszczenia do obliczenia kinematyki platformy, także zamiast 6 dostępnych stopni swobody, są tylko 3. Liczymy na to, że ktoś z szanownych forumowiczów uzupełni nasze obliczenia lub też policzy je w sposób bardziej profesjonalny, gdyż nasza wiedza w tym zakresie była ograniczona i rozwiązaliśmy to metodą geometryczna. Jeśli chodzi o oprogramowanie sterujące napisane w języku C#, proszę mieć na uwadze że oprogramowanie to nie jest jeszcze ukończone (nie miałem czasu dokończyć - Kamil), potrafi się wysypać jeśli będziemy chcieli sterować platformą przed połączeniem się z Arduino. Ponadto zdaje sobie sprawę, że jest napisane słabo ( było to moje pierwsze spotkanie z językiem C#, ponadto w programowaniu obiektowym nieco raczkuje), ale spełnia swoje zdanie. Poza tym oprogramowanie było tylko dodatkiem do pracy. W załączniku znajdują się nasza praca wraz ze wszystkimi plikami potrzebnymi do zbudowania własnej platformy a także kod na Arduino. Poniżej film z działania platformy. Pozdrawiamy i liczymy na jakiś odzew z waszej strony Jeśli temat tutaj nie pasuje to proszę o przeniesienie.
  23. Od roku prowadzę w Katolickim Gimnazjum w Markach zajęcia z robotyki i chciałbym się pochwalić pracami moich uczniów. W ubiegłym roku rozpoczynaliśmy prace budując podwozia z paneli ze sterownika pieca. Teraz jedno z nich służy do prób sterowania pilotem na podczerwień. Kiedy zamawiałem banner w jednej z firm reklamowych zobaczyłem pod murkiem trochę ścinków spienionego pcv. Poprosiłem o możliwość zabrania i od tamtej pory mamy stały napływ materiału. Uczniowie są bardzo kreatywni. Uznali, że skoro nie mamy nieskończonej ilości modułów, czujników należy stworzyć takie podwozia-laboratoria, które umożliwią ich szybką wymianę. To podwozie ze spienionego pcv ma szczycie uchwyt wykonany z fragmentów dwóch wykałaczek. Dzięki temu serwomechanizm łatwo się zakłada i zdejmuje. Podobnie jak czujnik ultradźwiękowy. W podbrzuszu podwozia gniazda podłączenia serwomechanizmu i czujnika ultradźwiękowego. Również specjalna kieszeń na upchanie zbyt długiego kabla. Robot jeździ po równym więc ciasno wciśnięty kabelek nie wypada. Drugie podwozie z takiego samego materiału wozi na grzbiecie samodzielnie wykonane arduino na płytce uniwersalnej PDU-19 oraz mostek h na płytce PDU-17. Chodziło o naukę czytani schematów i lutowania. Podwozie ma z przodu zakładaną klapkę na wcisk na rożnego rodzaju czujniki, płytki stykowe itp. W założeniu mają być klapki z serwomechanizmem i HC-SRO4, włącznikami krańcowymi (zresztą taki jest przylutowany jako reset), czujnikami na podczerwień czy takimi, które uczynią z niego linefollower. Pod "płytą główną", umieszczoną na plastikowych dystansach, zostało miejsce na dodatkowe ewentualne elementy. Starsi uczniowie nie chcą już budować pojazdów jeżdżących (na razie) tylko pracują nad rozbudowanym systemem inteligentnego domu. Właśnie kończą tworzyć makietę i kompletujemy potrzebne elementy. Dom "powiadomi" o intruzie, zalaniu, pożarze, a wszystko sms-em dzięki staremu telefonowi komórkowemu. Tak wyglądają prawie wszystkie nasze podwozia Mają jedno podstawowe zadanie - są pewnego rodzaju jeżdżącymi laboratoriami, które służą do testowania nowych rozwiązań. Gimnazjalista potrafi. O początkach naszej działalności pisałem na forum tutaj >>
  24. Być może słyszeliście o płytce micro:bit, którą BBC chce rozdawać dzieciom w Wielkiej Brytanii? Otóż istnieje oddolna inicjatywa, żeby na tą płytkę zrobić Pythona, tak, żeby dzieci mogły poprogramować też troche na otwartej platformie, a nie tylko same Microsofty, mbedy i kompilacja "w chmurze". Jest to robione przez ochotników w wolnym czasie, ale myślę, że już stanowi całkiem niezłą alternatywę. Aby przyśpieszyć i polepszyć ten proces, powstał program Micro World Tour, który pozwala nam pobawić się przedpremierową wersją tej płytki przez tydzień -- potem musimy ją wysłać do następnej osoby. Wziąłem udział w tym programie i zbudowałem tego prostego robota. Ponieważ miałem tylko tydzień i dużo planów, postanowiłem zacząć od najprostszej rzeczy, czyli robota jeżdżącego, omijającego przeszkody, zbudowanego z tego, co miałem pod ręką (nie było czasu na zamawianie części): Tak więc mamy tu dwa 9-gramowe serwa przerobione na ciągłą rotację, małą płytkę prototypową, pojemnik na baterię (potem musiałem go zastąpić pudełkiem z LiPo), kulkę podporową, dwa kółka i trochę kabelków. Potem jeszcze dodałem czujnik odległości SHARP od Pololu (niestety wymagany jest taki na 3V). Do połączenia z płytką użyłem zwykłych śrub wkręconych w kawałek plastiku. Całość zebrana do kupy taśmą dwustronną. Jak już wspomniałem, programowane toto jest w Pythonie. Mieliśmy trochę problemów z implementacją PWM na tej płytce i musiałem dodać obejscia przy inicjalizacji timera (to będzie naprawione w wersji finalnej). Kod wygląda mniej więcej tak: import microbit class Servo: def __init__(self, pin, trim=0): self.pin = pin self.trim = trim self.position = 90 self.set_period() def set_period(self): self.pin.set_analog_period(20) self.write(self.position) microbit.sleep(80) self.pin.set_analog_period(20) self.write(self.position) microbit.sleep(80) self.pin.write_analog(0) def write(self, degrees): self.pin.write_analog(int(25 + 100 * degrees / 180 + self.trim)) self.position = degrees class Robot: def __init__(self): self.left_servo = Servo(microbit.pin0, 2) self.right_servo = Servo(microbit.pin1, 1) def go(self, distance): microbit.display.show(microbit.Image.ARROW_S) self.left_servo.write(0) self.right_servo.write(180) microbit.sleep(int(distance * 2000 / 17)) self.stop() def turn(self, angle): if angle > 0: microbit.display.show(microbit.Image.ARROW_E) self.left_servo.write(0) self.right_servo.write(0) microbit.sleep(int(angle * 64 / 9)) else: microbit.display.show(microbit.Image.ARROW_W) self.left_servo.write(180) self.right_servo.write(180) microbit.sleep(int(-angle * 64 / 9)) self.stop() def stop(self): microbit.display.show(microbit.Image.DIAMOND) self.left_servo.write(90) self.right_servo.write(90) def get_distance(self): return microbit.pin2.read_analog() robot = Robot() while True: robot.go(5) if robot.get_distance() > 700: robot.turn(20) left_distance = robot.get_distance() robot.turn(-40) right_distance = robot.get_distance() robot.turn(20) if left_distance < right_distance: robot.turn(60) else: robot.turn(-60) Jak widać, wielkiej filozofii nie ma. Natomiast genialnie się to testuje, bo mamy dostęp do konsoli Pythona po złączu szeregowym, więc wszystkie komendy możemy sobie "na żywo" wypróbować. Na koniec robot w akcji:
  25. Projekt „Picasso” jest dostępny na licencji Creative Commons Uznanie autorstwa 3.0 Polska. Pewne prawa zastrzeżone na rzecz Grzegorza Kolbucha, Adrian Dobosz. Robot powstał w ramach programu Akademia Orange, realizowanego przez Fundację Orange. Zezwala się na dowolne wykorzystanie treści - pod warunkiem zachowania niniejszej informacji, w tym informacji o stosowanej licencji, posiadaczach praw oraz o programie Akademia Orange. Treść licencji jest dostępna na stronie: http://creativecommons.org/licenses/by/3.0/pl/ 1. WPROWADZENIE „Picasso” jest zaawansowanym robotem, którego głównym zadaniem jest wykorzystanie trzech aerografów oraz własnej mobilności do stworzenia różnorodnych dzieł artystycznych. Dzięki zastosowaniu możliwości obecnej elektroniki, mechaniki i informatyki posiada możliwość autonomicznego poruszania się i tworzenia wzorów mieszając 3 podstawowe kolory farb. Dodatkowym atutem jest możliwość zdalnego sterowania nim. 2. ELEMENTY MECHANICZNE Cała konstrukcja robota opiera się na ramie aluminiowej, do której przymocowane zostały z frontu i góry płyty z poliwęglanu. Na tak solidnej konstrukcji umieszczono silniki z mocowaniami i przekładniami, butla na powietrze i cała część układu pneumatycznego wraz z aerografami. Masa konstrukcji to około 30 kg. 2.1. Mocowanie silników z przekładnią Rysunek nr 1. przedstawia mocowanie silników, widoczne są na nim: markowy silnik firmy Maxon o mocy 90W, dwa koła zębate z paskiem w roli przekładni zwiększającej moment obrotowy (przełożenie 2,5:1), oraz aluminiowe mocowanie tego układu. Rys. 1. Mocowanie silników z przekładnią – projekt 2.2. Koła Koła zostały tak dobrane, aby przenieść duży ciężar robota oraz, aby ich masa nie była zbyt duża. Z tego powodu wybrane zostały koła do wyczynowych modeli RC o średnicy 170 mm z felgą wykonaną z twardego tworzywa sztucznego. Opony są gumowe i bieżnikowane w celu zwiększenia przyczepności nawet na nierównym terenie. Wypełnione są specjalną wkładką piankową, która amortyzuje ugięcia opony. Rys. 2. Koło – projekt 3. SILNIKI Robot został wyposażony w cztery silniki DC firmy MAXON – światowego lidera w produkcji precyzyjnych napędów elektrycznych. Silniki te posiadają duży moment obrotowy i prędkość, a ich masa to ok. 0,5 kg. Mają bardzo dobry stosunek mocy (90W) do objętości dzięki zastosowaniu magnesów neodymowych i specjalnej technologii nawijania uzwojenia. Rys. 3. Silnik firmy MAXON napędzający robota 4. UKŁAD ZASILANIA Zasilanie układu napędowego jak i płytek elektronicznych odbywa się poprzez zastosowanie akumulatorów litowo-polimerowych. Są to ogniwa firmy Turnigy o napięciu 22,2 V i pojemności 3000 mAh (Rys. 4). Składa się ono z sześciu ogniw o standardowym napięciu 3,7 V połączonych szeregowo. Takie źródło prądu było niezbędne, ponieważ posiada ono bardzo duży prąd rozładowania. Jest to potrzebne, gdyż silniki przy gwałtownym rozruchu pobierają prąd do 40A każdy! Prąd chwilowy jaki można uzyskać z takiego ogniwa można obliczyć za pomocą parametrów podanych na każdym ogniwie – parametr „C” i pojemność. Dla tego akumulatora jest to odpowiednio 40C i 3000mAh co jest równe 3Ah. Maksymalny prąd chwilowy obliczamy ze wzoru nr 1: wzór nr 1. Do ich ładowania używa się specjalnej ładowarki mikroprocesorowej, do której oprócz podstawowych kabli ( „+” i „-”) podłącza się również złącze do balansowania napięcia na poszczególnych sześciu składowych ogniwach. 5. UKŁAD PNEUMATYKI Układ pneumatyki jest zbudowany z butli na sprzężone powietrze (Rys. 5), reduktora wysokiego ciśnienia (Rys. 6), reduktorze niskiego ciśnienia, wyspie zaworowej z czterema elektrozaworami oraz trzech aerografach do których będą dołączone 3 pojemniczki z kolorami RGB (ang. Red Green Blue, Czerwony Zielony Niebieski). Platformę wyposażono w pięć manometrów, czyli urządzeń wskazujących aktualne ciśnienie. Umiejscowione są: jeden na butli, jeden na przejściówce, dwa na reduktorze wysokiego ciśnienia oraz jeden na reduktorze niskiego ciśnienia. Pierwszy reduktor będzie zmniejszał ciśnienie z około 200 bar na 8 bar, a drugi (niskiego ciśnienia) z 8 bar na 4 bary, które będą ciśnieniem zasilającym aerografy. Elektrozawory będą sterowane z układu elektronicznego w postaci cyfrowej, czyli włączony/wyłączony. Zostały one umieszczone na wyspie zaworowej w celu redukcji przewodów powietrza. Rys. 5. Butla wysokiego ciśnienia Rys. 6. Reduktor wysokiego ciśnienia 6. SYSTEMY SENSORYCZNE Do prawidłowego działania robota niezbędne są czujniki. Jest to podstawa dzięki której robot może komunikować się z otoczeniem odbierając dane w postaci analogowej i przetwarzając na wartości cyfrowe z określoną rozdzielczością. W tym projekcie zastosowano szereg niezbędnych czujników do detekcji przemieszczania się robota (enkodery), do wykrywania przeszkód na swojej drodze (czujniki odbiciowe), wykrywania ruchu (czujniki PIR), czujniki temperatury oraz światła. Enkodery są to czujniki, które pozwalają na zliczanie impulsów poprzez zastosowanie dwóch transoptorów (czujników odbiciowych, które posiadają diodę nadawczą i element odbiorczy, np. fotodiodę) umieszczonych obok tarczy ze zrobionymi na obrzeżach szczelinami. Dzięki wykrywaniu tych szczelin przy obrocie jesteśmy w stanie zliczać ile wykrywamy tych impulsów w czasie zamieniając tą wartość na drogę kątową. Parametrem enkoderów jest ich rozdzielczość podawana w impulsach na obrót. W tym przypadku będziemy korzystać z bardzo dokładnych enkoderów posiadających 1024 impulsy na obrót – jest to model HEDS 5540 (Rys. 7). Rys. 7. Enkoder HEDS 5540 Dalmierz to czujnik podający odległość. Można je podzielić na czujniki analogowe i cyfrowe. W projekcie „Picasso” użyte będą 4 dalmierze analogowe firmy Sharp model GP2Y0A21YK0F (Rys. 8), które działają na zasadzie transoptora, czyli posiadają nadajnik i odbiornik podczerwieni. Sygnał zwrotny jest w postaci napięcia i na podstawie jego poziomu odczytuje się odległość między czujnikiem, a przeszkodą. Zasięg takich czujników to od 10 cm do 80 cm. Rys. 8. Projekt dalmierza PIR (ang. Passive Infra Red - pasywny czujnik podczerwieni) jest to czujnik do wykrywania ruchu wykorzystujący podczerwień, dzięki której potrafi stwierdzić zmianę temperatury. Skuteczna odległość wykrywania obiektów przez czujnik Panasonic AMN33111J to 5 metrów. Informacja o wykryciu przekazywana jest za pomocą sygnału cyfrowego. Wykrywanie Najczęściej tego rodzaju sensory używane są do systemów alarmowych. 7. UKŁAD ELEKTRONICZNY Schemat układu został zaprojektowany w programie Eagle 6.3.0 przy użyciu głównie elementów w technologii SMD (ang. Surface Mounted Devices), czyli do montażu powierzchniowego. Tego rodzaju elementy charakteryzują się lepszymi parametrami w porównaniu do elementów THT. Są często wykonane w nowszej technologii i zajmują mniej miejsca na płytce. Wadą jest niestety mniejsza zdolność odprowadzania ciepła. Układ elektroniczny opiera się o najbardziej rozbudowany mikrokontroler firmy Atmel z rodziny AVR - ATMEGA2560-16AU. Jest to 8-mio bitowy układ wyposażony 256 KB pamięci Flash i 100 pinów, które można wykorzystać do sterowania urządzeniami przy taktowaniu 16 MHz. To dzięki niemu można wgrać wcześniej napisany program w języku C++ i sprawić, aby robot nie tylko był zdalne sterowany, ale również potrafił sam coś namalować. Do sterowania silnikami użyte zostały specjalne mostki H zintegrowane w jednej obudowie. Są to układy VNH3SP30 firmy ST Microelectronics . Ich zaletami jest mała obudowa, zabezpieczenia przeciwzwarciowe, łatwość sterowania i duży prąd przewodzenia wynoszący 30A. Na jeden silnik zostały użyte 2 sztuki, aby dodatkowo zwiększyć prąd przewodzenia. Wadą tych układów jest możliwość sterownia tylko jednym silnikiem co w robotyce mobilnej zdarza się dosyć rzadko. 7.1. Schemat układu elektronicznego Schemat układu elektronicznego tworzą 3 oddzielne płytki tak jak wcześniej było wspomniane. Pierwszą z nich będzie płytka główna sterująca całym robotem począwszy od układu zasilania, a skończywszy na sterowaniu aerografami i diodami LED. Na rys. 9 przedstawiono schemat układu zasilania robota. Jest to newralgiczna część, ponieważ robot jest zasilany napięciem 24V z ogniwa litowo-polimerowego o dużej wydajności prądowej. W przypadku zwarcia, błędu przy podłączaniu mogłoby dojść do przepalenia ścieżek, uszkodzenia się układów scalonych lub co gorsza zapalenia się całego robota. Z tego powodu zastosowano szereg zabezpieczeń, a najważniejszym z nich jest zabezpieczenie przed odwrotną polaryzacją, czyli przed pomyłką zamiany potencjału dodatniego („plusa”) z ujemnym („minusa”). Taka pomyłka skutkowałaby ww. przypadkami. Dodatkowo w obwód wpięty został bezpiecznik, aby wyeliminować spalenie układu z powodu zwarcia. Rys. 9. Schemat układu elektronicznego robota Picasso Układ scalony IC8 na schemacie to stabilizator napięcia zbijający napięcie z 12V branych z wtyczki balansującej akumulatora 6-cio ogniwowego. Na wyjściu za stabilizatorem mamy już napięcie 5V, które służy do zasilnia mikrokontrolera oraz czujników. Dodatkowo wpięta jest równolegle dioda LED1 sygnalizująca obecność tego napięcia w obwodzie. Kondensatory w tym układzie pełnią rolę filtrującą zakłócenia, głównie powstałe w skutek dużego poboru prądu przez silniki. Przy mikrokontrolerze występuje kilka niezbędnych elementów bez których całość by nie funkcjonowała. Są nimi : rezystor podciągający linię „RESET” do 5V, złącze programowania z liniami +5V, GND, MOSI (ang. Master Output Slave Input), MISO (ang. Master Input Slave Output), SCK (linia taktująca komunikację), RESET. Tego typu programowanie odbywa się poprzez SPI (ang. Serial Peripheral Interface, pol. szeregowy interfejs urządzeń peryferyjnych) bardzo popularne dla rodziny AVR. Drugą możliwością jest programowanie poprzez JTAG (ang. Joint Test Action Group). Dodatkowo oprócz wymienionych elementów blisko mikrokontrolera znajduje się układ taktujący o maksymalnej częstotliwości 20 MHz. Oparty jest on o zewnętrzny rezonator kwarcowy i dwa kondensatory o małej pojemności 12-22pF. W tym przypadku jest to zintegrowany rezonator posiadający wewnątrz obudowy już dobrane kondensatory. W razie potrzeby można również skorzystać z wewnętrznego rezonatora jednak jest on mniej dokładny i posiada mniejszą częstotliwość pracy, która wynosi 8 MHz. Po prawej stronie schematu znajdują się wyprowadzenia gniazd do podpięcia mostków, czujników, elektrozaworów oraz modułu komunikacji RCR-V2 firmy Wobit. Moduł ten pracuje na częstotliwości 868 Mhz, a jego maksymalny zasięg w linii prostej na otwartej przestrzeni wynosi około 2 km. Zaletą modułu jest łatwość obsługi przez mikrokontroler (korzysta z linii TX i RX i jest „przezroczysty” dla dwóch podłączonych urządzeń). Oprócz tego posiada tryb „radio”, w którym możliwe jest wysyłanie komend do wszystkich urządzeń wyposażonych w takie same moduły. Moduł ten jest również w wersji USB, aby bezpośrednio podpiąć go do komputera i sterować, np. robotem przy pomocy laptopa. Do zdalnego sterowania robota „Picasso” został stworzony dedykowany pilot zdalnego sterowania również wyposażony w opisany powyżej moduł. Ciekawą funkcją jest wyświetlanie danych na pilocie przy pomocy alfanumerycznego wyświetlacza LCD (ang. Liquid Crystal Display). Jest to pomocne przy weryfikacji poprawnego zachowania się robota. Sam układ zawiera bliźniacze zabezpieczenia przed zwarciem i odwrotną polaryzacją. Dodatkowo na płytce znajdują się 4 duże przyciski do załączania elektrozaworów oraz 4 mikroprzełączniki do wyboru funkcji na LCD (Rys.10). Do sterowania prędkością i kierunkiem ruchu robota zaimplementowano joystick taki jak można spotkać w „padach” do konsol. Umożliwia on płynne sterowanie prędkością robota w dwóch osiach za pomocą dwóch wbudowanych potencjometrów. Trzy nóżki potencjometru podłączone są do +5V, GND i wejścia przetwornika analogowo-cyfrowego w mikrokontrolerze. Zamieniana jest wartość napięcia na liczbę i na tej podstawie weryfikowane jest wychylenie joysticka. W domyślnym położeniu odczyt z obu potencjometrów bliski jest połowie napięcia zasilania, czyli około 2,5V. W jedną stronę wychylając joystick wartość napięcia rośnie, a w drugą maleje dla jednej osi. Na tej podstawie generowane jest wypełnienie PWM (ang. Pluse Width Modulation) sterujące prędkością silników przesyłane drogą radiową. Każdy z 4 silników może być sterowany osobno, co daje większe możliwości manewrów. Rys. 10. Schemat elektroniczny pilota zdalnego sterowania Płytki została wykonana metodą termotransferową schematy ścieżek płytek (Rys. 11 - 14). Rys. 11. Widok ścieżek dla płytki sterującej robotem Rys. 12. Widok ścieżek płytki pilota Rys. 13. Widok od strony „TOP” płytki sterownika silnika Rys. 14. Widok od strony „BOTTOM” płytki sterownika silnika Płytka sterownika jako jedyna została wykonana na płytce dwuwarstwowej ze względu na potrzebę dobrego odprowadzania ciepła od spodu mostka (większe pola lutownicze + przelotki) oraz ze względu na minimalizację rozmiarów. Rys. 13 przestawia widok od strony elementów smd –„TOP”, zaś rys. 14 stronę „BOTTOM”. 8. MONTAŻ KONSTRUKCJI Podstawą całego robota jest blacha aluminiowa o grubości 4 mm i wymiarach zewnętrznych 800 x 800 mm z wycięciami na koła i aerografy widoczne na rys. 15. Na tej podstawie zostały zamontowane podpory z łożyskami na dystansach z krążków. W podporach umieszczono wał o średnicy 12 mm, a na nim duże koło zębate do przeniesienia napędu z silnika Maxon. Rys. 15. Zaprojektowana blacha aluminiowa z wycięciami Dla zakrycia wrażliwej części elektronicznej i butli wysokiego ciśnienia została zrobiona obudowa z aluminiowej blachy o grubości 1 mm. W celu jej usztywnienia została połączona aluminiowymi kątownikami i znitowana. Dodatkowo, aby widać było przednią część z aerografami dodano przód z poliwęglanu również pełniącego rolę obudowy. Trzy aerografy zostały zamontowane z przodu przy półkolistym wycięciu co 90˚, aby były dobrze widoczne w trakcie malowania (Rys.16) oraz reduktor niskiego ciśnienia z manometrem i wyspą zaworową. Po niewidocznej tylnej części robota (ukrytej pod obudową) znajduje się butla z reduktorem wysokiego ciśnienia, płytki elektroniczne oraz wyprowadzenia do włączników zasilania i diod LED wraz z buzzerem. Rys. 16. Poszczególne elementy zamontowane w robocie : 1- aerografy, 2- silniki z przekładnią i enkoderami, 3- wyspa zaworowa z reduktorem niskiego ciśnienia, 4- podpory łożysk z dużą zębatką, 5- butla z reduktorem wysokiego ciśnienia, 6- płytki elektroniczne, 7 – włączniki zasilania i diody sygnalizacyjne z buzzerem 9. EFEKT KOŃCOWY
×