Witam, rozpoczynam walkę z serwami i atmegą Zajrzałem do pomocy bascom`a i załadowałem gotowy przykładowy program, zmieniając wartości by uzyskać 1-2 ms (zakres dla mojego serva) ............ Servo(1) = 100 .............. I niestety, servo nie zachowuje się tak jak powinno. Spróbuj zmienić: Servo(1) = 100 wstaw: Servo(1) = 10 ' 10 * 10 = 100...
No tylko że ta wartość będzie węższa niż przy BASCOMowym sterowaniu servem. Możesz zużywać wartości z zakresu około 100...200. Pasowało by jeszcze przebadać o oscyloskopem i zobaczyć czy to działa tak jak powonno. Bo w symulacji programowej mi to nie działa więc nie sprawdzę. Możesz dodać RC5 . Ale pewnie servo będzie minimalnie skakało podczas odbierania...
http://obrazki.elektroda.pl/5413429300_1... Witam.Jest to moja pierwsza konstrukcja prezentowana w dziale DIY proszę więc o wyrozumiałość za ewentualne błędy.Prezentowana konstrukcja to moja kopia projektu serwokontrolera DC opartego na projekcie http://obrazki.elektroda.pl/7624179600_1... http://obrazki.elektroda.pl/2226376700_1...
Moimi pierwszymi wyobrazeniami jak to wszystko polaczyc, bylo uzycie adaptera wireless xbee arduino ktory bylby odpowiedzialny za przesylanie sygnalu z panela sterujacego do robota oczywiscie potrzebujemy adapter i transmiter by sygnal moglby byc przesylany, Avr Atmega 8 mialby byc odpowiedzialny za sterowanie silnikami napedzajacymi gasiennice oraz...
program ma servo mechanizm to ja juz mam glownie chodzi o to zeby dzialalo jak servo ale bez tych czasowych zmian 1,5 ns do 2ns przebiegow serva .tylko w zakresie normalnego napiecia 5Volt
Witam: Podzielę się moja wiedzą na temat autokosiarek. Temat jest mi znany od 4 lat kiedy to po raz pierwszy zobaczyłem RLC-1000 ROBOMOV(elektryczna). Jako człowiek dociekliwy wyszukałem wszelkich informacji na temat tego produktu by stworzyć podobną konstrukcję. Niestety ilość materiałów była zbyt skąpa więc zakupiłem RLC-1000 a była to nie mała kwota...
Atmega128 + 32 przekaźniki + Max232+LM7805 :) ...albo we wspomnianym projekcie (AT90S2313) wprowadzić małe modyfikacje: 1. Dodać bufor z pamięcią na liniach wyjściowych między ATmega a tranzystorami. 2. Dołączyć pozostałe trzy bufory z servo równolegle do tego pierwszego. 3. Użyć wolnych linii do wybierania aktualnie sterowanego bufora. 4. Poprawić...
Witam Potrzebuje pilnej pomocy z programowaniem robota wielozadaniowego. Robot porusza się za pomocą dwóch gasiennic każda z nich napędzana jest silnikiem od wycieraczek samochodowych. Połączone są za pomocą H- Bridge Robot posiada dwa ramiona każde z nich ma 8 servo mechanizmów. wybrany mikroprocesor to ATmega 1284P. Potrzebuje pomocy z zaprogramowaniem...
Witam, ostatnio robiłem projekt, który w oparciu o dane przesyłane przez moduł bluetooth (XM-15) Podejmował rozmaite działania. Program napisany w języku arduino (dla większej prostoty) wydląda tak: [syntax=c]#include <Event.h> #include <Timer.h> #include "pitches.h" #include <Servo.h> Timer ledblink; Servo myservo; Servo myservo2;...
Witam kolegów, sprawdzałem na różne sposoby, int0 ma mi dodac do pozycja++; ale nie dodaje... prosze o oswiecenie ;) /* układ ATmega 1MHz */ /* servo by dex */ #define F_CPU 1000000L #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> unsigned int roznicapozycji; unsigned int wynik; unsigned int dolnyzakres; unsigned...
Chcesz sterować za pomocą komputera, czy tylko mikrokontrolerem? Poszukaj pod hasłem "kontroler serw /serwomechanizmów" - są już gotowe programy sterujące większą ilością serw, a sprawujące się dużo lepiej niż bascomowskie "config servo". A teraz przemyśl taką sprawę: chcesz zrobić ramię na 6 serwach. Serwo, które masz zamiar użyć ma moment 1,8kg*cm...
Witam. A jaki jest problem kiedy rozdzielczość enkodera jest większa? Nie da się zestroić do stabilnej pracy? Ja mam takie sterowniki na ATMEGA88 (modyfikacja elm-chan). Ja stosuje tylko enkodery przemysłowe nie bawię się w enkodery zrobiony z myszki no i nie stosuje silniczków od zabawek bo takie do 4-5 A zamiast budować mostekH z procka sygnał na...
Piszac "nieznam" mialem na mysli praktyczne dzialanie , nigdy nietestowalem dzialania tej procedury.wydaje mi sie ze po kazdym wyslaniu rozkazu do serwa musisz dac czas na wykonanie . Czyli np. servo(1)= 100 waitms xxx servo(1)=150 waitms xxx
Czyli mógłbym zasilić mikroprocesor z 5V. Przy pomocy powyższego dzielnika napięcia zmniejszyć napięcie na TXie atmegi (atmega poradzi sobie będąc zasilana z 5V z wejściem 3.3V na RX?). I wtedy mógłbym w ogóle zrezygnować z tranzystorów? Na servo podawać bezpośrednio sygnał z OC1A, a przekaźniki włączać bezpośrednio przy pomocy 5V z pinów portów atmegi?...
Już prawie masz to, co trzeba. Jeśli zmienna timer zwiększana jest co 20 ms, to zrób: if (timer >= 2) { /* albo więcej, ale 40ms to i tak dużo */ uint8_t zmiany = debounce(); /* wersja freddiego */ timer = 0; if (zmiany & _BV(PIN_MINUS)) servonumber -= 1; if (zmiany & _BV(PIN_PLUS)) servonumber...
Witam Jest while, ale w pliku main.c. Jest to saleae logic analayser. http://obrazki.elektroda.pl/3176221600_1... [syntax=c]/* * main.c * * Created on: 07-12-2013 * Author: Mateuszrj */ #include<avr/io.h> #include<avr/interrupt.h> #include"servo/servo.h" #include"uart/uart.h" int main() { servo_init(); USART_Init (); while(1)...
Witam, Jestem początkującym w temacie, napisałem sobie sterowanie 8 serwami, ale chciałbym to robić bardziej dokładnie przy użyciu trybu CTC timera1 i sprzętowego rejestru przesuwającego. W następujący sposób go inicjalizuje // na początek włączamy tryb czasomierza i ustawiamy wyjscie na 0 w trybie normalnym TCCR1A = 0x00; // tryb czasomierza TIFR &=...
Wiem, że to nie odpowiedź na pytanie, ale nie lepiej wykorzystać do kierowania mikro serwo? Dawno temu coś takie wstawiałem w maleńkie autko syna (ok 6cm długości) servo miało ok. 2cm szerokości kupione na https://hobbyking.com a dziś raczej jest o wiele większy wybór.
akurat wysłałem mojego długiego posta gdy elektroda się konserwowała- oczywiście poszedł się paść Mniejsza z tym, w skrócie. Takie urządzenia są jak najbardzier realne. Dziś laser RGB o mocy 1,5W jest wielkosci kciuka. Tylko czekać kiedy wejdzie to w masową produkcje... Układ skanujący tez wg mnie nie stanowi problemu. Dziś bez większego problemu można...
Cześć wszystkim! Mam dziwny problem z ATMEGA8515. Otóż robi on wszystko cztery razy dłużej tzn. jak mu każe zaczekać np. 5 sekund on czeka ponad 20 sekund, żeby było śmieszniej staram się nim wysterować serwomechanizm i mówie wam jakie cyrki się dzieja:) Używam kwarca 4Mhz (wymieniłem go wraz z kondensatorami 33p ze trzy razy więc albo mam cholernego...
[syntax=basic4gl]If Dane(1) = 202 And Serwo_c = 100 Then For I = 100 To 200 Serwo_c = I Servo(3) = Serwo_c serwo_c=100 - dając w tym miejscu serwo nie reaguje a raczej wpada w wibrację Next serwo_c=100 - dając w tym miejscu serwo nie reaguje a raczej wpada w wibrację End If serwo_c=100 - dając w tym miejscu serwo nie reaguje a raczej wpada w wibrację...
Witam, Pomysł dobry ale sypie się najprawdopodobniej z powodu zbyt dużej ilości przerwań. Proponuje projekt sterownika "równoległego", taki wykorzystałem w mojej pracy inżynierskiej. Wprawdzie korzystałem tylko z 8 serw ale 16 też obsłuży po drobnej modyfikacji. Program zabiera większość mocy procesora do obsługi przerwań ale tylko przez czas 2ms potem...
"z tym serwem są problemy" - może uszkodzone, ja mam sześć sztuk TowerPro (może nie ten model) i wszystkie działają, tylko trzeba im sygnał podać. Co do sterowania: http://mil.ufl.edu/~achamber/servoPWMfaq... Jeszcze sugestia żeby serwo i układ zasilać osobno ze wspólną masą. Kod, zaznaczam że pisany dawno i NIE PAMIĘTAM CZY DZIAŁA!! (chyba lepsze...
Witam! Sbudowałem serwokontroler na podstawie: http://www.seattlerobotics.org/encoder/2... Moje zmiany dotyczyły zmiany mikkrokontrolera z AT90S4414 na ATmega8515 i w związku z tym zmiania w kodzie a mialowicie nazwa nie istniejącego rejestru UCR na UCSRB. 1. Mój problem polega na tym iż podłączone servo próbuje się "przekręcić"....
To przekazuj zmienną w taki sposób: [syntax=basic4gl]Dim Y As Integer ' ' Servo(1) = Low(y)[/syntax]
Jak dobrze rozumiem to to podciąganie jest w środku drivera... Proponuję Ci zrobić jeden test. Wyzerować liczniki pozycji z Twojego programu i z servodrivera. Wykonać jakiś ruch który spowoduje wywalenie drivera. Następnie sprawdzić ile impulsów nadałeś z procka i ile pokazuje program diagnostyczny tego drivera. Jeśli jest dokładnie tyle samo to nie...
Twoje 50 Hz (pomijam, że nie da się tak dokładnej częstotliwości ustawić) daje okres = 20 Chyba źle zrozumiałeś kolegę michalko12 . Te "jego" 50Hz to nie częstotliwość przerwań, tylko sygnału sterującego serwem (tak przynajmniej sterowana jest zdecydowana większość serw modelarskich). Okres tego sygnału powinien mieć 20ms, z czego 0,5÷2,4ms trwa stan...
Na razie testowałem na wersji programowej. Nie zmieniałem na razie SERVO_MID, itd. bo nieważne już jak się ustawi na początku. Ważne aby się nie trzęsło. Cały program: [syntax=c] #include <avr/io.h> #include <avr/interrupt.h> #define KEY1 (1<<PA0) #define KEY2 (1<<PA1) #define KEY3 (1<<PA2) #define KEY4 (1<<PA3) #define...
Jak dla mnie to za mało kondensatorów na zasilaniu. Dałbym tyle aby na każdym układzie na każdej nóżce był co najmniej jeden. Przy Bluetooth dodatkowo dorzuciłbym jeszcze 10uF przy samej nóżce. Co do płytki to mi się nie podoba bo przelotki zrobiłbym ośmiokątne a nie kwadraty i inne rzeczy ale to kwestia gustu. Wiele ścieżek możesz przenieść na TOP...
Witam, Próbuję sterować serwem za pomocą Atmega 32 po PWM Sygnał na OCR1A podaję z przetwornika ADC w skali od 0 do 1023 . OCR1A dla mojego serwa musi mieć wartość od min=400 max=1300 . Jak to sprytnie przeliczyć dla kodu w C AVR aby uniezależnić się od wpisanych min i max wychylenia serwa? Ja to realizuję w ten sposób ale niestety dzielenie przez 1023...
Witam, Pewnie sprawa będzie dla was banalna ale ja się z nią zmagam już jakiś czas. Poniższy kod steruje 5 serwami: [syntax=c] #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 &...
Pomysł ze sprężyną jest bardzo ciekawy. Powinien się sprawdzić. Co do sterowania serwem to najlepiej sprawdzić wszystko empirycznie. Będziesz miał servo i procka piszesz program i testujesz na bieżąco. Poza tym czasy podane przez kolegów to standard czasem trafiają się serwa co nie pasują do tego wzoru i czasy dla poszczególnych położeń będą się trochę...
Przykład z Bascoma na ATmega8 do sterowania serwem modelarskim: $regfile = "m8def.dat" $crystal = 8000000 'on chip clock speed Osccal = &HC1 'uC 8MHz internall clock New calibration byte Tccr2 = &B01100110 'PWM2, clear down, phase correct, prescale 256 -> 16ms Acsr = &B10000000 'Analog Comparator disable Dim W As Byte 'Servo position ....
Witam Mam problem z timerem 1 trybem CTC w ATmega128. Kod wyglada tak #define _20_MS_ 5000 void servo_init(void) { SERVO_DDR|=(1<<SERVO_PODSTAWA_... SERVO_DDR|=(1<<SERVO_RAMIE_PIN... SERVO_DDR|=(1<<SERVO_LOKIEC_PI... SERVO_DDR|=(1<<SERVO_NADGARSTE... SERVO_DDR|=(1<<SERVO_CHWYTAK_P...
Witam. Kupiłem ostatnio regulator Redox eco 20A oraz silnik Emax cf2812. Podłączyłem silnik do regulatora, regulator do pakietu 3cele (11,1V) i cisza, choć spodziewałem się usłyszeć piszczenie oznaczające wejście do trybu programowania. Sprawdziłem napięcie na wyjściu BEC regulatora i było 5V, więc regulator raczej działa. Nie wiem dlaczego tak jest....
Witam Nie wiem czemu po dodaniu do kodu serw mikrokontroler zaczyna zachowywac sie kompletnie "niespodziewanie" Generalnie Atmega chodzi na kwarcu 16K obsługuje wyświetlacz alfanumeryczny i 11-Czujników (1wire) Zrobiłem małe menu ,po przejściu do odpowiedniej zakładki uruchamiane jest pierwsze 8 czujników albo gdzie indziej inne 3 , jest też zakładka...
Żaden z powyższych sygnałów nie będzie prawidłowo sterował regulatorem i serwem przebieg ma wyglądać następująco przez ok 20ms masz logiczne zero następnie prze 1 do 2ms masz logiczną 1 i znów 20ms logiczne zero[url=http://www.henryk.mbapp.com/ser... jest wszystko ładnie wytłumaczone
BlueDraco tutaj: [syntax=c]if(f>servos[0]) pc |= (1<<0); if(f>servos[1]) pc |= (1<<1); if(f>servos[2]) pc |= (1<<2); if(f>servos[3]) pc |= (1<<3); if(f>servos[4]) pc |= (1<<4); if(f>servos[5]) pc |= (1<<5); if(f>servos[6]) pc |= (1<<6); if(f>servos[7]) pc |= (1<<7); pcc = ~(pc);...
Witam. Mam przerobione serwo tak aby obracało się dookoła, odpiąłem potencjometr który jest w środku (5k) i wlutowałem miniaturowy i ustawiłem go w połowie tak aby serwo myślało że jest na środku.Oryginalną elektronikę zostawiłem. Jednak mam taki problem,jak uda mi się kręcić serwem w obie strony to go nie mogę zatrzymać. Jak skręcę potencjometr na...
Zmieniłem w Alias, niestety nie mogę znaleźć składni funkcji debounce z dwoma warunkami, więc może mógłby ktoś umieścić jak to powinno wyglądać. Po zmianie dalej występuje błąd: Error 61: Label not found [PINC.1 ]. Co jeszcze zmienić, aby poprawić error? Poprawiony kod: <code> $regfile = "m8def.dat" $crystal = 12000000 Config Portc.0 = Input Config...
Witam. Szukam materiałów i książek nt. bascom i avr do mojej pracy inżynierskiej. Planuję zrobić sterowanie położeniem kamery internetowej za pomocą pilota podczerwieni z wykorzystaniem silnika krokowego i servo. Chcę wykorzystać 90S2313 lub Atmega8. Literatura w języku polskim, którą znalazłem: Jarosław Doliński - Mikrokontrolery AVR w praktyce Marcin...
Witam. Kłopot mam następujacy... walczylem dziś z modelarskim servo. Znalazłem program "gotowca" na AVRFreaks. kod poniżej: #include <stdio.h> #include <avr/io.h> #include <avr/interrupt.h> /**************** Globale variable **************/ static enum {av1,paa1} servo1=paa1; static enum {av2,paa2} servo2=av2; unsigned...
Witam ogarnąłem już dużo na temat programowania w bascom, tylko mam kolejny problem, mianowicie chciałbym zaprogramować obsługę serwa pilotem nadającym w RC5 lecz gdy połączę obsługę rc5 i serwa mam takie błędy i nic nie działa: ........ Pojedynczo programy działają ok. ................. Rc5+ servo (nie działa) Pozdrawiam. Zauważ że zarówno 'Config...
tu masz linki do serwa na PIC-u w języku C : [url=http://members.shaw.ca/swstuff/dspi...
nowsze bascomy (np. 1.11.9.8) mają wbudowaną obsługę serw: CONFIG SERVOS Configures how much servo’s will be controlled. Syntax CONFIG SERVOS = X , Servo1 = Portb.0 , Servo2 = Portb.1 , Reload = rl Remarks Servo’s need a variable pulse in order to operate. The CONFIG SERVOS directive will set up a byte array with the servo pulse width values...
(at)emarcus - Fabrycznie jest 1MHz. Ze wzoru, który znalazłem w Internecie wartość ICR1 jest OK. W takim razie, co robię nie tak ? W takim razie jedyna odpowiedź jaka mi się nasuwa to: Nie myślisz!!! Skąd masz pewnośc, że ten program znaleziony w internecie jest dobrze obliczony? Przecież możesz to sobie obliczyc sam............... W nagłówku programu...
Polecenie konfiguracyjne serwa w języku Bascom wygląda następująco: CONFIG SERVOS = liczba , SERVO1 = końcówka [ , SERVOn = końcówka ] , RELOAD = czas W Helpie napisano, że parametr RELOAD to czas opóźnienia pomiędzy kolejnymi przerwaniami licznika TIMER0, rozdzielczość. Zazwyczaj jest to 10us, a wielokrotność tego to szerokość stanu wysokiego. W opisach...
Teraz widzisz jak wielkie znaczenie ma filtracja, oczywiście można jeszcze popracować aby przebieg był jeszcze lepszy. Przyłączam się do uwagi kol zdziwiony przebieg powinien być odwrotny, najprościej kolejny przykład http://hobby.abxyz.bplaced.net/index.php... . Trudno jednoznacznie powiedzieć czy odwrotny przebieg to wina programu, polaryzacja...
Witam! Pracuję na serwie cyfrowym HSR 8498HB i próbuje dostać się do trybu Serial Mode. Ciekaw jestem czy ktoś z was miał z tym do czynienia. Zgodnie z instrukcją do serwa należy wysłać następujący szereg bajtów (przykładowo aby ustawić prędkość serwa i odczytać pozycję): Byte 1 = Header = 0x080 Byte 2 = Command = 0xE9 Byte 3 = Data 1 = Servo ID (0x00...
program zresetuje sie po tak krotkiej chwili, ze nawet tego nie zauwazysz. jesli ten program ma miec jakikolwiek sens, to do funkcji servo powinienes podawac parametry, w ktorych okreslasz pozycje serwa (dwoch na raz w 2 parametrach, albo funkcja przyjmuje dodatkowo numer serwa). do tego KONIECZNE sa przerwania od timera i w nich PWM programowy, albo...
servo atmega sterowanie servo atmega silnik servo
błąd 17925 regulacja ustawić światła mastercook przegrzanie
interfejs multidiag interfejs lexia
Napięcie zmienne w prądnicy 3-fazowej z magnesami stałymi dla akumulatora 12V Kontroler ładowania turbiny wiatrowej a akumulator 100 Ah - przyczyny problemów