Interesuje mnie możliwość "analogowego" zapisu kodu transmitowanego za pomocą ired, a później "analogowe" jego odtworzenie.
Całość chcę oprzeć na jakimś Atmelku 51, lub AVR.
Takie postępowanie pozwala pominąć zabawę w rozpoznawanie kodu (praktycznie nic nie musimy o nim wiedzieć), i umożliwia wykorzystanie (po wcześniejszym "analogowym" zapisie transmitowanego kodu), dowolnego pilota ired!
Czy możliwa jest realizacja takiego pomysłu?
Aktyw Forum
Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.
Sprawdź punkty Zarejestruj się"Analogowy" zapis kodu ired
Moderatorzy:Jacek Bogusz, Moderatorzy
To zależy na ile dokładnie chcesz oddać sygnał. W przebiegu z pilota z pewnością da się określić czas trawania pojedynczego bitu, więc należy próbkować nie mniej niż dwa razy częściej. W sumie im szybciej tym lepiej.W sensie - próbkować przychodzący sygnał i zapisywać wyniki? Z jaką częstotliwością najlepiej?
Można zastosować inne podejście do problemu. Mierzyć czas każdego bitu od zbocza do zbocza i zapamiętać ten czas. Przykładowo na zbocze odpalasz licznik i zapamiętujesz jego stan na drugie zbocze. W ten sposób to nawet nie jest istotna jednostka, w jakiej mieżysz czas.
-
- -
- Posty:651
- Rejestracja:13 sty 2005, o 18:38
- Lokalizacja:Krasnystaw
- Kontaktowanie:
Pomiar czasu trwania impulsów o którym pisze Gaweł jest w istocie próbkowaniem z okresem równym okresowi taktowania timera.
Czest. próbkowania zależy od tego z jaką rozdzielczością chcesz mieć odwzorowane przebiegi. Jeśli na pdst. zapamiętanego przebiegu ma byc bezpośrednio generowany przebieg odtwarzany to nieporozumieniem jest próbkowanie "co najmniej 2 razy w ciągu czasu trwania bitu". Tu nie chodzi o aliasing. Po prostu chcemy mieć przebieg odwzorowany na tyle dokładnie żeby rozdzielczość nie była gorsza niż specyfikowana tolerancja czasów trwania bitów*. W praktyce 10pkt/bit* to minimum (na oko )
* - jeśli chcesz mieć nośną to oczywiście jednostką jest nie bit a połowa okresu nośnej
Czyli na oko dla typowej nośnej 36kHz należałoby próbkować z częstotliwością ok. 500kHz...1MHz. Zapis kodu trwającego np. 25ms (ramka RC5) zajmie duużo miejsca (chyba że skomresujemy - w sumie wystarczy 1 bit/próbkę więc stosowanie 1 bajtu byłoby marnotrastwem 8-krotnym).
Z zewn. gen. nośnej jest prościej. Dla czasów bitów rzędu 500us (mniejsze chyba nie bywają) wystarczy ok. 20kHz co pozwala zamknąć typową ramkę RC5 w 63 bajtach z kompresją lub w 500 bajtach bez niej.
Czest. próbkowania zależy od tego z jaką rozdzielczością chcesz mieć odwzorowane przebiegi. Jeśli na pdst. zapamiętanego przebiegu ma byc bezpośrednio generowany przebieg odtwarzany to nieporozumieniem jest próbkowanie "co najmniej 2 razy w ciągu czasu trwania bitu". Tu nie chodzi o aliasing. Po prostu chcemy mieć przebieg odwzorowany na tyle dokładnie żeby rozdzielczość nie była gorsza niż specyfikowana tolerancja czasów trwania bitów*. W praktyce 10pkt/bit* to minimum (na oko )
* - jeśli chcesz mieć nośną to oczywiście jednostką jest nie bit a połowa okresu nośnej
Czyli na oko dla typowej nośnej 36kHz należałoby próbkować z częstotliwością ok. 500kHz...1MHz. Zapis kodu trwającego np. 25ms (ramka RC5) zajmie duużo miejsca (chyba że skomresujemy - w sumie wystarczy 1 bit/próbkę więc stosowanie 1 bajtu byłoby marnotrastwem 8-krotnym).
Z zewn. gen. nośnej jest prościej. Dla czasów bitów rzędu 500us (mniejsze chyba nie bywają) wystarczy ok. 20kHz co pozwala zamknąć typową ramkę RC5 w 63 bajtach z kompresją lub w 500 bajtach bez niej.
Kto jest online
Użytkownicy przeglądający to forum: Google [Bot] i 149 gości