logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Jak sterować 7-8 serwami za pomocą Atmega8 w Bascom?

mimor555 25 Lut 2012 18:59 3815 22
REKLAMA
  • #1 10597908
    mimor555
    Poziom 24  
    Witam. Chciałbym zapytać o poprawność mojego kodu:
    $regfile = "m8def.dat"
    $crystal = 12000000
    Config Servos = 1 , Servo1 = Portd.1 , Reload = 10
    Config Portd = Output
    Enable Interrupts
    Dim Zmienna As Integer 'Nasze "odchylenie" serwa
    Zmienna = 150 'Czas trwania impulsu będzie wynosić
                         'Zmienna*Reload=1500us (1,5ms)
    Do
       Servo(1) = Zmienna
       Waitms 1000
    Loop
    End

    Teraz mam kilka głupich pytań:
    Co zrobić aby sterować atmegą8 7-8 serw i czy to jest możliwe? Oczywiście do tego musi być klawiatura prawo/lewo ale to już mniejszy problem. Jest ktoś mi w stanie pomóc napisać program do sterowania 7-8 serwami ? Co do mojej wiedzy z programowania to dopiero zaczynam i proszę mnie od razu nie skreślać.
  • REKLAMA
  • #3 10598760
    mimor555
    Poziom 24  
    Przeczytałem juz bardzo dużo jednak nigdzie nie dostałem konkretnej odpowiedzi. Oczywiści mogę się przestawić na 2 x atmega8 jeśli nie będzie możliwości zrealizowania tego na jednym klocku :). Jeszcze raz bardzo proszę o pomoc.
  • #4 10599039
    edekk
    Poziom 26  
    W mojej książce jest napisane ,że można sterować max. 16 serwami.
  • REKLAMA
  • #5 10599104
    PiotrPitucha
    Poziom 34  
    Witam
    Jak Ci się nie chce pisać programu to wejdź na forum Alexrc, tam masz gotowy koder do nadajnika autorstwa Zbiga, kanałów tyle co chcesz i dołącz jakiś scalak dekodera, będziesz miał gotowca z bardzo rozbudowanym funkcjami i wyświetlaczem.
    Sterowanie analogowe drążkami, i masę dodatkowych funkcji.
    Piotr
  • REKLAMA
  • #6 10599453
    mimor555
    Poziom 24  
    Chodzi mi tutaj o pomoc w napisaniu programu wynikający z mojego niedoświadczenia. A sterować chcę przewodowo.
  • #7 10599871
    PiotrPitucha
    Poziom 34  
    Witam
    Pisząc o koderze i dekoderze nie miałem na myśli transmisji radiem a tylko o pewnym podejściu do zagadnienia.
    Zamiast generować przebiegi na 8 wyjściach generujesz sygnał PPM na jednym wyjściu dokładnie tak jakbyś to robił dla nadajnika, potem dekoder odtworzy Ci z tej sekwencji 8 sygnalów sterujących dla serw. Dekoder jest bardzo prosty Link , oczywiście nie musisz tam kleić tranzystorów bo możesz wygenerować procesorem przerwę synchronizacyjną i podać to na ten 4017 czy też inny rejestr bezpośrednio.
    Nie bardzo rozumiem sterowanie 8 serw klawiszami, ale jeśli chcesz zrobić 8 par to zajmie to trochę portów, jeśli tylko jedną parę i przepinanie sterowania to przydałby się wyświetlacz a to też wymaga prawie portu więc układ z jednym wyjściem jest idealnym rozwiązaniem.
    Przy tej wersji możesz spokojnie wysterować nawet 10 serw dokładając następny rejestr.
    Pozdrawiam
  • REKLAMA
  • #8 10600193
    mimor555
    Poziom 24  
    Na temat kodera i dekodera nie wpadłem. Wystarczy wtedy tylko 3 linie adresów bo CBA ( do sterowania 8 serwami). Tylko teraz to już w ogóle mi namieszałeś w głowie i nie wiem jak to poskładać. A miałbyś jakiś schemat do tego? Program? Czy to tylko czysto teoretyczne rozważania ?
  • #9 10600449
    PiotrPitucha
    Poziom 34  
    Witam
    Tu masz wątek kodera Link , program jest gotowy, natomiast link do dekodera podałem Ci wyżej, jak nie chcesz pisać programu to robisz dekoder razem z wykrywaniem przerwy synchronizacyjnej czyli z tą częścią tranzystorową.
    Musisz tylko zwrócić uwagę na polaryzację impulsów, czasami logika sterująca nadajnikiem jest odwrotna niż wyjście w odbiorniku, ale odwrócenie fazy to już bajka.
    Piotr
  • #10 10600879
    mimor555
    Poziom 24  
    A jak miało by to wyglądać bez tych tranzystorów i w przypadku wykrywania przerwy. Nadal jakoś tego nie mogę złapać. Rozumiem że procesor tak naprawdę wystawiał by jeden sygnał PWM który byłby sterowany przez dekoder. Atmega stanowiła by automatyczny koder tak? I by adres podawała jakim serwem chcę sterować np 010 - serwo 3 ? A co w przypadku "spoczynku" serwa. Chodzi mi tutaj o sytuacje kiedy steruje innym, poprzednie zostanie w stanie jak je zostawiłem ?
  • #11 10601538
    PiotrPitucha
    Poziom 34  
    Witam
    Znajdź gdzieś rysunek sygnału PPM to Ci ułatwi analizę.
    Z kodera wychodzą szpilki o szerokości około 200µs, pierwsza jest początkiem pierwszego impulsu, druga początkiem drugiego i jednocześnie końcem drugiego itd.
    Dziewiąta tylko zakończy ósmy impuls i po nim jest przerwa, przerwa jest znacząco dłuższa od impulsu ale nie znormalizowana, znormalizowany jest tylko okres powtarzania cyklu który wynosi 20ms.
    W układzie tranzystorowym pierwszy i każdy następny impuls rozładowuje kondensator C2, jeśli impuls nie pojawi się przez dłuższy czas to przez R3 kondensator się naładuje i zresetuje rejestr ( pin 15 układu US1 ).
    Pomijając tranzystory możesz resetować rejestr bezpośrednio procesorem, tylko to zajmie Ci jedno wyjście i wymusi napisanie programu do jego obsługi.
    Pierwszy tranzystor potrzebny jest do obrócenia fazy sygnału o .ile nie ma takiej mozliwości w układzie Zbiga by to ustawić programowo.
    Sterując z manetek jak w aparaturze możesz oczywiście ustawić niezależnie położenie serw.
    Słabo programuję, ale widzę to tak że generujesz przerwania co 20ms, wystawiasz pierwszy impuls a potem odliczasz czas na kolejne kanały i za każdym wystawiasz impuls, za ostatnim jest już tylko impuls kończący.
    Piotr
  • #12 10601679
    mimor555
    Poziom 24  
    Nadal tak to nie ma wyglądać. Ja chcę sterować tymi serwami ale w sposób przewodowy. W aparaturze Zbiga jest to bezprzewodowo co jest mi zupełnie niepotrzebne. Widzę że chyba jednak nie da rady tego tak łatwo zrobić ;;/ ahhh...
  • #13 10602247
    PiotrPitucha
    Poziom 34  
    Witam
    Uparty jesteś, dostałeś schematy, opis jak to działa i dalej twierdzisz że to jest bezprzewodowo? Projekt Zbiga to tylko koder, to czy go podłączysz kablami, radiem czy na podczerwień jest rzeczą poboczną.
    Powtórzę to po raz któryś, możesz połączyć koder z dekoderem kablem!
    Piotr
  • #14 10603140
    mimor555
    Poziom 24  
    http://forumrc.alexba.eu/users/wiktor/nadajnik/nadajnik_elementy1.5.pdf i to miałby być mój nadajnik? Nadal tego nie rozumiem. Tutaj w większości koleś podłącza to do aparatury. Nie widzę gałek do sterowania, a sterowanie przez wyświetlacz to o to właśnie nie chodzi... Za dużo czasu zajmuje wybranie odpowiedniej pozycji na lcd potem jej ustawieniu.
  • #15 10603251
    PiotrPitucha
    Poziom 34  
    Witam
    To jest koder nie nadajnik, Link a tu masz schemat, widać potencjometry, tu jest ich 5, ale jak napiszesz swoją obsługę to możesz dołożyć następne i oczywiście dodatkowe funkcje na klawiszach.
    Końcówka 19 to wyjście do dekodera, KABLEM, nie musi być nadajnik.
    Piotr
  • #16 10603747
    mimor555
    Poziom 24  
    to już mi rozjaśnia umysł :] Czyli dałoby się sterować bardzo szybko tym :) Czyli koder rozdzielałby na poszczególne serwa sygnał tak? A czy konieczny jest LCD? Rozumiem ze koderem miałby vyć układ analogowy który na podstawie kodu BCD lub innego zaprogramowanego atmegą wybierałby odpowiedni port. To gdzie wtedy wyjścia adresujące z atmegi?
  • #18 10604792
    mimor555
    Poziom 24  
    Ale to tylko jedno wyjście. I jak tu sterować kilkoma serwami? Może mi to jakoś narysujesz... Łopatologicznie :]
  • #20 10626581
    PiotrPitucha
    Poziom 34  
    Witam
    Czy posunąłeś swoje prace ?
    Ze względu na Twoją małą znajomość układów teraz doradziłbym Ci inne rozwiązanie.
    8 serw i 8 procesorów, nawet w helpie bascoma znajdziesz przykłady na ich obsługę, napisanie obsługi jednego serwa jest banalne, ośmiokońcówkowe TINY obsłużą to bez problemu, zalety :
    - program banalny
    - płytka banalna
    - cena znośna ( procesory pewnie po 3 zł )
    - poza procesorem potrzebne Ci tylko 2 klawisze lub potencjometr
    Uwzględnij tylko że serwo przy rozruchu bierze trochę prądu, aby Cię zakłócenia nie zabiły zasil procesory i serwa z oddzielnych źródeł, tak czy owak na serwa zarezerwowałbym z 5A jesli zamierzasz nimi ruszać równocześnie.
    Piotr
  • #21 10629352
    mimor555
    Poziom 24  
    Myślałem nad tym. Myślałem też nad konstrukcją kolegi https://www.elektroda.pl/rtvforum/topic871257.html Tylko czy to się spiszę? Czy gdy serwo zatrzymam w odpowiednim miejscu nie będzie opadało pod obciążeniem? Jak to wygląda przy mikroprocesorach? Widziałem schematy pojedynczego sterowania. Bardzo fajne i proste. Ale czy takie tanie? Mała attiny to około 5 zł x 8 = 40 a mega około 8zł i też bym to zrealizował...
  • #22 10629761
    PiotrPitucha
    Poziom 34  
    Witam
    To czy serwo będzie odpadało to tylko właściwość serwa, Ty mu dajesz sterowanie i tyle, jak będzie za słabe to wymienisz na mocniejsze, ale siły są znaczne.
    Co do cen to w SMD poniżej 4zł ( Lispol, TME itd. )
    Piotr
REKLAMA