Skocz do zawartości

Panicz74

Użytkownicy
  • Zawartość

    22
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    1

Panicz74 zajął 1. miejsce w rankingu.
Data osiągnięcia: 12 maja 2015.

Treści użytkownika Panicz74 zdobyły tego dnia najwięcej polubień!

Reputacja

2 Neutralna

O Panicz74

  • Ranga
    2/10

Informacje

  • Płeć
    Mężczyzna
  • Lokalizacja
    Opole
  • Moje zainteresowania:
    Elektronika
  1. Tak, zgadzam się. Zbudowałem robota z tego co miałem pod ręką. Jeszcze pomyślę nad rampą aby było płynniej. Źle napisałem, że cały kod w przerwaniu. Tylko pętla główna wykonuje sie w przerwaniu. Raczej nie będę upychał funkcji gry do mikrokontrolera. Spróbuję połączyć przez RS232 lub USB i tak próbować to robić. Może nie na dniach ale wkrótce
  2. Witam ponownie Chciałbym przedstawić własnej konstrukcji manipulator, który ze względu na kinową premierę nosi nazwę "Terminator_Hand". Robot posiada funkcję sterowania ręcznego oraz gotową funkcję "idź,złap-przenieś-upuść". Układ składa się z: - Atmega644P 16MHz, - 3x serwo TowerPro SG-5010 standard, 50Hz, - 1x serwo TowerPro SG-92 micro, 50Hz, - przerobiony ATX PowerSupply 420W z użyciem wszystkich wiązek 3,3V(16A); 5V(16A); 12V(15A), PS-ON zwarte przez włącznik I/0, - stabilizator liniowy 7805 pod wiązką 12V, - klawiatura złożona z 13 przycisków typu microswitch. Zasila
  3. Błędem w kodzie, a raczej w fusbitach był fus CKDIV8... Spowalniał procka x8. Potem już zmiana bitów z CS10 na CS11, ICR1 na 40000, trochę przeliczania... i śmiga. Jak pupa niemowlęcia Innymi słowy, 100Hz to niedobry pomysł dla serwomechanizmów
  4. Przepraszam was, że tak długo. Uruchomiłem program. Jedyne co należało zrobić to zwiększyć ilość warunków i w ten sposób puszczać serwa po kolei Jak nie spełnia jednego warunku to nie jedzie. Jeśli ktoś będzie potrzebował to udostępnię cały kod. Tymczasem jest problem z zakłóceniami. To jest dopiero ciekawa sprawa. Patrzcie na wyniki z oscyloskopu. Dźwięk i obraz idealnie oddają postać rzeczy: Może ktoś wie jak ten problem rozwiązać???
  5. A możecie mi wytłumaczyć jeszcze jedną kwestię prescalera? Rozumiem, że ustawienie tego bitu daje nam prescaler = 1. A jeśli chciałbym ustawić prescaler = 8 lub prescaler = 16? Jakie bity wtedy ustawić? CS11? CS12? Rozumuje to tak, że jeśli mam prescaler = 1, to serwo będzie szukało jak najbardziej bliskiego miejsca pomiędzy liczbami całkowitymi. Czyli jeśli zwiększę na prescaler = 8 to serwo zatrzyma się między, np. 0 - 8, ale też przestanie drgać bo nie będzie musiało już szukać tego bardzo wąskiego zakresu prescaler = 1 (0 - 1). Czy dobrze rozumuję???
  6. No własnie, już próbowałem. Zmieniłem te wartości nawet 5000ms i nic. Po tej zmianie program po prostu w ogóle nie rusza...
  7. M. in. tak: while(1) { if(key_flag) // jeśli flaga = 0, wykonaj program { key_flag = 0; if (KEY1_DOWN) //klawisz 1 wcisniety { servo1 = SERVO_MAX; _delay_ms(50); servo2 = SERVO_MIN; _delay_ms(50); servo3 = SERVO_MAX; _delay_ms(50); servo4 = SERVO_MIN;
  8. Witam, Pewnie sprawa będzie dla was banalna ale ja się z nią zmagam już jakiś czas. Poniższy kod steruje 5 serwami: #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #define KEY1 (1<<PA0) // definicja przycików #define KEY2 (1<<PA1) #define KEY3 (1<<PA3) #define KEY1_DOWN ( !(PINA & KEY1) ) // definicja wciśniętego przycisku #define KEY2_DOWN ( !(PINA & KEY2) ) #define KEY3_DOWN ( !(PINA & KEY3) ) #define SERVO1 (1<<PB0) // definicja silników #define SERVO2 (1<<PB1) #define SERVO3 (1<
  9. Wstawiłem linijkę 2 linijki: if(TCNT1 > servo1) PORTB &= ~SERVO1; if(TCNT1 < servo2) PORTB &= ~SERVO2; Serwo zaczęło reagować, ale tylko to na pinie PB0, serwo na PB1 stoi. Poza tym serwo nie porusza się tak powinno. [ Dodano: 11-05-2015, 20:34 ] Problem rozwiązany, powodem były braki w kodzie: /* * main.c * * Created on: 11 maj 2015 * Author: Radek */ #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #define KEY1 (1<<PA0) // definicja przycików #define KEY2 (1<<PA1) #define KEY1_DOWN ( !(PIN
  10. Witam, Napisałem taki program: Przycisk KEY1 daj obrót 2 serw w przeciwnych kierunkach o 180stopni, przycisk KEY2 to samo w drugą stronę. Program bez problemu się kompiluje i wgrywa, Eclipse nie pokazuje żadnych błędów. Po naciśnięciu któregokolwiek przycisku serwa jednak nie reagują. /* * main.c * * Created on: 11 maj 2015 * Author: Radek */ #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #define KEY1 (1<<PA0) #define KEY2 (1<<PA1) #define KEY1_DOWN ( !(PINA & KEY1) ) #define KEY2_DOWN ( !(PINA & KEY2) ) #d
  11. Panie Złoty!!! Odłączyłem VCC od programatora i włączyłem do 5V zasilacza. Serwo śmiga aż mu się uszy trzęsą To się nie popisałem, taka pierdoła ....
  12. Zrobiłem jak radzisz. Niestety, serwo teraz w ogóle nie reaguje Jakieś inne pomysły?
  13. Po podpięciu RESET - 10K Ohm - +5V, układ w ogóle nie reaguje bo jest ciągle w stanie resetu
  14. Witam, Mam taki problem, gdy układ pracuje z podłączonym programatorem wszystko działa elegancko. Jak odłączam taśmę (nie usb) to układ zaczyna robić co mu się podoba. Pewnie coś zmaściłem w schemacie. Oto schemat: Zasilacz to popularny "YwRobot MB102 3,3/5V". Dodatkowo podaję kod programu (steruje on 5 serwami ale do testów na schemacie wystarczy jedno serwo): /* * main.c * * Created on: 8 maj 2015 * Author: Radek */ #include <avr/io.h> #include <avr/interrupt.h> #include <util/delay.h> #define KEY1 (1<<PA0) #define KEY2 (1<<PA1) #de
  15. Zasilanie mam 5V z zasilacza sieciowego D-Link. Mam podłączone tylko to serwo do układu więc tylko ono może generować spadek napięcia. [ Dodano: 07-05-2015, 21:46 ] Wojciechu, to znaczy, że przykładowo dla 1mgh jak by te obliczenia wygladały? Wiem, że dla was to proste ale ja się dopiero tego uczę
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.