Skocz do zawartości

Przeszukaj forum

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

  • 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 - roboty
    • Projekty - DIY
    • Projekty - DIY (początkujący)
    • Projekty - w budowie (worklogi)
    • 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 238 wyników

  1. Witam. Chciałbym Wam przedstawić mojego pierwszego robota klasy LineFollower o nazwie Turtle. Robot składa się z dwóch modułów. Po raz pierwszy zaprezentował się na zawodach ROBOmotion 2013 w Rzeszowie. Moduł czujników W module zastosowałem 5 transoptorów CNY70. Początkowo zostały one ułożone w linii prostej. Po pierwszych zawodach zmieniłem ich ułożenie poprzez przesunięcie 2 skrajnych sensorów w stronę modułu głównego. Czujniki są podłączone do kolejnych portów ADC mikrokontrolera. Wymiary modułu czujników to: 90 x 40mm. Moduł czujników połączony jest za pomocą listewek węglowych z modułem głównym. Moduł główny Płytka modułu głównego spełnia dwie podstawowe role: jest ona podwoziem dla robota oraz obwodem drukowanym. Wymiary: 90 x 70mm. Za przetwarzanie sygnału analogowego z czujników na postać cyfrową, realizacje algorytmu jazdy LineFollowera, a następnie sterowanie mostkami H i generowanie sygnału PWM odpowiedzialny jest mikrokontroler Atmega8 Jako sterownik silników zastosowany został moduł TB6612FNG. Jeden moduł odpowiedzialny jest za sterowanie dwóch silników. Do zasilania robota używam pakietu Li-Pol Turnigy nano-tech 300mAh. Bezpośrednio z akumlatora zasilane są silniki natomiast stabilizowane napięcie 5V w celu zasilenia pozostałej elektroniki zostało uzyskane dzięki przetwornicy S7V7F5. Napęd Napęd robota stanowią dwa silniki Pololu HP z przekładnią 30:1 na które zamontowane są koła wraz z oponami firmy Pololu o średnicy 32mm. Program Program został napisany w języku C. Zaimplementowany został algorytm PID z pewnymi modyfikacjami. Osiągnięcia 1 miejsce - Robocomp 2013 w Krakowie - LF Light Filmy Zamieszczam również dwa filmy które zostały nagrane u mnie w domu na prowizorycznej trasie. Za kilka dni postaram się dodać kilka nagrań z uczelni.
  2. Prezentuję moją najnowszą konstrukcję. Jest to robot klasy minisumo "Jeżyk". Jest to robot napędzany dwoma mocnymi silnikami firmy Dunkermotoren, poruszający się na gąsienicach i wyposażony w 8 czujników linii, 16 czujników przeciwnika, enkodery, układy do pomiaru poboru prądu i napięcia oraz ciekawy interfejs użytkownika. Robot posiada zwartą, solidną konstrukcję i estetyczny wygląd. PROJEKT: Projekt robota jak większość moich projektów wykonany został przy pomocy dwóch programów: Autodesk Inventor oraz Altium Designer. Nie będę się tu rozpisywał na temat projektu, przedstawię tylko efekty mojej pracy oraz przedstawię kilka pomysłów, które wykorzystałem. Płytki zderzaków oraz płytki boczne robota zostały ukształtowane tak, aby robot nie tracił przyczepności nawet gdy zostanie uniesiony. Płytki boczne dodatkowo ukształtowane są tak, że chronią gąsienice i utrudniają zaklinowanie koła klinem przeciwnika (rysunki poniżej). Na rysunku poniżej widać jak dzięki projektowaniu trójwymiarowemu i przeniesieniu całego projektu z Inventora do Altium Designera (a później z powrotem do Inventora) mogłem bardzo dokładnie rozmieścić elementy. Widać jak blisko są elementy umieszczone silników i przekładni. Czujniki linii zostały rozlokowane po dwa na każdym narożniku robota (strzałki wskazują czujniki na rysunkach poniżej). Dzięki czemu uzyskałem dużą odporność na uszkodzenia mechaniczne czujników, jak jeden zostanie uszkodzony to działa jeszcze drugi. Jeden z czujników został umieszczony pod kątem, dzięki czemu wykrywa on białą linię o kilkanaście milimetrów wcześniej niż czujnik skierowany prostopadle do podłoża. Pozwala to na osiąganie przez robota większych prędkości, ponieważ zwiększa się odległość jaką może wykorzystać robot na wyhamowanie przed krańcem ringu. Robot został wyposażony w 12 czujników Sharp GP2Y0D340K. Rozlokowane zostały ona tak, że każdy kolejny czujnik obrócony jest względem poprzedniego o 30 stopni. Tak duża ilość czujników pozwala zminimalizować martwą strefę, czyli powierzchnię ringu na, której może znajdować się robot przeciwnika niezauważony przez mojego robota. Ponieważ czujniki z przodu i z tyłu robota zostały umieszczone dość wysoko (ok 35mm, w przeciwieństwie do czujników umieszczonych bardzo nisko po bokach między kołami), robot został wyposażony w dodatkowe cztery czujniki przeciwnika zbudowane na bazie układów Sharpa IS471F umieszczonych na płytkach zderzaków nisko z przodu i z tyłu robota. Rozmieszczenie czujników przedstawione jest na rysunkach poniżej. Zderzaki robota zostały zaprojektowane tak, aby można było na nich zamontować kliny w formie blachy jak i w wformie kolców (widok poniżej). Przedstawione poniżej projekty płytek drukowanych mają na celu zaprezentowanie jak dokładnie można odwzorować w projekcie rzeczywisty układ (i przy okazji pochwalenie się efektami mojej pracy ) Płyta główna: Na płycie głównej robota zostało umieszczonych większość elementów: procesor, układ zasilania, mostki H, większość czujników, układ pomiaru prądu i napięcia, akcelerometr, odbiornik IR, klawiatura, złącza do pozostałych modułów (płytek), złącze programowania (tylko 4 styki), diody RGB, złącza do silników i włącznik. Płyta główna mocowana jest do robota za pomocą czterech czernionych śrubek M2. Do płytki przylutowane zostały 4 kabelki silikonowe zakończone konektorami (osłonięte koszulkami termokurczliwymi) do podłączenia silników. Moduł: Płytka modułu mieszczonego nad płytą główną została zaprojektowana tak, aby w jej miejsce można było zaprojektować inny moduł,. Np. Zwiększający możliwości robota lub z wyświetlaczem OLED. Na górnej stronie płytki umieszczone zostało 10 diod RGB oraz zbudowane z pojedynczych czerwonych diod LED 3 wyświetlacze siedmiosegmentowe. Na spodzie płytki umieszczony został moduł Bluetooth BTM-220 wraz z anteną. Płytki boczne: Płytki boczne zostały zaprojektowane tak, że lewa i prawa płytka są identyczne. Zostały na nich umieszczone dwa czujniki linii zamontowane na brzegu płytki i umieszczone pod kątem 45 stopni do podłoża, czujniki optyczne przetwornika obrotowo-impulsowego oraz jeden czujnik przeciwnika. Na płytce tej przewidziane zostały również otwory do zamontowania silników oraz miejsca na wlutowanie nakrętek M2 do których przykręcona zostaje płyta główna oraz klapka akumulatora. Zderzaki: Na płytach zderzaków zostały umieszczone dwa czujniki IS471F wraz z diodami nadawczymi oraz dwa czujniki linii. Dodatkowo na płytce umieszczone zostały pola lutownicze do których przylutowane zostały nakrętki M2, do których z kolei przykręcane są kliny robota. Klapka akumulatora: Efekt po wyeksportowaniu płytek z Altium Designer z powrotem do Inventora: ELEKTRONIKA: Do sterowania robotem wybrałem jeden z najnowocześniejszych mikrokontrolerów ośmiobitowych, mikrokontroler firmy Atmel z serii AVR ATXmega128A1. Wyposażony jest on w 128 kilobajtów pamięci flash, 8 kilobajtów pamięci SRAM oraz 4 kilobajty pamięci EEPROM. Zasilany jest napięciem z zakresu 1,6-3,6 wolta i może pracować z częstotliwością do 32 MHz. W projekcie wykorzystana została wersja mikrokontrolera w stu pinowej obudowie TQFP. Posiada on 78 programowalnych linii wejścia/wyjścia które w całości zostały przeze mnie wykorzystane. Mikrokontroler ten programowany jest poprzez interfejs PDI, który wymaga tylko podłączenia dwóch pinów mikrokontrolera (RESET/PDI_CLOCK oraz PDI_DATA) oraz zasilania (Vcc i GND). Do zasilania robota został wybrany akumulator o napięciu nominalnym 11,1 V, zbudowany z trzech ogniw litowo-polimerowych. Akumulator został umieszczony pomiędzy silnikami robota i mocowany jest przy pomocy przykręcanej klapki wykonanej z laminatu. Współcześnie większość elementów elektronicznych wykorzystywanych w zastosowaniach amatorskich (amatorskim zastosowaniem jest właśnie robot minisumo) zasilanych jest napięciem 3,3 V lub 5 V. W zbudowanym robocie wykorzystywane zostały elementy zasilane zarówno napięciem 3,3 V (m.in. mikrokontroler) jaki i 5 V (m.in. czujniki Sharp). Aby zminimalizować straty mocy podczas obniżania napięcia zasilania w układzie zasilacza zastosowane zostały przetwornice impulsowe. W układzie zasilania pracują dwie przetwornice ST1S10, jedna obniża napięcie do wartości 5V druga zaś do wartości 3,3 V. Przetwornica ST1S10 pracuje z częstotliwością nominalną 900 kHz i ma sprawność do 90%. Do współpracy z przetwornicami wybrane zostały kondensatory tantalowe low ESR (low Equivalent Series Resistance) oraz ceramiczne w obudowach SMD. Z każdą przetwornicą współpracują po dwa kondensatory tantalowe o pojemności 100 μF i ceramiczne o pojemności 22 μF. Napięcie wyjściowe przetwornicy ST1S10 ustalane jest za pomocą dzielnika rezystorowego. Wartości rezystorów (rezystory R68 - R70 widoczne na rysunku poniżej) zostały dobrane według wzorów podanych w nocie katalogowej układu ST1S10. Równolegle do rezystorów R68 i R70 podłączone zostały kondensatory ceramiczne o pojemności 4,7 nF. Kondensatory te są potrzebne gdy do wyjścia przetwornicy podłączona jest pojemność powyżej 100 μF i zabezpieczają układ przed zadziałaniem zabezpieczenia zwarciowego przetwornicy podczas włączania zasilania. Do włączania układu zasilania, a co za tym idzie całego robota wykorzystane zostały wejścia Enable układów, do których podłączony został niewielki przełącznik suwakowy. Poniżej przedstawiony został jeden z dwóch identycznych układów sterowania silnikiem prądu stałego. Jest to schemat przerysowany bez zmian z noty katalogowej układu VNH3SP30. W kodzie źródłowym programu robota (w załączniku) można znaleźć gotową napisaną przeze mnie bibliotekę obsługi dwóch układów VNH3SP30 dla mikrokontrolerów z z serii Xmega. Robot wyposażony został w układy pomiaru napięcia akumulatora oraz pomiaru pobieranego z akumulatora prądu. Pomiar napięcia dokonywany jest przy pomocy wbudowanego w mikrokontroler przetwornika ADC, który mierzy napięcie na wyjściu dzielnika (rysunek poniżej). Do pomiaru prądu wykorzystany został układ ACS715. MECHANIKA: Napęd robota stanowią dwa silniki komutatorowe prądu stałego (G30.2) wraz z przekładniami planetarnymi (PLG30) firmy Dunkermotoren (zdjęcie poniżej). Podstawowe parametry napędu: -waga 140 gram -moment znamionowy 4,05 Ncm -moment trzymający 11,34 Ncm -prąd znamionowy 0,6 A -prąd zwarciowy (rozruchowy) 1,4 A -napięcie znamionowe 12 V -znamionowa prędkość obrotowa (na wyjściu przekładni) 644 obr/min Jako koła wybrałem stosowane w przemyśle do przenoszenia napędu koła zębate 16T2.5 40/2F (zdjęcie poniżej). Koła te musiałem podtoczyć aby dopasować do projektu oraz aby zmniejszyć ich wagę. Gąsienice wykonałem z paska zębatego T2.5 o długości 200mm i szerokości 7mm. Pasek obkleiłem przy pomocy kleju cyjano-akrylowego paskiem gumy modelarskiej o grubości 1mm. Główny szkielet robota stanowią silniki wraz z przekładniami połączone płytkami laminatu (rysunek poniżej). Koła napędowe mocowane są do osi przekładni za pomocą dwóch śrubek umieszczonych w piaście koła. W koło wolne zostały wbite dwa łożyska kulkowe. Koło wraz z łożyskami umieszczone jest na wytoczonej z aluminium osi, która przykręcona została do silnika (mocując jednocześnie płytkę drukowaną) i zabezpieczone pierścieniem segera (rysunek poniżej). PROGRAM: Kod źródłowy programu znajduje się w załączniku. Program napisany został w darmowym środowisku programistycznym ECLIPSE, a do kompilacji programu posłużył darmowy kompilator GCC WinAVR. Kod programu odpowiedzialny za obsługę scalonych mostków H i pośrednio za sterowanie silnikami został napisany w formie biblioteki dołączonej do głównego programu. Dzięki czemu może być wykorzystany w innych projektach wykorzystujących dwa scalone mostki H VNH3SP30. Do obsługi przetworników ADC w które wyposażony jest mikrokontroler ATXmega128A1 (czyli pośrednio do obsługi czujników linii i przetworników obrotowo impulsowych) wykorzystane zostały gotowe biblioteki (www.atmel.com). Obsługa czujników przeciwnika odbywa się poprzez zwykłe odczytywanie stanu portów wejściowych do których podłączone zostały czujniki. Do sterowania diodami wykorzystane zostało sześć sygnałów PWM generowanych przez liczniki wbudowane w mikrokontroler. Ogólna struktura programu jest wspólna dla wszystkich dla wszystkich algorytmów walki i została przedstawiona w formie schematu blokowego na rysunku poniżej. Mikrokontroler po włączeniu i ustabilizowaniu się napięcia zasilającego przechodzi do wykonywania programu. Pierwszą czynnością mikrokontrolera jest ustawienie taktowania. Domyślnie mikrokontroler taktowany jest z wewnętrznego oscylatora 2MHz. Natomiast w programie taktowanie przełączane jest na wewnętrzny kalibrowany oscylator RC o częstotliwości 32MHz. Procedura przełączania źródła taktowania wygląda następująco: 1. włączenie oscylatora 32 MHz, 2. ustawienie dzielnika częstotliwości dla oscylatora 32 MHz, 3. oczekiwanie na ustabilizowanie się oscylatora 32 MHz, 4. zmiana źródła taktowania z oscylatora 2 MHz na oscylator 32 MHz, 5. wyłączenie oscylatora 2 MHz, 6. auto kalibracja wewnętrznego oscylatora RC 32 MHz. Po ustawieniu taktowania konfigurowane są porty oraz peryferia mikrokontrolera, a także układ przerwań. Następnie program oczekuje na wciśnięcie przycisku START. Jeżeli przycisk START zostanie wciśnięty i przytrzymany dłużej niż 1 sekundę program przejdzie do funkcji diagnostycznej, w której odczyty z czujników przeciwnika oraz linii można zaobserwować na diodach LED, a na wyświetlaczach siedmiosegmentowych wyświetlane jest napięcie akumulatora. Jeżeli przycisk START zostanie wciśnięty na czas krótszy niż jedna sekunda program przejdzie do odliczenia pięciu sekund i do wykonywania algorytmu walki. W ramach opracowywania programu dla robota powstały dwa algorytmy walki. Jako pierwszy powstał prosty algorytm decyzyjny realizujący prostą funkcję sterowania nadążnego. Uproszczona struktura algorytmu w formie schematu blokowego przedstawiona została na rysunku poniżej z lewej. Po rozpoczęciu odliczeniu pięciu sekund robot wykonuje krótkie szarpnięcie do przodu i do tyłu aby rozłożyć kliny. Następnie program wchodzi w główną pętle w której realizowana jest strategia walki. W pętli wykonywane są kolejno poszczególne elementy programu. Sprawdzane są wyniki konwersji przetwornika ADC. Jeżeli biała linia została zauważona czyli wynik jednego z pomiarów przetwornika ADC był poniżej założonego progu program przechodzi do funkcji obsługi czujników linii. Funkcja obsługi linii w zależności od tego w którym kierunku jechał robot i którym czujnikiem zauważył białą linię wykonuje kolejno: hamowanie, zmiana kierunku jazdy na przeciwny i skierowanie robota w kierunku środka ringu a następnie wraca do głównej pętli programu. Robot kierowany jest na środek ringu aby znaleźć przeciwnika i jednocześnie aby znaleźć się jak najdalej od krawędzi ringu tym samym utrudniając przeciwnikowi zepchnięcie z dohyo. Przetwornik ADC pracuje w trybie free run czyli kolejno wykonuje pomiary napięcia na wyjściu wszystkich czujników linii. Przetwornik taktowany jest z częstotliwością 250 kHz. Taka częstotliwość taktowania pozwala na wykonywanie pomiarów z częstotliwością 62,5 kHz (4 takty na pomiar) co dla ośmiu czujników linii sprawia, że każdy czujnik sprawdzany jest co 128 μs. Dla robota jadącego z prędkością 1m/s daje to około ośmiu pomiarów każdego czujnika na każdy milimetr przejechany przez robota. Jest to wystarczająca wartość aby robot był w stanie wykryć linię z minimalnym tylko opóźnieniem i wykorzystać to do wyhamowania i zmiany kierunku jazdy. Kolejnym etapem jest odczytanie stanu portów do których dołączone zostały czujniki przeciwnika i w zależności od tego czy przeciwnik został zauważony wykonywana jest odpowiednia reakcja lub program powraca do swobodnej jazdy po ringu. Funkcja wykonująca reakcję robota na zauważenie przeciwnika w zależności od tego który czujnik wystawił na wyjściu stan aktywny wykonuje obrót robota o odpowiedni kąt, tak aby robot ustawił się przodem lub tyłem na wprost przeciwnika. Jeżeli przeciwnik zostanie zauważony środkowym tylnym lub przednim czujnikiem robot z maksymalną prędkością zaczyna jechać (w przód lub w tył) aby uderzyć w przeciwnika.Ostatnią rzeczą wykonywaną w pętli głównej programu jest wyświetlenie na diodach stanu czujników oraz sprawdzenie czy nie wystąpiły zdarzenia mające zatrzymać robota. Robot może zostać zatrzymany na dwa sposoby. Poprzez naciśnięcie przycisku START w trakcie walki lub po odebraniu sekwencji impulsów z pilota sterującego. Jeżeli robot zostanie zatrzymany to program zatrzyma silniki, wejdzie w nieskończoną pętlę i będzie oczekiwać na wyłączenie zasilania. Drugim napisanym algorytmem sterowania robota w trakcie walki jest automat również realizujący funkcję podążania nadążnego Po rozpoczęciu walki robot rozkłada kliny i wchodzi do głównej pętli programu (rysunek poniżej z prawej). W pierwszej kolejności sprawdzane są stany portów do których podłączone są czujniki przeciwnika. Jeżeli przeciwnik zostanie zauważony z przodu lub z tyłu na wprost robota to program zapętla się. Ignorowane są wtedy odczyty czujników linii oraz pozostałych czujników przeciwnika. Ma to na celu zabezpieczenie przed zmyleniem robota gdy ten np. przechyli się na bok podczas przepychania przeciwnika i boczne czujniki zostaną skierowane w kierunku powierzchni dohyo lub gdy robot najedzie na klin przeciwnika i czujniki linii zwrócą wartość odpowiadającą najechaniu na białą linię. Podczas przepychania przeciwnika zmieniana jest prędkość obrotowa silników, ma to na celu zwiększenie przyczepności robota. Działa to w ten sposób, że współczynnik tarcia znacznie zmniejsza się gdy gąsienica zaczyna ślizgać się po ringu, zmniejszenie prędkości ma na celu zmniejszenie lub wyeliminowanie poślizgu i zwiększenie współczynnika tarcia. Uwzględnione zostało to, że robot może zauważyć przeciwnika więcej niż jednym czujnikiem na raz. Gdy robot nie widzi przeciwnika na wprost siebie sprawdzane są czujniki białej linii i wykonywana ewentualna reakcja (taka sama jak w algorytmie prostym). Jeżeli robot zauważy przeciwnika jednym (lub więcej) czujnikiem i nie znajduje się on na wprost robot wykona obrót o odpowiedni kąt tak aby jak najszybciej przeciwnik znalazł się na wprost z przodu lub z tyłu robota. Odczyt napięcia z czujników linii odbywa się w przerwaniu przetwornika ADC. Aby odciążyć program i zmniejszyć czas wykonywania się głównej pętli programu obsługa przycisku zatrzymującego robota oraz odbiornika podczerwieni odbierającego sygnały z pilota zostały umieszczone w procedurze obsługi przerwania. OSIĄGNIĘCIA: I miejsce na zawodach "Robomaticon" w Warszawie II miejsce na "Trójmiejskim Turnieju Robotów" na Politechnice Gdańskiej II miejsce na zawodach "RoboXY" na Politechnice Gdańskiej IV miejsce na zawodach "Robocomp" w Akadami Górniczo Hutniczej w Krakowie Robot brał również udział w Największych zaodach autonomicznych robotów mobilnychj w Europie „RobotChallenge the European championship for self-made, autonomous, and mobile robots”. Na mistrzostwach tych po przejściu dwóch faz eliminacyjnych wszedł do fazy finałowej do której dostało się tylko 16 najlepszych robotów z całej europy. Niestety z powodu awarii akumulatora robot przegrał pierwszą walkę fazy finałowej i odpadł z rozgrywek DODATKI: Robot powstawał z przerwami od 2008 roku. Powstało kilka prototypów. Prezentowany w tym temacie robot jest czwartą wersją Jeżyka. Poniżej dwa zdjęcia z budowy prototypów. Filmik z walkami jeżyka z zawodów RoboXY 2011: W załączniku znajduje się kod źródłowy programu. Jest w nim całkiem sporo komentarzy, więc mam nadzieję, że będzie on zrozumiały. Załączam również wyeksportowany z Inventora projekt w formacie STEP. Jest to okrojony ze szczegółów projekt 3D. Nie załączam projektów robota w Inventorze i w Altiumie ponieważ każdy z nich zajmuje kilkadziesiąt MB. Jeśli ktoś chce to mogę wyciąć z projektu w Altiumie schematy i projekty płytek (bez modeli 3D) i wstawić. robot z klapkami.rar Program.rar
  3. Speedy jest moim pierwszym robotem. Postanowiłem zrobić micromouse'a ze względu na dość prostą konstrukcję mechaniczną. Mechanika Podwoziem robota jest płytka PCB. Napęd stanowią dwa silniki pololu 10:1 HP z kołami 36mm. Całość zasila akumulator li-po 550mAh 2S. Jako trzeci punkt podparcia użyłem LEDów. Elektronika Jako mikrokontrolera użyłem atmegi168 z wewnętrznym taktowaniem 8MHz. Rolę mostka H pełni układ TB6612. Jako dalmierzy użyłem fototranzystorów l53p3c i diod tsal6400. Chciałem jeszcze użyć enkoderów as5040, jednak z powodu błędów konstrukcyjnych nie zostały zamontowane. Oprogramowanie Na początku chciałem użyć algorytmu flood-fill, jednak z powodu braku enkoderów musiałem wykorzystać regułę prawej dłoni. Program nie jest jeszcze do końca dopracowany i robot cały czas uderza w ściany (czasami się blokuje), ale po kilku popchnięciach dojedzie do celu . Podsumowanie Robot spełnia moje oczekiwania, czyli jeździ . Dużo się na nim nauczyłem, wiem jakich błędów unikać w przyszłości. Osiągnięcia I miejsce w kategorii MicroMouse na zawodach Robocomp 2013 w Krakowie
  4. Witajcie, Chciałbym tu przybliżyć plon mej pracy/zabawy. Około roku temu zacząłem się interesować robotyką. Analizowałem możliwości wykonania robota powiedzmy zabawki, który mógł by się poruszać w terenie (szeroko pojętym). W ruch poszły „Google”, fora i strony producentów. Była kwestia podjęcia decyzji co do rodzaju robota, a muszę przyznać, że roboty typu kroczące bardzo mi się podobają. Na początek zacząłem analizować proste roboty dostępne jako kity do składania, później mój wzrok padł na podwozie kołowe jako mniej skomplikowane (nawet mam całkiem ciekawe podwozie z samochodu zdalnie stertowanego), aż wreszcie pojawił się On – hexapod Od tego czasu zapałałem do niego wielką miłością. - rozpocząłem pracę nad analizą poszczególnych elementów składowych robota. Przy założeniach, że ostatni raz lutownicę trzymałem 20 lat temu, nigdy nie programowałem procesora (choć troszkę programów zwykłych napisałem za młodu) zadanie wydawało się mało realne zwłaszcza w wykonaniu robota tak skomplikowanego. Przyznam się że wykonując robota bardzo dużo elementów zaczerpnąłem ze strony lynxmotion.com i istniejącego tam forum – dotyczącego Robota Phoenix, oraz z strony robota MSR-H01 firmy Micromagic System. Tak czy inaczej Maniek powstał. Powstawał powoli ok. pół roku powoli w miarę możliwości czasowych, których jest nie za wiele... Poświęciłem na niego około 300 godzin jak nie więcej, czasem były tygodnie, że nic nie drgnęło, a czasem był tydzień że ... ummm, ale to między bajki włożyć... Ograniczenia przy wykonywaniu robota: - przede wszystkim jedno finansowe - chciałem zrobić robota taniej niż pierwowzory (i udało się), które są koszmarnie drogie, - mizerna znajomość elektroniki, - mała znajomość programowania procesorów, - zero znajomości robotyki. Dane techniczne robota: Konstrukcja: Robot 6 nożny potocznie zwany hexapodem wykonany z pleksi 3mm wycięte wg mojego projektu (wzorowałem się na rozwiązaniach konstrukcyjnych głównie Phoenixa, MSR-H01 oraz innych robotach tego typu z netu). Dla zapewnienia większej sztywności robota – główna płyta robota, która przenosi wszystkie obciążenia jest podwójna (2x3 mm), a dla zapewnienia ciekawszego wyglądu – nogi zostały wycięte we wzór imitujący włoski pająka. Użyto 18 serwomechanizmów Tower Pro 5010 do sterowania nogami oraz 1 serwo do sterowania sonarem. Główna płyta - Serce robota: Płytka Arduino Mega (strona www: arduino.cc) – rzekł bym super płytka dla laika – wiele wejść i wyjść w zasadzie brak ograniczeń co do programowania oraz bardzo obszerne forum z tysiącami rozwiązań problemów – to była wielka kopalnia informacji. Dla mnie bajka... (przyznam się, że pojęcia typu fuse byte itp., wywołują u mnie lekki dreszczyk z złym tego słowa znaczeniu). Programik zaprojektowany do programowania płytki pozwala w bardzo prosty sposób pisać i programować. Do tego gotowe biblioteki pozwalają w kilka chwil ( jak np: w moim przypadku ) oprogramować sobie klawiaturę PS/2 – akurat taką posiadałem zbędną w szafie). Sterownik serw: Z uwagi na to, że będę chciał rozbudowywać robota i nie chciałem wprowadzać ograniczeń na płytkę arduino (jest ona sama w stanie obsłużyć do 48 serw) co do częstotliwości wysyłania sygnałów – zastosowałem osobno sterownik serw SD 21. Do tego dodatkowo: Wyświetlacz cyfrowy + 3 przyciski - Do tego pozostało zrobić sobie wyświetlacz (dwie cyferki LED) oraz 3 mikrowłączniki do „programowania trybu pracy”. Płytka z dodatkowymi opornikami (połączenie arduino z sterownikiem serw) oraz Buzzerem. Buzzer – robot wydaje sygnał dźwiękowy –dla uproszczenia konstrukcji zastosowałem buzzer z generatorem. Zasilanie: Obecny etap – zasilacz komputerowy – osobne zasilanie serw i elektroniki W przyszłości – zasilanie z akumulatorów – osobno serwa, a osobno elektronika – kwestia do analizy, bo pobór prądu przez 19 serw jest duży. Czucie robota: Zastosowałem sonar SRF05 Waga: Konstrukcja z pleksi + zmontowane serwomechanizmy to 1,45 kg. Z akumulatorami dojdzie prawdopodobnie do ok 2,5 kg. Wszystko starałem się wykonać jak najestetyczniej, ale wybaczcie mi proszę wygląd mych płytek, bo dopiero co nauczyłem się lutować. Obecny tryb pracy robota: – praca na kablu – sterowanie przy pomocy starej numerycznej klawiatury numerycznej PS/2 do notebooka. Rozwój projektu w przyszłości (kolejność nie koniecznie taka jak poniżej): - praca autonomiczna – poruszanie się po terenie (płaskim i off-road), omijanie przeszkód przy pomocy sonaru, - praca demonstracyjna – robot stoi w miejscu, ale reaguje na bodźce (sonar – zbliżenie ręki), wykonywanie ruchów imitujących „żywy organizm” (poruszanie nogami itp.), - wprowadzenie odwrotnej kinematyki do programu robota ( obecnie pracuje na zaprojektowanych wychyleniach sczytywanych z tablicy w programie), - zastosowanie na stopach czujnika terenu co pozwoli na poruszanie się w nierównym terenie, - zastosowanie akumulatorów do zasilania robota, - inne.... ??? czas i możliwości finansowe pokażą... Poniżej portret Mańka: ------------------------- ==============
  5. Witam, Opisałem mojego pierwszego robota z mikrokontrolerem. Program napisałem w Bascomie. Bardzo krótki zresztą. Dla tego robota pierwszy raz sam zrobiłem schemat i wytrawiłem pierwszą PCB. Jego zadaniem jest jedynie omijanie przeszkód. Zastosowałem w nim: - 2x czujnik Sharp 10CM GP2Y0D810Z0F - Atmega8A - Stabilizator 5V 7805 - Silniki kątowe pololu - Koła pololu - Turnigy nano-tech 460mah 2S Przewidziałem goldpiny na 2 czujniki CNY70 i wyświetlacz LCD, ale jeszcze ich nie podpiąłem. Dodaję kilka fotek i schemat. Filmik może zrobię, ale za jakiś czas.
  6. Witam, jest mój pierwszy temat na forum więc proszę o wyrozumiałość. Chciałbym w skrócie opisać efekt (mojej oraz mojego kolegi) pracy inż. Robot został nazwany "TriHex" porusza się w trybie trójpodoporowym. Założeniami projektu było: - poruszanie się w trudnym terenie, - brak zdefiniowanego przodu, - zastosowanie kinematyki odwrotnej. 1.Mechanika: Robot został zaprojektowany w programie Catia V5. Elementy zostały wykonane z laminatu szklano-epoksydowego oraz giętego aluminium. Napędy to 12 serw TowerPro 995 (mają swoje zalety i wady) oraz 6 serw TowerPro 5010. Każda z nóg wyposażona jest w krańcówkę. Umożliwia to robotowi badanie terenu po jakim się porusza, a przez to dostosowanie ułożenia nóg do terenu. Konstrukcja nogi wygląda następująco: 2. Elektronika: Robot wyposażony jest w dwie płytki PCB. Jedna oparta o mikrokontroler Atmega8 odpowiada za: - pomiar stanu akumulatorów Li-Pol o łącznej pojemności 4400 mAh, - wyświetlanie wyników pomiaru na ekranie lcd. Druga płytka oparta została o układ Atmega32, odpowiada za: - obliczenia kinematyki, - wysyłanie poleceń do kontrolera serw (układ Pololu - sterownik Maestro18), - sprawdzanie stanów krańcówek oraz interpretację poleć wysyłanych przez bluetooth (robot wyposażony jest w prosty układ bluetooth działający jak zwykły RS-232) Oba mikrokontrolery pracują z częstotliwością 16 MHz. Zastosowano również układ BEC do zmiany napięcia akumulatorów z 7.4V na 6V. 3.Sterowanie: Robot sterowany jest zdalnie przy pomocy protokołu bluetooth. Posiada pewną autonomię ze względu na własne algorytmy znajdywania podparcia dla nogi oraz porusz się chodem trójpodporowym. Wszelkie obliczenia kinematyki oraz trajektorii ruchu nóg są obliczane na bieżąco w Atmedze32 (obawiałem się, że może nie wyrabiać ale się udało ) W ramach projektu została także napisana prosta aplikacja na środowisko Windows do obsługi robota. 4.Dalsze etapy rozwoju: W ramach rozwijania projektu chcemy zastosować akcelerometr, aby robot mógł utrzymywać poziom niezależnie od podłoża, zastosować inne typy chodu, a także zastosować dlamierze na korpusie, aby robot zyskał jeszcze większą autonomię. 5.Galeria o raz film: fot. Aneta Regulska Na zakończenie chciałem podziękować za tak przydatne artykuły znajdujące się na tym forum. Okazały się bardzo pomocne w konstrukcji naszego robota. __________ Komentarz dodany przez: Bobby Poprawiłem film na przyszłość - używaj tagów [youtube ]
  7. Witam! Przedstawiam mojego pierwszego robota minisumo, który powstał w ramach szkolnego koła robotyki ZONA, działającego przy II LO w Wałbrzychu. Robot spełnił moje oczekiwania wobec niego. Realizując ten projekt zdobyłem sporo cennego doświadczenia, które mam zamiar przekuć na kolejną maszynę. Phantom z założenia miał wystartować na zawodach RA 2012, jednak w wyniku nieziemskich problemów technicznych nie udało mi się go wtedy wystawić i po tej klęsce w zasadzie wymieniłem w nim wszystko z wyjątkiem kół i akumulatora. Krótki opis konstrukcji: - zastosowałem mikrokontroler ATmega16 i muszę przyznać, że bardzo tej decyzji żałuję. Brakuje mi w nim przerwań i timerów. - użyte mostki H to układy TB6612, zamontowałem po jednym na silnik. Jestem z nich bardzo zadowolony i na pewno użyję ich w kolejnej konstrukcji. - na płycie głównej umieszczone jest małe "gniazdo" tranzystorów, które z założenia miały być odpowiedzialne za sterowanie czujnikami przeciwnika własnego projektu, ale nic z tego nie wyszło bo prawdopodobnie uszkodziłem dwa wyprowadzenia ATmegi ładunkiem elektrostatycznym z palca... - jako czujników użyłem trzech detektorów przeciwnika opartych o układy TSOP2236 i dwóch CNY70 do wykrywania linii. Z ani jednych ani drugich nie jestem zadowolony. Czujniki - samoróbki da się, owszem. Tylko po co? Miałem z nimi zdecydowanie za dużo problemów i mój kolejny robot będzie korzystał ze znacznie bardziej niezawodnych Sharpów. CNY70 natomiast sprawdzają się, ale są zwyczajnie duże... - użyte silniki to 2x Pololu HP 50:1 - zastosowałem koła o średnicy 32mm z silikonowym ogumieniem. Felgi są wykonane na zamówienie. - akumulator to pakiet Redox 500mAh 7,4V. Oczywiście Li-PO. Wybrałem go ze względu na małe wymiary. - robot "fabrycznie" waży ledwie 300g, więc został dociążony odważnikami do wagi szalkowej owiniętymi taśmą izolacyjną. - obudowa jest wykonana z polutowanych ze sobą laminatowych płyt - to rozwiązanie przypadło mi do gustu, ponieważ jest proste w realizacji i daje wytrzymałą konstrukcję. - pług jest wykonany z aluminiowego płaskownika zaostrzonego pilnikiem. Teraz trochę filmików z walk I zdecydowanie najpiękniejsza walka w krótkiej karierze Phantoma : A to są schematy płyty głównej: Pozdrawiam wszystkich i życzę jak największej satysfakcji z własnych konstrukcji
  8. Witajcie, jest to ulepszona pod każdym względem wersja mojej pierwszej machiny MacLiner. Początkowy zarys konstrukcji pojawił się w mojej głowie po zawodach Sumo Challenge 2011, w których brałem udział (zająłem wtedy przedostatnie miejsce). Ta sytuacja bardzo zmotywowała mnie do stworzenia czegoś szybszego, zwinniejszego. Tak powstał MacLiner 2.0. Chciałbym serdecznie podziękować użytkownikowi Sabre, dzięki któremu mogłem liczyć na szybkie przesyłki z Chin i nieocenioną pomoc w innych przelewach. Dziękuje także Firmie SALTAND Prototype, która udzieliła mi ogromnej zniżki na obwody drukowane. Model w Inventorze Dzięki zastosowaniu najnowszych technologii jakie daje Pakie AutoCAD, mogłem z bardzo wielką dokładnością określić położenie wszystkich elementów. Plik w formacie .dwg został przekonwerowany za pomocą programu DXF2SCR na format, który mogłem w dalszym etapie otworzyć w EAGLE i takim sposobem miałem gotowy zarys obu płytek. Takie wariacje pomogły mi także w doborze frezów pod Enkodery. Do tego ostatniego z pewnością wrócę pod koniec opisu. Szkic z projektu zawarty na rysunku 1. rys.1 Model LF w programie Inventor Moduł Listwy z Czujnikami Jak dobrze wiadomo jest to element, na który działa największa siła bezwładności. W tej wersji zastosowałem parzystą liczbę czujników. Jest ich aż 20. Część osób pewnie stwierdzi, że jest ich dość sporo i tutaj się z Wami zgodzę, trochę przerost formy nad treścią, aczkolwiek ważne, że się sprawdza. Poniżej (rysunek 2) zamieściłem fotografię, na której widać rozstawienie sensorów linii (KTIR0711S). Pewnie zapytacie z czego zrobione są podpory, otóż jest to zwyczajna taśma izolacyjna - działała wyśmienicie . Dodatkowo robot został zaopatrzony w czujnik zderzeniowy (GP2Y0D340K). Posiada on zasięg 40cm. Robot jadąc z predkością powyżej 2m/s potrzebuje z dużym wyprzedzeniem określić gdzie znajduje sie przeszkoda(cegła). rys.2 Moduł listwy z czujnikami Zasilanie W przpadku użycia robota z turbiną oczywiste staje się, że trzeba zastosować źródło napięcia o dość dużej wydajności prądowej. Wybór padł na pakiet Li-Pol(rysunek 3) o napięciu znamionowym 7.4v, pojemności 300mAh i wydajności prądowej równej 13.5A. Masa pakietu wynosi 23 gramy. Musiałem go troszkę zmodyfikować, a konkretnie złącze, ponieważ w pierwotnej postaci łatwo było o pomyłkę. rys.3 Pakiet Li-Pol Dualsky (zdjęcie pochodzi ze strony Botland.com.pl) Bezpośrednio z pakietu zasilane są silniki oraz napęd tunelowy. Większość elementów (mikrokontroler, czujniki, logika stopnia mocy oraz moduł bluetooth) wymagały napięcia 5V. Postanowiłem zastosować do tego celu przetwornicę ST1S10PHR. Bardzo zdziwił mnie fakt, że dość spora liczba osób skarżyła się na ten element. Przykładem może być "strzelająca turbina", o której sporo czytałem na forum. Osobiście wszystkie ścieżki poprowadziłem zgodnie z notą katalogową i do tej pory nie mam z nią najmniejszych problemów. Wyjątkiem jest moduł Bluetooth, który na płytce posiada stabilizator liniowy Low Dropout na 3.3v(LM1117), lecz zasilam go z układu BEC wbudowanego w sterownik silnika 3F(tego od napędu tunelowego). Poniżej przedstawiam schemat blokowy całego zasilania (rysunek 4). rys.4 Schemat blokowy zasilania Chassis - czyli bazowy element Główna płyta(rys.5):parametry: laminat FR-4, grubość 2mm, na której umieszczone są elementy take jak : Mikrokontroler ATmega 128, moduł TB6612, komparatory LM339D, przetwornica ST1S10PHR, odbiornik TSOP2236, złącze programatora. Zdecydowałem sie na użycie tak potężnego 8 bitowego procesora z paru względów: ogromna ilość wejść/wyjść (53), dobre ułożenie pinów, interface UART połączony z liniami programatora, 8 przerwań zewnętrznych. Nie zastosowałem 2. procesora do dekodowania kodu RC5 ponieważ, wydawało mi się to zbędne. Płytka powinna mieć grubość 1.5mm, tak jak było to w planach (ale wiadomo firma także może się pomylić ). rys.5 Chassis Stopień mocy - TB6622FNG Jako sterownik silnikami zastosowałem gotowy, dwukanałowy moduł wyprodukowany przez firmę Pololu(rysunek 6). Doszedłem do wniosku, że nie warto stosować wiecej niż 1 mostek (przynajmniej na razie ). Wydajnośc prądowa tego układu to 1A na kanał. Zdażały się sytuacje, gdzie robot w fazie testów zwyczajnie uderzał w elementy przed nim (np. ściana), lecz mostek za każdym razem wytrzymywał. ATmega komunikuje się z mostkiem za pomocą 7 linii(4-odpowiedzialne za kierunek, 2- sygnały PWM, STBY- wyłączenie układu). rys.6 Stopień mocy Bluetooth- czyli zapanuj nad bestią Na pokładzie robota znajduje się moduł bluetooth (BTM-222). Jak juz wczesniej wspomniałem, zasilany jest on z układu BEC. Jego zadaniem jest zdalne startowanie i zatrzymanie robota. Robot dzięki temu może zostać "sterowny" z poziomu np. telefonu, komputera. Układ zamontowany jest na baterii za pomocą rzepu przemysłowego. Na rysunku 7 zamieszczona jest mozaika ścieżek. rys.7 Moduł Bluetooth Aplikacja na telefon została napisana przeze mnie w środowisku NetBeans w języku Java. Program przystosowany zarówno na telelefon zaopatrzony w ekran dotykoy jak i pospolitą klawiaturę. Rysunek 8 zawiera screen z aplikacji. rys.7 MacLiner 2.0 APP Turbina- Up to 2m/s Napęd tunelowy jest teraz nieodzownym elementem każdego szybkiego robota. To dzięki niemu robot jest w stanie utrzymać się na torze przy prędkościach 2m/s. Poszedłem utartą scieżką i postanowiłem zakupić EDF27. Silnik, który znajduje się w turbinie potrafi rozpędzić wirnik do zawrotnych prędkości (prędkość łopaty zwiększa się o 11000 obrotów na każdy wolt). Niestety zapłaciłem najwyższą cenę przed zawodami Sumo Challenge 2012. Podczas testów do turbiny dostało sie ciało obce, w wyniku czego wirnik wpadł w oscylacje scierając się o tunel turbiny. Oczywiście na kolejne zawody zaopatrzyłem sie w kolejną. Silnikiem steruje regulator PLUSH 6A. Poniżej (rysunek 8) zdjęcie popularnego napędu tunelowego. rys.8 Turbina EDF27 Napęd i Koła Robota *Napęd tworzą dwa silniki Pololu HP 10:1(wraz z tylną osią) *Parametry techniczne: *Obroty na biegu jałowym przy zasilaniu 6V: 3000 obr./min; *Prąd biegu jałowego (6V): 120mA; *Prąd szczytowy: 1600mA; *Moment obrotowy: 0,3 kg*cm (29 mNm); *Wymiary: 24 x 10 x 12 mm; *Masa: 10g Jako kół postanowiłem użyć znanych z mojej wcześniejszej konstrukcji - Pololu 32mm. Enkodery - Szósty zmysł W robocie zostało przewidziane miejsce na enkodery optyczne wymontowane z myszki. Będą one w przyszłości służyły do mapowania trasy oraz jednej ciekawej rzeczy(Wizja podczas snu ). Jeśli projekt z dodaniem enkoderów się uda, z pewnością się nim podziele. Program Program został napisany w języku C w środowisku AVR-Studio. Zaimplementowany algorytm proporcjonalno-rózniczkujący pozwolił na płynną jazdę z dużą prędkością. Częstotliwość wykonywania pętli głównej 90-100Hz. W przyszłości kod zostanie przepisany na jezyk niskiego poziomu jakim jest Asembler. Osiągnięcia III miejsce Line Follower z Przeszkodami Sumo Challenge 2012 (bez Turbiny) VII miejsce Line Follower Sumo Challenge 2012 (bez Turbiny) VII miejsce Line Follower Robotic Arena 2012 • I miejsce Line Follower Robo-NET 2013 Tips- porady Podczas zawodów przez przypadek można dojść do paru fajnych odkryć. Szczotki- powszechnie stosowane jako "magnes" na zanieczyszczenia kół. Mi osobiście wpadł także całkiem ciekawy pomysł. Stało się podczas Robotic Arena 2012. Moje włosy zawsze wymagały ułożenia przed jakimkolwiek wyjściem. Dlatego zawsze biorę ze sobą pojemnik z gumą do stylizacji włosów . W czasie poszukiwania lustra dostałem olśnienia- Dlaczego nie użyćby tego specyfiku do czyszczenia bieżnika opon przed startem...? Pomysł okazał sie strzałem w dziesiątkę! Filmy:(bez Turbiny) Galeria A tutaj zbiór fotografi: Płyta_Główna_Schemat.pdf Płytka_Czujniki_SCHEMATIC.pdf Program_Java.rar Płyta_Główna_PCB.rar Płyta_Czujniki_PCB.rar Bluetooth_Schemat_PCB.rar
  9. Witam Prezentuję mojego drugiego robota, jakiego zbudowałem w mojej karierze robotyki. Robot jest następcą Nany_1, który oczywiście został przedstawiony na forum. Prezentowany robot to platforma wielozadaniowa o nazwie Nana_2. Powstał specjalnie na potrzeby mojej pracy dyplomowej: "Projekt i badanie podstawowych układów elektronicznych robota mobilnego". Szybkie streszczenie budowy robota: Konstrukcja: - "pleksa", aluminium, - wymiar ramy podwozia: 35x25 cm - masa: 2kg Napęd: - 4 zmodyfikowane serwomechanizmy modelarskie Tower Pro SG-5010 - koła: prawdopodobnie pololu 90 mm Czujniki: - HC-SR04, ultradźwiękowy czujnik odległości 2-300cm - sharp analogowy GP2Y0A21YKOF 10-80cm - czujnik odbiciowy IR fala modulowana, detektor TSOP1736 - 2x czujnik odbiciowy IR (fototranzystor, dioda IR) fala niemodulowana - sharp cyfrowy GP2Y0D810Z0F 10cm - czujnik linii (3xTCRT5000) - czujnik temperatury, DS18B20 - czujnik światła, fotorezystor - moduł odbiornika GPS, FGPMMOPA2-P - akcelerometr, MMA 7361 (pulpit sterujący) Dodatkowe elementy: - 2x serwomechanizmy Tower Pro SG-5010 do obracania dalmierzami - 2x Mostek H (zmodyfikowana wersja z Nany_1) - odbiornik kodu RC5 TSOP32136 - moduły radiowe 2.4 GHz RFM70 - wyświetlacz graficzny, 128x64 KS0108 Układy logiczne: - główny mikrokontroler ATmega16 - mikrokontroler pomocniczny ATmega88 (wymiana informacji poprzez interfejs SPI) - mikrokontroler pulpitu sterującego ATmega16 Realizowane funkcje: - zdalne sterowanie podczerwienią - zdalne sterowanie za pomocą transmisji radiowej i akcelerometru - śledzenie linii - poruszanie autonomiczne - zbieranie informacji z czujników, oraz prezentowanie ich na pulpicie sterującym Filmik, mam nadzieję że nie usuną z powodu muzy;-) Przyszłość ?? hmmm. Zmiana napędu na wydajniejszy, wykorzystanie modułu GPS do autonomicznego odnajdywania wskazanego położenia geograficznego. Zobaczymy co z tego będzie. Pozdrawiam serdecznie
  10. Witam. Chciałbym przedstawić inną niż dotychczas konstrukcję linefollowera. Jest on wynikiem zabawy drukarką 3d. Zrobiony został dla satysfakcji oraz w celach pokazowych dla dzieci i młodzieży i nie jest to konstrukcja zawodnicza co zresztą widać. Ale do rzeczy: MECHANIKA: - napęd przekładnia tamiya 70168 - body z ABS wydrukowane na reprapie - koła również wydrukowane - opony z 4 pasków do magnetofonu Przekładnia walała mi się od dłuższego czasu. Miała pójść kiedyś do robota balansującego ale za duże luzy. Leżała, leżała aż wpadłem na pomysł zrobienia właśnie małego LF'a. Body z racji ograniczeń Reprapa wydrukowane w 2 etapach i potem sklejone. Niestety w trakcie zepsuł mi się termistor i przekłamywał i powierzchnia górnej części czyli m.in.całego przodu jest brzydka i matowa. Kółka narysowane na szybko w ramach pokazu i równie szybko pokazowo wydrukowane. Myślę że wyglądają ok. Przyczepność taka sobie . jak to guma. Kilka fotek: ELEKTRONIKA: - procesor Atmega328 z bootloaderem megaload - 5 czujników linii KTIR0711S podłączonych pod ADC - zasilanie silników z 1 lipola 1000mAh - zasilanie procesora i czujników z przetwornicy MCP1640 - wyprowadzony port szeregowy do którego podłączam moduł BlueTooth w celu programowania Na przetwornicę step-up zdecydowałem się ze względu na czujniki podpięte pod ADC oraz samo ich zasilanie. Bałem się że na pływającym zasilaniu utrudnione zostanie rozpoznawanie linii. Rozwiązanie jest dobre i do ostatnich mAh w akumulatorze LF jeździ prawidłowo. Jako drivery silników dałem pół-mostki. Silniki kręcą się tylko w przód. SOFTWARE: - program w bascomie demo - możliwe 5 programów jazdy wybieranych 2 switchami up i down. - pętla główna ok 300Hz - zaimplementowany regulator PD Jako że LF powstał w celach pokazowych zdecydowałem się od razu na kilka możliwości wyboru programu. Programów jest 5 i na obecną chwilę znajdują się tam ustawienia dla 5 różnych prędkości od wolnej do najszybszej. Najszybsza prędkość na chwilę obecną to sterowanie PWM'em max 40%. Przy większych prędkościach na tej krętej trasie nie wyrabia. Może pokuszę się o zmajstrowanie większej i mniej krętej trasy i podrasuję parametry. Filmik pokaże zabaweczkę w pracy przy mocy ok 35% mocy. Przy ok 40% jedzie ale wpada w poślizgi i wygląda jak jakiś niedorobiony drift. Wnioski: - silniki pozwalają na znacznie większą prędkość ale przy tej konstrukcji to ciężko to już wykorzystać - silniki biorą dość dużo prądu - same przekładnie hałasują i mają kupę luzów, do tego nei ma tam łożysk i wszystko o wszystko trze - koła mają małą przyczepność - 5 czujników to stanowczo za mało Dzięki za przeczytanie opisu. Pozdro Sławek
  11. Witam. Chciałbym przedstawić mojego kolejnego robota zbudowanego w celach edukacyjnych. Jest to pierwszy robot , który zbudowałem na uC. Celem robota jest ominięcie przeszkody po ówczesnym jej wykryciu, czyli zastąpienie micro przełączników cyfrowym sharp'em (poprzedni robot bazował na micro przełącznikach). Można mu również zaprogramować trasę przejazdu. Mechanika: Cała konstrukcja jest zbudowana z polutowanego laminatu, dość tanie rozwiązanie ale estetyka nie powala. Użyte gąsienice to Pololu 22T napędzane dwoma przerobionymi micro serwomechanizmami TowerPro, które są przymocowane za pomocą opasek samozaciskowych. Nie ma się tutaj co dużo rozpisywać, zdjęcia mam nadzieje wyjaśnią wszystko Elektronika: Sercem układy jest Atmega8A, której wszystkie porty zostały doszczętnie wykorzystane ;-)mostek H - L293D Trochę LED'ów , buzzer z generatorem, 3x micro switch, no i wtyk programatora. Jest to dwustronna płytka(pierwszy raz takową wykonywałem), część elementów jest polutowana w SMD. Program został napisany w języku BASCOM. Płytka zaprojektowana w PCB Express Program Napisany byle robot zadziałał, niedługo go dopieszczę i poukładam tak aby był bardziej czytelny, wtedy wstawię do tematu Poniżej taka namiastka $regfile = "m8adef.dat" $crystal = 1000000 Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down Config Portc = Output 'konfiguracja portów Config Portc.5 = Input Config Portd.0 = Output Config Portb.0 = Output Config Portd.2 = Output Config Portd.1 = Output Config Portd.4 = Output Config Portd.6 = Input Config Portd.5 = Input Config Pinb.1 = Output Config Pinb.2 = Output '############## Portd.4 = 0 Waitms 80 Portd.4 = 1 ' da krótkie sygnały buzzera Waitms 80 Portd.4 = 0 Waitms 80 Portd.4 = 1 '############### Set Portc.5 Set Portd.5 ' LEDy Set Portd.6 Set Portd.4 Reset Portd.0 Reset Portb.0 Set Portd.2 Reset Portd.1 Wait 3 '$ POCZATEK PROGRAMU $ Do If Pinc.5 = 1 Then Reset Portc.0 Set Portc.3 Reset Portc.2 Set Portc.1 Debounce Pinc.5 , 0 , Odwroc , Sub ' jeśli wykryje przeszkode to odwróć Loop End ' Poczętak podprogramu do omijania przeszkody - nawracanie Odwroc: '################# Portd.4 = 0 Waitms 80 Portd.4 = 1 ' dwa krótkie sygnały buzzera Waitms 80 Portd.4 = 0 Waitms 80 Portd.4 = 1 '################# Portd.2 = 0 'zapal led czerwona Portd.1 = 1 'zgaś led niebiska Portc.0 = 0 'stop silnik A Portc.3 = 0 Portc.2 = 0 'stop silnik B Portc.1 = 0 'czekaj 0,4 sekundy Waitms 400 'wstecz silnik A Portc.0 = 1 Portc.3 = 0 'wstecz silnik B Portc.2 = 1 Portc.1 = 0 'czekaj 0,3 sekundy Waitms 300 'jedz silnik A Portc.0 = 0 Portc.3 = 1 'wstecz silnik B Portc.2 = 1 'czekaj 0,4 sekundy Portc.1 = 0 Waitms 450 'zgaś led czerwona Portd.2 = 1 Portd.1 = 0 Return 'powrót Zasilanie Zwykle zasilałem swoje roboty za pomocą baterii R6. Obawiałem się rygorystycznych zasad korzystania z lipo :-> Jednak teraz zainwestowałem w ładowarkę E-sky i robota zasilam za pomocą lipo Dualsky 400 mAh. Ogromny komfort i koszty zwracają się po kilku godz. użytkowania Koszty: -elektronika ok. 50 zł - gąsienice wyrwałem nowe ale rozpakowane na allegro za 20 zł - lipo - 20 zł Doliczając laminat, opaski itp. w 100zł się całość zamknie. To jest przybliżona kwota, nigdy nie liczyłem, ponieważ nie kupowałem wszystkiego od razu i część elementów już miałem. :-> Zdjęcia: Na zdjęciach widnieje jeszcze czujnik podczerwieni, jednak nie działał on zadowalająco i został zamieniony na cyfrowego sharp'a 10 cm. Filmik: Czekam na jakieś opinie Dzięki za przeczytanie mojego tematu Pozdrawiam :->
  12. Pragnę przedstawić mojego najnowszego robota klasy linefollower. Projektowany był głównie przez wakacje 2012. Po wakacjach płytki zostały wycięte, wytrawione i polutowane. Chciałem zdążyć na zawody Robotic Arena 2012 – pierwszą rocznicę moich startów w zawodach. Celem było jak najbardziej zbliżyć się do czołówki(dlatego robot ten jest wzorowany na innych konstrukcjach z odrobiną własnej fantazji) i zobaczyć jaki jest progres po roku. Elektronika Płytki, w celu obniżenia kosztów, zostały wykonane samodzielnie za pomocą termotransferu, a następnie wytrawione. Lutowanie było sporym wyzwaniem z racji sporej ilości przelotek. Czujniki linii to standardowo 19 czujników KTIR0711S podłączonych przez komparatory LM339 do uc Atmega128A . Silniki sterowane są przez moduły sterowników TB6612FNG (po jednym na silnik – zmostkowane kanały). Turbina sterowana jest przez sterownik H-KING 10A. Na płytce znajduje się TSOP31236, który umożliwia odbiór komend z pilota. Mechanika Konstrukcję stanowią płytki PCB. Robot jest napędzany przez 2 silniki Pololu HP 10:1 wraz z kołami wytoczonymi z poliamidu. Standardowo użyta została też turbina EDF27. Program napisany jest w C. Do sterowania używam PD. Dotychczasowe wyniki: 5. miejsce na zawodach Robocomp 2012 w Krakowie 6. miejsce na zawodach RoboticArena 2012 we Wrocławiu Niestety nie posiadam żadnych przejazdów z Wrocławia, ale mam nagranych kilka przejazdów z Krakowa(robot jeszcze nie był dobrze wysterowany i bujał się na prostej): Podsumowanie Ogólnie jestem zadowolony, główne cele zostały zrealizowane, ale czuję mały niedosyt . Mimo, że robot jest naprawdę szybki, bardzo dużo nauczyłem się przy jego budowie i zbliżyłem się mocno do czołówki, może nawet lekko chłopaków postraszyłem na RoboticArenie(albo raczej zaskoczyłem), to jednak pozostaje drobne rozczarowanie, bo dwa razy finał przeszedł mi koło nosa . Ale apetyt rośnie w miarę jedzenia, pół roku temu takie wyniki raczej brałbym w ciemno, więc dzisiaj mogę powiedzieć, że jestem w miarę zadowolony(jest motywacja )
  13. Przedstawiamy konstrukcję dwukołowego robota typu line follower o nazwie GreenNight. Konstrukcja oparta jest w całości na laminacie 1,5mm. Jako napęd wykorzystane zostały dwa silniki Pololu HP 30:1. Dodatkowo w celu polepszenia docisku zastosowany został napęd tunelowy. Mechanika Pod tym względem konstrukcja jest bardzo prosta. Napęd stanowią dwa silniki Pololu HP 30:1. Podporą przednią jest ball caster plastikowy. Koła zostały wybrane metodą prób i błędów. Przetestowaliśmy różne modele (Koła solarbotics, koła Pololu , koła Lego). Ostatecznie wybraliśmy koła Lego. Mają one bardzo dobrą przyczepność, dodatkowo na rynku dostępnych jest wiele modeli o różnych średnicach opon co daje duże możliwości manewru. Ciekawostką jest zastosowany napęd tunelowy. Znacznie poprawia docisk co za tym idzie ułatwia dobór nastaw regulatora. Silnikiem napędzającym turbinę jest Graupner 280. Pomysł użycia napędu tunelowego zaczerpnięty z robota Hurricane chłopaków z Krakowa. Elektronika Robotem steruje mikrokontroler firmy Atmel z rodziny AVR Atmega128. Jako sterowniki silników wybrane zostały dwukanałowe mostki H TB6612. Po jednym mostku na jeden silnik(kanały zostały połączone). Takie rozwiązanie daje spory zapas prądowy (nie trzeba się martwić o zniszczenie układów). Napędem tunelowym steruje MOSFET z kanałem N IRL540N. Do którego poprzez wzmacniacz tranzystorowy poprowadzony został sygnał PWM z mikrokontrolera. Jako stabilizator napięcia na układy logiczne zastosowany został układ przetwornicy step-down (ST1S10PHR). Regulator impulsowy został wybrany ze względu na jego wysoką sprawność. Użycie stabilizatora liniowego spowodowało by sporą stratę mocy (Zasilanie 12V). Do wykrywania linii użyte zostały czujniki KTIR0711S (15 czujników ułożonym po okręgu oraz dwa wysunięte do przodu po bokach). Analogowy sygnał z sensorów zamieniany jest na cyfrowy przy użyciu komparatorów LM339 następnie podawany na piny mikrokontrolera. Na płytce z czujnikami przewidziane jest miejsce na czujnik odległości. Dodatkowo powstała płytka drukowana z przyciskami i wyświetlaczem LCD oraz pcb do obsługi pilota. Pierwsza służy do ustawiania parametrów oraz sprawdzania poprawności działania czujników oraz regulatora. Układ podpinany jest do robota poprzez 12-pinowe złącze. Na drugiej natomiast znajduję się dodatkowy mikrokontroler Atmega8 odpowiedzialny za dekodowanie sygnału z pilota (kodowanie RC5). Z procesorem głównym komunikuję się za pomocą jednej linii sygnałowej (generuje przerwanie). Płytki wykonane zostały w warunkach domowych. Sterowanie W robocie zaimplementowany został regulator PD. Do czujników zostały przypisane odpowiednie wartości błędów. Nastawy zostały dobrane doświadczalnie. Na tej podstawie algorytm wylicza korektę czyli sygnał PWM podawany na sterowniki silników. Podsumowanie Robot powstał w dwóch egzemplarzach różniących się miedzy sobą kolorem (zielony - GreenNight i czerwony riddle). Dwie takie same konstrukcje pozwoliły nam testować różne rozwiązania i porównać je miedzy sobą np. wybór opon, nastaw regulatora, moc turbiny. Masa robota bez baterii to 230 g. Realna średnia prędkość na trasie to 1,8 m/s. Koszt wykonania robota około 500zł. Filmy GreenNight - Robotchallenge Wiedeń 2011 GreenNight - Cybairbot Poznań 2011 riddle - Cybairbot Poznań GreenNight - Robo3DVision Gdańsk 2011 Film z turnieju Robo3DVision Gdańsk 2011 - finały Line follower od 4:10 GreenNight - Roboxy Gdańsk 2011 Przejazdy finałowe z turnieju Roboxy Gdańsk 2011 Zdjęcia: Osiągniecia: 2. Miejsce Międzynarodowy turniej robotów w Wiedniu - Robotchallenge 2011 1. i 2. Miejsce Międzynarodowy turniej robotów w Pradze - Czech Robotic Day 2011 2. Miejsce Turniej robotów w Krakowie - Robocomp 2011 1. i 2. miejsce Turniej Robotów w Poznaniu - Cybairbot 2011 1. Miejsce Turniej Robotów w Gdańsku - Robo3DVision 2011 1. i 2. miejsce Turniej Robotów w Gdańsku - Roboxy 2011 Autorzy projektu: - Szymon Mońka - Bartosz Derkacz main_sch.pdf czujniki_sch.pdf czujniki_pcb.pdf LCD.pdf tsop.pdf main_pcb.pdf
  14. Witam Chciałbym przedstawić wam robota Silver Shaft klasy line follower (nazywany też SS skrót powstał podczas bardziej luźnych rozmów na chacie ). Postęp prac można było śledzić w worklogu. Prace nad robotem zacząłem w sierpniu 2011 roku, później prace mocno spowolniły z powodu braku czasu. Od połowy lutego tego roku wziąłem się do pracy zrobiłem płytkę, którą już wcześniej zaprojektowałem, polutowałem, napisałem pierwszą wersję programu i przeprowadziłem pierwsze próby. W marcu wystartował w zawodach Robomaticon zajmując 13 miejsce, co i tak było sukcesem jak na 3 dni (a właściwie popołudnia) na napisanie programu od podstaw i przeprowadzenie pierwszych prób. Szczerze mówiąc robot zaczął przyzwoicie jeździć w dzień zawodów ok.2 w nocy . Od tego czasu wprowadziłem kilka modyfikacji, zarówno sprzętowych jak i programowych. Kończąc wstęp, przejdźmy do konkretów. SPECYFIKACJA Wymiary: 120x80x32mm Waga samego robota: 75g Waga robota z akumulatorkiem: 86g Średni pobór prądu logiki: 130mA Średni pobór prądu logiki bez czujników linii: 45mA Coś dla miłośników anaglifów: Proces lutowania: MECHANIKA Konstrukcja mechaniczna jest bardzo prosta i powiedziałbym typowa dla robotów tej klasy. Robot składa się z trzech płytek drukowanych, głównej, płytki z czujnikami linii i z cyfrowym dalmierzem. Płyta główna ma 1,5mm grubości, pozostałe są jednostronne i mają grubość 0,8mm. Płyta główna jest jednocześnie podwoziem robota. Wykonanie płytki głównej zajęło mi dużo czasu z powodu złych ustawień drukarki (Pierwsza płytka dwustronna na nowej drukarce). Po zmianie ustawień i zmarnowaniu 3 płytek wielkości robota, płyta główna wyszła idealnie, bez żadnych zerwanych ścieżek i tylko z jednym, w sumie nieistotnym zwarciem przy podświetleniu led, oraz przesunięciem między warstwami <0,5mm, które jak na trzecią dwuwarstwówkę było i tak niewielkie. Napęd robota stanowią dwa silniczki pololu HP z przekładnią 30:1 wraz ze standardowymi kołami 32mm. i mocowaniami, które swoją drogą były kompletnym niewypałem (łącznie złamały się 8 razy, za każdym razem w innym miejscu). Rolę podpory przodu stanowi plastikowa kulka 3/8 cala. MONTAŻ Płytka została pocynowana „mechaniczne”, własnej roboty pasta + tasiemka odsysająca + trochę cyny i wprawy. Większość elementów typu rezystory, czy kondensatory są w obudowach 0805, wyjątek stanowią 4 rezystory 330R ograniczające prąd diod Ir w transoptorach. Pierwotnie były tam rezystorki o mniejszej wartości, jednak z powodu grzania się KTIR’ów zostały wymienione, a jako, że nie miałem odpowiedniej ilości w 0805, zostały zastąpione większymi wersjami 1206. Całość polutowana grotówką. Płytka z czujnikami została zamontowana na stałe i trzyma się na listwie goldpin, która jednocześnie stanowi połączenie elektryczne między nią a płytą główną. ZASILANIE Całego robota zasila pakiet Li-Pol 2s zlutowany z dwóch pojedynczych ogniw 450mAh firmy Batimex. Tu chciałem zaznaczyć, że wiem o istnieniu pakietów 2s. Złożyłem je sam, ponieważ potrzebowałem pakietu o nietypowych wymiarach, a nie miałem czasu na zamawianie w HK. Logika zasilana ze stabilizatora LM1117 na 5V, silniki z przetwornicy ST1S10PHR ustawionej na 6V, lub bezpośrednio z pakietu (wybór zworką). W tylnej części płytki mieści się wyłącznik zasilania z sygnalizacją włączenia i układ pomiaru baterii z diodą led informującą o spadku napięcia poniżej ok.6,6v – wtedy to na wyjściu przetwornicy napięcie zaczyna spadać poniżej 6v. Akumulator starcza na ok. 15-20 min testów. ELEKTRONIKA Schemat i wzór pcb eksportowany z programu EAGLE. Mózgiem robota jest ATMega32 taktowana zegarem 16MHz. Rolę czujników linii stanowi 8 transoptorów odbiciowych KTIR0711S, odczyt na wbudowanym w atmege adc.Tu muszę zaznaczyć, że trafiłem na wadliwą sztukę KTIR’a miał lekko zdeformowane „szybki” pod diodą Ir i fototranzystorem, i dawał zawyżone wartości (ok. 150 więcej 10 bitowego adc) mała korekta w programie zniwelowała rozbieżności, niemniej uważam, że czujniki są świetne. Sterowanie silnikami odbywa się za pomocą mostka H TB6612 jeden na oba silniki. Pwm o częstotliwości trochę ponad 7Khz. Na przodzie robota znajduje się zamontowany stosunkowo niedawno dalmierz cyfrowy sharp 10 cm GP2Y0D810Z0F. Nie spotkałem się z nim w żadnym innym lf’ie. Przyznam, że wątpiłem w jego praktyczną użyteczność, okazało się jednak, że robot jest w stanie wyhamować z pełnej prędkości w ok. 2-3cm, a czujnik działa na tyle szybko, że mam jeszcze spory zapas przed przeszkodą. Czujnik może pełnić dwie funkcje (wybierane zworką). Chamowanie i wznowienie jazdy dopiero po usunięciu przeszkody, lub omijanie jej. Dzięki temu, robot może startować w konkurencji line follower z przeszkodami. Do komunikacji użytkownik – robot, zamontowane zostały dwie diody led, dwa przyciski, odbiornik Ir TSOP4836, oraz złącze 10 pinowe na którym poza wyprowadzeniem zasilania i spi do programowania jest I2C i uart, umożliwiające podpięcie dodatkowych modułów (w tej kwestii wypowiem się, gdy napiszę i opublikuje pewien artykuł ) PROGRAM Program napisany w Bascomie, na dzień dzisiejszy zawiera nieco ponad 600 linijek kodu i jest to 6 wersja programu, zajmuje 10% z 32KB pamięci Flash. Program można podzielić na dwie główne części: 1.Część odpowiedzialną za jazdę a.Sprawdzenie stanu dalmierza b.Odczyt analogowy z czujników linii c.Konwersja wartości analogowych na binarne d.Wyliczenie położenia linii metodą średniej e.Przekazanie uchybu regulatorom f.Naniesienie korekty pwm na silniki 2.Część serwisowa a.Wyłączenie podświetlenia, wprowadzenie mostka w stan stanby b.Wysłanie zapytania i oczekiwania na odpowiedź po uart z aplikacji PC c.W razie braku odpowiedzi, przejście do trybu konsolowego d.Oczekiwanie na id zmiennej i jej wartości e.Zapis nowej wartości zmiennej do pamięci Regulator Proporcjonalno Różniczkujący, z czego człon D wymaga jeszcze dopieszczenia. Pojawił się już w 2 wersji programu, jednak do niedawna bardziej przeszkadzał, niż pomagał, dlatego podczas większości testów był wyłączany. Aktualizacje w kolejnych wersjach: 1.-; 2.Dodanie regulatora D, trybu serwisowego, odliczania przed startem, 3.Naprawienie błędu uniemożliwiającego pokonanie kąta prostego, efekty led przy starcie i zatrzymywaniu 4.Dodanie obsługi dalmierza 5.okiełznanie D, dynamiczne omijanie przeszkód, 6.poprawa wydajności programu - uproszczenie liczenia uchybu, integracja z programem PC w planach: Ulepszenie D, rozwinięcie możliwości komunikacji z PC, płynne i łatwo regulowane omijanie przeszkód, optymalizacja kodu oraz coś o czym dowiecie się przy publikacji artykułu OSIĄGNIĘCIA 13 Miejsce na Robomaticonie 2012 w kategorii Line Follower. Kilka zdjęć i filmików z robotem. Silver Shaft na starszym bracie "drewnobocie" Ok godziny po pierwszej jeździe z czujnikami: 3 dni później: Jazda próbna na torze Robomaticonu w Warszawie: Jedna z ostatnich jazd: Tor w wersji z przeszkodami- przy drugim okrążeniu lekko zawadził o przeszkodę, ale wielkość łuku była podyktowana wielkościami pierwszej trasy, i jest "na styk": (nagrywał sosnus) PODZIĘKOWANIA Dziękuję wszystkim, którzy przedstawili sugestię i krytykę, w worklogu. W szczególności Sabre, oraz jego robotowi Tsubame, który był poniekąd inspiracją dla tego lf'a. Dziękuję osobom z chatu za pomoc w mniejszych problemach, np. grzanie się ktirów, czy problem z komunikacją po spi, przede wszystkim bobb'iemu i KD93. Dziękuję Turlaczowi za "troskę" i codzienne pytanie "jak tam SS?" Dziękuję Sosnusowi, za pomoc w teoretycznych aspektach dokładności liczenia uchybu, wspólne testowanie robota i zmian w programie, oraz mile spędzony weekend. Czekam na słowa krytyki, oceny i pytania. Dziękuję
  15. Przedstawiam państwu wersję β (beta) projektu o oznaczeniu T102. Celem projektu było udowodnienie że możliwe jest zbudowanie modułów umożliwiających zdalne sterowanie dalekiego zasięgu (minimum 5-8km max - globalny), mieszcząc się w kwocie 15PLN (elektronika) i zapasie dostępnych w domu każdego majsterkowicza części. Do tego celu zostały użyte następujące rzeczy: Moduł sterująco-odbiorczy (Attiny2313, MT8870, L293D) 2 przerobione serwomechanizmy modelarskie. Zużyty łańcuch i zębatki rowerowe. 2 PMR (private mobile radio [krótkofalówki]) 4xAA 2700mAh 4xAAA 900mAh Korpus wykonany z aluminium łączony stalowymi śrubami Korpus po zmontowaniu prezentuje się następująco: --------------------------------------------------------------------------------------- Elektronika. Schematy: Układ sterujący: Płytka Ukł. sterującego: Dekoder DTMF: Płytka dekodera: Mostek H: schemat: Układ: Kilka słów o zasadzie działania. Do przesyłania komend wykorzystujemy system DTMF (ang. Dual Tone Multi Frequency) - który wykorzystując modulację MFSK (ang. Multiple frequency-shift keying) kluczuje się dwie częstotliwości. Sygnał DTMF jest stworzony do przesyłania torem audio - wobec czego idealnie nadaje się do przesyłania wszystkimi służącymi do tego celu urządzeniami (telefony, krótkofalówki, radia CB, VoIP itp.) W mojej platformie użyłem dwie krótkofalówki, które praktycznie nie nadają się do rozmawiania (straszna jakość rozmowy). W ten sposób dostały one nowe życie, bo sygnał DTMF przesyłają wyśmienicie. Jako nadajnik pracuje zestaw dwóch urządzeń - krótkofalówka i generator dtmf - telefon nokia 6120. Połączone są one wyjściami zestawów słuchawkowych (przewód jack2.5-jack2.5 podłączony do głośnika ze strony nokii i mikrofonu ze strony krótkofalówki) Wykorzystując wszystkie urządzenia audio możemy miedzy innymi nagrywać trasę robota edytować itp, itd Dekodowaniem DTMF (dźwięku klawiatury nokii) zajmuje się układ MT8870 Na końcówce StD układu MT8870 pojawia się stan wysoki w momencie odebrania i zdekodowania prawidłowego kodu DTMF na końcówkach q1-q4 układu zostaje zatrzaśnięty kod odebranego znaku. Czyli: Jeżeli naciskamy guzik w telefonie - na końcówce StD pojawia się 1 a na końcówkach q1-q4 jest np 1001 jeśli puszczamy guzik w telefonie na StD pojawia sie 0 a na końcówkach q1-q4 jest np 1001 Przetworzeniem tych pięciu zer i jedynek i zamienianiem na ruch zajmuje się ATtiny 2313 Robi to on w następujący sposób: $regfile = "2313def.dat" $crystal = 8000000 'określenie uC '$noramclear Config Portb.3 = Input Config Portb.2 = Input Config Portb.1 = Input Config Portb.0 = Input Config Portd.6 = Input Config Portd.2 = Output Config Portd.3 = Output Config Portd.4 = Output Config Portd.5 = Output Motor_lp Alias Portd.2 'Określenie portów sterujących silnikami przez mostek Motor_lt Alias Portd.3 Motor_pp Alias Portd.4 Motor_pt Alias Portd.5 'Określenie portów wejściowych (dekoder) Sygnal Alias Pinb.3 A Alias Pinb.2 B Alias Pinb.1 C Alias Pinb.0 D Alias Pind.6 'Polecenia wydawane na podstawie stanów wejściowych: Do If Sygnal = 1 And A = 0 And B = 0 And C = 1 And D = 0 Then Gosub Prosto Elseif Sygnal = 1 And A = 0 And B = 1 And C = 1 And D = 0 Then 'Skręć w lewo Gosub Prawo Elseif Sygnal = 1 And A = 0 And B = 1 And C = 0 And D = 0 Then 'Skręć w lewo Gosub Lewo Elseif Sygnal = 1 And A = 1 And B = 0 And C = 0 And D = 0 Then 'Skręć w prawo Gosub Tyl Elseif Sygnal = 0 Then Gosub Stopp End If Loop Prosto: 'Tryby pracy silników dla poszczególnych ruchów Motor_lt = 0 Motor_pt = 1 Motor_pp = 0 Motor_lp = 1 Return Lewo: Motor_lt = 1 Motor_pt = 1 Motor_pp = 0 Motor_lp = 0 Return Prawo: Motor_lt = 0 Motor_pt = 0 Motor_pp = 1 Motor_lp = 1 Return Stopp: Motor_lt = 0 Motor_pt = 0 Motor_pp = 0 Motor_lp = 0 Return Tyl: Motor_lt = 1 Motor_pt = 0 Motor_pp = 1 Motor_lp = 0 Sam program jest podobny jak nie identyczny z najprostszymi line followerami - kilka stanów wejściowych steruje dwoma silnikami za pomocą mostka H. No i generalnie chyba tyle Do platformy planuje dołączyć komunikacje w drugim kierunku, za pomocą RC5 i podczerwieni - platforma jest królikiem doświadczalnym dla telekomunikacji (profil w technikum). Niedługo będzie to także robot - dzięki czujnikom sharpa umieszczonym z przodu i z tyłu za pomocą RC5 będzie wysyłał informacje o odległości przedmiotów od pojazdu a po dłuższej bezczynności sam spróbuje wyjechać z labiryntu. Na koniec jeszcze trochę zdjęć i trzy filmy. Wersja λ (alfa - dużo kabelków itp): [ Dodano: 13 Gru 09 12:28 ] Przy tworzeniu układu opierałem się na tym opracowaniu T102.zip
  16. Witam. Przedstawiam kolejną konstrukcję. Jak to u mnie bywa zrobiony został dla zabawy, satysfakcji oraz w celach pokazowych dla dzieci i młodzieży. Stąd też walory estetyczne biorą górę nad właściwościami MECHANIKA: Buda wydrukowana na RepRapie, koła również, opony z 5 pasków 2mm od magnetowidu. Napęd stanowią wyciągnięte z poprzedniego minisumo 2 serwa tp5010. Z przodu pług wyfrezowany z czarnego laminatu z wygrawerowaną nazwą. ELEKTRONIKA: 2 czujniki sharp GP2Y0D340K. Mają one strasznie wąski kąt widzenia. Myślałem że 2 wystarczą ale się myliłem. Umieszczone są pod katem ok 10stopni na zewnątrz. 2 czujniki KTIR0711S. Użyty został procesor Atmega8 w granym bootloaderem megaload, komunikacja i programowanie przez uart. Serwa zasilane są poprzez tranzystor aby w spoczynku nie pracowały. Całą płyta pochylona jest w dół pod kątek ok 4stopnie by wykrywać niższych przeciwników oraz żeby pług był trochę niższy. SOFTWARE: Dopiero się zabieram za to. Dla potrzeb filmiku na szybko coś skleciłem. Oczywiście w Bascomie Oto Kilka fotek, schemat i film. Miłego oglądania Sławek
  17. Chciałbym zaprezentować Wam, chyba pierwszy na Forbocie, manipulator równoległy typu Platforma Stewarta. Urządzenie powstało w ramach pracy magisterskiej na Wydziale Mechatroniki i Budowy Maszyn Politechniki Świętokrzyskiej pod czujnym okiem dr inż. Pawła Łaskiego. Temat pracy: projekt manipulatora o zamkniętym łańcuchu kinematycznym, o sześciu stopniach swobody z napędem elektrycznym. Projektowanie. Projekt konstrukcji mechanicznej został wykonany w Solid Worksie. Wszystkie układy elektroniczne projektowane były w Eagle, a algorytmy sterowania wyprowadzane z pomocą Matlaba. Poniżej widać projekt konstrukcji mechanicznej. Mechanika: Manipulator posiada 6 stopni swobody. Składa się z nieruchomej podstawy, sześciu jednakowych i symetrycznie rozmieszczonych ramion oraz ruchomej platformy. Podstawa wykonana z polietylenu HDPE, platforma ruchoma z poliamidu. Ramiona składają się z dolnej części w postaci płaskownika z włókna szklanego, górnej w postaci pręta stalowego (w przyszłości będzie pręt z włókna węglowego) i dwóch przegubów kulistych. Urządzenie napędza sześć serwonapędów Tower Pro MG995. Zamocowane one są za pomocą uchwytów z aluminium. Elektronika: Część elektroniczna składa się z trzech modułów. Pierwszy to moduł sterownika głównego. Zbudowany został w oparciu o ATMegę 128 taktowaną kwarcem 16MHz. Zajmuje się on praktycznie jedynie wykonywaniem obliczeń kinematyki. Moduł ten komunikuje się ze światem zewnętrznym za pomocą USARTu. Na płytce wyprowadzone są dwa złącza DB9 służące do połączenia z komputerem w standardzie napięć RS232 i z kontrolerem w standardzie TTL. Ponadto ATMega 128 połączona jest za pomocą drugiego kanału USART ze sterownikiem serwonapędów. Drugi moduł to moduł sterownika serwonapędów. Zbudowany jest w oparciu o ATMegę 8 z kwarcem 8MHz. Sygnał PWM generowany jest programowo za pomocą dwóch timerów. Trzeci moduł to moduł kontrolera. Za jego pomocą użytkownik może sterować manipulatorem. Jego sercem jest ATMega 8 z kwarcem 8MHz. Dwie gałki z potencjometrami służą do zmiany pozycji i orientacji platformy roboczej. Kontroler ma również trzy mikroswitche za pomocą których można zmieniać informacje wyświetlane na LCD oraz funkcje potencjometrów. Na LCD wyświetlane są ustawiana pozycja i orientacja platformy, oraz współrzędne przegubowe serwonapędów. Urządzenie zasilane jest z zasilacza komputerowego DELL. Do pracy wymaga napięcia +5V i zapasu wydajności prądowej ok. 9A. Sterowanie: Manipulator wypracowuje zadaną przez użytkownika pozycję i orientacje platformy roboczej w bazowym układzie współrzędnych. Układ ten związany jest z podstawa manipulatora. Po załączeniu zasilania robot przyjmuje pozycję startową. Za pomocą kontrolera lub komputera do układu sterowania przesyłana jest pozycja i orientacja platformy jaką robot ma wypracować. Układ sterowania wyznacza tor ruchu w postaci linii prostej z punktu aktualnego do docelowego i wykonuje ruch wzdłuż tej prostej z krokiem nie większym niż 1 mm. Po każdym kroku na bieżąco przeliczana jest kinematyka odwrotna i wyliczane nowe wartości współrzędnych przegubowych. Po wyliczeniu układ sterowania wysyła do sterownika serwonapędów współrzędne przegubowe serw do wypracowania. Zadanie odwrotne kinematyki wymaga w każdym cyklu obliczeń rozwiązania sześciu układów trzech równań nieliniowych z trzema niewiadomymi ( po jednym dla każdego ramienia). Układy te rozwiązywane są Metodą Newtona – Raphsona. Obliczenia są dosyć skomplikowane, dlatego mimo użycia kwarcu 16MHz udało się uzyskać tylko 15 – 20 cykli obliczeń na sekundę. Widać na filmach, że manipulator porusza się takimi drobnymi kroczkami. Drugą słabością manipulatora są niewątpliwie niezbyt mocne napędy. Objawia się to niedokładnością w pracy i takimi momentami przestojów. Mimo to konstrukcja spełnia swoje założenia i chyba nie wyszła tak najgorzej. Tutaj kilka pozostałych zdjęć, a w najbliższym czasie postaram sie dodać jakiś filmy z pracy urządzenia. Pojawiły się dwa filmy
  18. Witam. Dziś mam okazję zaprezentować Wam mojego pierwszego robota kroczącego "kardbarder". Jest to hexapod w najprostszym możliwym wariancie budowy robota kroczącego - na pokładzie znajdują się tylko trzy serwa. Projektowanie: Nogi oraz platformy robota zostały narysowane w programie Corel Draw. Elementy mechaniczne ze względu na swoją prostotę nie były projektowane - robione na bieżąco. Jedynie mechanizm poruszania środkowych nóg przeszedł wcześniejszą symulację w programie Working Model 2D. Elektronika robota to płytka edukacyjna mojego wykonania. Program został napisany w języku BASCOM. Budowa: Robot - jak nazwa wskazuje - wykonany jest z tektury. Jest to ~ dwumilimetrowa tektura pochodząca z recyklingu - mianowicie są to okładki zeszytów. Materiał bardzo łatwy w obróbce a po nasączeniu klejem również bardzo wytrzymały i sztywny. Nogi wykonane są z dwóch warstw sklejonych ze sobą co daje dużą twardość a co za tym idzie stabilność robota. Elektronika: Mózgiem robota jest płytka wykonana dużo wcześniej - służąca w wielu projektach. Na pokładzie znajdują się: stabilizator napięcia TS7805, uC Atmega8 taktowany zewnętrznym kwarcem 12MHz, mostek h - L293D, kilka złącz oraz dodatków, Zasilanie: dwa akumulatorki Li-Ion połączone szeregowo. Do poruszania nóg wykorzystane zostały dwa przerobione serwa - tylko to było pod ręką. Pozycje nóg odczytywane są za pomocą potencjometrów i przetwornika ADC Czujniki: Robot został wyposażony w jeden czujnik odbiciowy własnej konstrukcji - zasięg: do 30 centymetrów w zależności od koloru i powierzchni przedmiotu. Filmik z działania robota:
  19. Witam. Chciałbym zaprezentować wam mojego robota typu Line follower . Powstał on przy waszej pomocy udzielonej w tym temacie. Został on zbudowany ok. 2,5 miesiąca temu. Jest to moja pierwsza tego typu konstrukcja i dzięki niej zdobyłem nową wiedzę i umiejętności oraz nabrałem ochoty do budowy kolejnego robota w tej kategorii. Mechanika Podwozie robota stanowi laminat 1,5mm. Konstrukcja napędzana jest dwoma silnikami HL 149 6V z przekładniami 10:1. Koła to Lego Technic o średnicy 43mm koloru czarnego, które wymagały rozwiercenia otworu na oś silnika ( co szczerze mówiąc nie wyszło mi za dobrze). Przód jest oparty na dwóch diodach led. Diody led podpierające przód Nietypowo rozwiązane zostało umocowanie silników. Początkowo planowałem wykorzystać otwory do tego przeznaczone znajdujące się przy osi silników, ale przy głębszym wkręcaniu śrubek blokowały one przekładnie i tak uszkodziłem 2 silniki. Wykorzystałem więc plastikowe uchwyty przeznaczone do montowania tylnej lampki rowerowej do ramy roweru. Pokażą to zdjęcia poniżej: Płytka z elektroniką przymocowana jest na 2,5cm tulejach dystansowych, natomiast akumulator znajduje się między elektroniką, a podwoziem ( przyczepiony za pomocą rzepu). Widoczne mocowanie płytki z elektroniką i akumulator Niestety nie znam wagi robota, bo nie mam żadnej wagi kuchennej w domu, ale każdy, kto miał te silniki w ręku wie, że nie są tak lekkie jak pololu . Elektronika Mózgiem robota jest popularna atmega8 w wersji DIP ( tak jak pozostałe elementy) bez dodatkowego zewnętrznego kwarcu. Sterownikiem silników jest układ scalony l293D - zdaje sobie sprawę, że pobór prądu silników przy zatrzymanym wale przewyższa maksymalny prąd mostka, dlatego podczas testów pilnowałem, by nie uderzał w przeszkody, a teraz to się praktycznie nie zdarza, o ile robot zostanie puszczony na zamkniętej trasie ( bez początku i końca). Na płytce znajduje się też tsop do uruchamiania robota, stabilizator dla elektroniki oraz włącznik całego zasilania. Silniki są zasilane oczywiście prosto z akumulatora, którym jest pakiet modelarski litowo polimerowy firmy Dualsky o napięciu 7,4V i pojemności 400mAh. Jako czujniki linii służy 5 sztuk transoptorów odbiciowych CNY70. Są o 3mm niższe od diod podpierających przód robota i właśnie type dzieli je od podłoża. Schemat Zamiast ktirów widocznych na schemacie użyte zostały CNY70 Płytka główna Płytka z czujnikami - widok od dołu Akumulator ładowany jest zazwyczaj do ponad 8V, dlatego po odjęciu spadku napięcia na mostku H silniki otrzymują mniej więcej tyle, ile potrzebują - 6V. Kondensatory filtrujące na stykach silników Program Program jest napisany w Bascomie. Czujniki są podłączone pod kanały ADC, co bardzo ułatwia dobranie granicy wykrywalności linii. Po nieudanej próbie zaimplementowania członu P wykorzystałem to, co dotychczas umiałem, czyli same if'y. Myślę, że ten robot posłuży jeszcze jako platforma do okiełznania całego regulatora PiD, albo przynajmniej wyżej wymienionego P. Nie będę udostępniał kodu ze względu na to, że jest on prymitywny, zagmatwany, nieczytelny, bez komentarzy i trudno, by inni początkujący coś z niego wynieśli. Zakończenie Warto wspomnieć, że są to moje pierwsze wytrawione płytki. Jestem z nich bardzo zadowolony i już nie powrócę do płytek uniwersalnych . Konstrukcje uważam za dobre wypełnienie luki pomiędzy konstrukcjami na przerobionych serwomechanizmach modelarskich, a tymi na silnikach pololu. Postaram się przybliżyć teoretyczne koszta: 1. silniki 30zł 2. akumulator 22zł 3. atmega8 +l293d 11zł 4. 5x CNY70 14zł 5. Laminat 8zł 6. koła 12 zł 7. Reszta ok. 8zl. Razem: 105zł + ew. przesyłki. Akumulator może posłużyć ( i posłuży) też w innych konstrukcjach. Koszty są też uzależnione od tego, co mamy już w domu. Ps. Pewnie niektórzy zauważyli na zdjęciach naklejkę z Cybair - tak, robot tam startował, ale przez błąd w algorytmie wypadał z trasy na kącie prostym. Błąd został znaleziony zaraz po zawodach i oczywiście zaraz usunięty. Niestety na samych zawodach nie miałem laptopa. Ps2. Tak, wiem... robot jest trochę zakurzony na zdjęciach Przepraszam was za to.
  20. Przedstawiam mojego najnowszego LineFollowera, którym jest Silver. Prace nad robotem zostały rozpoczęte po RoboticArenie, jednak ostateczne uruchomienie robota było możliwe dopiero na kilka dni przed jego pierwszymi zawodami czyli T-BOT 2012. Jest to dość standardowa konstrukcja jak na ostatnie linefollowery, głównym założeniem jaki sobie postawiłem projektując konstrukcję była jak najmniejsza masa. Elektronika sterująca robotem jest dość prosta: 20 czujników KTIR + komparatory, do tego ATmega128, mostek TB6612, sterownik dla turbiny i to właściwie wszystko. Całość zasilana jest z pakietu 2S 350mAh. Konstrukcja mechaniczna składa się z jednej głównej płytki drukowanej wykonanej w firmie SatlandPrototype, do tego dwa silniki Pololu 10:1HP oraz koła wytoczone z aluminium przez hungrydevil'a. Mam też inny komplet, na którym testowałem odlewanie ogumienia z innych materiałów (głównie silikony), jednak ostatecznie zostałem na oponach mini-z. Program napisany jest w C, odczyty czujników cyfrowe, zaimplementowany PD, jednak praktycznie na wszystkich zawodach jeździł wyłącznie na samym członie P. Osiągnięcia: - finał na T-BOT 2012 - finał na RobotChallenge 2012 - FTL i FTL z przeszkodami - 3 miejsce na Robomaticonie 2012 Podsumowanie - ogólnie z konstrukcji jestem niezadowolony. Sprawiła mi sporo problemów i ostatecznie nie osiągnęła tyle ile mogła. Teraz skupiam się na całkowicie innym sofcie do robota oraz dobrym "debugowaniu" co ogromnie ułatwia i przyspiesza pracę. Płytek, schematów oraz kodu nie udostępniam. Nie wiem co może Was jeszcze zainteresować, więc czekam na ewentualne pytania.
  21. Przedstawiamy naszego pierwszego robota. Przygodę z robotyką zaczęliśmy 1 marca z zerową wiedzą na temat elektroniki i programowania. Po niespełna dwóch miesiącach wystartowaliśmy na pierwszych zawodach w Gdańsku (TTR 2012). W przerwie między zawodami (Gdańsk-Poznań) robot został wyposażony w nową płytkę oraz pakiet Li-pol. Wykorzystując zaoszczędzone miejsce po bateriach R6 i płytce DIP udało się zamknąć wszystko pod daszkiem. Mechanika: -Korpus wykonany z laminatu, zlutowany i polakierowany, wszystko w kuchni studenckiego mieszkania. -Silniki: 4x Pololu 50:1 HP. -Koła: 4x Solarbotics RW2i, aktualnie silikonowe odlewy. Elektronika: -Czujniki 4x Sharp GP2Y0D810Z0F (10cm), 1x Sharp GP2Y0D340K (40cm). 3x TCRT7000 (czujniki linii). -Mikrokontroler Atmega 32 -Mostek L298 -Komparator LM339 -Zasilanie pakiet Li-pol Dualsky 7,4V 800mAh 20C. Wnioski: -Koła Solarbotics... Nędza. -Konstrukcja z opadającym grawitacyjnie klinem - bez szans na zwycięstwo z szybkimi przeciwnikami. -Zbyt wysoko położony środek ciężkości (w drugiej wersji poprawione). -Jeden mostek L298 to zbyt mało na cztery silniki. -Słaby program. -Plątanina kabli ujmuje wizualnie i praktycznie. Pomimo wielu niedociągnięć jesteśmy dumni ze swojej konstrukcji. W kwietniu wystartowaliśmy w zawodach, gdy na początku marca nie mieliśmy kompletnie pojęcia o podstawach elektroniki i programowaniu mikrokontrolerów. Z pewnością największym sukcesem robota jest masa wiedzy i doświadczenia, które pozwolił nam zdobyć. Mamy nadzieję, że następny zawodnik minisumo dostarczy również radości z wyników na zawodach. __________ Komentarz dodany przez: Treker Poprawiłem post zgodnie z wymogami działu (zdjęcie jako załącznik, brak grafik na początku, proszę o tym pamiętać następnym razem).
  22. Witam! Chciałbym wam przedstawić mojego drugiego robota klasy linefollower. Teraz jest on na trochę większym poziomie niż Wolverine. Ogólnie koncepcja nowego robota powstała po zawodach T-Bot, na których zobaczyłem po raz pierwszy robota Botland Teamu. Decyzja padła szybko i była jednoznaczna. Zamawiam turbinę. I tak z kolegą, Harnasiem na następny dzień po powrocie do domów z zawodów zamówiliśmy potrzebne nam rzeczy z HK. I tutaj był największy problem. Na turbinę czekałem praktycznie 3 miesiące... No ale... teraz już robot ma wszystko co było przewidziane. Tutaj również dodam że to moja ostatnia konstrukcja z wykorzystaniem AVRów. Na filmie nie widać aby Turbinowiec był szybki lecz PWM wynosi już 230/255, a winą takiej jazdy jest przysysanie trasy do wirnika turbiny przez co hamuje i to dość znacznie. Postaram się nagrać coś na innym podłożu lub zawodach. Elektronika Robot posiada 2 mikrokontrolery, zaraz mi ktoś powie z oburzeniem " po co?! " Już tłumaczę. ATMega16 odpowiedzialna jest tylko i wyłącznie za odczyt z komparatorów, za obliczenia dotyczące regulatora PD oraz wysterowanie silników. Natomiast ATMega8 obsługuje TSOP'a, obsługuje sterownik do napędu tunelowego, załącza diody LED znajdujące się pod robotem oraz wysyła sygnały do "głównego" procka, no i oczywiście obsługa przycisków jest na nim ATMega16 jest taktowana kwarcem 16 MHz, natomiast ATMega8 napędzana jest z wewnętrznego oscylatora 1 MHz. Nie ma potrzeby „rozpędzania go” do większych prędkości. Mostki H w robocie to nic innego jak już sprawdzone nie jeden raz TB6612FNG z którymi nigdy nie miałem problemów. Do stabilizacji napięcia logiki jest wykorzystany L7805AC2T, natomiast dla silników przetwornica LM2576S, również z nią nigdy nie miałem problemów, tylko raz poszła z dymem, ale spełniała moje oczekiwania Program Cały kod napisany w C. Powstał bardzo szybko i dobrze spisywał się dla prędkości rzędu 1,5m/s, gdy nie było turbiny. Teraz z turbiną muszę zmieniać współczynniki, ale kiedyś dojdzie do perfekcji tak jak Wolverine. Czujniki Transoptory to już wszystkim znane i myślę że lubiane KTIRy0711s, jest ich 16, ułożone w linie prostą. Myślałem nad dołożeniem jeszcze trzech czujników na około 3cm przed robota aby robot mógł szybciej hamować, ale zrezygnowałem z tego. Przy poprzedniej konstrukcji mówiłem że nigdy nie dam mniej niż 16 czujników, a będę dawał ich więcej. Niestety ale pozostałem przy 16 czujnikach. Myślę że można z nich wyciągnąć przyzwoitą rozdzielczość i nie ma potrzeby stosowania więcej. Sygnał analogowy wychodzący z czujników jest podawany na komparatory LM339 a następnie trafia już do ATMegi16. Robot ma również wyprowadzone pady dla sharpa 340k, ale nie jest zamontowany, gdyż nie było takiej potrzeby. Wątpię w jego przydatność na tym poziomie. Płytka PCB Robot składa się z jednej płytki pcb, z czarną soldermaską. Płytka wykonana w firmie Satland Prototype, która dała mi bardzo duży rabat. Laminat ma grubość 1,5mm. Zastanawiałem się długo nad zastosowaniem laminatu 1mm ale bałem się że pęknie pod wpływem działania turbiny. Silniki Tutaj nic specjalnego, Pololu 10:1 w wersji HP. Myślę że do takiej konstrukcji nic więcej nie potrzeba. Pod silnikami znajdują się podkładki z laminatu, niestety wycinane krzywo w domu i pomalowane czarnym sprayem, kompletnie zapomniałem o nich w czasie projektowania PCB. Napęd tunelowy Tutaj też bez żadnych nowości. Zgapiony EDF 27 wraz z rekomendowanym regulatorem do niego 10A. Przed zbyt mocnym wygięciem płytki chronią diody 3mm, laminat ma 1,5mm grubości więc nie powinien pęknąć, w sumie to musi wystarczyć. Programowanie Tutaj do obu procków zastosowałem 1 złącze 10 pinowe IDC w standardzie Kanda. Za pomocą zworki ustalam który procesor ma być programowany. Zworka przerywa sygnał SCK, co w zupełności wystarcza do wygodnego działania. Wyprowadzony jest także USART, ale tylko z ATMega16. Myślałem nad „takim czymś” do zmieniania współczynników za pomocą drugiego uC. Na razie składam następnego robota i za bardzo nie mam czasu się tym zająć. Tutaj starszy filmik, pierwszy jedzie Wolverine, później Turbinowiec bez turbiny https://www.youtube.com/watch?v=fq4pDa_FbLs&feature=my_liked_videos&list=LLLl83Q1iIMDCwv97ZFhlsrg Tutaj najnowszy filmik: __________ Komentarz dodany przez: Treker Usunąłem zbędne sztuczne łamanie linii.
  23. Witam wszystkich, chciałbym wam zaprezentować mojego pierwszego robota kategorii minisumo, którego zrobiłem 2 lata temu. Wystartował on w zawodach na Uniwersytecie Technologiczno - Przyrodniczym w Bydgoszczy. Wygrał tylko 2 rundy w całych zawodach. Chciaż dla mnie sam udział był już sukcesem. Elektronika Płytkę sterującą dostałem od uniwersytetu w Bydgoszczy. - 3x czujniki analogowe Sharp - zasięg 80cm, - 4x czujniki odbiciowe QRD1114, - akumulator 11,1V o pojemności 1500mAh Mechanika - 2x serwomechanizmy Towerdpro MG996R, które przerobiłem na silniki, - koła o średnicy 82 mm i szerokości 10 mm, - guma na kołach to owijka od rakiet tenisowych. Ogółem cały robot wykonany jest z aluminium. Na zawodach robot walczył pod nazwą "Obrowianek", była to nazwa tymczasowa, potem uległa zmianie. Minusy konstrukcji: zbyt wysoki, zbyt wolny, zbyt słaba przyczepność, wadliwy program. Plusy: pierwsza konstrukcja - zakończona pomyślnie, obudowa użyta jako radiator, przez co dobrze oddawał ciepło, chyba solidnie zrobiony, gdyż na zawodach nie miał żadnych usterek Filmik z zawodów:
  24. Po długim czasie postanowiłem w końcu opisać szerszemu gronu moją pierwszą poważną konstrukcję (pomijając LFa sprzed roku, robiącego teraz za płytkę uniwersalną z przetwornicą). Postaram się zgrubnie opisać konstrukcję, a szczególny nacisk położyć na szereg popełnionych błędów i spostrzeżeń powstałych podczas konstrukcji i programowania. Robot "IPreferPI" powstał w ramach warsztatów rekrutacyjnych Koła Naukowego Robotyków KoNaR na PWr. Gdy zaczynałem nad nim pracę, Devil jeszcze nie istniał, a inne myszy startujące w zawodach (chyba w Krakowie już wtedy była kategoria MM) przeważnie obijały się o ściany i raczej do żwawych nie należały. Celem projektu było... cóż, skopanie im tyłków. Dlatego też w założeniach miała to być lekka, zwrotna i szybka mysz o sensoryce, napędzie i płynności ruchów (choć niekoniecznie prędkości) robotów japońskich. Częściowo udało się to osiągnąć, lecz w trakcie programowania trafiłem na problem z enkoderami, którego nie udało się rozwiązać - szczegóły niżej. Mechanika Cała mechanika oparta jest o płytkę laminatu grubości 1,5mm. Bezpośrednio do niej przykręcone się silniki, od spodu na taśmę izolacyjną przyklejona jest kulka podporowa. Z powodu zastosowania enkoderów magnetycznych mocowanych na zewnątrz kół konieczne było wyrzeźbienie odpowiednich stelaży. Magnesy zostały wklejone w "kołpaki" wycięte z laminatu, a te przyklejone kropelką do felgi. Mimo że wszystko robione było na oko - magnesy zostały umieszczone idealnie nad środkiem enkodera i nie przemieszczają się w trakcie obrotu koła. Montaż kulki podporowej Szczegóły montażu enkodera W teorii jest to konstrukcja bardzo prosta, ale jednak popełnionych zostało sporo błędów: [*]nie przewidziano miejsca na otwory pod śruby mocujące kulkę podporową, przez co jest ona przyklejona taśmą izolacyjną. Ma to też swoje zalety - mocowanie takie dobrze tłumi drgania i ewentualne nierówności podłoża; [*]diody IR oraz fototranzystory użyte w roli czujników odległości wychodzą poza obrys płytki, przez co każde zderzenie ze ścianą, których ciężko uniknąć podczas początkowego pisania oprogramowania robota, skutkuje ich wyginaniem i koniecznością ponownego ustawiania w poprawnej pozycji; [*]tylna oś została umiejscowiona za daleko względem środka robota, przez co czasem podczas robienia obrotu o 180° robot zahacza przodem o ściankę - no i mamy bubę opisaną wyżej, albo po prostu nie robi całego zwrotu; [*]nie przemyślano sposobu wygodnego i bezpiecznego mocowania ogniw dostarczających zasilania - z pomocą znów musiała ruszyć taśma izolacyjna; [*]nie przewidziano mechanicznego wyłącznika odcinającego zasilanie, zgodnie z naszą akademikową tradycją uznanego za zbędny - a potem trzeba się było szarpać z kablami. Robot napędzany jest przez silniki Polulu HP z przekładnią 30:1, jeździ na oponach Solarbotics, które mi akurat bardzo się podobają (choć musiały zostać przyklejone do osi klejem na gorąco, bo firmowa śrubka się luzuje i generalnie jest beznadziejna). Elektronika Silniki zasilane są bezpośrednio z baterii. Cała logika oraz diody IR dostają 5V ze stabilizatora LM1117. W układzie wydzielone zostały 3 pola masy - cyfrowa (procesor i logika mostka H), analogowa (diody sygnalizacyjne i czujniki) oraz przeznaczona dla silników. Łączą się one tuż przy baterii i kondensatorze 220uF. Całość działa pod kontrolą ATMegi1284P. Wersja -4 głównie z racji na przerwania zew. na wszystkich pinach, a pamięci taki ogrom, gdyż inne były w trakcie konstrukcji niedostępne. Mikrokontroler taktowany jest przez kwarc 20MHz. Mysz wyposażona została w odbiornik podczerwieni TSOP4840 umożliwiający zdalny start/stop. Bardzo udanym pomysłem było wyprowadzenie złącza interfejsu UART, który poprzez moduł BT został wykorzystany do bezprzewodowej kontroli myszy w trakcie pisania oprogramowania i pierwszych chwil w labiryncie - bardzo polecam takie rozwiązanie, choć niestety nie da się w ten sposób wizualizować danych w matlabie (po prostu nie da się wykorzystać połączenia COM tworzonego przez BT w komputerze - potwierdzone przez pracownika na forum Matlaba). IPreferPI z zainstalowanym modułem BT Sensory zostały oparte na bazie diod IR SFH4550 oraz fototranzystorów BPV11. Diody uruchamiane są impulsowo poprzez układ ULN2003. Rozwiązanie to jest wyjątkowo skuteczne - byłem zaskoczony jak czysty, niezaszumiony i łatwy w interpretacji daje to odczyt. Rezystory między emiterami fototranzystorów a masą zostały dobrane doświadczalnie i z pewnością nie jest to 470Ohm jak na rysunku poniżej - zatrzymałem się chyba w okolicach pojedynczych kiloomów, nie mam teraz myszy pod ręką, żeby to sprawdzić. Diody IR połączone są bezpośrednio z driverem, bez oporników - zapalane są na ułamki sekund, a pozwoliło to na zwiększenie odległości i czułości czujników. Wykorzystane enkodery to AS5040 firmy AMS. Mysz zasilana jest z dwóch ogniw LiPo kupionych kiedyś-gdzieś o pojemności 250mAh. Są wystarczające do dość długiego szperania po labiryncie, a ważą niewiele i zajmują mało miejsca. Schemat ideowy elektroniki robota Oprogramowanie I tu pojawił się problem. W skrócie - ATMega najwyraźniej nie jest w stanie wyrobić się z liczeniem impulsów z enkodera. Poniżej zamieszczam najlepszy kod, jaki byłem w stanie wymyślić, ale nadal nie pozwał on na poprawną obsługę enkoderów. Objawy były następujące - przy zadaniu przejechania np. 1000 tików enkodera z prędkością powiedzmy 250 tików na sekundę robot przemieszczał się o 50 jednostek. Gdy natomiast miał przemieścić się o 1000 tików, ale z prędkością 500t/s, to jechał oczywiście szybciej, ale na odległość znacznie większą - np. 75 jednostek. Wniosek jest prosty - im szybciej jechał robot, tym więcej tików zostawało pominiętych, przez co kontrola odległości ze zmienną prędkością jazdy była niewykonalna. Byś może dałoby się to rozwiązać wykorzystując interfejs SPI w enkoderach, dokładając tam jakiś układ poboczny zajmujący się tylko obsługą enkoderów albo stosując inną sztuczkę, ale prawdę mówiąc po wykryciu źródła problemów zostałem bardzo zniechęcony do dalszej walki. Pomimo tych problemów udało się zaimplementować w miarę sensowne poruszanie się po labiryncie - chyba jedyny istniejący filmik zamieszony jest na dole. Ponieważ jednak z racji na problemy z enkoderami nie dało się polepszyć parametrów jazdy, np. wprowadzić łagodnego pokonywania zakrętów, pełen algorytm przeszukiwania algorytmu nigdy nie został do końca zaimplementowany. Zamiast tego zaczęła powstawać nowa konstrukcja, pozbawiona wszystkich wymienionych błędów, która mam nadzieję zawojuje RA2012 ISR(PCINT2_vect) // aktualna wartość enkoderów w globalnych int enkoderL, enkoderP { enkl = (PINC & (3 << 0)) >> 0; // enkodery podłączone do pinów 0,1,2,3 portu C enkp = (PINC & (3 << 2)) >> 2; // enkl - akt. stan lewego , penkl - poprzedni if(enkl != penkl) { if( (penkl & 1) ^ ((enkl & 2) >> 1) ) enkoderL--; else enkoderL++; } if(enkp != penkp) { if( (penkp & 1) ^ ((enkp & 2) >> 1) ) enkoderP--; else enkoderP++; } penkl = enkl; penkp = enkp; } Podsumowując, budowa IPreferPI przyniosła głównie olbrzymią dawkę doświadczenia jeśli chodzi o budowę, działanie i wymagania robota klasy MM. Plany były ambitne, rzeczywistość dość je unormowała, ale z pewnością całość pracy zaprocentuje w trakcie tworzenia TAU, myszy która już jest w budowie. Starałem się wspomnieć o wszystkim, co zasługuje na uwagę, ale chętnie odpowiem na wszelkie pytania i wysłucham krytyki Sabre Podążanie za kartką: Jedyny film z "labiryntu": Szczerzy kły!
  25. Witam! Po około 6 miesiącach walki z mikrokontrolerami nadszedł czas na budowę pierwszego robota w pełni programowalnego i z dobrym prockiem Jako, że z elektroniką mam 2 letnie doświadczenie to z tym nie miałem żadnych problemów, tak samo z PCB i zaprogramowaniem procesorka. Nazwa Janusz wzięła się od imienia mojego nauczyciela IT oraz elektromechaniki, od którego dostałem dwie 6 na koniec roku Płyta główna Procesorem sterującym jest Atmega8, jako mostek H został użyty L293D. Ów moduł został wyposażony także w 4 diody sygnalizujące stan pracy odpowiadającym im czujnikom. Każde wyprowadzenie procesora mające na celu zasilać (np. przetwornik ADC) jest filtrowane przez kondensator 100nF, więc tętnień raczej nie ma. To samo z mostkiem H - po 220µF na piny zasilania. Dodatkowym "bajerem" płyty głównej jest odbiornik kodu RC5, lecz jego "magia" zostanie wykorzystana dopiero wkrótce. Może wydawać się to wam dziwne ale ta dioda prostownicza obniża napięcie dla mikrokontrolera i logiki L293D. Kilka fotek: Moduł czujników Jako czujniki odbiciowe wykorzystałem 4x CNY70. Rezystory podciągające kolektory tranzystorów mają wartości 10kΩ, a rezystory ograniczające prąd diod mają wartości 220Ω. Niestety jeden z czujników nie działa i nie wiem dlaczego. Będę musiał go wymienić w najbliższym czasie. Kilka fotek: Podwozie Funkcję podwozia pełni zielony laminat szklano-eposydowy. Silniki to przerobione serwa HXT-900. Zasilanie to 4x bateria AA. Koło obrotowe kupione zostało w Obi, ale średnicy nie pamiętam. Funkcję kół pełnią nakrętki od słoików obklejone uszczelką do okien Fotka: Schemat Program ''''''''''''''''''''''''Konfiguracja'''''''''''''''''''''''' $regfile = "m8def.dat" $crystal = 12000000 'Konfiguracja przetwornika analog-cyfra (ADC) Config Adc = Single , Prescaler = Auto , Reference = Avcc 'Konfiguracja sterowania sprzętowym PWM Config Timer1 = Pwm , Pwm = 8 , Prescale = 1 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down 'Konfiguracja portów Config Portd = Output Config Portb = Output 'Granica reagowania na linię Const Granica = 400 'Deklaracja nazw Led2 Alias Portd.7 Led3 Alias Portd.6 Led4 Alias Portd.5 Led5 Alias Portd.4 Silnik_lewy_a Alias Portd.3 Silnik_lewy_b Alias Portd.2 Silnik_prawy_b Alias Portd.0 Silnik_prawy_a Alias Portd.1 'Deklaracje zmiennych Dim Czujnik_lewy As Word Dim Czujnik_srodkowy_lewy As Word Dim Czujnik_srodkowy_prawy As Word Dim Czujnik_prawy As Word Start Adc Set Silnik_lewy_a Reset Silnik_lewy_b Set Silnik_prawy_a Reset Silnik_prawy_b 'Silniki włączone Pwm1a = 255 Pwm1b = 255 ''''''''''''''''''''''''Pętla główna'''''''''''''''''''''''' Do 'Każdowazowa konfiguracja czujników Czujnik_lewy = Getadc(2) Czujnik_srodkowy_lewy = Getadc(3) Czujnik_srodkowy_prawy = Getadc(4) Czujnik_prawy = Getadc(5) If Czujnik_srodkowy_lewy > Granica Then Pwm1a = 255 Pwm1b = 255 Led3 = 1 If Czujnik_srodkowy_prawy > Granica Then Pwm1a = 255 Pwm1b = 255 Led4 = 1 Elseif Czujnik_lewy > Granica Then Pwm1a = 0 Pwm1b = 255 Led2 = 1 Elseif Czujnik_prawy > Granica Then Pwm1a = 255 Pwm1b = 0 Led5 = 1 Else Pwm1a = 255 Pwm1b = 255 Led2 = 0 Led3 = 0 Led4 = 0 Led5 = 0 End If End If Loop End Jazda testowa Podziękowania Szczególne podziękowania za pomoc w budowie robota kieruję do użytkowników: RaV Nawyk Kosztorys (według cennika firmy LISPOL) Atmega8 - 8zł L293D - koło 4.50zł odbiornik RC5 - koło 3zł reszta elektroniki - koło 5zł laminat - 9zł koło obrotowe - koło 3zł 4x CNY70 - koło 12zł 2x Serwo HXT-900 - koło 30zł własna praca - bezcenne Mówiąc szczerze to po ukończeniu robota i jego zaprogramowanie przez kilka dni miałem z nim problemy, lecz dzisiaj się udało i zadziałał jak trzeba (oprócz prawego czujnika) . Po dniach roboty nie ma to jak satysfakcja . Tym bardziej, że mam dopiero 14 lat
×
×
  • Utwórz nowe...