Skocz do zawartości

Karor111

Użytkownicy
  • Zawartość

    2
  • Rejestracja

  • Ostatnio

Reputacja

5 Neutralna

O Karor111

  • Ranga
    1/10
  • Urodziny 03.12.1998

Informacje

  • Płeć
    Mężczyzna
  • Języki programowania
    C, Python

Ostatnio na profilu byli

40 wyświetleń profilu
  1. Dzięki! Jest to wersja finalna Nie wyobrażam sobie umieszczenia większej ilości serw, czy modułów przy tak ograniczonych gabarytach robota. Jeżeli wpadnę na jakiś pomysł rozwoju raczej zakończy się on nową konstrukcją Po głowie chodzi mi ciągle zbudowanie pilota IR, który przyda mi się również przy innych projektach, dzięki czemu nie będę musiał korzystać z telefonu. Również witam Dzięki za miłe słowa Jak pisałem nie przewiduje rozwoju tej konstrukcji, ale myślę o zbudowaniu pilota, żeby nie korzystać z telefonu
  2. Witajcie. Mam do zaprezentowania mój nowy projekt. Zdalnie sterowany robot kroczący z odbiornikiem podczerwieni. Jednostką centralną jest mikrokontroler ATmega8A-PU. Robot porusza się dzięki trzem serwomechanizmom TowerPro SG90. Inspiracją do sposobu chodzenia był robot kroczący Pololu. Robot posiada 6 niebieskich diod. Ich katody są połączone z odpowiednimi pinami mikrokontrolera, dzięki czemu steruję nimi w zależności od wykonywanego ruchu robota. Anody są połączone przez rezystor z nogami robota, te natomiast są połączone z potencjałem dodatnim zasilania. Jako pilota używam telefonu z androidem wraz z aplikacją RCoid. Korzystam ze standardu RC5. Kierunkami poruszania się robota są przód, tył, obracanie w lewo i prawo. Do zatrzymania robota służy dowolna inna komenda. Sterowanie serwomechanizmów odbywa się dzięki programowo stworzonemu PWM na 8 bitowym timerze mikrokontrolera. Tak wygląda kod przerwania od przepełnienia timera: ISR(TIMER0_OVF_vect) { static uint16_t cnt; if(cnt>=r) PORTC &= ~(1<<PC3); else PORTC |= (1<<PC3); if(cnt>=m) PORTC &= ~(1<<PC4); else PORTC |= (1<<PC4); if(cnt>=l) PORTC &= ~(1<<PC5); else PORTC |= (1<<PC5); cnt++; if(cnt>625) cnt = 0; } Zmienne r m i l odpowiadają za położenie poszczególnych nóg zmieniane w pętli głównej programu. Ich zakres mieści się od 17-76 (0.5ms-2.5ms) (0°-180°). Oczywiście zakres pracy jest mniejszy. Dla przykładu dobranymi wartościami dla nogi środkowej są 42 przy oparciu na lewej części, 44 pozycja środkowa, 46 oparcie na prawej części nogi. Zmienna licznika cnt jest porównywana z wartością 625, dzięki czemu uzyskuję częstotliwość 50Hz (8000000Hz/1/256/625=50Hz [20ms] [prescaler=1]). Jeżeli chodzi o kwestie zasilania to zdecydowałem się na użycie czterech zwykłych baterii AAA dających na wyjściu ~6V co zmusiło mnie do użycia przetwornicy Pololu S7V7F5 do zasilania mikrokontrolera. Diody i serwomechanizmy są zasilane bezpośrednio z baterii. Nogi zostały wygięte ze stalowego drutu o średnicy 1.5mm. Do orczyków zostały przymocowane za pomocą stalowego drutu o średnicy 0.3mm. Koniec każdej nogi zalałem gorącym klejem tak, aby zapobiec ślizganiu się robota na gładkiej powierzchni. Lista elementów: mikrokontroler ATmega8A-PU 3x serwomechanizmy TowerPro SG90 przetwornica Pololu S7V7F5 odbiornik podczerwieni TSOP31236 6x diody niebieskie rezonator kwarcowy 8MHz trytki i rurki termokurczliwe druty stalowe o średnicy 1.5mm, oraz 0.3mm płytka stykowa 170 otworów 4x baterie AAA z koszykiem parę rezystorów, kondensatorów i przewodów Zapraszam do śmiałego pisania swoich pytań, opinii i uwag Pozdrawiam, Karol
×
×
  • Utwórz nowe...