Elektroda.pl
Elektroda.pl
X
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

attiny2313 i atmega8 UART przez podczerwień

pawel26021995 24 Jun 2013 09:12 3426 17
lampy.pl
  • #1
    pawel26021995
    Level 12  
    Witam, czy można połączyć 2 mikrokontrolery stosując komunikacje uart ale wysyłając dane przez podczerwień? Chodzi mi o zbudowanie własnego pilota i odbiornika. Z jaką prędkością musiałyby być wysyłane dane i jaką częstotliwość powinien mieć odbiornik ir?

    Schematy układów, wiem, że może być jakiś błąd w schematach.
    attiny2313 i atmega8 UART przez podczerwień attiny2313 i atmega8 UART przez podczerwień
  • lampy.pl
  • #2
    BlueDraco
    MCUs specialist
    W tych schematach są niemal wyłączeni błędy - zacznij od obejrzenia jakichś gotowych schematów działających urządzeń. Zwróć uwagę na kondensatory blokujące zasilanie. Dioda podłączona katodą do plusa raczej nie zaświeci. Nie potrzebujesz transoptorów do sterowania LED. Jako odbiornik podczerwieni wygodnie jest zastosować coś podobnego do TSOP1xxx, ale nie można go "napędzić" dowolnym strumieniem danych - trzeba nadawane dane zakodować w postaci impulsów o odpowiednich własnościach. Sam odbiornik też musi być podłączony zgodnei z zaleceniami producenta - rezystor i kondensator.
    Na Twoim schemacie przyciski nie są podłączone do masy.
  • #3
    Steryd3
    Level 33  
    Ogólnie to wszystko można zrobić jeżeli tylko nasz rozwój cywilizacyjny na to pozwala-zawsze to kwestia zdolności, czasu poświęconego na projekt i środków na niego przeznaczonych:) Ogólnie -mówiąc najprościej- w komunikacji za pomocą podczerwieni (w pilotach zdalnego sterownia) stosuje się technikę polegającą na tym, że w czasie w którym chcemy wysłać stan wysoki wysyłana jest paczka impulsów o częstotliwości 30-40 kHz. Do odbioru tego typu sygnałów stosuje się gotowe odbiorniki w postaci układu z trzema wyprowadzeniami(znalazłem taki na Twoim schemacie) który to układ jest czuły na określoną częstotliwość impulsów(np.33kHz) i z niewielkim opóźnieniem przerabia paczki impulsów na impulsy odpowiadające czasem trwania długościom trwania paczek. Jest o tym nawet napisana książka: "Mikrokontrolery w systemach zdalnego sterowania" wydawnictwa BTC.
    Co do schematów...nie wiem do czego się tu odnieść. Straszny na nich bałagan. Nie wiem po co np. są tam transoptory skoro i tak obwody nie są separowane.
    Jeżeli chodzi o prędkość transmisji -zbyt dużej prędkości z uwagi na stosowaną modulację impulsową się nie uzyska. Myślę, że prędkość bodowa 9600 może być trudna do osiągnięcia.
  • #4
    tmf
    Moderator of Microcontroller designs
    pawel26021995 wrote:
    Witam, czy można połączyć 2 mikrokontrolery stosując komunikacje uart ale wysyłając dane przez podczerwień? Chodzi mi o zbudowanie własnego pilota i odbiornika. Z jaką prędkością musiałyby być wysyłane dane i jaką częstotliwość powinien mieć odbiornik ir?


    Koledzy powyżej dużo już ci napisali. Do takiej komunikacji potrzebujesz diodę IR i odbiornik IR. Możesz zastosować na 38 kHz, wtedy uzyskasz ok. 3000 bps, lub na 56 kHz, wtedy uzyskasz 5-6 kbps. Ograniczenie transmisji wynika z właściwości odbiornika - musi on odebrać kilka impulsów IR, po czym musi wystąpić odpowiednia przerwa. Problemem jest modulacja diody IR - odpowiednio 38 lub 56 kHz. Mozna to zrobić semisprzętowo na zwykłym AVR - timer i modulować jego wyjście, lub zastosować XMEGA, gdzie modulację wyjścia USART dowolnym przebiegiem można zrealizować sprzętowo. Tego typu przykład komunikacji po IR znajdzie się zresztą w mojej nowej książce (już za miesiąc wydanie) - a piszę o tym dlatego, że jak zwykle przykłady do niej będą za free, w efekcie stosowny przykład sobie możesz po prostu ściągnąć.
    Jeśli takie szybkości transmisji cie nie interesują to możesz zastosować IrDA - tu znowu XMEGA ma sprzętowy moduł IrDA, możesz na nim wycisnąć do 128 kbps, albo możesz kupić parę odbiornik/nadajnik IrDA, wtedy możesz osiągnąć nawet do kilku Mbps.
  • #5
    pawel26021995
    Level 12  
    Prędkość nie musi być bardzo duża. chodzi mi o zrobienie takiej komunikacji jak pilot z telewizorem, projekt będzie oświetleniem sufitu, a pilotem będe sterował diodami.
  • #6
    Brutus_gsm
    Level 25  
    Nie lepiej zastosować transmisję np. RC5? Będzie dużo łatwiej i będziesz mógł korzystać ze zwykłego pilota uniwersalnego RC5.
  • lampy.pl
  • #7
    tmf
    Moderator of Microcontroller designs
    pawel26021995 wrote:
    Prędkość nie musi być bardzo duża. chodzi mi o zrobienie takiej komunikacji jak pilot z telewizorem, projekt będzie oświetleniem sufitu, a pilotem będe sterował diodami.


    Dokładnie taki przykład znajdziesz w mojej nowej książce :)
    Jak pisałem, dioda nadawcza IR, na ktorą podajesz zmodulowany sygnał, standard obojętny, może być to wprost sygnał z USART, może być to RC5, NEC, czy cokolwiek. W części odbiorczej scalony odbiornik podczerwieni.
    Akurat na XMEGA najłatwiej to zrobić bo łączysz diodę IR wprost pod TxD z USART, na którym włączasz modulację np. 38 kHz, a w części odbiorczej odbiornik IR łączysz z RxD USARTA i masz po prostu USART w podczerwieni. XMEGA D4, albo E5 jest w cenie ATMega8 lub nawet taniej.
    Oczywiscie na klasycznym AVR, typu ATMega8 też to zrobisz, różnica taka, że program będzie nieco większy, bo będziesz musiał programowo włączać/wyłączać modulację po stronie nadajnika. Odbiornik pozostanie taki sam.
  • #8
    pawel26021995
    Level 12  
    Jeżeli podłącze diodę ir i odbiornik bez pośrednio pod port UART i będę wysyłał dane przez UART i na drugim uC odbierał dane, to czy to będzie działało? czy muszę wykorzystać do tego jakieś protokoły takie jak RC5? Jaką częstotliwość ma port uart? (w Hz a nie w b/s)
    Wiem, że diodę ir mam podłączyć przez tranzystor i rezystor.
  • #9
    piotrva
    VIP Meritorious for electroda.pl
    Nie, nie będzie działało.
    Poczytaj co nieco o podczerwieni: http://www.sbprojects.com/knowledge/ir/index.php
    I najlepiej będzie zaimplementować RC5 (lub coś podobnego).
  • #11
    piotrva
    VIP Meritorious for electroda.pl
    Z tym, że w przypadku ATTiny2313 i podpięcia pod UART bezpośrednio, bez modyfikacji programu (bo przypuszczam, że o czymś takim marzy Autor wątku) nie zadziała.
  • #14
    BlueDraco
    MCUs specialist
    Odbiorniki do sterowania w podczerwieni mają ograniczenia co do długości paczki impulsów i odstępów pomiędzy paczkami, dlatego nie można bezpośrednio modulować nośnej tym, co wychodzi z wyjścia UART. Tzn. czasem to zadziała, ale w ogólnym przypadku gwałci się w ten sposób parametry odbiornika i odbiornik ma prawo nie odbierać takich danych.
  • #15
    tmf
    Moderator of Microcontroller designs
    Owszem, ale te ograniczenia dotyczą raczej minimalnej ilości impulsów i przerwy między nimi. Stąd też nie można przesadzać z szybkością transmisji. Bez problemu to działa z bezpośrednią modulacją danych z USART, który pracuje w rozsądnym dla danego odbiornika zakresie - do około 3-5 kbps.
  • #16
    pawel26021995
    Level 12  
    Witam po dłuższej przerwie. Mam się podzielić sposobem rozwiązania mojego problemu. Użyłem pilota RC5 i odbiornika SFH5110-36, jak na razie działa. testowałem też Przedłużacz na podczerwień do UART i nie byłem zadowolony z jego działania, działał ale nie dokładnie, nie za każdym razem dostałem to co wysłałem, może to przez użyte rezystory, nie były dokładne.
    próbowałem też użyć RX/TX433 ale też nie działa prawidłowo, no chyba, że się zastosuje HT12D/E wtedy działa bez problemu ale sygnał z nadajnika jest mocniejszy od nadajnika w pilocie do kompa (medion RF vista remote control) i odbiornik w komputerze przestawał działać. Sam odbiornik RX433 łapał duże zakłócenia, nawet jeżeli nadajnik był wyłączony. Poczytałem trochę o RC5 i stwierdziłem, że to będzie dobre rozwiązanie. Do chłodzenia diod LED użyłem stary aluminiowy karnisz, który pociąłem na odcinki około 3 cm. Użyłem 9 diod super zimnych 3W i 6 diod RGB 1W. Do zabezpieczenia diod zastosowałem rezystory dla białych 4,7 Ohm 3W, czerwonego 18 Ohm 1W, zielonego i niebieskiego 10 Ohm 1W. Diody połączyłem po trzy szeregowo i zasiliłem napięciem 12V. Całość zasilałem zasilaczem do komputera 200W, bo akurat taki miałem nie potrzebny. Jako drugie awaryjne źródło zasilania stosuje akumulator 12V 4,5Ah, który poprzez 2 przekaźniki jest włączany lub wyłączany, zależy to od zasilacza. Światło można oświecić za pomocą klaśnięcia lub z pilota. Wykorzystując pilot można ustawić za pomocą przycisku:
    0 i wł/wył wyłącza wszystkie diody
    1 - świecą na biało tylko środkowe 3 diody
    2 - świecą na biało pierwsze 3 diody i ostatnie diody 3 diody
    3 - świecą na biało wszystkie 9 diod
    4 - animacja na wszystkich diodach, będzie pokazana na filmiku
    5 - świecą czerwone
    6 - świecą zielone
    7 - świecą niebieskie
    8 - świecą czerwone i zielone (na żółto)
    9 - świecą czerwone i niebieskie (na różowo)
    -/-- - świecą zielone i niebieskie (kolor morski)
    C/P - świecą wszystkie
    W przyszłości planuje zastosować PWM do sterowania jasnością białych diod, bluetooth które łączyło by się z telefonem/komputerem. Projekt jeszcze nie jest skończony, z powodu braku czasu, ale jak mam chwile to coś robię. Całość będzie zakryta płytami gipsowymi (sufit podwieszany). Macie może jakieś pomysły co można jeszcze zrobić? Czym sterować w niby inteligentnym pokoju?? Co o tym myślicie??

    Schemat układu:
    attiny2313 i atmega8 UART przez podczerwień

    Zdjęcia projektu:
    attiny2313 i atmega8 UART przez podczerwień attiny2313 i atmega8 UART przez podczerwień attiny2313 i atmega8 UART przez podczerwień attiny2313 i atmega8 UART przez podczerwień attiny2313 i atmega8 UART przez podczerwień attiny2313 i atmega8 UART przez podczerwień attiny2313 i atmega8 UART przez podczerwień attiny2313 i atmega8 UART przez podczerwień attiny2313 i atmega8 UART przez podczerwień attiny2313 i atmega8 UART przez podczerwieńattiny2313 i atmega8 UART przez podczerwień attiny2313 i atmega8 UART przez podczerwień attiny2313 i atmega8 UART przez podczerwień attiny2313 i atmega8 UART przez podczerwień attiny2313 i atmega8 UART przez podczerwień attiny2313 i atmega8 UART przez podczerwień attiny2313 i atmega8 UART przez podczerwień attiny2313 i atmega8 UART przez podczerwień
  • #17
    BlueDraco
    MCUs specialist
    Na Twoim miejscu zacząłbym jednak od lekcji ortografii.
    Schemat, który pokazałeś, z całą pewnością nie jest prawdziwy, a każdy transoptor można zastąpić kawałkiem drutu bez wpływu na działanie układu.
  • #18
    pawel26021995
    Level 12  
    Transoptory są zastosowane żeby nie uszkodzić procesora. Ortografia poprawiona! Schemat rysowałem z pamięci i jest taki jak rzeczywisty układ, całość działa bez żadnych zarzutów.