Skocz do zawartości

Mr_cin

Użytkownicy
  • Zawartość

    10
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    2

Mr_cin wygrał w ostatnim dniu 4 września 2012

Mr_cin ma najbardziej lubianą zawartość!

Reputacja

21 Dobra

O Mr_cin

  • Ranga
    2/10
  • Urodziny 13.07.1991

Informacje

  • Płeć
    Mężczyzna
  • Lokalizacja
    Wałbrzych
  1. Niestety nie wiem jakiej są mocy, producent nie podaje takich danych, ale szacując, że przy ok. 5V mogą wziąć ok. 0,5A przy dużym obciążeniu to wychodzi ok. 2,5W na silnik. Wszystkie kable i elementy z brzegu zalałem klejem cyjanoakrylowym. Po za tym pomyślałem, że robot o wadze 100g nie zrobi mojemu jakiejś specjalnej krzywdy bo to nie sumo, więc nie zakładałem dodatkowych osłon. Są to dwa szeregowo połączone, różne akumulatory. Jeden ma pojemność ok. 900mAh, drugi ok. 400. Muszę je ładować osobno. Trochę się ślizga ale jest w miarę szybki i myślę, że będzie tym nadrabiał. Jeśli nie to inne gumy włożę i po kłopocie. PS. Czekam na więcej komentarzy .
  2. Witam wszystkich, chciałbym Wam pokazać moją drugą, oficjalną konstrukcję. Krótka charakterystyka: 1. Wymiary: 50x50x47mm (bez górnych kabli) 2. Waga: około 98 gram 3. Zasilanie: 7,4V li-pol 4. Brak elementów smd 5. Czas budowy: koniec czerwca - początek września 6. Koszt budowy (elementów): 50 - 100zł (w zależności jak na to spojrzeć) Robot w sensie projektowym i konstrukcyjnym jest gotowy ale musiałem przerwać prace nad algorytmem walki z powodu zmielenia jednej z zębatek w napędzie. Wrzuciłem filmik sprzed awarii i po, a także działanie czuników. Algorytm będę dokańczał wkrótce, gdy zdobędę źródło zębatek. Zdjęcia: Tył Przód Lewy bok Prawy bok Góra Spód Widoki ogólne W pudełku o boku wewnętrznym 50mm: Filmy: Test pchania, oba napędy działały, sterowane podwójnie modulowaną falą z pilota (dlatego tak wolno): Bączki na jednym sprawnym napędzie + test czujników białej lini: Test czujników ruchu: Przy budowie robota kierowałem się dwoma motywami - chęć pokazania, że można to zrobić stosunkowo tanio i skutecznie, drugi - pomoc w rozpowszechnieniu tej "zapomnianej" i niedocenianej na forum klasy. Wg. moich szacunków budowa robota sumo tej klasy wychodzi dużo taniej niż jego więksi bracia (a może nawet mniejsi), nie mniej jednak wymaga od twórcy trochę wprawy i pomysłowości. Wkrótce filmiki z całkiem sprawnym robotem. Czekam niecierpliwie na Wasze komentarze!
  3. Wow, nie spodziewałem się aż tak pozytywnej reakcji , dzięki! Teraz skupię się na rozwijaniu programu. Być może będę musiał też dodać czujniki z tyłu bo robot nie bardzo wie ile ma np. wycofać. Postaram się też zrobić coś z tymi kablami, chyba jakaś przezroczysta rurka by się przydała, robiłaby za skorupę na "odwłoku" i wszystko będzie siedziało w środku (kable itd.). Edit @Treker dzięki za radę, czyli ankietę mogę usunąć . Edit 2 ankieta jednak zostanie bo nie da się jej usunąć : ).
  4. 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 .
  5. Problem rozwiązany, ustawienia pinów były odbiciem lustrzanym w pionie i poziomie, była to wina programatora bo tak miał wlutowane gniazdo, a do sprawdzenia użyłem eXtreme burner, bardzo dobry program, i działa bez problemu na win7 x64.
  6. Dzięki za rady! Jeszcze chciałem się zapytać czy jest jakaś możliwość, że problem leży w atmedze ? Tzn czy możliwe jest, że ją uszkodziłem (smd TQFP 44 pin) ? Bo niby sprawdzałem napięcia i czy zawarcia są ale wszystko było w porządku, ale wolę się też Was zapytać .
  7. Witam, mam problem z wykryciem i zaprogramowaniem ATmegi 162. Używam programatora usb i Mkavrcalculator'a do komunikacji z uC. Wyprowadzenia uC do złącza IDC10 podłączyłem tak: 1 MOSI....2 VCC 3 ............4 5 RST......6 7 SCK......8 9 MISO....10 GND Reszty pinów IDC10 nie wykorzystałem. Po podłączeniu i kliknięciu "sprawdź podłączony avr" otrzymałem taki komunikat: avrdude.exe: set SCK frequency to 93.75 kHz avrdude.exe: warning: cannot set sck period. please check for usbasp firmware update. avrdude.exe: error: programm enable: target doesn't answer. 1 avrdude.exe: initialization failed, rc=-1 avrdude.exe: AVR device initialized and ready to accept instructions avrdude.exe: Device signature = 0x000000 avrdude.exe: Yikes! Invalid device signature. avrdude.exe: Expected signature for ATMEGA8 is 1E 93 07 avrdude.exe done. Thank you. Dziwi mnie skąd wzięła się tam atmega8 skoro wybrałem z listy ATmegę 162. Wcześniej podłączałem dokładnie tak samo ATmegę 8 i działało.
  8. Faktycznie, zapomniałem dodać, że to przerobione serwa, więc nie są to już serwa tylko silniki z przekładnią. Dopiero teraz przeczytałem jeszcze raz Wasze posty i dopiero teraz rozumiem o co Wam chodziło . Ale to z pośpiechu, i braku czasu. Przepraszam za zamieszanie i dziękuję za pomoc.
  9. PWM uzyskałem z pomocą kodu z forum, który ktoś udostępnił, a użyłem go bo akurat tak mi pasowało, dla mnie sprzętowy czy programowy są bez różnicy, oba działają tak samo i nie wymagają żadnych zewnętrznych oscylatorów itd. A binarny zapis pokazuje mi stan wyjść/wejść jakby bezpośrednio, jakbym diody zapalone widział . Napisałem w pierwszym poście, że tylko z tą częścią kodu jest coś nie tak, z tą którą pokazałem. Do sterowania serwami używam mostka l293d i wejść input i enable (pwm), ale nie w tym problem. Postaram się jak najszybciej sprawdzić czy problem tkwi w tych maskach bitowych, jeśli nie to będziemy dochodzić dalej, jeśli będziecie chcieli oczywiście . A póki co czekam na inne propozycje .
  10. Witam wszystkich, jestem nowy na forum. Mój problem wygląda tak: zacząłem pisać skrypt do sterowania dwoma serwami w robocie. Zdefiniowałem stany serwa, tzn ruch do przodu, do tyłu i stop, oraz wykrycie przeszkody przez czujnik. Mam też zaimplementowany pwm programowy (przerobiony kod nie mojego autorstwa). Wszystko działa jak należy do momentu gdy chcę napisać właściwy algorytm poruszania. To jest część kodu, która potrzebuje przyjrzenia się: #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> #define serwo_prawe_tyl PORTD|=~0b00100000 #define serwo_prawe_przod PORTD|=~0b01000000 #define serwo_prawe_stop PORTD|=~0b00000000 #define serwo_lewe_tyl PORTB|=~0b01000000 #define serwo_lewe_przod PORTB|=~0b10000000 #define serwo_lewe_stop PORTB|=~0b00000000 #define czujnik_lewy (!(PINC & 0b00100000)) #define czujnik_prawy (!(PINC & 0b00010000)) int main(void) { DDRD=0b11111111; DDRB=0b11111111; DDRC=0b00000000; PORTC=0b11111111; while(1) { serwo_lewe_przod; serwo_prawe_przod; if (czujnik_lewy) { serwo_lewe_przod; serwo_prawe_tyl; _delay_ms(50); serwo_lewe_stop; serwo_prawe_stop; _delay_ms(50); serwo_lewe_przod; serwo_prawe_przod; } } return 0; } } Ten kod w praktyce zachowuje się tak: lewy czujnik wykrywa przeszkodę, robot obraca się chwilę w miejscu (jak czołg, tak miało być) po czym zatrzymuje się i całkowicie zamiera (tak nie miało być). Długo się z tym męczyłem i dziwiłem się dlaczego kod przestaje się wykonywać po dojściu do instrukcji z zatrzymaniem serw. Robot po wykryciu przeszkody ma obrócić się o jakiś kąt, po czym iść dalej prosto. Z góry dzięki za pomoc i wskazówki!
×
×
  • Utwórz nowe...