Elektroda.pl
Elektroda.pl
X

Wyszukiwarki naszych partnerów

Wyszukaj w ofercie 200 tys. produktów TME
Europejski lider sprzedaży techniki i elektroniki.
Proszę, dodaj wyjątek elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Zdalne sterowanie czterokołowym robotem

Paralitax 06 Wrz 2012 17:23 2394 14
  • #1 06 Wrz 2012 17:23
    Paralitax
    Poziom 9  

    Witam!
    Chciałbym poprosić drogich forumowiczów o poradę. Buduję czterokołowy pojazd. Tak w skrócie: tylne koła napędzane są dwoma silnikami (jeden na koło), skręt - serwo. Silniki napędowe sterowane są za pomocą mostka H l298, serwo poprzez Atmege8. Pojazd bardzo ładnie jeździ. Wolno ale nei o to tu chodzi. Ma mieć funkcję automatycznego parkowania i może coś jeszcze. Przyszedł czas na zdalne sterowanie, bo na razie jego pracę kontrolują 4 mikro switche. Poradźcie mi jak mogę rozwiązać ten problem. Chciałbym przynajmniej coś w rodzaju: przycisk na pilocie, z odbiornika wychodzi stan wysoki na nóżkę mikrokontrolera z którym coś dalej można zrobić. Oczywiście może to być rozwiązane inaczej. Od razu mówię, że czytałem sporo o podczerwieni, ale nigdzie nie znalazłem jasno wytłumaczonych zasad działania tego typu transmisji. Może ktoś wie więcej o standardzie RC5 i jak go odbierać i dekodować z pilota TV?
    Jeśli czegoś nie napisałem a jest to istotne to proszę krzyczeć

    0 14
  • #2 07 Wrz 2012 21:04
    RitterX
    Poziom 35  

    Zapoznaj się z notoą katalogową TFDU4100. Skoro Twoja ATMega8 ma UART to może warto w ten sposób podejść do sprawy? Dodam, że moduł IrDA<->USB nie jest drogi a i w starych laptopach IrDA występowała na pokładzie. Nawet część płyt głównych ma interfejs do podłączenia TFDU4100 i podobnych. Podczerwień jest dobra ale na niewielką odległość. Może lepiej byłoby zastosować moduł UART <-> BlueTooth albo radiowy? RC5 z powodu podatności na zakłócenia powinieneś raczej porzucić.

    0
  • #3 07 Wrz 2012 21:09
    bogdan_p
    Poziom 39  

    Cytat:
    z odbiornika wychodzi stan wysoki na nóżkę mikrokontrolera z którym coś dalej można zrobić.

    Chyba zupełnie nie rozumiesz idei pracy toru zdalnego sterowania w kodzie RC5 , z odbiornika podczerwieni " wychodzi " ciąg impulsów będących danym poleceniem wysłanym z pilota w kodzie RC5 . Twoim zadaniem jest zdekodowanie tego polecenia i zamienienie go na konkretny rozkaz wykonawczy np. jazda na wprost czyli po odebraniu konkretnego polecenia z pilota program porównuje go z przypisanymi warunkami następnie wykonuje konkretne rozkazy dla mostka H lub serwa , które polecenia pilota sobie wybierzesz jest dowolne , w sieci bez problemu znajdziesz tabele z adresami i poleceniami dla kodu RC5 jak również gotowe procedury odpowiedzialne za odbiór kodu RC5 , reszta to warunki i rozkazy jakie mają być wykonane .

    0
  • #4 08 Wrz 2012 08:26
    Paralitax
    Poziom 9  

    bogdan_p napisał:

    Chyba zupełnie nie rozumiesz idei pracy toru zdalnego sterowania w kodzie RC5.


    Wiem, wiem. Zbyt skrótowo opisałem problem i wyszły z tego bzdury.

    RC5 chcę zastosować z tego względu, że sterowanie do mojego robota ma za zadanie tylko pokazać, że jeździ. Zasięg nie jest ważny. Robot będzie miał inne możliwości, np automatyczne parkowanie. Wydaję mi się, że takie rozwiązanie problemu jest proste i najtańsze. No chyba, że się mylę. Tak jak mówiłem z techniką bezprzewodową nie miałem nigdy do czynienia, także za wszelkie uwagi i wskazówki będę wdzięczny.

    0
  • #5 08 Wrz 2012 13:03
    bogdan_p
    Poziom 39  

    Napisz jakiej konkretnie oczekujesz pomocy bo na temat zdalnego sterowania , RC 5 można pisać w nieskończoność . Zanim zbudujesz zdalne sterowanie proponuje upewnić się czy pilot faktycznie nadaje w RC5 bo było już wiele tematów w których finałem było to że pilot nie nadaje w tym standardzie a ktoś już zbudował cały układ zdalnego sterowania . Nie wiem w jakim języku piszesz swoje programy dla C , czy Bascoma znajdziesz gotowe przykłady testerów kodu RC5 , warto również zapisać sobie i porównać z tabeli czy dane polecenia z pilota są identyczne . Na ogół numery kanałów są zgodne ale z innymi funkcjami bywa różnie , ponadto dochodzi częstotliwość fali nośnej która powinna wynosić 36kHz z tym też jest różnie . Sprzętowo wygląda to tak :
    - scalony odbiornik podczerwieni np TSOP1736
    - mikrokontroler
    - układ wykonawczy
    wysłane polecenie jest odbierane przez scalony odbiornik IR następnie w odpowiedniej procedurze dla kodu RC5 odbierasz dane masz w ten sposób konkretne polecenie wysłane z pilota później porównujesz z przypisanymi warunkami finałem w Twoim przypadku będzie wystawienie na dany port 4 sygnałów L / H czyli dokładnie to samo co masz teraz na mikrowyłacznikach .

    0
  • #6 08 Wrz 2012 14:02
    Paralitax
    Poziom 9  

    Dokładnie o coś takiego mi chodzi. Szukałem gotowych projektów ale nic nie znalazłem. Myślałem również, żeby zrobić to inaczej. 3 diody nadawcze pracujące z różnymi częstotliwościami. Po drugiej stronie 3 odbiorniki częstotliwości i jakiś filtr za nimi. Te sygnały przepuszczane do procka.
    Są jakieś inne proste metody sterowania bezprzewodowego?

    Ewentualnie mam pilota do małego helikoptera. Nadaje w podczerwieni. Pilot ma 3 diody nadawcze. Nie wiem dokładnie jak zbudowany jest odbiornik w helikopterze. Z tego co udało mi się zmierzyć na silniczki wychodzi napięcie max ok 3,5 V. Można to jakoś wykorzystać?

    0
  • #7 08 Wrz 2012 15:27
    bogdan_p
    Poziom 39  

    Na zupełnie gotowy projekt według Twoich założeń nie licz , skoro tak trudno znaleźć to masz dwa przykłady z forum https://www.elektroda.pl/rtvforum/topic1418874.html https://www.elektroda.pl/rtvforum/viewtopic.php?t=1226113&highlight= szczególnie 2 wystarczy zaadoptować . Można to zrobić analogowo nie na zasadzie 3 nadajników / odbiorników tylko 3 niezależnych generatorów w nadajniku i 3 filtrów pasmowych po stronie odbiornika bez względu na rodzaj układu RC , LC w generatorach / filtrach wymagane jest dokładne zestrojenie i dość wąskie pasmo pracy , bez odpowiedniego sprzętu będziesz miał ciężko zestroić 3 kanały. Trzy diody w pilocie z helikoptera służą do zwiększenia zasięgu ( kąt nadawania i moc IR ) i nie są to kanały .

    0
  • #8 08 Wrz 2012 17:48
    Paralitax
    Poziom 9  

    bogdan_p napisał:
    Można to zrobić analogowo nie na zasadzie 3 nadajników / odbiorników tylko 3 niezależnych generatorów w nadajniku i 3 filtrów pasmowych po stronie odbiornika bez względu na rodzaj układu RC , LC w generatorach / filtrach wymagane jest dokładne zestrojenie i dość wąskie pasmo pracy


    Wydaje mi się, że to jest najprościej wykonać. Jeżeli dobrze rozumiem, będę potrzebował jeden nadajnik podczerwieni, jeden odbiornik i odfiltrowywać odpowiednie składowe? Możesz coś więcej powiedzieć na ten temat? Czy to w ogóle się sprawdzi? Poza tym po odfiltrowaniu pozostaje kwestia zamiany sygnału na jakiś sygnał cyfrowy.

    0
  • #9 08 Wrz 2012 20:19
    bogdan_p
    Poziom 39  

    Paralitax napisał:
    Poza tym po odfiltrowaniu pozostaje kwestia zamiany sygnału na jakiś sygnał cyfrowy.

    Co Ty chcesz odfiltrowywać i zamieniać na sygnał cyfrowy ? to co napisałem o Twojej wiedzy o RC5 jest taka sama o analogowym przesyle danych . Domyślam się że RC5 i mikrokontroler odpada bo nie umiesz programować tylko wystarczyło o tym napisać zaraz na początku . Analogowo układ nadajnika to n- liczba generatorów modulacyjnych uruchamianych niezależnie , generator fali nośnej np. 36kHz , bramka sumująca , wzmacniacz prądu diody IR . W momencie uruchomienia dowolnego z generatorów wytwarzasz sygnał modulujący , automatycznie zostają również uruchomiany generator fali nośnej oraz wzmacniacz w tym momencie następuje wysłanie ciągu impulsów o nośnej 36kHz modulowanej częstotliwością uruchomianego generatora modulującego , analogicznie pozostałe kanały .
    Odbiornik to scalony odbiornik IR , n-filtrów pasmowych oraz n-układów wykonawczych . Za pomocą scalonego odbiornika podczerwieni następuje odbiór wysłanego ciągu impulsów w układzie jest filtr pasmowy w zależności od modelu np. 36kHz tak więc tylko dane z nośną 36kHz zostaną odebrane . Na wyjściu scalonego odbiornika masz impulsy o częstotliwości modulacji jaka została wygenerowana przez dany generator modulujący nadajnika . Następnie sygnał trafia do n- aktywnych filtrów pasmowych bez bawienia się w szczegóły jeżeli na filtr trafi dokładnie częstotliwość na jaką są jego parametry na wyjściu pojawi się max amplituda napięcia wystarczy to napięcie wyprostować i wykorzystać do wysterowania np. tranzystora , to cała idea takiego sterowania . Przykład masz na tej stronie http://www.eres.alpha.pl/elektronika/articles.php?cat_id=14 z tą różnicą że to tor radiowy 27MHz dla IR w nadajniku potrzeba generatora fali nośnej w odbiorniku odbiornik reakcyjny zastąpić scalonym odbiornikiem podczerwieni oraz w obu dołożyć generator / filtr pasmowy dla następnych kanałów . Osobiście uważam że prościej zrobić to na mikrokontrolerze , jak myślisz że analogowo to Twoja sprawa a coś mi się wydaje że nie powstanie żadna z nich a finałem będzie zakup taniej zabawki i wymontowanie całego zdalnego sterowania .

    0
  • #10 08 Wrz 2012 23:02
    Paralitax
    Poziom 9  

    Muszę przyznać, że masz dużo racji co do mojej wiedzy, ale mylisz się, bo sam zrobię to sterowanie :) Pewnie zajmie mi to trochę czasu, ale mam go dużo. Dzięki wielkie za tak szczegółowe opisanie sterowania zaproponowanego przez ciebie. Co do mikrokontrolera. Pewnie, że byłoby prosciej natomiast nie chcę sie jeszcze w to bawić bo programowania dopiero się uczę. Na razie chciałęm zrobić cokolwiek bezprzewodowego, ale widzę, że to bardziej złożony problem. W każdym razie dzięki za zainteresowanie.

    0
  • #11 09 Wrz 2012 09:57
    bogdan_p
    Poziom 39  

    Nie wiem który z układów wybierzesz , najprostszy to 2-kanałowy na UL1321 różnica częstotliwości kanałów jest na tyle duża że nie powinno być problemów z uruchomieniem . Natomiast dokładanie dalszych kanałów nie wyobrażam sobie bez częstotliwościomierz i oscyloskopu , generatory i filtry pracują na dość niskich częstotliwościach dlatego proponuje zainteresować się projektami wykorzystania PC w roli w/w przyrządów . Przystawki nie mają rewelacyjnych parametrów ale wszystkie na pewno pracują w paśmie akustycznym co w zupełności wystarczy , jak masz dużo czasu , części i cierpliwości to można metodą prób bez żadnych przyrządów . Jak dobrze poszukasz znajdziesz układy pracujące na identycznej zasadzie zbudowane na wzm. operacyjnych lub tranzystorach tylko uruchomienie takiego układu wymaga doświadczenia oraz odpowiedniego sprzętu pomiarowego . Nadal uważam że powinieneś skorzystać z techniki cyfrowej jeżeli nie mikrokontroler to zainteresuj się scalonymi koderami i dekoderami stosowanymi w technice zdalnego sterowania np. bardzo popularna para TX2/RX2 ( praktycznie w każdej taniej zabawce zdalnie sterowanej ) MC145026/27 lub podobnymi będziesz miał rozwiązany problem z kodowaniem / dekodowaniem poleceń pozostaje tylko dobór toru komunikacyjnego radiowego lub IR dla radiowego z pomocą przychodzą gotowe moduły radiowe . Jednak reasumując to wszystko nawet mając dużo czasu sam się przekonasz że budowa takiego zdalnego sterowania nie jest prosta ani tania i lepiej skorzystać z gotowych układów . Życzę powodzenia i wytrwałości oraz zaprezentowania końcowych efektów swoich prac .

    0
  • #12 09 Wrz 2012 13:07
    Paralitax
    Poziom 9  

    Zdaję sobie sprawę, że dużo pracy przede mną, ale pociesza mnie fakt, że przy okazji dużo się nauczę. Wiem, że to nie ten dział ale chciałbym zapytać o małą kwestię dotyczącą fusebitów w atmega8. Znalazłem projekt dekodera RC5.
    http://hobby.abxyz.bplaced.net/index.php?pid=3&aid=16
    Myślę, że mogę go wykorzystać. Problem polega na tym, że nie bardzo wiem jak zmienić częstotliwość taktowania. Atmega przywieziona ze sklepu ma domyślnie ustawiony 1MHz. Pod projektem napisano, że program działa przy 8MHz. Podejrzewam, że muszę zmienić właśnie to. Do programowania używam AVRdude. Z tego co znalazłem LOW Fuse powinien mieć wartość E4 a High Fuse D9. Czy taka konfiguracja ustawień jest odpowiednia:
    Zdalne sterowanie czterokołowym robotem

    Używam programatora USBasp, przy zwartej zworze SLOW pojawia się komunikat:
    Zdalne sterowanie czterokołowym robotem

    Przy zworze rozwartej:

    Zdalne sterowanie czterokołowym robotem

    Fragment kody w pliku Mfile:
    # Processor frequency.
    # This will define a symbol, F_CPU, in all source code files equal to the
    # processor frequency. You can then use this symbol in your source code to
    # calculate timings. Do NOT tack on a 'UL' at the end, this will be done
    # automatically to create a 32-bit value in your source code.
    # Typical values are:
    # F_CPU = 1000000
    # F_CPU = 1843200
    # F_CPU = 2000000
    # F_CPU = 3686400
    # F_CPU = 4000000
    # F_CPU = 7372800
    # F_CPU = 8000000
    # F_CPU = 11059200
    # F_CPU = 14745600
    # F_CPU = 16000000
    # F_CPU = 18432000
    # F_CPU = 20000000
    F_CPU = 8000000

    O czymś zapomniałem, czy coś robię źle?

    0
  • #14 09 Wrz 2012 15:17
    Paralitax
    Poziom 9  

    mkavrcalculator - próbowałem jakiś czas temu bawić się tym programem, niestety mój programator nie chce się z nim porozumieć (USBasp). Pewnie muszę pokobinować coś ze sterownikami tak jak jest napisane w instrukcji:)

    0
TME logo Szukaj w ofercie
Zamknij 
Wyszukaj w ofercie 200 tys. produktów TME
TME Logo