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 i 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łem przedstawić mojego pierwszego robota Omijaka, jest to robot który ma za zadanie omijacz przeszkody.Posiada on 4 tryby omijania są one zmieniane mikroswitch-em: 1: Niezależnie który przycisk zostanie naciśnięty skręca w lewo 2: Jak wyżej lecz skręca tylko w prawo 3: Skręca w lewo gdy zostanie naciśnięty prawy przycisk, skręca w prawo kiedy zostanie naciśnięty lewy przycisk. 4: Losowy wybór skrętu W zależności który tryb jest aktualnie włączony zapala się jedna z 4 diod LED znajdujących się na tyle. Zbudowałem go z następujących części : - Atmega8 x1 - l293d x1 -mikroprzełącznik SPDT x2 -mikroswitch x1 -kilka rezystorów -kilka Led-ów -kilku kondensatorów -Stabilizator lm7805 x1 -złącze idc-10 x1 - płytki uniwersalne : UM0, kawałek UM-13B,kawałek UMLED330R -różne kabelki -koszyk na baterie 4x aa Napęd: Jako napęd wykorzystałem 2 serwa s3003 nałożyłem na nie kółka z jakiejś starej zabawki, jako kółko podporowe wykorzystałem najzwyklejsze z fotela obrotowego . Program : Program został napisany w Bascom Avr znajduję się w załączniku . podstawa: Całość została zbudowana na odpowiednio dociętym kawałku sklejki . Kilka Zdjęć i filmików, przepraszam za słabą jakość lecz posiadam tylko aparat i kamerę która znajduję się w telefonie (trochę dziwna sceneria lecz zdjęcia robiłem na balkonie żeby mieć jak najlepsze światło ) Zdjęcia : Filmiki : https://www.youtube.com/watch?v=zY0budVg13ghttps://www.youtube.com/watch?v=r1yWk4FJfEs https://www.youtube.com/watch?v=JfkM9YaD2d0 Jestem otwarty na wszystkie Rady i pouczenie lecz proszę też o wyrozumiałość bo jak wcześniej pisałem jest to mój pierwszy robot . Pozdrawiam . Program + schemat.rar
  2. Witam wszystkich, chciałbym Wam dzisiaj zaprezentować mojego pierwszego robota. Wstęp Swego czasu obejrzałem parę filmików na yt z ciekawymi konstrukcjami robotów, które wyglądem (a czasem zachowaniem) naśladują owady, zwierzęta lub obce formy życia, no i akurat mnie też nagle wzięło i postanowiłem też coś takiego zbudować. Gdy mój robot przybrał już ostateczną formę to uznałem, że podobny jest do jakiegoś pędraka czy czegoś w tym stylu . A że "Larwa" brzmi wdzięcznie więc wybór padł na nią. Szczegóły techniczne 1. Szkielet robota stanowią elementy wycięte z płyty 5mm wykonanej z tworzywa PETg, takie płyty są niestety bardzo niedostępne. Materiał ten jest przejrzysty jak szyba szklana, i jest bardzo wytrzymały, nie pęka i nie łamie się jak plexi, ma wysoką udarność. Do połączenia wyciętych elementów użyłem śrub i nakrętek samokontrujących M3 + podkładki, oraz kleju cyjanoakrylowego. Dodatkowo użyłem tzw. drutu pamięciowego (sprężynowego) jako części kończyn przednich i tylnych oraz krążki gumowe jako stopy. Elektronikę przymocowałem, obejmami, gumkami i malutkimi wkrętami. 2. Elektronika robota wygląda następująco: 2 przerobione serwa modelarskie Turnigy Tg9e do napędu przednich nóg; akumulator li-pol 7,4v Zippy 1000mAh 15C; ATmega162 - mózg robota ; stabilizator 7805; sterownik silników l293d; czujniki do wykrywania przeszkód CNY70; diody led białe jako oświetlenie przednie; diody zielona, czerwona i niebieska jako lampka rgb; buzzer do przyszłych zastosowań; wskaźnik napięcia akumulatora hextronik; różne rezystory, kondensatory itp. 3. Program sterujący robotem na razie raczkuje i wykonuje podstawowe funkcje jak chodzenie, wykrywanie i omijanie przeszkód oraz sterowanie lampką rgb. Będę starał się go rozwijać. Galeria Utworzyłem taki sam temat niedawno na elektrodzie ponieważ moje konto na forbot.pl nie chciało działać, nie mogłem się zalogować a w efekcie zablokowało się na dobre i dopiero niedawno admin mi je odblokował. Uznałem więc, że warto a nawet trzeba też tutaj pokazać. Czekam na Wasze komentarze .
  3. Witam, chciałbym zaprezentować Wam moją pierwszą konstrukcję: line followera o nazwie Autonom-1. Cel Celem projektu było zapoznanie się tematami natury elektroniczno-mechanicznymi podczas budowy robota. W głównej mierze miałobyć to poznanie mikrokontrolera, jego peryferiów oraz jego oprogramowanie. Jednak doświadczenia przy tworzeniu Autonoma-1 przerosły moje oczekiwania In plus naturalnie. Wnętrzności Robotem steruje popularny mikrokontroler atmega8 zasilany dwucelowym akulatorem li-pol redoxa 1300mAh poprzez stabilizator LM7805 (straszna grzałka ). Silniki HL149 , zasilane są bezpośrednio z akumulatora i sterowane poprzez mostek H oparty o kostkę L293D. Koła, tanie noname'y z modelarskiego, mają średnicę 62mm i jak na razie sprawdzają się przyzwoicie. Czujniki linii to 8 sztuk TCRT5000 w tandemie z komparatorami LM339N. Wsad napisałem w C. Logika sterowania silnikami to sam człon P. Na chwilę obecną nie byłem w stanie zmusić reszty do sensownego działania. Uruchomienie Pierwsze uruchomienie nie nastręczyło wielkich problemów. Przygotowałem prostą trasę i poszło: Przygotowałem więc bardziej skomplikowaną trasę i zaczęły się schody. Musiałem więc "nauczyć" robota jak radzić sobie z zakrętami 90st. albo szukać linii jak wypadnie z toru. Jako, że nowa trasa jest jest bardzo ciasna (w stosunku do rozstawu kół robota - ok. 17cm) uroiłem sobie, że pomoże skrócenie robota. To był błąd (nie dość, że lepiej nie jedzie, to wygląda gorzej ). Oto moja testowa trasa: Wnioski - Konstrukcja z pewnością jest w stanie jeździć szybciej. Muszę popracować nad programem, - Skrócenie robota nie było dobrym pomysłem, - Silniki są bardzo ciężkie, co utrudnia walkę z bezwładnością robota, - Jak na początek, przygotowałem zbyt ciasną trasę przygody z LFami. Autonom-1 to prosta konstrukcja. Nauczyła mnie wiele z tego co planowałem się dowiedzieć jak i tego czego się nie spodziewałem (pierwszy dwustronny termotransfer czy pierwsze SMD). Przyjemnie spędzając czas nauczyłem się wiele ciekawych i przydatnych rzeczy. peace! __________ Komentarz dodany przez: Treker Temat przeniosłem z konstrukcji początkujących. Poprawiłem sztuczne łamanie wierszy.
  4. Witajcie, postanowiłem opublikować moją pierwszą konstrukcję jaką jest robot "Bunio". W sumie nie wiedziałem w jakiej kategorii go sklasyfikować, ale jako że na zawodach wziął udział w kategorii "MicroMouse" to taką też wybrałem, choć robot ten to bardziej moja "platforma testowa" do różnych zabaw z robotyką, zanim zbuduję coś poważnego. Parę tygodni temu rozpocząłem swoją przygodę z robotyką od kupienia platformy miniQ z trobota. Zastanawiałem się, co kupić na początek, by nie utknąć już na wstępie na problemach natury mechanicznej. Uznałem, że ta platforma ma dobrą cenę w stosunku do możliwości - na dzień dzisiejszy kosztuje 89zł, a zestaw zawiera podróbki silników pololu 1:50 (zwykłe, nie HP), których cena jest wyższa niż cena całej platformy (podwozie, silniki, mocowania silników, metalowa kulka podporowa). Silniki mają parametry: - 13000 rpm @ No load - 50:1 Gear ratio - 260 rpm @ 6V - 40mA @ 6V - 360mA stall current @ 6V - 10 oz inches torque @ 6V Są więc nawet teoretycznie trochę lepsze niż pololu 1:50, ale oczywiście zdaję sobie sprawę, że pololu są bardziej trwałe niż podróbki. Jako zasilania robota użyłem 6 akumulatorków AA, co daje łączne napięcie około 7 - 8,4V, w zależności od naładowania. Mostek H to oklepany L293D - jako, że silniki nie są HP, to mogłem zastosować jeden, bez obaw o wysoki prąd zwarcia obu silników. Silniki zasilam bezpośrednio z baterii, bo biorąc pod uwage bardzo wysoki spadek napięcia na tym mostku, to akurat zasilanie jest odpowiednie przy 100% PWM. Proszę się nie śmiać z tych baterii - wiem, że to kiepski pomysł i że zajmują 3/4 całej objętości robota - w planach miałem użycie lipola 2S, ale w Polsce są wysokie ceny, a na HK przesyłka długo idzie, więc czekam na razie.. Tak więc paluszki to tylko zastępcze zasilanie. Swoją drogą, mogłem użyć AAA (tak jak w robocie 3pi), ale akurat miałem dużo w domu AA, a zmieściły się na robota Jako mikrokontrolera użyłem Atmegi8 (zamiennie z 328P, bo taką też mam, a jest kompatybilna) taktowaną 16 Mhz z wgranym bootloaderem arduino - od arduino zacząłem swoją przygodę z elektroniką, więc już z przyzwyczajenia najłatwiej mi się pisze w tym środowisku, z użyciem bilbiotek wiring. Atmega jest zasilana z tych samych paluszków co silniki, tylko że przez również oklepany regulator 7805. Kod (napisany w C++/arduino) wrzucam po UART do atmegi poprzez ft232rl. Tydzień po kupieniu platformy miniQ, zauważyłem, że na zawodach Robotic Tournament w Rybniku (do którego mam dość blisko) będzie rozgrywana konkurencja MicroMouse. W szczególności zainteresował mnie fakt, że można dotykać ścianek (rzadko spotykane w tej konkurencji), oraz, że labirynt będzie można przejść regułą lewej/prawej dłoni. Pomyślałem, że spróbuję zbudować prostego robota "wall-follower" który będzie używał czujników dotykowych (krańcówek) do wykrywania ścian. Kupiłem parę krańcówek i na 3 dni przed zawodami (!) zacząłem budowę i pisanie programu. Zastosowałem 3 krańcówki (pololu, długie)- jedną z przodu do wykrywania przedniej ściany, oraz dwie z lewej strony do kontrolowania dystansu od lewej ściany. Nie śmiać się, że są poklejone taśmą - były za krótkie i przedłużałem je jakimś drutem czy kawałkiem metalu który miałem pod ręką i kleiłem taśmą klejącą. W moim założeniach było, by robot w ogóle dojechał do mety, więc po prostu przechodziłem labirynt metodą lewej dłoni, tzn zawsze dotykając lewej ściany. 2 lewe czujniki miały pewną różnicę pomiędzy sobą w wychyleniu, zatem zasada poruszania się była bardzo prosta: - jeśli bardziej wysunięta krańcówka dotyka ściany, a mniej wysunięta nie, to jedź prosto - jeśli obydwie dotykają ściany, to odjedź trochę w prawo - jeśli tylko mniej wysunięta krańcówka dotyka ściany, to ostro kontruj w prawo (teoretycznie sytuacja ta nie powinna mieć miejsca) - jeśli żadna nie dotyka ściany, to skręcaj w lewo (albo za bardzo robot odjechał w prawo, albo skończyła się ściana - bez znaczenia) Oraz oczywiście: - jeśli przednia krańcówka dotyka ściany to się zatrzymaj i odwracaj w miejscu w prawo aż krańcówka przestanie dotykać ściany. Te parę prostych "IFów" w programie pozwoliło mi przejechać labirynt - niestety całego robota złożyłem i napisałem do niego program na dzień przed zawodami (chyba w okolicy godziny 21), więc praktycznie nie było czasu na testy różnych ustawień krańcówek, odgięcia ich w odpowiedni sposób, oraz na regulację PWM lewego i prawego silnika w zależności od rodzaju skrętu (skręt w lewo ma inne ustawienia PWM niz w prawo). No trudno, cieszyłem się, że w ogóle działa. Niestety na zawodach okazało się, że krańcówki są źle umiejscowione i robot ciągle się zacina w labiryncie, przez co musiałem go dotykać (jest to dozwolone w regulaminie - każde dotknięcie robota to 5sekund kary do końcowego czasu). Nie mniej jednak, udało się przejechać cały labirynt (2-krotnie, bo 2 rundy były) uzyskując czas 5 minut i 15 sekund za pierwszym razem i poniżej 5 minut za drugim razem (nie pamiętam dokładnie) dotykając robota (aż!) 5 razy (co ciekawe, blokował się zwykle w tych samych 5 miejscach w labiryncie, niezależnie skąd był start). 5 minut to dość wolno - był to najwolniejszy robot z wszystkich które wystartowały (zgłoszonych było 6, ale 1 nie dojechał, 1 się zepsuł zanim postawiono go w labiryncie, więc w praktyce były 4 roboty), ale zajął na zawodach 3 miejsce , pokonując robota Stuart, który był szybszy w drugiej rundzie od Bunia, jednak w pierwszej rundzie pogubił się w labiryncie (bo raz zahaczył o scianę) i nie udało mu się dojechać do mety. To po prostu pech Harnasia - szkoda, bo jego robot był zdecydowanie lepszy oczywiście, no ale przez to potknięcie, mój robot nie był najgorszy, a nawet dostał medal (oraz parę nagród) za zaszczytne 3 miejsce Podsumowując (dla tych co nie lubą dużo czytać ): Podwozie: DFRobot miniQ (trobot.pl) - silniki 1:50 (260rpm) (klon pololu) - koła 42mm (klon pololu) - podstawa 12x12cm (klon pololu) - metalowa kulka podporowa Elektronika: - Atmega8/328P (z bootloaderem Arduino), 16Mhz, 5V - Stabilizator 7805 - Mostek H L293D Czujniki: - 3 krańcówki pololu Zasilanie: - 6 x AA 1,2V Schemat: Zdjęcia: filmiki: Pierwsza jazda robota, po złożeniu i napisaniu programu: Podczas pierwszych testów na zawodach RT2012 w Rybniku (niestety filmiku z przejazdu eliminacyjnego/finałowego nie mam): P.S: Miałem dylemat czy umieszczać opis w "nasze sukcesy", czy w "konstrukcje początkujących", bo z jednej strony robot z bateriami AA zamiast lipolów, z prostymi krańcówkami, oraz płytką uniwersalną polutowaną na szybko średnio pasuje do profesionalnych konstrukcji w tym dziale, ale z drugiej strony w konstrukcjach początkujących 3/4 robotów to beam, często bez mikrokontrolera. Decyzję o "nasze sukcesy" podjąłem na podstawie argumentu, że robot wystartował w zawodach i nawet przejechał labirynt;) (P.S2: Wiem wiem, brakuje kondensatorów 100nF na silnikach, oraz między AVCC i AGND. Nie ma też dławika. )
  5. Witam. Chciałbym zaprezentować mojego robota klasy minisumo. Jest nim Lumia - dopisek (T30) oznacza że, był robiony 30 dni a T oznacza czołg (ang.TANK). A teraz fakty. Głównym celem było wykonanie robota minisumo z użyciem wyświetlacza i gąsienic o możliwie dobrych parametrach. Robot ma siłę wystarczającą aby przepchać 4kg mąki ziemniaczanej. Elektronika -Jako procesor wybrałem atmegę8 ze względu na wystarczającą ilość wejść-wyjść. -Niebieski wyświetlacza2x8. -2x silniki pololu 100:1. -2x 16-pinowe mostki H. -Gąsienice pololu. -Czujniki SHARP 40 cm. -1 czujnik koloru umieszczony na samum dole i połączony z ADC. -zasilanie to Pakiet Li-Pol 3E Model 11,1V 1000mAh 20C +kilkadziesiąt diod krzemowych 1A + stabilizator 5v 1A OBUDOWA I KONSTRUKCJA NOŚNA -Podwozie zostało wykonane z metalu aby całość dociążyć i aby było stabilnie. -Obudowa to laminat . Oprogramowanie Całość została napisana w bascomie (próbowałem w c ale nie mogłem tam wszystkiego spójnie połączyć więc wróciłem do bascoma). Co zostało wykorzystane: -PWM -ADC -przerwania -obsługa rc5 (chwilowo nie aktywna ale w kodzie jest) -uart Uzyskane funkcje: -inteligentne zarządzanie zasilaniem -funkcja ataku -funkcja ucieczki -3 tryby szukania przeciwnika -funkcja kalibracji czujników oraz zapisywanie danych w pamięci procesora -komunikacja z komputerem za pomocą uart -zdalne sterowanie przez rc5 -regulacja wypełnienia w pwm -pomiar napięcia -regulacja czułości czujników koloru ZAKOŃCZENIE Moim zdaniem całość wyszła świetnie.Obeszło się bez kleju ani innych.W następnej konstrukcji zastosuję więcej czujników silniejsze silniki.Na zdjęciach brakuje klapki opadającej która została zamontowana kilka dni później. Teraz kilka fotek:
  6. Znalazłem chwilę wolnego czasu, więc przedstawię moje odbijadło Noname'a. Robot powstał podczas świąt, jest efektem braku ciekawszych zajęć. Części do niego to zbieranina tego co znalazłem i mogło się nadać, więc koszty są równe teoretycznie 0. Ogólnie konstrukcja jest banalnie prosta, jedyna trudność to połapanie się na płytce stykowej ale jakoś się udało. Koszty jakie poniosłem to Li-Po, któremu przez przypadek na 0,5s złączyłem wyprowadzenia. Konstrukcja: Mikrokontroler: ATmega8 Mostek: L293D "Czujniki": dwie krańcówki Zasilanie: -Li-Po 2S 5000mAh - silniki -Li-Po 1S 900mAh - logika Podwozie: kawałek płytki PCV Silniki+koła: ~18V, wyciągnięte z robo-odkurzacza razem z przekładniami $regfile = "m8def.DAT" $crystal = 8000000 '\\\\\-------------------\\\Config///------------------/////' '---------------Motors---------------' Config Portc.5 = Output Config Portc.4 = Output Config Portc.3 = Output Config Portc.2 = Output '----------------Krańc---------------' Config Pinc.1 = Input Config Pind.0 = Input '-----------------LED----------------' Config Portd.5 = Output Config Portd.7 = Output '\\\\\------------------\\\Aliasy///------------------/////' '---------------Motors---------------' M1a Alias Portc.5 M1b Alias Portc.4 M2a Alias Portc.3 M2b Alias Portc.2 '----------------Krańc---------------' Kr1 Alias Pinc.1 Kr2 Alias Pind.0 '-----------------LED----------------' Dioda1 Alias Portd.5 Dioda2 Alias Portd.7 '---------------Zmienne--------------' Dim A As Byte '\\\\\-----------------\\\Program///-----------------/////' Do If Kr1 = 1 And Kr2 = 1 Then Gosub Go End If If Kr1 = 0 Then Gosub Lewo End If If Kr2 = 0 Then Gosub Prawo End If If Kr1 = 0 And Kr2 = 0 Then Gosub Zawroc End If If Kr2 = 0 Then Waitms 1 If Kr1 = 0 Then Gosub Zawroc End If End If If Kr2 = 0 Then Waitms 2 If Kr1 = 0 Then Gosub Zawroc End If End If If Kr2 = 0 Then Waitms 3 If Kr1 = 0 Then Gosub Zawroc End If End If If Kr2 = 0 Then Waitms 4 If Kr1 = 0 Then Gosub Zawroc End If End If If Kr2 = 0 Then Waitms 5 If Kr1 = 0 Then Gosub Zawroc End If End If If Kr1 = 0 Then Waitms 1 If Kr2 = 0 Then Gosub Zawroc2 End If End If If Kr1 = 0 Then Waitms 2 If Kr2 = 0 Then Gosub Zawroc2 End If End If If Kr1 = 0 Then Waitms 3 If Kr2 = 0 Then Gosub Zawroc2 End If End If If Kr1 = 0 Then Waitms 4 If Kr2 = 0 Then Gosub Zawroc2 End If End If If Kr1 = 0 Then Waitms 5 If Kr2 = 0 Then Gosub Zawroc2 End If End If 'If Kr1 = 0 Then 'Waitms 6 'If Kr2 = 0 Then 'Gosub Zawroc 'End If 'End If 'If Kr1 = 0 Then 'Waitms 7 'If Kr2 = 0 Then 'Gosub Zawroc 'End If 'End If 'If Kr1 = 0 Then 'Waitms 8 ' If Kr2 = 0 Then ' Gosub Zawroc ' End If 'End If ' If Kr1 = 0 Then ' Waitms 9 ' If Kr2 = 0 Then ' Gosub Zawroc ' End If ' End If ' If Kr1 = 0 Then ' Waitms 10 ' If Kr2 = 0 Then ' Gosub Zawroc ' End If ' End If Loop End '\\\--------------\\\Odbijadło///--------------///' '\\\------------\Go/------------///' Go: Do Dioda2 = 1 M1a = 1 M1b = 0 M2a = 1 M2b = 0 Dioda2 = 0 Loop Until Kr1 = 0 Or Kr2 = 0 Return '\\\-----------\Lewo/-----------///' Lewo: For A = 1 To 1 M1a = 0 M1b = 0 M2a = 0 M2b = 0 Waitms 15 M1a = 0 M1b = 1 M2a = 0 M2b = 1 Waitms 50 M1a = 0 M1b = 0 M2a = 0 M2b = 0 Waitms 15 M1a = 0 M1b = 1 M2a = 1 M2b = 0 Waitms 75 M1a = 0 M1b = 0 M2a = 0 M2b = 0 Waitms 15 Next Return '\\\-----------\Prawo/----------///' Prawo: For A = 1 To 1 M1a = 0 M1b = 0 M2a = 0 M2b = 0 Waitms 15 M1a = 0 M1b = 1 M2a = 0 M2b = 1 Waitms 50 M1a = 0 M1b = 0 M2a = 0 M2b = 0 Waitms 15 M1a = 1 M1b = 0 M2a = 0 M2b = 1 Waitms 75 M1a = 0 M1b = 0 M2a = 0 M2b = 0 Waitms 15 Next Return '\\\----------\Zawroc/---------///' Zawroc: For A = 1 To 1 Dioda1 = 1 M1a = 0 M1b = 0 M2a = 0 M2b = 0 Waitms 15 M1a = 0 M1b = 1 M2a = 0 M2b = 1 Waitms 50 M1a = 0 M1b = 0 M2a = 0 M2b = 0 Waitms 15 M1a = 1 M1b = 0 M2a = 0 M2b = 1 Waitms 150 M1a = 0 M1b = 0 M2a = 0 M2b = 0 Waitms 15 Dioda1 = 0 Next Return '\\\---------\Zawroc2/---------///' Zawroc2: For A = 1 To 1 Dioda1 = 1 M1a = 0 M1b = 0 M2a = 0 M2b = 0 Waitms 15 M1a = 0 M1b = 1 M2a = 0 M2b = 1 Waitms 50 M1a = 0 M1b = 0 M2a = 0 M2b = 0 Waitms 15 M1a = 0 M1b = 1 M2a = 1 M2b = 0 Waitms 150 M1a = 0 M1b = 0 M2a = 0 M2b = 0 Waitms 15 Dioda1 = 0 Next Return Program na pewno można by sporo skrócić ale nie ma takiej konieczności.
  7. Witam, pochwalę się moim pierwszym poważnym robotem autonomicznym, dzięki któremu udało mi się tytuł magistra uzyskać. Wcześniej robiłem jakieś proste konstrukcję (wyświetlacz widmowy czy prosty robot mobilny z lega technic), ale ta jest pierwsza z tych "poważniejszych";) Tematem pracy było zbudowanie w pełni autonomicznego robota mobilnego, oraz zaimplementowanie mu algorytmu umożliwiającego mu dotarcie do celu unikając przeszkód statycznych i dynamicznych. Środowisko pracy z założenia jest środowiskiem lokalnym (nie ma wbudowanej mapy otoczenia). Konstrukcja: Podwozie robota wykonane jest ze spienionego PCV – jest lżejsza i łatwiejsza w obróbce niż pleksi. Górny element obudowy przymocowany jest za pomocą czterech śrub. Elementy mocujące czujników przymocowane są klejem na gorąco, mocowania silników zostały przykręcone. Obudowa ma kształt okręgu o średnicy 175 mm. Dolna część podwozie ma specjalne wcięcia na mocowania silniki. W najszerszym miejscu szerokość konstrukcji (wraz z kołami) wynosi 250 mm, natomiast wysokość 94 mm. Wybrałem silniki - HL 149.6.21 ASM firmy Micro Motors. Mają zintegrowaną przekładnię 21:1 pozwalające na osiągnięcie 160 rpm i momentu 0,075 Nm – przy napięciu znamionowym 6 VDC. Kupiłem ja na Allegro za jakieś 15 zł za sztukę Elektronika Mózgiem robota jest ATmega 128. Ma dużą ilość wbudowanych urządzeń peryferyjnych, sporo wyprowadzeń I/O i dużo pamięci flash. Występuje niestety (albo stety) wyłącznie w obudowie SMD, jednak w sprzedaży istnieją gotowe moduły umożliwiające montaż THT, co zdecydowanie upraszcza projektowanie płytki PCB w warunkach domowych. Głównym zmysłem robota są 3 czujniki ultradźwiękowe HC-SR04. Według producenta zakres wykrywanych odległości to 2 – 500 cm z rozdzielczością 3 mm. Są to jednak parametry w wyidealizowanych warunkach, w rzeczywistości realnie i w miarę stabilnie można mierzyć w zakresie do 300 cm. Do sterowania kierunkiem oraz prędkością obrotową silników został użyty układ - L298. Scala on w jednej małej obudowie, Multiwatt 15, dwa mostki H. Zasilanie: zdecydowałem się użyć akumulatora litowo – polimerowego o pojemności – 2200 mAh i napięciu 7,4 V. Pozwala on na sprawną pracę robota przez ok. 60 min. Można go dostać w sklepie modelarskim już za ok 80 zł. Soft Tu nie ma co się rozpisywać. Całość kodu napisałem w "c". Myślę, że nie ma co go pokazywać bo jest "brzydki";P Napisany po prostu żeby działał, ale jest tam niezły bałagan, za parę miesięcy prawdopodobnie sam się w nim nie połapię Fotki
  8. Witam, czas najwyższy opisać swojego pierwszego (nie licząc nieudanego światłoluba) robota. Jest to linefollower. Nazywa się R31. Jego opis będzie tak na prawdę w dużej mierze opisem mojej nauki robotyki. Więc przejdźmy do rzeczy: Około rok temu zainteresowałem się robotyką. Był to czas, kiedy wszyscy przygotowywali się do zawodów Robotic Arena 2010. Szybko zrozumiałem, jaką rangę mają te zawody. Wtedy postanowiłem sobie: za rok pojadę na te zawody z własnym robotem! Byłem wtedy zupełnie zielony. Wiedza z programowania praktycznie zerowa (nie licząc jakiegoś html'a trochę też "liznąłem" php). Z elektroniką było ie wiele lepiej, nie zdawałem sobie nawet sprawy z tego, jak działa tranzystor, choć tak na prawdę to dzięki interesowaniu się elektroniką trafiłem w ogóle na forbota (ówczesną diodę). Od początku spodobała mi si kategoria linefollower, więc postanowiłem że zbuduję właśnie takiego robota. Rozpocząłem więc nauk, w między czasie zbudowałem światłoluba, ale nie przywiązywałem do tj konstrukcji szczególnej wagi, głównym celem było samodzielne zbudowanie linefollower'a (bez pomocy taty ) tak, aby rozumieć co jak działa. Jednocześnie godziłem to z nauką w szkole i przygotowywaniami do konkursów z matematyki i fizyki. W między czasie przeczytałem Oślą łączkę (polecam początkującym). I dalej dążyłem do swojego celu... Powoli zgłębiałem swoją wiedzę i projektowałem robota. Zaczynałem właściwie od d**y strony, najpierw powstała płytka z czujnikami (mniej więcej w maju 2011) - chyba dlatego, że było to najłatwiejsze. Przy okazji uczyłem się obsługiwać program Eagle. Chciałem też nauczyć się "robić fajny, trójwymiarowy obrazek" w Inventorze. "Wrzuciłem" więc do niego wykonaną wcześniej płytkę z czujnikami (jedyne co zostało najpierw zaprojektowanie, a potem powstało w Inventorze to "szkielet" = śmiać się czy płakać? ). I tak powstawał R31, a ja przy okazji nauczyłem się obsługi Inventora. Przy okazji powiem, że pomysł na nazwę narodził się po wypadku Roberta Kubicy. Już wtedy dało się przeczuć, że ciężko mu będzie wrócić do jazdy w sezonie 2011, a nie jest tajemnicą, że miał duży wkład w projektowanie R31. Postanowiłem to jakoś uczcić (?) - stąd ta nazwa, a jednocześnie pomysł na konstrukcję. Prace nad moją konstrukcją posuwały się do przodu. Przy okazji powiększałem swoją, a może przede wszystkim, bo taki był główny cel, robot miał powstawać "przy okazji". W drugiej połowie wakacji kupiłem książkę Pana Mirosława Kardasia (którą polecam początkującym). Był to czas najwyższy aby zacząć naukę programowania (choć już prędzej się do tego przygotowywałem, zaglądając między innymi na forumowy kurs). Z początku czytanie szło jak burza (tempo na przeczytanie książki w niecałe 2 tygodnie), jednakże nastał koniec wakacji. Brak czasu spowodował, że coraz rzadziej zaglądałem do książki (do tej pory nie przeczytałem jej całej, choć już kończę). Zawody zbliżały się coraz bardziej, ale i ukończenie konstrukcji było coraz bliższe. Późnij były pierwsze testy robota, pisanie programów testowych... Program z algorytmem PD udało się napisać na dzień przed zawodami! Można więc powiedzieć, że cel wyznaczony był co do dnia . Aż nastał dzień 11 grudnia 2011. Przybyłem na miejsce, zarejestrowałem się i zająłem miejsce na stanowisku serwisowym (później obok mnie usiadła ekipa GROM-u). Poskręcałem robota (silniki z kołami miałem zapakowane osobno, aby koła nie poodlatywały ), włączyłem zasilanie i zaskoczenie ... Jedno koło się nie kręci! Jak to, przecież wczoraj gdy testowałem algorytm, PD wszystko działało! ... Szybka zamiana stron pomiędzy silnikami i okazuje się, że winny jest mostek H ... Jakie to szczęście, że zabrałem ze sobą płytkę od światłoluba na której jest sprawny L293D! ... Wszystko działa, można testować robota. Na trasie testowej robot ładnie jeździ (po dobraniu nastaw), choć nie zawsze radzi sobie z kątami prostymi. Po 11 zszedłem na dól, obejrzałem trasę i wystartowałem swojego robota na trasie z "wywijasami". Pierwszy przejazd udany, czas nieco ponad 20 sekund. Następnie udałem się na trasę z kątami prostymi. Po kilku nieudanych próbach, stwierdziłem, że naładuję akumulatory i spróbuję jeszcze raz przejechać trasę z wywijasami, a poźniej zajmę się kątami prostymi. Czas udało się poprawić na 18,59. Nastał więc czas na kąty proste. Pomyślałem sobie: spokojnie, dasz radę, kilka przejazdów z różnymi nastawami i będzie dobrze. Przed zawodami mówiłem wszystkim, że sukcesem będzie ukończenie zawodów i bycie klasyfikowanym, choć w głębi ducha myślałem sobie, że nie powinno być z tym problemów. Jednakże rzeczywiście, nie mogłem sobie poradzić z drugą trasą! Powoli zaczynałem się denerwować, Nie wiedziałem już co mam robić, całą godzinę czasu wolnego poświęciłem na kombinowaniu w programie. Zmieniałem prędkości silników, szybko czy wolno, na naładowanej czy rozładowanej baterii, nic nie pomagało. Zaczynała się robić nerwówka, biegałem ciągle ze stanowiska na trasę i z powrotem. Sędzia już miał mnie chyba powoli dosyć a tak szczerze to był bardzo w porządku, na każdą prośbę o poprawienie czegoś w trasie czy coś, reagował i był bardzo miły. Gdy po 14 byłem już bardzo zdenerwowany, on mówił do mnie: spokojnie, jest jeszcze dużo czasu. Ja jednak odczuwałem, że jest go coraz mniej, a nie wiedziałem co mam już robić. Ciągłe bieganie i przeprogramowywanie robota, to było coś strasznego. Aż tu nagle, 20 minut przed końcem, robot przejeżdża poprawnie zakręty z którymi sobie nie radził... jest coraz bliżej mety i... udało się! Ależ ja byłem szczęśliwy! Tyle godzin walki, chyba ze sto razy przeprogramowywałem robota (myślę, że ta liczba jest dość realna) i taki sukces na koniec! Czas z tej trasy wynosił 17,84 ale to nie było w tym momencie ważne, liczyło się tylko to, że udało się przejechać oby dwie trasy. Emocje były wspaniałe Może teraz przedstawię robota od strony technicznej:) oto schemat: Konstrukcja zbudowana jest z laminatu. Do napędu użyłem silników HL149 z przekładnią 21:1. Koła są zrobione z nakrętek od słoików z naklejoną dętką Nie ma tu nic nadzwyczajnego, ot zwykły robot początkującego. kilka zdjęć: a to filmik z pierwszych testów: Niestety mam tylko takie zdjęcia z zawodów, i żadnych filmików, ale jak to można przeczytać miałem inne problemy, i nawet do głowy mi nie przychodziły jakieś tam filmiki Jest wiele rzeczy, które bym teraz zrobił inaczej, czasami jestem o to nieco zły, ale jak sobie przypomnę, jaki byłem zielony przed budową tego robota to czuję tylko zadowolenie. Wtedy nie wiedziałem co to PID czy PWM. Teraz mogę powiedzieć, że na prawdę dużo nauczyłem się przez ten czas. Matko, jak ja się rozpisałem! Żebym ja pisał takie długie wypracowania na polskim
  9. Nadszedł czas na opis IzyboT'a - robota, którego koncept został stworzony w 2009 roku. Podstawą do zbudowania tego robota było podwozie jeżdżącego robota, zakupionego przez Zespół Szkół Mechanicznych w Opolu. Płytka PCB w całości została przeze mnie zaprojektowana i wykonana metodą termotransferu. Celem stworzenia robota był start w pierwszej edycji zawodów Follow The Line w Rybniku w 2009r. Robot świetnie się spisywał na trasie testowej. Niestety w czasie pierwszego przejazdu robot zamiast skręcić pojechał prosto. Jak się niedawno okazało, przyczyną takiego zachowania były kiepskie luty. Robot niedawno został reaktywowany, czego wynikiem był start w zawodach Robotic Tournament w Rybniku. Przez trzy lata IzyboT stał na półce i czekając na start w zawodach. Jak widać doczekał się! Zamieszczam wszystkie informacje dotyczące tego robota, aby pomóc początkującym w stworzeniu swojej pierwszej konstrukcji. Koncept: 2009 Elektronika Procesor: ATmega16 Kwarc: 16MHz Motor driver: L293D Wyświetlacz: LCD 2*16 Ilość czujników: 6 (CNY70) Zasilanie: 10 akumulatorków NiMH (na zawodach Robotic Tournament 2012 był pakiet Li-Po 800mAh) Inne:Przełącznik prędkości, wyłącznik zbędnego obciążenia, trzy LED, dwustronna PCB Mechanika Silniki: 20GA2025-08530-25 12V 230RPM Konstrukcja: Zielone plexi + metalowe dystanse + kółko od krzesła obrotowego Program Język programowania: BASCOM Poniżej znajduje się kompletny program, który sterował robotem na zawodach Robotic Tournament 2012. '------------------------------------------------------------------------------- 'Author: Piotr Śnieżek 'Nick: ProeXtreme 'E-mail: ProeXtreme@o2.pl 'Date: 23-03-2012 '------------------------------------------------------------------------------- $regfile = "m16def.dat" 'Mikrokontroler to ATmega16 $crystal = 16000000 'Kwarc 16MHz '------------------------------------------------------------------------------- 'Konfiguracja typu i pinów wyświatlacz LCD '------------------------------------------------------------------------------- Config Lcd = 16 * 2 'Wykorzystywany wyświetlacz jest organizacji 16 *2 Config Lcdpin = Pin , Db4 = Porta.3 , Db5 = Porta.2 , Db6 = Porta.1 , Db7 = Porta.0 , E = Porta.4 , Rs = Porta.5 'Konfiguracja pinów wyświetlacza '------------------------------------------------------------------------------- 'Konfiguracja PWM '------------------------------------------------------------------------------- Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 8 '------------------------------------------------------------------------------- 'Konfiguracja pinów '------------------------------------------------------------------------------- Config Pina.6 = Input 'Przełącznik prędkości (1) Config Pina.7 = Input 'Przełącznik prędkości (2) Config Pinb.2 = Input 'Przełącznik prędkości (3) Config Pinb.3 = Input 'Przycisk START Config Pinb.4 = Input 'Przycisk STOP Config Portd.0 = Output 'Dioda gotowość (zielona) Config Portd.1 = Output 'Dioda ustawienia (żółta) 'Czujniki Config Pinb.1 = Input 'Czujnik 1 Config Pinb.0 = Input 'Czujnik 2 Config Pinc.7 = Input 'Czujnik 3 Config Pinc.6 = Input 'Czujnik 4 Config Pinc.1 = Input 'Czujnik 5 Config Pinc.0 = Input 'Czujnik 6 'Motor driver Config Portd.6 = Output ' 1A Config Portd.7 = Output ' 2A Config Portd.3 = Output ' 3A Config Portd.2 = Output ' 4A '------------------------------------------------------------------------------- 'Aliasy '------------------------------------------------------------------------------- Speed_button_1 Alias Pina.6 Speed_button_1_port Alias Porta.6 Speed_button_2 Alias Pina.7 Speed_button_2_port Alias Porta.7 Speed_button_3 Alias Pinb.2 Speed_button_3_port Alias Portb.2 Start_button Alias Pinb.3 'Przycisk START Start_button_port Alias Portb.3 Stop_button Alias Pinb.4 'Przycisk STOP Stop_button_port Alias Portb.4 Set Speed_button_1_port Set Speed_button_2_port Set Speed_button_3_port Led_ready Alias Portd.0 'Dioda gotowość (zielona) Led_settings Alias Portd.1 'Dioda ustawienia (żółta) Set Start_button_port Set Stop_button_port Left_motor_przod Alias Portd.6 Left_motor_tyl Alias Portd.7 Right_motor_przod Alias Portd.2 Right_motor_tyl Alias Portd.3 'Czujniki Cz1 Alias Pinb.1 'Czujnik 1 Cz2 Alias Pinb.0 'Czujnik 2 Cz3 Alias Pinc.7 'Czujnik 3 Cz4 Alias Pinc.6 'Czujnik 4 Cz5 Alias Pinc.1 'Czujnik 5 Cz6 Alias Pinc.0 'Czujnik 6 '------------------------------------------------------------------------------- 'Konfiguracja zmiennych '------------------------------------------------------------------------------- Dim Name_of_software As String * 17 'Nazwa wgranego programu Dim Version_of_software As String * 5 'Wersja wgranego programu Dim Linia As Bit Dim Tlo As Bit Dim Wcisniety As Bit Dim Puszczony As Bit Dim Max_speed As Byte 'Maksymalne wypełnienie silników PWM Dim Jedzie As Bit Dim Stoi As Bit Dim Zakret As Byte Dim Ostry_zakret As Byte Dim Przodskret As Byte Dim Licznik_czasu As Byte Dim Lewy_ostatni As Bit Dim Prawy_ostatni As Bit Dim Lewy_ostry_ostatni As Bit Dim Prawy_ostry_ostatni As Bit Dim Skret_p(6) As Byte Dim Skret_l(6) As Byte '------------------------------------------------------------------------------- 'Ustawienia wstępne '------------------------------------------------------------------------------- Name_of_software = "IzyboT 2012" Version_of_software = "v1.09" Cursor Off 'Wyłącza kursor Led_ready = 1 '0-wygaszenie diody, 1-zaświecenie diody Led_settings = 1 Linia = 1 Tlo = 0 Wcisniety = 0 Puszczony = 1 Jedzie = 1 Stoi = 0 Left_motor_przod = Stoi Left_motor_tyl = Stoi Right_motor_przod = Stoi Right_motor_tyl = Stoi Licznik_czasu = 0 '------------------------------------------------------------------------------- 'Program główny '------------------------------------------------------------------------------- Cls 'Czyści ekran Locate 1 , 3 Lcd Name_of_software Locate 2 , 7 Lcd Version_of_software Wait 1 Cls Gosub Sensors_settings Cls Do Gosub Speed_settings Do Left_motor_przod = Jedzie 'Przy rozpoczęciu jazdy robot będzie jeździł do przodu Right_motor_przod = Jedzie If Cz1 = Linia Then 'Przygotowanie do ostrego skretu w lewo Lewy_ostry_ostatni = 1 End If If Cz6 = Linia Then 'Przygotowanie do ostrego skretu w prawo Prawy_ostry_ostatni = 1 End If '............................................................................... 'Jazda na wprost '............................................................................... If Cz1 = Tlo And Cz2 = Tlo And Cz3 = Linia And Cz4 = Linia And Cz5 = Tlo And Cz6 = Tlo Then Gosub Prosto '4,5 '............................................................................... 'Skręt w prawo '............................................................................... If Cz1 = Tlo And Cz2 = Tlo And Cz3 = Tlo And Cz4 = Tlo And Cz5 = Linia And Cz6 = Tlo Then Gosub Lekko_w_prawo '5 If Cz1 = Tlo And Cz2 = Tlo And Cz3 = Linia And Cz4 = Tlo And Cz5 = Linia And Cz6 = Tlo Then Gosub Lekko_w_prawo '3,5 If Cz1 = Tlo And Cz2 = Tlo And Cz3 = Tlo And Cz4 = Linia And Cz5 = Linia And Cz6 = Tlo Then Gosub Lekko_w_prawo '4,5 If Cz1 = Tlo And Cz2 = Tlo And Cz3 = Linia And Cz4 = Linia And Cz5 = Linia And Cz6 = Tlo Then Gosub Lekko_w_prawo '3,4,5 If Cz1 = Linia And Cz2 = Linia And Cz3 = Tlo And Cz4 = Tlo And Cz5 = Tlo And Cz6 = Tlo Then Gosub Lekko_w_prawo '1,2 If Cz1 = Tlo And Cz2 = Tlo And Cz3 = Tlo And Cz4 = Tlo And Cz5 = Tlo And Cz6 = Linia Then Gosub Ostro_w_prawo '6 If Cz1 = Tlo And Cz2 = Tlo And Cz3 = Tlo And Cz4 = Linia And Cz5 = Tlo And Cz6 = Linia Then Gosub Zawracanie_w_prawo '4,6 '............................................................................... 'Skręt w lewo '............................................................................... If Cz1 = Tlo And Cz2 = Linia And Cz3 = Tlo And Cz4 = Tlo And Cz5 = Tlo And Cz6 = Tlo Then Gosub Lekko_w_lewo '2 If Cz1 = Tlo And Cz2 = Linia And Cz3 = Linia And Cz4 = Tlo And Cz5 = Tlo And Cz6 = Tlo Then Gosub Lekko_w_lewo '2,3 If Cz1 = Tlo And Cz2 = Linia And Cz3 = Tlo And Cz4 = Linia And Cz5 = Tlo And Cz6 = Tlo Then Gosub Lekko_w_lewo '2,4 If Cz1 = Tlo And Cz2 = Linia And Cz3 = Linia And Cz4 = Linia And Cz5 = Tlo And Cz6 = Tlo Then Gosub Lekko_w_lewo '2,3,4 If Cz1 = Tlo And Cz2 = Tlo And Cz3 = Tlo And Cz4 = Tlo And Cz5 = Linia And Cz6 = Linia Then Gosub Lekko_w_lewo '5,6 If Cz1 = Linia And Cz2 = Tlo And Cz3 = Tlo And Cz4 = Tlo And Cz5 = Tlo And Cz6 = Tlo Then Gosub Ostro_w_lewo '1 If Cz1 = Linia And Cz2 = Tlo And Cz3 = Tlo And Cz4 = Linia And Cz5 = Tlo And Cz6 = Tlo Then Gosub Zawracanie_w_lewo '1,4 '............................................................................... 'Skrzyżowanie '............................................................................... If Cz2 = Linia And Cz3 = Linia And Cz5 = Linia Then Gosub Prosto '2,3,5 '............................................................................... 'Kierunek jazdy nie określony '............................................................................... If Cz1 = Tlo And Cz2 = Tlo And Cz3 = Tlo And Cz4 = Linia And Cz5 = Tlo And Cz6 = Tlo Then If Prawy_ostatni = 1 Or Prawy_ostry_ostatni = 1 Then Pwm1a = Max_speed Pwm1b = Max_speed Right_motor_przod = Stoi Waitms 15 Right_motor_tyl = Jedzie Do Loop Until Cz3 = Linia Or Cz2 = Linia Right_motor_tyl = Stoi Waitms 15 Right_motor_przod = Jedzie Prawy_ostry_ostatni = 0 Lewy_ostry_ostatni = 0 End If If Lewy_ostatni = 1 Or Lewy_ostry_ostatni = 1 Then Pwm1a = Max_speed Pwm1b = Max_speed Left_motor_przod = Stoi Waitms 15 Left_motor_tyl = Jedzie Do Loop Until Cz3 = Linia Or Cz2 = Linia Left_motor_tyl = Stoi Waitms 15 Left_motor_przod = Jedzie Prawy_ostry_ostatni = 0 Lewy_ostry_ostatni = 0 End If End If 'Powrót na linię po wyjechaniu za nią If Cz1 = Tlo And Cz2 = Tlo And Cz3 = Tlo And Cz4 = Tlo And Cz5 = Tlo And Cz6 = Tlo Then If Prawy_ostatni = 1 Then Pwm1a = Max_speed Pwm1b = Zakret End If If Prawy_ostry_ostatni = 1 Then Pwm1a = Max_speed Pwm1b = Max_speed Right_motor_przod = Stoi Waitms 15 Right_motor_tyl = Jedzie Do Loop Until Cz3 = Linia Or Cz2 = Linia Right_motor_tyl = Stoi Waitms 15 Right_motor_przod = Jedzie Prawy_ostry_ostatni = 0 Lewy_ostry_ostatni = 0 End If If Lewy_ostatni = 1 Then Pwm1a = Zakret Pwm1b = Max_speed End If If Lewy_ostry_ostatni = 1 Then Pwm1a = Max_speed Pwm1b = Max_speed Left_motor_przod = Stoi Waitms 15 Left_motor_tyl = Jedzie Do Loop Until Cz3 = Linia Or Cz2 = Linia Left_motor_tyl = Stoi Waitms 15 Left_motor_przod = Jedzie Prawy_ostry_ostatni = 0 Lewy_ostry_ostatni = 0 End If End If '............................................................................... 'Przyciski ustawień prędkości '............................................................................... If Start_button = Wcisniety Then Cls Lcd "Zakret PWM: " Do Loop Until Start_button = Puszczony Do Locate 1 , 13 Lcd Zakret ; " " If Cz5 = Linia Then Pwm1a = Max_speed Pwm1b = Zakret End If If Cz2 = Linia Then Pwm1a = Zakret Pwm1b = Max_speed End If Licznik_czasu = 0 Led_settings = 0 While Start_button = Wcisniety Do Waitms 10 Incr Licznik_czasu If Licznik_czasu = 100 Then Led_settings = 1 Loop Until Start_button = Puszczony If Led_settings = 1 Then Exit Do If Licznik_czasu >= 3 Then Zakret = Zakret + 5 Wend Licznik_czasu = 0 Led_settings = 0 While Stop_button = Wcisniety Do Waitms 10 Incr Licznik_czasu Loop Until Stop_button = Puszczony If Licznik_czasu >= 3 Then Zakret = Zakret - 5 Wend Loop 'Until Start_button = Puszczony End If If Stop_button = Wcisniety Then Cls Lcd "OstryZ PWM: " Do Loop Until Start_button = Puszczony Do Locate 1 , 13 Lcd Ostry_zakret ; " " If Cz5 = Linia Then Pwm1a = Max_speed Pwm1b = Ostry_zakret End If If Cz2 = Linia Then Pwm1a = Ostry_zakret Pwm1b = Max_speed End If Licznik_czasu = 0 Led_settings = 0 While Start_button = Wcisniety Do Waitms 10 Incr Licznik_czasu Loop Until Start_button = Puszczony If Licznik_czasu >= 3 Then Ostry_zakret = Ostry_zakret + 5 Wend Licznik_czasu = 0 Led_settings = 0 While Stop_button = Wcisniety Do Waitms 10 Incr Licznik_czasu If Licznik_czasu = 100 Then Led_settings = 1 Loop Until Stop_button = Puszczony If Led_settings = 1 Then Exit Do If Licznik_czasu >= 3 Then Ostry_zakret = Ostry_zakret - 5 Wend Loop 'Until Stop_button = Puszczony End If '............................................................................... 'Wyświetlanie wartości PWM '............................................................................... Home Lcd "PWM1a: " ; Pwm1a ; " " Lowerline Lcd "PWM1b: " ; Pwm1b ; " " Loop 'Until Stop_button = Wcisniety Pwm1a = 0 Pwm1b = 0 Left_motor_przod = Stoi Right_motor_przod = Stoi Do If Start_button = Wcisniety Then Waitms 25 If Start_button = Wcisniety Then Exit Do End If Loop Loop End 'End program Sensors_settings: 'Ustawienia czujników Cls Do If Cz1 = Tlo And Cz2 = Tlo And Cz3 = Linia And Cz4 = Linia And Cz5 = Tlo And Cz6 = Tlo Then Home If Linia = 1 Then Lcd "Linia biala " Else Lcd "Linia czarna " End If Lowerline If Tlo = 1 Then Lcd "Tlo biale " Else Lcd "Tlo czarne " End If Waitms 500 Exit Do Else Toggle Linia Toggle Tlo Gosub Ustaw_robota_na_linii End If Loop Home 'Kursor na pozycji 1, 1 Lcd " C2: C3: C5: " Lowerline Lcd " C1: C4: C6: " Do If Cz2 = Linia Then Locate 1 , 5 Lcd "1" Else Locate 1 , 5 Lcd "0" End If If Cz3 = Linia Then Locate 1 , 10 Lcd "1" Else Locate 1 , 10 Lcd "0" End If If Cz5 = Linia Then Locate 1 , 15 Lcd "1" Else Locate 1 , 15 Lcd "0" End If If Cz1 = Linia Then Locate 2 , 5 Lcd "1" Else Locate 2 , 5 Lcd "0" End If If Cz4 = Linia Then Locate 2 , 10 Lcd "1" Else Locate 2 , 10 Lcd "0" End If If Cz6 = Linia Then Locate 2 , 15 Lcd "1" Else Locate 2 , 15 Lcd "0" End If If Start_button = Wcisniety Then Waitms 25 If Start_button = Wcisniety Then Exit Do End If Loop Do Loop Until Start_button = Puszczony Return Ustaw_robota_na_linii: Lcd " Ustaw robota " Lowerline Lcd " na linii " Return Speed_settings: Cls Lcd "Maks. predkosc: " Do 'Wszystkie ON If Speed_button_1 = Wcisniety And Speed_button_2 = Wcisniety And Speed_button_3 = Wcisniety Then Max_speed = 255 'Dwa ON If Speed_button_1 = Wcisniety And Speed_button_2 = Wcisniety And Speed_button_3 = Puszczony Then Max_speed = 200 If Speed_button_1 = Wcisniety And Speed_button_2 = Puszczony And Speed_button_3 = Wcisniety Then Max_speed = 200 If Speed_button_1 = Puszczony And Speed_button_2 = Wcisniety And Speed_button_3 = Wcisniety Then Max_speed = 200 'Jeden ON If Speed_button_1 = Wcisniety And Speed_button_2 = Puszczony And Speed_button_3 = Puszczony Then Max_speed = 150 If Speed_button_1 = Puszczony And Speed_button_2 = Puszczony And Speed_button_3 = Wcisniety Then Max_speed = 150 If Speed_button_1 = Puszczony And Speed_button_2 = Wcisniety And Speed_button_3 = Puszczony Then Max_speed = 150 'Wszystkie OFF If Speed_button_1 = Puszczony And Speed_button_2 = Puszczony And Speed_button_3 = Puszczony Then Max_speed = 100 If Speed_button_1 = Puszczony And Speed_button_2 = Puszczony And Speed_button_3 = Puszczony Then Max_speed = 100 If Speed_button_1 = Puszczony And Speed_button_2 = Puszczony And Speed_button_3 = Puszczony Then Max_speed = 100 Locate 2 , 8 If Max_speed = 255 Then Lcd "100%" If Max_speed = 200 Then Lcd "80% " If Max_speed = 150 Then Lcd "60% " If Max_speed = 100 Then Lcd "40% " Pwm1a = Max_speed Pwm1b = Max_speed Zakret = 177 Ostry_zakret = 0 If Start_button = Wcisniety Then Waitms 25 If Start_button = Wcisniety Then Exit Do End If Loop Do Loop Until Start_button = Puszczony Gosub Eliminacja_drgan Return Eliminacja_drgan: Waitms 20 Return Czas_cofania: Waitms 150 Return Prosto: Pwm1a = Max_speed Pwm1b = Max_speed Return Lekko_w_prawo: If Cz1 = Linia Then Skret_p(1) = 1 Else Skret_p(1) = 0 If Cz2 = Linia Then Skret_p(2) = 1 Else Skret_p(2) = 0 If Cz3 = Linia Then Skret_p(3) = 1 Else Skret_p(3) = 0 If Cz4 = Linia Then Skret_p(4) = 1 Else Skret_p(4) = 0 If Cz5 = Linia Then Skret_p(5) = 1 Else Skret_p(5) = 0 If Cz6 = Linia Then Skret_p(6) = 1 Else Skret_p(6) = 0 Pwm1a = Max_speed Pwm1b = Zakret Prawy_ostry_ostatni = 0 Lewy_ostry_ostatni = 0 Prawy_ostatni = 1 Lewy_ostatni = 0 Return Lekko_w_lewo: If Cz1 = Linia Then Skret_l(1) = 1 Else Skret_l(1) = 0 If Cz2 = Linia Then Skret_l(2) = 1 Else Skret_l(2) = 0 If Cz3 = Linia Then Skret_l(3) = 1 Else Skret_l(3) = 0 If Cz4 = Linia Then Skret_l(4) = 1 Else Skret_l(4) = 0 If Cz5 = Linia Then Skret_l(5) = 1 Else Skret_l(5) = 0 If Cz6 = Linia Then Skret_l(6) = 1 Else Skret_l(6) = 0 Pwm1a = Zakret Pwm1b = Max_speed Prawy_ostry_ostatni = 0 Lewy_ostry_ostatni = 0 Prawy_ostatni = 0 Lewy_ostatni = 1 Return Ostro_w_prawo: Pwm1a = Max_speed Pwm1b = Max_speed Right_motor_przod = Stoi Waitms 15 Right_motor_tyl = Jedzie Do Loop Until Cz3 = Linia Or Cz5 = Linia Right_motor_tyl = Stoi Waitms 15 Right_motor_przod = Jedzie Prawy_ostry_ostatni = 1 Lewy_ostry_ostatni = 0 Prawy_ostatni = 0 Lewy_ostatni = 0 Return Ostro_w_lewo: Pwm1a = Max_speed Pwm1b = Max_speed Left_motor_przod = Stoi Waitms 15 Left_motor_tyl = Jedzie Do Loop Until Cz3 = Linia Or Cz2 = Linia Left_motor_tyl = Stoi Waitms 15 Left_motor_przod = Jedzie Prawy_ostry_ostatni = 0 Lewy_ostry_ostatni = 1 Prawy_ostatni = 0 Lewy_ostatni = 0 Return Zawracanie_w_prawo: Pwm1a = Max_speed Pwm1b = Max_speed Right_motor_przod = Stoi Waitms 15 Right_motor_tyl = Jedzie Do Loop Until Cz3 = Linia Or Cz5 = Linia Right_motor_tyl = Stoi Waitms 15 Right_motor_przod = Jedzie Prawy_ostry_ostatni = 1 Lewy_ostry_ostatni = 0 Prawy_ostatni = 0 Lewy_ostatni = 0 Return Zawracanie_w_lewo: Pwm1a = Max_speed Pwm1b = Max_speed Left_motor_przod = Stoi Waitms 15 Left_motor_tyl = Jedzie Do Loop Until Cz3 = Linia Or Cz2 = Linia Left_motor_tyl = Stoi Waitms 15 Left_motor_przod = Jedzie Prawy_ostry_ostatni = 0 Lewy_ostry_ostatni = 1 Prawy_ostatni = 0 Lewy_ostatni = 0 Return Program był pisany 3 dni. Przejazdy robota na zawodach to maksimum jego możliwości. Przy większej prędkości robot wylatuje z trasy ze względu na jego ogromną masę. Jeśli coś pominąłem/czegoś brakuje to proszę o info na PW. Chętnie odpowiem na wszelkie pytania. __________ Komentarz dodany przez: Treker Publikacja dopiero po dodaniu zdjęcia jako załącznik. Przydałby się również większy wstęp, który będzie widoczny na portalu oraz w katalogu follow the line.sch czujnikrobot v2.0.brd IzyboT.brd
  10. Witam! Chciałbym zaprezentować Wam robota klasy line follower. Płytkę zaprojektował użytkownik Harnaś, ja polutowałem oraz napiasłem program. Płytka robota składa się z dwóch części i jest skręcona. Płytki były wykonane w firmie Satland. Wszystkie elementy które występowały w obudowie SMD zostały wykorzystane, reszta czyli 3 kondensatory, wyłącznik oraz złącza goldpin są w obudowach THT. Dodam również że szkoła jest sponsorem robota. Mechanika Wolverine wyposażony jest w dwa silniki Pololu w wersji HP i przekładnią 30:1. Silniki zasilane są z 5V. Z przodu nie ma ballcasterów za to są dwie diody LED, podtrzymujące przód, niestety diody nie świecą, a myślę że byłoby to ciekawe. Elektronika Mózgiem jest tutaj ATmega16-AU taktowana zewnętrznym kwarcem 16 MHz. Jej potencjał nie jest chyba nawet 1/100 wykorzystywany. Do sterowania silnikami zostały wykorzystane mostki TB6612FNG, po jednym na silnik. Myślę, że są to bardzo dobre mostki. Jest na nich minimalny spadek napięcia. Pod tylną częścią robota zostało zamontowanych 18 niebieskich diod LED. Które efektownie podświetlają robota. Dodatkowo pod silnikami znajdują się diody rgb, lecz jeszcze nie zostały wykorzystane, jedna z nich ładnie świeci podczas programowania. Do stabilizacji napięcia dla logiki został wykorzystany stabilizator liniowy LF50, a do stabilizacji napięcia podawanego silnikom została wykorzystana przetwornica DC-DC, Step down, LM2576 o wydajności prądowej 3A. Ta przetwornica potrzebuje dużego dławika 100 uH, z racji tego wykorzystałem dławik tylko 56 uH. Mimo tego Buck spisuje się dobrze. Dodatkowo przed odwrotnym podłączeniem baterii i w konsekwencji spalenia części logiki została zastosowana dioda bezpośrednio za złączem na akumulator, która niestety nie zabezpiecza przetwornicy. Już raz przez pomyłkę podłączyłem na odwrót baterię i przetwornica poszła z dymem. Czujniki W robocie znajduje się 16 czujników lini - KTIR0711S, malutkie czujniki, o stabilnym działaniu. Myślę że 16 czujników to takie optimum lecz gdybym robił w przyszłości LF'a to wykorzystał bym ich 20 lub 24. Oraz jeden cyfrowy czujnik odległości 40cm - Sharp GP2Y0D340K, nie został jeszcze użyty, a nawet miał wypadek, nie wytrzymał zderzenia robota ze ścianą i po prostu odpadł. Zasilanie Zasilaniem całego robota jest akumulator Li-Pol, dwu celowy o pojemności zaledwie 500 mAh. Jest to pojemność w zupełności wystarczająca do przejazdów na zawodach, przy okazji zapewniająca małą wagę bo cały akumulator waży 36 gram choć podczas testowania robota trzeba robić sobie co chwilkę przerwę na podładowanie akumulatora. Program Cały kod to moje wypociny, tutaj poduczyłem się programować lecz nadal to nie jest to coś. W miarę zdobywania kolejnej wiedzy będę starał się udoskonalać kod, aby robot był szybszy. Gdyby ktoś zobaczył aktualny kod to pewnie by się za głowę chwycił i nie wiedział w którą stronę uciekać. Sterowaniem zajmuje się upośledzony wytwór wyobraźni przy czym byl wzorowany na PID'zie a konkretniej to na samym "P", lada moment zostanie dodany człon "D". Jak już wspomniałem albo i nie, jestem początkujący, lecz teraz bogatszy o nowe doświadczenia. Podsumowanie Dużo się nauczyłem, co zaowocuje w przyszłości może kolejnymi, lepszymi robotami. Nabrałem trochę szacunku do "tego" bo było dużo momentów w których chciałem "tym" wyje**ć w ścianę, teraz wiem że trzeba być cierpliwym i szukać błędów do upadłego. Teraz wiem że nie jest to takie łatwe jak się wydawało na początku. I to by było na tyle. Zachęcam do oceniania oraz komentowania. Tutaj filmik z przejazdów na aktualnym programie. Gdy go poprawię wrzucę nowe filmiki.
  11. Witam, chciałbym przedstawić mojego robota -Hakera. Jest to moja pierwsza konstrukcja typu minisumo i jestem z niej bardzo zadowolony. Podziękowania należą się użytkownikom forum a najbardziej Piotreks'owi89. Napęd stanowią 2 przerobione serwa tower pro SG5010. Było to dobre rozwiązanie pod względem mocy, ale prędkość jest niezadowalająca. By osiągnąć większą prędkość musiałem dać ogromne koła co również nie było najlepszym rozwiązaniem. Elektronika: -mostek H L298 - dobrze się spisywał (tylko te ogromne diody zajmują dużo miejsca) -procesor atmega8 - 4 czujniki linii -2 czujniki przeciwnika (i tu podziękowania dla piotreks'a89)-czujniki spisały się znakomicie jedynie za wysoko je umieściłem przez co nie wykryłby bardzo niskiego przeciwnika. Czujniki : Jak pisałem wyżej czujników jest 6 - 4x tcrt5000 rozmieszczonych na brzegach robota i 2x czujniki na tsopach 4836 i dwóch diodach LD271. Czujniki odległości są na oddzielnych płytkach - mają po jednym attiny13, który steruje diodami i odbiera sygnały z tsopów. Zasięg czujnika wynosi (w najlepszym przypadku) ok 56cm (testowane na dłoni ). Zasilanie to niestety baterie- ponieważ paczka z Hobby Kinga nie zdążyła przyjść Następna konstrukcja doczeka się li-pola. Program pisany w Bascomie polega na tym że procek sprawdza czunik linii a potem dwa czujniki przeciwnika i tak na każdy czujnik linii. Program spełnia moje oczekiwania i jestem z niego zadowolony Zawody Z Hakerem byłem na Robomaticonie i spisywał się wspaniale . Co prawda odpadł w ćwierć finałach, ale dla mnie to już jest wielki sukces. Wygrał cztery walki- przegrał również cztery . Na początku były problemy z wagą ale po obcięciu mu po kawałku flagi z każdej strony było równiutko 500g. Poniżej filmiki (będę dodawał po kolei bo są bardzo duże i wolno przesyłają się na you tuba.) Niestety na początku opadła flaga i było kilka falstartów Zdjęcia Hakera: (również będę dodawał cały czas bo muszę ich poszukać) Podsumowanie Robot jak najbardziej spełnił moje oczekiwania, prędkość mogłaby być lepsza, ale nie ma co narzekać bo już powstaje Haker2 w którym napęd będą stanowiły przekładnie, które już testowałem i jestem bardzo zadowolony. Cieszę się że na zawodach przeszedł do ćwierć finałów- myślałem że nie wygra nawet jednej walki
  12. Witam wszystkich. Przedstawiam moją pierwszą w życiu autonomiczną maszynę-robota typu "linefollower", którego nazwałem "ERROR 1". Mimo kilku ewidentnych słabości jestem z niego naprawdę zadowolony. Elektronika składa się z dwóch płytek: - Płytka z sensorami, zasilaniem diod i rezystorami podciągającymi. Po podaniu zasilania (stabilizowane 5V) zwraca analogowe sygnały. Sensory to 5szt. popularnych CNY70. - Płytka z mikrokontrolerem, zasilaniem i mostkami H do sterowania dwóch silników. "Mózgiem" jest atmega8 w ceglastej obudowie dip, mostek to l293d. Całość jest zaprojektowana tak, aby ten moduł był najbardziej uniwersalny-po podłączeniu płytki z innymi sensorami i tylnej części z innymi silnikami bez żadnego problemu można zrobić na niej np. robota minisumo, prostą machinę kroczącą itd. Poza miejscem pod taśmę są jeszcze dodatkowo wyprowadzone piny I/O(7szt) pozwalające m.in. na dołączenie zewnętrznego kwarcu, użycie wyjścia timera 2, podłączenie kilku serw, użycie piątego kanału ADC, itd... Dodatkowo na płytce są gotowe ścieżki i pola lutownicze pozwalające na zmontowanie dzielnika napięcia do pomiaru napięcia zasilania(piąty kanał ADC). Można znaleźć tam jeszcze dwie diody led, dwa switche i wyprowadzenia do zasilania zewnętrznych peryferiów: 5V, GND i Vcc(bezpośrednio z baterii zasilającej). Do Aref można zamontować kondensator lub potencjometr zależnie od wybranego źródła napięcia odniesienia. Połączenie między płytkami zbudowane jest z taśmy (po której idzie zasilanie przedniej płytki i sygnały z sensorów) i dwóch prętów węglowych fi 2mm zamontowanych w tulejach wyjętych z kostek elektrycznych. Takie połączenie pozwala na regulację pozycji płytki z sensorami w praktycznie każdej osi i każdym kierunku. Jest też dość solidne i niesamowicie lekkie- obie płytki razem z połączeniem ważą 25g. Jeśli za mało jeszcze nasłodziłem, to dodam, że bez najmniejszych przeróbek da radę zrobić z tego przegubowca(czego nie omieszkam spróbować) Jakość wykonania płytek poniżej dna-bez soldermaski i lekko podtrawione(tylko powierzchniowo). Przesadziłem trochę z temperaturą roztworu wytrawiacza. Zasilanie stanowi bateryjka Li-Pol 2S 0,8Ah, docelowo 3S. Napęd stanowią dwa przerobione silniki z przekładniami firmy micromotors(hl149). W silnikach zastosowałem takie modyfikacje: - wzmocnienie przekładni-wymieniłem plastikowe koła zębate na metalowe - skrócenie i minimalne odelżenie silników-pozbyłem się plastikowych osłon tylnych części i skróciłem wystające z tyłu wały - przystosowanie do kół pololu - wały "D" 4mm spiłowałem na wał "D" 3mm - wymiana konektorów - na zwykłe goldpiny, bo standardowe raczej nie nadają się do niczego - przewoltowanie - silniki zbudowane do zasilania z 6V, ja zasilam je z baterii 3S Silniki te oceniam bardzo dobrze, może nie wygram nimi zawodów, ale nie da się znaleźć lepszych w tej cenie(a nawet 2x drożej). Dodatkowo są bardzo solidne-nie muszę się bać, że komutatory albo zęby przekładni znikną po kilku biegach. Silniki mają przekładnie 1:10, które planuję użyć w przyszłości razem z innymi silnikami(180 lub 265). Jedna metalowa przekładnia waży 19g. Silniki umieściłem w prostej ramce wykonanej z blaszki aluminiowej 0,75mm Software: W obecnej wersji regulator PD, niestety gdzieś jest chochlik(rozmieszczenie sensorów, bezwładność, albo nie wiem co.. ) i nie da się dobrać nastaw tak, żeby jednocześnie jeździł płynnie i nie gubił trasy. Pierwsze uruchomienie: Po wgraniu programu testowego i podłączeniu zasilania "prawie" sukces. PWM, kontrolki, switche, łączność z mostkiem H, konfiguracja wyprowadzeń - OK. Jednak okazało się, że mostek jest uszkodzony(uwalony jeden z górnych tranzystorów prawego silnika)-prawy silnik nie kręci do przodu. Po wymianie ruszył. Zrezygnowałem z ADC-nie mogłem go uruchomić, a sensory bardzo dobrze sobie radzą jako cyfrowe. Po testach przyszedł czas na pierwsze jazdy: Film z najprostszym programem(bez regulacji prędkości-tylko zmiana kierunku obrotów), zasilanie bateria 2S 0,8Ah(docelowo 3S-chociaż to trochę ryzykowne przy tym mostku). Trasa "0": Jedno kółko to 2m, czas okrążenia ~3,5s, prędkość wychodzi niecałe 0,6m/s. W następnej wersji softu (regulator P-następny film) zszedłem poniżej 2,8s. Chyba nie jest źle jak na pierwszą konstrukcję. Możliwe, że jeszcze poprawię ten wynik-jedyne co mnie teraz ogranicza to ilość sensorów, ale biorę pod uwagę dodanie jeszcze kilku. Filmy z późniejszym softem(regulator P): Trasa "0" - o długości 2m. Tor testowy, długość 10m: Średnia prędkość dochodzi do 0,9m/s Koszty: Silniki+przekładnie: 20zł Koła pololu 60mm: 25zł Sensory, atmega, mostek: ~30zł Drobnica <10zł Reszta drobiazgi za grosze. Dołączam plik hex, PCB, schemat montażowy, ideowy, wykaz elementów i uwagi. error1.zip
  13. Konstrukcja linefollowera jest oparta o laminat szklano-epoksydowy stanowiący jednocześnie płytkę drukowaną elektroniki. Konstrukcja przystosowana jest również do jeżdżenia po torach z przeszkodami. Robot posiada możliwość regulowania wysunięcia czujników linii, jak również wysokość czujników nad torem. Sterowany jest nowoczesnym mikrokontrolerem ATXmega128A1. Silniki pozwalają robotowi osiągać prędkości ponad 1,5m/s co stawia go w czołówce najszybszych polskich robotów typu Lf. Oryginalny design wraz z efektami świetlnymi powoduje, że robot świetnie się prezentuje na torze. Przedstawiam robota klasy Linefollower, którego wykonałem razem z TIMONKiem. Jak wszystkie moje konstrukcje robot po ustaleniu koncepcji i wszystkich założeń konstrukcji został zaprojektowany w programie Autodesk Inventor. Oto kilka renderów z Inventora a w załączniku plik złożeniowy wraz ze wszystkimi plikami. Dla tych co mają inną wersję Inventora lub używają innego programu załączam również plik .step: Elektronika robota składa się z dwóch płytek drukowanych i wyświetlacza. Obwody drukowane zostały zaprojektowane w programie Altium Designer. Poniżej kilka zrzutów ekranu. W załączniku dołączam schematy w formacie PDF oraz pliki Altiuma. Widok 3D płytki nie będzie działał, ponieważ projekt jest powiązany na stałe z plikami inventora. Po ominięciu kilku wyskakujących błędów powinien działać widok 2D obwodu. Kilka zdań o konstrukcji mechanicznej: Jak widać na zdjęciach robot składa się z dwóch płytek drukowanych, dzięki czemu możliwa jest regulacja odległości czujników od osi napędowej. Możemy w ten sposób ustalić empirycznie optymalną odległość między osią kół a czujnikami. Z naszych obserwacji wynika, że robot, który ma większą odległość czujników od kół lepiej sprawdza się na szybszych trasach, które mają łagodniejsze zakręty. Płytki są ze sobą połączone przy pomocy 20 żyłowej taśmy. Środek ciężkości robota został umieszczony w miarę nisko nad ziemią, ok. 6mm oraz w odległości około 14mm przed osią kół. Cała konstrukcja waży ok. 100g (dokładną wagę podam w przyszłym tygodniu). W Linefollowerze zostały zastosowane silniki z Pololu w wersji HP z przekładnią 30:1, ich specyfikacja dostępna jest tutaj: http://www.pololu.com/catalog/product/1093. Silniki zostały zamocowane na podstawkach wyciętych laserowo z plexi, tak aby środek ciężkości znajdował się jak najniżej i aby płytka z elektroniką była umieszczona równolegle do podłoża. Kulka podpierająca przód robota również została kupiona w sklepie Pololu. Zastosowane koła to kółka z mobot.pl po mojej małej przeróbce. Do robota pasują również koła z Pololu, które widać na niektórych filmikach i zdjęciach. Słów parę o elektronice: Na przedniej płytce znajduje się 16 transoptorów odbiciowych KTIR0711S, 4 diody LED, czujnik Sharp gp2y0d340k wraz z niezbędnymi elementami (filtr LC na zasilaniu, dzielnik rezystorowy na wyjściu oraz zworka do włączania czujnika), dwa kondensatory odsprzęgające napięcia +3,3V i +5V oraz 20-pinowe złącze taśmy. Na tylnej płytce: -układ zasilania złożony z dwóch połączonych kaskadowo stabilizatorów L7805ACDT (+5V) i LF33 (+3,3V). Przed stabilizatorami znajduje się dodatkowo włącznik i dioda prostownicza FR3 zabezpieczająca przed odwrotnym podłączeniem akumulatora. Ze stabilizatorami współpracują kondensatory tantalowe SMD. -procesor ATXmega128A1 wraz z ośmioma kondensatorami odsprzedającymi i dwoma filtrami LC filtrującymi napięcie dołączone do nóżek AVcc. -dwa mostki H VNH3SP30 sterujące silnikami. -komparator sygnalizujący rozładowanie akumulatora poniżej 50% poprzez zapalenie zielonej (zielona aby się wyróżniała) diody LED. Na wejścia komparatora podane są przez dzielniki rezystorowe napięcia akumulatora i napięcie ze stabilizatora +3,3V. Dodatkowo wyjście komparatora zostało podłączone do jednego z wyprowadzeń mikrokontrolera, aby można było programowo zareagować na rozładowanie akumulatora. -6-pinowe złącze programatora „micromatch” (wykorzystane tylko 4 piny) -scalony odbiornik podczerwieni TSOP32156, do współpracy z pilotem -złącze wyświetlacza LCD, na które wyprowadzony został cały port F (na schemacie jest narysowane tylko 7 linii, ale na płytce można podłączyć 8 linię robiąc małą zworkę z cyny), dzięki czemu złącze te może być wykorzystane również do rozbudowy robota. -trzy microswitche -3 czerwone diody sygnalizujące poprawne pojawienie się w układzie napięć: akumulatora, +5V, +3,3V. -dwie diody LED SMD RGB wraz z tranzystorami sterującymi. Diody zostały zamontowane od spodu robota i mają za zadanie oświetlanie toru (efekt wizualny). Tranzystory sterowane są sześcioma sygnałami PWM, dzięki czemu na diodach można uzyskać dowolny kolor bez obciążania procesora. -18 sztuk czerwonych diod LED SMD 0603, służących do generowania efektów wizualnych -20-pinowe złącze taśmy łączącej obie płytki Trasa: Trasa dla robota wykonana została z laminowanej płyty paździerzowej zakupionej w Castoramie. Płyta została pocięta na kawałki ok. 1x1m, a następnie skręcona przy pomocy stalowych płaskowników. Boki pociętej płyty zabezpieczyliśmy tzw. obrzeżami meblowymi. Linia po której jeździć ma robot wyklejona została izolacją o szerokości 19mm. Bandy toru wykonane zostały z samoprzylepnych klinów z gąbki. Filmiki z pierwszych testów: Drugie testy: Robot nie jeździ jeszcze z maksymalną prędkością, widać jak czasami wariuje na łączeniach płyt. Oprogramowanie jest cały czas rozwijane więc z czasem będzie jeździł szybciej. Ta odstająca do góry taśma jest tylko tymczasowo, później będzie założona taśma na wymiar. OSIĄGNIĘCIA: Inferno wraz z bratem bliźniakiem Mefisto wziął udział w zawodach LF i LF z przeszkodami na SumoChallenge w Łodzi oraz w zawodach LF na RoboticArena we Wrocławiu osiągając: Sumochallenge2010: 1. miejsce dla robota Mefisto w kategorii Linefollower. 2. miejsce dla robota Inferno w kategorii Linefollower. 1. miejsce dla robota Inferno w kategorii Linefollower z przeszkodami. 3. miejsce dla robota Mefisto w kategorii Linefollower z przeszkodami. Film z eliminacji na SumoChallenge: RoboticArena2010: 1. miejsce dla robota Inferno w kategorii Linefollower. Podsumowując: mój i TIMONKa debiut w kategorii Linefollowerów uznajemy za udany Film nagrany podczas dni otwartych Politechniki Poznańskiej 27 listopada: schematy.rar LF.rar LF.rar robot.rar
  14. Witam chciałbym wam przedstawić mojego pierwszego robota o nazwie MacLiner.Cała konstrukcja oparta na laminacie 3mm, która jest jednocześnie płytką drukowaną elektroniki. Robot jest w kształcie Koła. MECHANIKA Tradycyjnie jak prawie w każdym robocie tej klasy zastosowane zostały dwa silniki Pololu 30:1, ball caster który stanowi tylną podporę a także koła o średnicy 32mm tej samej firmy. ELEKTRONIKA Jako "mózg" został użyty mikrokontroler firmy Atmel z rodziny AVR ATmega32 z taktowaniem 16Mhz. Za sterowanie silnikami odpowiedzialny jest dwukanałowy mostek L298. Z początku obawiałem się użycia go ze względu na duży spadek napięcia, lecz jak się potem okazało w tej konstrukcji w zupełności wystarczał.Do wykrywania linii użyte zostały czujniki KTIR0711S (5 czujników ułożonych po okręgu ). Sygnał analogowy z sensorów zamieniany jest na cyfrowy przy użyciu komparatorów LM324 następnie podawany na piny atmegi. Za stabilizacje napięcia odpowiedzialny jest układ 7805, który dostawał napięcie w prost z 4 baterii alkalicznych 1,5v.Płytka została wykonana w warunkach domowych. Od razu odpowiem na pytanie(zapewne takie padnie). Z czego zrobiona jest soldermaska? Otóż jest to najzwyklejsza farba do witraży. STEROWANIE Myślę, że największą wadą tego robota jest właśnie program. Można było zauważyć to na zawodach SUMO CHALLENGE w Łodzi (zakręty pokonywał w moim odczuciu doskonale, lecz na prostych wyglądało to jak by jechał po sinusoidzie). Został wgrany regulator na samym członie P pisany w środowisku Bascom. PODSUMOWANIE Reasumując zebrałem dużo cennego doświadczenia, na pewno więcej czasu muszę poświęcić na napisaniu programu a także to że softem ciężko jest naprawić błędy mechaniczne/konstrukcyjne. Zapomniał bym o jeszcze jednej cennej praktyce, którą zdobyłem podczas budowy: zarywanie nocek przy projekcie dobrze się nie kończy co widać na jednym ze zdjęć(mam na myśli te źle rozmieszczone pady pod diody) Zdjęcia: MACLINER TEST [Youtube] [/Youtube][Youtube] [/Youtube]Autor projektu: *Mateusz Góra MacLiner.pdf
  15. Infinitum to trzeci robot w mojej karierze i najlepszy jaki udało mi się zbudować do tej pory. Robot powstawał stosunkowo długo (ponieważ w tym roku matura), jednak najwięcej do zrobienia było przed RoboticArena 2011, gdy na PCB wkradł się błąd, który oczywiście został usunięty. Robot powstawał przy współpracy z firmą Woszym , która zajmuje się montażem obwodów drukowanych. Również pomogli w krytycznej sytuacji. Elektronika: Standardowo użyłem mikrokontrolera firmy atmel- Atmega16, mostki to dwa TB6612, stabilizator L7805 wersji SMD, za oczy robią cyfrowe Sharpy GP2Y0D340K, komparator LM339D oraz KTIR0711S plus pozostałe drobne elementy. Robota wyposażyłem w LCD 8x2- jednym się ten pomysł podobał, innym nie, ale ja jestem zadowolony bo spełnił swoją funkcję- można sprawdzić aktualny stan aku, ustawić PWM jak i zobaczyć, za ile zacznie się walka Program: Program powstał w środowisku eclipse, napisany został w C, którego się dopiero zacząłem uczyć, więc jest to pierwszy mój program w tym języku. Nie wiedziałem, że jest taki fajny. W robocie jest przewijane menu, które obsługuje się trzema przyciskami - jeden enter, a dwa pozostałem służą do przewijania. Żeby wyjść do głównego menu trzeba przytrzymać te dwa przyciski do przewijania przez 3s. Mechanika: Obudowa Infinitum została wcięta z aluminium i profesjonalnie polakierowana przez lakiernika. Po walkach odprysków praktycznie nie ma więc się postarał . Silniki to HP 50:1 z pololu. Robot na zawodach ważył około 375g. Podsumowanie: Jak wspominałem jestem z niego bardzo zadowolony-udało się wyjść z grupy na RA11! Dla ciekawych nazwa wzięła się stąd, że były roboty Inferno i Mefisto to stwierdziłem, że musi być coś anty(w Google translator można sprawdzić ). Konstrukcja ma tylko 3 minusy: przyczepność, ilość śrubek i umiejscowienie włącznika – przy następnych konstrukcjach zwrócę na to większą uwagę . Filmiki: Znajdują się tu niektóre z wygranych walk https://www.youtube.com/watch?v=uGfYsFS2aMw
  16. Witam, jest to pierwszy mój robot. Wykonałem go wraz z GROM'em (Grupą Robotycznie Opętanych Maniaków) a prace nad nim rozpoczęły się ok. 10 miesięcy temu. Robot wiele razy był modyfikowany, na dzień dzisiejszy wygląda tak. I etap założenie konstrukcyjne: -stworzenie robota klasy MiniSumo, -o jednostce napędowej 4*silnik Pololu, -zasilany pakietem Li-Pol, -rama stalowa, -niski środek ciężkości, -zastosowanie czujników optycznych cyfrowych oraz analogowych, -konstrukcja ma być Lansiarska. II etap dobór teoretyczny podzespołów: -Silniki Pololu HP*4szt. z przełożeniem 50:1 ze względu na odpowiednie: napięcie zasilania = 3-9V, wymiary = 24 x 10 x 12 mm, moment obrotowy = 1,4 kg*cm (0,137 Nm) oraz masę = 10g. -Mostek H L298 ze względu na odpowiednią: liczbę kanałów = 2 oraz szczytowy prąd na kanał = 2A (silniki są sprzężone ze sobą tak, że jeden kanał odpowiada za sterowanie silnikami z jednej strony). -Pakiet LiPol 3E Model 1300mAh 7,4V ze względu na odpowiednią: wydajność prądową = 15C oraz rozsądny stosunek wymiarów pojemności i wagi (69 x 32 x 14,5 mm, 1300mAh, 58,7 g). -Czujniki cyfrowe 2* Sharp 40cm GP2Y0D340K oraz Sharp analogowy czujnik odległości o zasięgu 4-30cm. III etap zamówienie najważniejszych podzespołów i wykonanie ramy: -Zamówienia były realizowane w polskich sklepach z elektroniką, mającą zastosowanie w robotyce. -Stal, z którego została wykonana rama to St37K, ze względu na łatwość w obróbce mechanicznej. -Pług został wykonany ze stali C45, ze względu na dobrą wytrzymałość, -Obudowa oraz felgi zostały wykonane z aluminium PA6, ze względu na łatwość w obróbce mechanicznej. -Konstrukcja ma wymiary 99,5mm szer. 99,5mm dł. i 47mm wys. IV etap wykonanie płytki elektronicznej: -Elementy zastosowane na płytce zostały wykonane w technologii SMD, -Głównym elementem jest procesor z rodziny AVR (to ośmiobitowe mikrokontrolery produkowane przez firmę Atmel.) -Na płytce znajdują się 4*czujniki optyczne KTIR0711S, po jednym w każdym rogu płytki. V etap oprogramowanie układu: -Program został napisany w języku C, w środowisku AVR STUDIO 4. -Do zaprogramowanie mikrokontrolera użyto programator AVR PROG III STK 500v o standardowym interfejsie KANDA. -Za pomocą programu AVR8 Burn-O-Mat ustawiono fusebit’y mikrokontrolera oraz funkcje zegara taktującego. VI etap testy. VII etap poprawki: -Trwa do dnia dzisiejszego. Wprowadzane zmiany mają na celu usprawnienie robota oraz poprawę wyglądu, aby w końcu robot stał się naprawdę LANSIARSKI. Kosztorys w wielkim przybliżeniu: -silniki 200zł -aku 50zł -czujniki 100zł -elektronika 50zł -materiał 50zł -czas setki godzin (bezcenny ) suma= 450zł + praca własna. Osiągnięcia: III miejsce na Trójmiejskim Turnieju Robotów Robo3DVision w Gdańsku, I miejsce Astor Robot Challenge w Sosnowcu, I miejsce ROBOTIC TOURNAMENT 2012 (deathmatch). kilka fotek: CzubuŚ w akcji: https://www.youtube.com/watch?v=lmA0dDbnaxk&feature=player_embeddedhttps://www.youtube.com/watch?v=F5Wag1FwfG0&feature=player_embedded https://www.youtube.com/watch?v=9BDRPZQyC_o&feature=player_embeddedhttps://www.youtube.com/watch?v=RhVnyrBopDc Nocne manewry: Warunki, w jakich powstawał robot i krótki komentarz https://www.youtube.com/watch?v=GKBGS_0rsSc&feature=player_embedded#!https://www.youtube.com/watch?v=IzAEKrbH_Os&context=C37662d1ADOEgsToPDskJdneyJvuh4wWlNUYFwDYbI Robot po za tym, że jest zawodnikiem kategorii MS, ma również inne zadania: -jest projektem na zaliczenie przedmiotu "mobilne układy robotyki" na Politechnice Opolskiej. Zaliczenie polega na stworzenie robota w rzeczywistości i opisanie go. Ocena jest uzależniona od czau przejazdu, przez labirynt. CzubuŚ oczywiście zaliczył przejazd na 5. -robot jest omawiany na zajęciach dydaktycznych jakie GROM prowadzi dla szkół i placówek oraz na zajęciach edukacyjno-promocyjnych na Politechnice Opolskiej (filmik wkrótce), -jest częścią pracy dyplomowej, której zadaniem jest stworzenie dwóch drużyn robotów, grających w piłkę. Roboty komunikują się z sobą oraz jednostką sterującą za pomocą UART'u. CzubuŚ ma wyprowadzenia na taki układ, będzie on podłączany jedynie do gry (filmik wkrótce). Artykuły: http://www.nto.pl/apps/pbcs.dll/article?AID=/20110606/AKADEMICKA01/339321214 http://opole.gazeta.pl/opole/1,35114,9701862,Robot_studentow_PO_trzeci_w_kraju.html http://www.astor.com.pl/centrum-prasowe/informacje-prasowe/2338-sukces-astor-robot-challenge-2011.html http://www.nto.pl/apps/pbcs.dll/article?AID=/20110531/AKADEMICKA01/856663250 PS. mało cosik ostatnie czasy MS się opisuje.
  17. Witam wszystkich ! Chciałbym zaprezentować wam moje najnowsze "dzieło" które powstawało jest nim robot klasy minisumo o nazwie "Zniszczyciel" . Robot powstawał od świąt bożego narodzenia czyli prawie 2 miesiące . Budowałem go z myślą o zawodach Robomaticon w których mam zamiar wziąść udział (licze na przed ostatnie miejsce konstrukcja jest niezwykle prosta wzorowałem się trochę na robocie "Szaman 4 " kolegi Zuba1 . Kilka najważniejszych informacji Zasilanie pakiet Lipo 2s 7,4v stabilizowany na 5v Napęd podwójna przekładnia tamya o przełożeniu 1:344 Procesor Attiny 2313 z zewnętrznym oscylatorem 4mhz Sterownik silników L293DNE Czujnik linii CNY70 Czujnik "wroga" GP2Y0D340K x 1 + dwa mikro switche Koła pochodzą ze sklepu modelarskiego Płytka pochodzi z kursu o elbocie. Kilka zdjęć i filmy Program do Minisumo napisałem w Bascomie jest na tyle prosty że go nie przedstawię , napisałem jednak dodatkowy program do zdalnego sterowania pilotem od TV... Film: Problemem jest chyba odbiornik podczerwieni który nie zawsze odbiera sygnał widać to na filmie trzeba czasem kilka razy wcisnąć przycisk aby robot zareagował... Największą wadą tego robota jest mostek H przy tych silnikach i tym zasilaniu musiałem dać rezystory żeby ograniczyć prąd silników
  18. Hej. Przedstawiam swoją kolejną dziwną konstrukcję. Pomysł podpatrzony w jednej z polskich firm oraz na pololu. Zrobiłem go w celach pokazowych. Chciałem mieć pająka, ale taki na 18 serwach to by mnie przerósł i finansowo i intelektualnie więc zrobiłem takiego prostego. Do sterowania wykorzystałem aplikacją w Javie którą od lat mam do takich rzeczy. Wysyła pojedyncze znaki po naciśnięciu lub puszczeniu klawisza lub joysticka. Jako BT użyłem najtańszego chińskiego modułu. W procek mam wgrany BL megaload co umożliwia automatyczne ładowanie nowego softu po naciśnięciu przycisku reset przez BT. - imie - strzeliłem, wszyscy nadają, dziwnie by mój post wyglądał więc i ja nadałem - konstrukcja - elementy wycięte cnc z laminatu 1,5mm - serwa - standard, miałem pod ręką 2szt tp 5010 i 1 conrad ES 030 - nogi - na 12 łożyskach 8x4x3 - zasilanie - 4 x nimh 1400mAh - sterownik - własny projekt małego sterowniczka specjalnie do niego na atmega328 - sterowanie przez port szeregowy (BT) - demo Napisany w Bascomie program steruje serwami w zależności od otrzymanej po uarcie komendy lub załącza demo powodujące długie tuptanie pająka w miejscu. Chciałem dołożyć mu obracany na serwie sonar ultradźwiękowy ale już chyba tego nie zrobię. Prędkość jego poruszania się jest tak niewielka że zanim by doszedł do jakiejś przeszkody żeby ją ominąć minełyby wieki. Więc taki pewnie zostanie. Kilka fotek oraz film Pozdro Sławek
  19. Witam! Chcę wam zaprezentować mojego pierwszego robota. Konstrukcja jest ukończona, ale oprogramowania jeszcze nie ma, więc ewentualne filmiki pojawią się po napisaniu softu. Jest to przede wszystkim robot edukacyjny, na razie ma być to linefollower, ale w łatwy sposób można będzie przerobić go na sumo. Jak na zdjęciach widać konstrukcja wykonana z laminatu (i tutaj podpowiedź dla innych początkujących, z którą nie spotkałem się jeszcze na tym forum. Cyna stygnąc ściąga do siebie płytki, więc lutując dwie płytki pod kątem 90* należy jakoś zabezpieczyć, aby kąt nie "uciekł"). Napęd to dwa serwa obrotowe (przerobione TowerPro 5010 od ARE, posiadają wbudowany mostek do sterowania kierunkiem obrotu, a sygnałem PWM kontroluje się prędkość - 5 przewodów). Wykrywanie linii za pomocą 5 czujników TCRT5000. Zasilanie - pakiet lipo Turnigy 1300 mAh 7,4V (jeszcze brak finalnego podłączenia). No i wyświetlacz 2x16. @Edit: Dodałem trochę więcej zdjęć. No i jak chcesz Treker przenosić ten temat to mi to obojętne. Planuję w tym lub przyszłym tygodniu soft mieć napisany. @Edit2: Soft jako tako napisany, robot jeździ, więc udostępniam nagranie.
  20. Feniks3, to mój trzeci z kolei linefollower, opisy dwóch poprzednich można znaleźć również na forum (linki znajdują się w podpisie). Konstrukcja ta powstawała kilka tygodni, ostateczne złożenie całości zajęło mi tydzień. Robot miał wystąpić po raz pierwszy na zawodach z Łodzi, ale niestety nie mogłem się na nich pojawić. Konstrukcja z założenia miała być lekka i w miarę możliwości szybka. Pierwszy raz użyłem turbiny, więc był to swego rodzaju eksperyment. Elektronika Elektronika składa się z dwóch płytek - główna z elektroniką sterującą oraz mniejsza z czujnikami. Główny procesor to Atmegas128, do którego przez komparatory podłączone jest 20 czujników KTIR ułożonych w półokręgu. Całość zasilana jest z pakietu Li-po 2S przez przetwornicę, która tym razem sprawdziła się znakomicie. Nad bezpieczeństwem akumulatora czuwa dzielnik napięcia oraz jeden z kanałów ADC. Silnikami Pololu HP steruje jeden mostek TB6612 zamontowany razem z całym modułem z Pololu. Sterowaniem turbiny 27mm zajmuje się regulator zakupiony w HK, dzięki temu kontrola nad EDF'em stała się bardzo prosta. Płytki wykonane oczywiście w Satland Prototype W robocie znajduje się również małą płytka z Atmegą8, która odpowiada za obsługę RC5, dzięki któremu można startować i bezpiecznie zatrzymywać robota pilotem. Pojawiła się ona dopiero później (dorobiłem ją na kilka dni przed zawodami) dlatego wygląda jak wygląda Mechanika Konstrukcja mechaniczna składa się z dwóch płytek z elektroniką, oraz mostka z cienkiego laminatu, który je łączy. Napędem robota są dwa silniki Pololu HP z przekładniami 10:1 oraz standardowe koła 32mm. Cała konstrukcja waży około 140g razem z akumulatorem. W konstrukcji tej zrezygnowałem z ballcasterów - głównie z powodu wagi. Była to dobra decyzja, nie odczułem żadnych problemów z czujnikami z tego powodu. Program Program napisany został w C, był to mój pierwszy większy program na uC stworzony w tym języku i teraz śmiało mogę powiedzieć, że nie było to takie straszne jak się wydawało. Robotem steruje regulator PD. Człon całkujący był zaimplementowany jednak nie miałem czasu, aby go przetestować. Tak na prawdę robot ruszył w pełni swoich sił dosłownie w noc przed zawodami dzięki pomocy udzielonej przez Bartka i Szymona z BotlanTeam'u Podsumowanie Budując konstrukcję wzorowałem się głównie na robotach GreenNight oraz jego następcach W planach mam już kolejną wersję konstrukcji - mam nadzieje, że będzie jeszcze szybsza. Robot zajął drugie miejsce na zawodach Robotic Arena 2011. FIlmy Testy: Jazda testowa: https://www.youtube.com/watch?v=wY2SOvzZ748 Zawody: https://www.youtube.com/watch?v=pfQAMkp_rls https://www.youtube.com/watch?v=AdCOYfMPBYQ Ogólnie cała konstrukcja jest dość prosta, dlatego czekam na ewentualne pytania, ponieważ nie wiem co jeszcze może Was interesować. Schematów i PCB nie podaję, ponieważ nie są zrobione poprawnie, mówiąc wprost - są brzydkie Zachęcam do opisywania swoich robotów, nagrody czekają
  21. Witam jest to mój pierwszy robot, nazwałem go IVAN, zbudowany w większości z aluminium jak widać na załączonych zdjęciach. Gąsienice wykonane z gumowych opasek na rękę. (bardzo dobra przyczepność). Zastosowałem 4 czujniki odległości SHARP2D120x (niestety analogowe i są dość wolne) (4-30cm) i 4 czujniki koloru QRD1114. Silniki to 6-ścio voltowe silniczki HL149 z przekładnią 21:1 silniki są dość ciężkie bo ważą razem190g a przy tej konstrukcji to był duży problem. (koła po odchudzeniu wyglądają jak ser!) Cały robot waży 497g. Na niektórych zdjęciach widać korpus z aluminium 2 mm potem w celu odchudzenia konstrukcji powstał jeszcze jeden z 1 mm. Robot atakuje stroną którą prędzej wykryje przeciwnika z dużą prędkością. Elektronika opiera się na procesorze Atmega32 program w C. W kodzie ma zaimplementowane komunikaty 'co się z nim w danym czasie dzieje' wysyłane są na port COM (w przyszłości planuje bezprzewodowo ale to już w wersji robota V2). Zasilanie lipo 400mah - bardzo mała pojemność wybrany ze względu na małą wagę 42g - ładowany ładowarką IMAX B6. Korpus wykonany na maszynie sterowanej numerycznie a koła wytoczone na tokarce – widać Niektóre śrubki zrobione z pręta aluminiowego w celu oszczędzenia wagi. Kosztorys (mniej więcej) Toczenie - free Wycinanie - free Aluminium na korpus i koła - free Aluminiowe profile – 20zł Akumulator - 40zł Ładowarka - 180zł Silniki - 25zł Czujniki odległości sharp – 200zł Płyta główna + regulator napięcia silników – free Czujniki podłoża - 12 zł ‘Gumki’ na gąsienice – free Śruby / drobiazgi – 15zł Łożyska - 4zł Jak coś pominąłem proszę pytać Zdjęcia z budowy i gotowego robota: Projekt sketchup: ...jeszcze 3 foty case-a robota No i film:
  22. Witajcie : ) Chciałem przedstawić Wam mojego robota minisumo yoyo1. Jest to mój pierwszy robot, a udało się go wykonać dzięki zastosowaniu arduino. Jak wiecie, jest to mikrokontroler (AVR AtMega328) z wbudowanym programatorem, a język jest oparty na C. W marcu zamierzam zbudować kolejnego robota, tym razem bez pomocy Arduino, a w całości wykonać płytkę z elektroniką. Niestety robot nie był na żadnych zawodach, ponieważ miałby ciężko z robotami, które posiadają lepsze serwomechanizmy. Do rzeczy: Elektronika Całość zasilana jest dwoma akumulatorami li-ion 2100mAh 3,7V. Daje to 7.4V napięcia wyjściowego, które zostało stabilizowane na 5V stabilizatorem l7805cn. Do wykrywania obiektów służą dwa czujniki ultradźwiękowe, a do wykrycie linii dwa transoptory TCRT5000. Program Robot został zaprogramowany w programie arduino (język podobny do C), z użyciem biblioteki do sterowania serwami. Mechanika Całość wykonana jest z laminatu. Do mocowania użyto tulejek dystansowych, które były drogie (1,5zł za sztukę) jak cholerka Zastosowano dwa serwa modelarskie Tower Pro Sg-90. Są one najtańsze i posiadają moment 1.6 Kg*cm. Jako koła posłużyły nakrętki pudliszki, na które naciągnięto gumę - odpowiedni współczynnik tarcia jest : ) Wniosek Jak widać, niewielkim nakładem pracy można zbudować robota minisumo. Jestem początkujący, a zbudowanie tego robota to krok do przodu, aby tylko się doskonalić, rozwijać i w przyszłości, mam nadzieję tworzyć konstrukcje bardziej zaawansowane, bez użycia arduino : ) Pozdrawiam Rafał Filmiki https://www.youtube.com/watch?v=5uMdQXCiJFg
  23. Witam chciał bym przedstawić mojego pierwszego robota minisumo szamana 4 Robot ten powstał z myślą o zawodach, ale jak na razie jest w fezie testów.Robiłem go 3 dni ale pomysł powstał 1 miesiąc wcześniej. Elektronika. Robot jest sterowany atmegą8, wybrałem ją z powodu jej posiadania w domu. Czujniki to 2x GP2Y0D340K i 1x tcrt1000 podpięty do wzmacniacza operacyjnego i zainstalowanego z przodu.Zrezygnowałem z 4 czujników ponieważ sam jeden spełnia swoje zadanie.sterownikiem napędu jest mostek 293dne. Program. Program jest w całości napisany w języku bascom,na płycie głównej robota znajduje się złącze programistyczne(ISP). Napęd. Jako napędu użyłem przekładnię tamitya i koła z pololu jednakże, ogumienie nie spełniało moich oczekiwań zastosowałem własne gumy z drukarki . Zasilanie. Zasilanie stanowią 4 akumulatorki NI-MH 2500mAh firmy tronic.Całość jest stabilizowana stabilizatorem 5v Zrezygnowałem z robienia płytek bo nie lubię bawić się w wytrawianie. Na ich miejsce weszły płytki uniwersalne co okazało się głupim pomysłem . filmik z pracy oto kilka zdjęć autor Bartłomiej Zuba (zuba1)
  24. Witam! Chciałbym opisać robota Trifle, którego stworzyliśmy z kolegą Jarkiem. Jako, że jest to mój pierwszy post i nasz pierwszy robot liczę na wyrozumiałość. Projekt i konstrukcja powstawały od września do połowy listopada. Trifle miał swój „debiut” na zawodach w Sosnowcu. Mechanika Konstrukcja robota opiera się na dwóch płytkach PCB wykonanych metodą termotransferu i wyciętych własnoręcznie. Napęd stanowią dwa silniki Pololu HP 30:1 oraz koła z modelu-zabawki o średnicy 34mm. Z przodu zamocowany jest Ball Caster 3/8’’. Całość wraz z baterią i wyświetlaczem waży około 330g. Elektronika Projekt płytki PCB powstał w programie KiCad. Płytki są jednostronne ze względu na użycie stosunkowo dużych elementów przewlekanych, przez co nie jest konieczne użycie połączeń po obu stronach płytki.Mikrokontroler sterujący robotem to Atmega32A firmy Atmel. Pracuje on z częstotliwością 18,432 MHz, co zapewnia odpowiedni podział częstotliwości ze względu na wykorzystanie interfejsu USART. Interfejs ten wykorzystywany jest do szybkiej zmiany parametrów robota z wykorzystaniem USB w PC, bez konieczności wgrywania programu od nowa. Mostki użyte do sterowania silnikami to L298N. Połączenie kanałów miało na celu zwiększyć wydajność prądową, lecz prąd okazał się za duży, co powodowało szybkie przepalanie się szczotek i konieczność wymiany silników. Błąd udało się naprawić wykorzystując ograniczenie prądowe zbudowane na nieużywanych komparatorach. Czujniki linii to 11 układów KTIR0711S wraz z czterema komparatorami LM339. Sygnał z fototranzystora KTIR0711S jest podciągnięty do +5V a następnie podany na wejście nieodwracające układu LM339. Tam jest porównywane ze napięciem wygenerowanym przez procesor (PWM i układ RC) a sygnał wyjściowy z komparatora trafia bezpośrednio do procesora na wejścia logiczne. Zmienne napięcie odniesienia generowane przez procesor umożliwia w łatwy sposób dopasowanie się czujników do aktualnego oświetlenia jak i jasności trasy. Nasz robot wyposażony jest w wyświetlacz LCD 2x16 dla lepszego zobrazowania pracy procesora, nie jest on konieczny w trakcie samego przejazdu trasy. Procesor ma również możliwość odczytywania komend sygnału RC5 z wykorzystaniem układu TSOP2236, które mogą włączyć bądź wyłączyć tryb jazdy. Na płytce jest również miejsce na czujnik odległości Sharp GP2Y0D340K, ale jak dotąd nie był on wykorzystywany. Program Algorytm sterujący robotem jest napisany w języku C i opiera się głównie na regulatorze PID, z czego część całkująca ma bardzo niewielkie znaczenie i jest używana tylko wtedy, gdy jest to konieczne. W robocie jest również zaimplementowany algorytm wykrywania kątów prostych, co poprawia prędkość na trasie z takimi kątami. Ponadto w programie jest algorytm kalibracji czujników KTIR0711S do aktualnych warunków na trasie oraz możliwość sterowania włącz/wyłącz za pośrednictwem pilota do TV. Zasilanie Całość zasilana jest z pakietu Li-pol 3S 11.1V 1000mAh Podsumowanie Podsumowując, naszą pierwszą konstrukcję uznajemy za w miarę udaną. Staraliśmy się wzorować na najlepszych konstrukcjach przedstawianych na forum. Dzięki niej przetestowaliśmy i zweryfikowaliśmy różne rozwiązania i zdobyliśmy doświadczenie niezbędne do budowy nowych lepszych konstrukcji, co bylo głównym celem budowy robota. Osiągnięcia 4. miejsce - ASTOR Robot Challenge - Line Follower 8. miejsce – Robotic Arena 2011 – Line Follower Zdjęcia Filmy
  25. Witam wszystkich forumowiczów. Chciałbym przedstawić moja pierwszą jeżdżącą konstrukcje. Jest to samobieżna platforma sterowana poprzez bluetooth poprzez laptopa/PC lub telefon. WSAD: Wsad do mikro-kontrolera powstawał najwięcej czasu z racji braku doświadczenia w pisaniu wsadów, wiem na pewno że da się go zrobić prościej i schludniej ale mi wystarczy zadowolenie że działa. Jest on bardzo wzorowany na sterowniku bluetooth opublikowanym w EdW 01/09 i kopią wsadu do konstrukcji bluerider opublikowanej na innym forum. Działania wsadu nie będę opisywać ponieważ jest w nim dodanych wiele komentarzy opisującym całe sekcje i za co są one odpowiedzialne. W kilku miejscach powstaje małe zamieszanie w przypisywaniu portów ale wszystko to poprzez dalsze prace nad konstrukcją ramienia z chwytakiem które zostały wstrzymane do stycznia. Gorąco polecam samo zapoznanie się z możliwościami takiego starowinka bluetooth. PROGRAM PC/KOMÓRKA: Twórca tych programów jest osoba która jest autorem całego artykułu o którym pisałem wcześniej. Jeśli jest ktoś zainteresowany programem należy na stronie: http://www.elportal.pl/index.php?module=ContentExpress&func=display&btitle=CE&mid=&ceid=93 odszukać: Do pobrania z EdW 1/2009 a następnie wybrać odnośnik do: Sterownik Bluetooth - płytka drukowana, oprogramowanie (ZIP, 2100kB) . NAPĘD: Do napędzenia robota posłużyły dwa przerobione serwa modelarskie sterowane poprzez podwójny scalony mostek typu H. Serwa bezpośrednio przekazują napęd na łańcuch pełniący role gąsienic. Myślę że nie ma co się tutaj rozpisywać, istnieje wiele rodzajów napędów i sposobów na przenoszenie go ale mi ten najbardziej pasował. ZASILANIE: Całość jest zasilana z 8 akumulatorków energizer, wybrałem takie zasilanie ponieważ miałem ich dużo i chciałem je jakoś wykorzystać. W projekcie są użyte dwa stabilizatory 7805 oraz 7808 do zasilania silników. ELEKTRONIKA: Całością steruje mikro-kontroler atmega8. Procesor znajduje się w pętli do loop, oczekując na komunikaty od BTM. Jeżeli odbierze prawidłowy znak, ustawia stan na odpowiednim porcie procesora, a następnie wysyła do modułu informację o stanie wszystkich wyjść. Do sterownika dołączone jest napięcie 5V oraz 8V. Stabilizacja odbywa się w innym module. Budowa elektroniki w systemie modułowania sekcji była wymuszona przez bardzo małą ilość miejsca w która musiałem zmieścić cała elektronikę. KOMUNIKACJA: Podzespołem odpowiedzialnym za komunikacje pomiędzy platforma a PC/komórka jest moduł bluetooth btm-222. Wzór PCB został pobrany z: http://www.elektroda.pl/rtvforum/viewtopic.php?t=1414894&highlight= natomiast dokładny opis komunikacji jak i działania samego modułu znajduje się na stronie http://www.elektroda.pl/rtvforum/topic1433390.html#7043207. Dodam jedynie że moduł wymaga napięcia 3,3V przez co zastosowany jest konwerter napięć oraz że warto jednak wybrać PCB z wbudowanymi diodami( od razu widać czy komunikacja odbywa się prawidłowo). W mojej konstrukcji zastosowany jest dokładnie moduł btm-220A nie różni się on niczym od opisywanym wcześniej btm-222, pracuje on w klasie 1( do 100m zasięgu) faktycznie testowałem na 30m i działał bez problemu dodana jest także antena od zwykłego access point'a taka zwykła za 9 zł. PCB: Zostały one wykonane przeze mnie na podstawie dokumentacji technicznych bibliotek oraz materiałów dostępnych w internecie. Płytki są jednostronne poza modułem bluetooth, PCB pobrana z sieci, jedynie przerobiona na moje potrzeby( dodane gniazdo antenowe) i można je spokojnie wykonać w domowych warunkach. KONSTRUKCJA: Całość została upchnięta w uniwersalna obudowę dodany został tez kątownik aluminiowy odpowiedzialny za wzmocnienie osi pojazdu na których znajduje się całe obciążenie. Budowa ramienia z chwytakiem ciągle w budowie. ZAŁĄCZNIK: W załączniku znajdują się wszystkie wzory PCB oraz wsad do atmegi. Do goldpinu JP1( plik RAT1) należy podłączyć sterowanie PWN lub tak jak u mnie napięcie 5V. UWAGA!!! w projekcie RAT1 znajduje się błąd elementy bc848 należy przylutować napisem do PCB. Mam nadzieje że o niczym ważnym nie zapomniałem, jest to moja pierwsza konstrukcja którą opisuje wiec tez mam nadzieje że niczym nie zdenerwowałem moderatorów i nie złamałem kilku punktów regulaminu. Na koniec film i parę zdjęć: Teraz kilka zdjęć z budowy ramienia: RAT.rar
×
×
  • Utwórz nowe...