poniedziałek, 11 października 2010

To jest prędkość

Udało się zaimplementować super szybki algorytm FFT. Co prawda nie jest to w pełni mój wytwór, bo wykorzystałem w tym celu gotową bibliotekę napisaną w assemblerze z internetu, lecz i tak sporo się narobiłem żeby to wszystko razem ze sobą zgrać. Prędkość algorytmu w stosunku do DFT jest po prostu niesamowita. Wcześniej ciężko było cokolwiek zdziałać dla jedynie 32 próbek sygnału bo tempo rysowania jednego przebiegu trwało ponad 1-2 sekundy. Teraz dla 128 próbek jest aż nadto szybko, spokojnie jest jeszcze moc na inne wyliczenia.
Przepraszam za kiepską jakość filmików ale mój aparat bardzo źle łapie dźwięk i tnie klatki w filmikach.  W rzeczywistości wyświetlany obraz jest bardzo płynny. 
Cały czas jeszcze jest trochę pracy z regulacją całego programu. Przykładowo odcięcie na dolnym paśmie jest trochę za wysokie jak dla mnie bo w granicach jakiś 400-500Hz, za to górna granica pięknie się zamyka na 20K chociaż myślę czy by trochę nie zjechać z góry bo po co mi zakres którego nikt nie słyszy :)

Podsumowując i tak myślę, że osiągnąłem już wielki sukces, bo udało mi się uruchomić cały układ i przeprowadzić na nim płynną analizę sygnału wejściowego co było właśnie założeniem tego projektu.
Na koniec jeszcze jeden filmik z pracą w trybie punktowym.
Oczywiście prace nadal trwają. Mam nadzieję że już wkrótce uda mi się ostatecznie wyregulować cały kod i oddam się błogiej rozkoszy projektowania obudowy :)
Pozdrawiam.

sobota, 9 października 2010

Pierwszy program

A więc jest już pierwszy program zmieniający sygnał z domeny czasy na domenę częstotliwości. To takie fachowe nazwanie algorytmu wyświetlającego analizę widma. Zastosowałem tu algorytm DFT (Dyskretnej Transformaty Fouriera), czyli taki pierwowzór FFT. Jest to metoda dający identyczny rezultat co FFT lecz jest duuuuuużo wolniejsza, ale w zamian za to dużo prostsza. Wolałem zacząć od  podstaw, tak żeby zrozumieć dokładnie zasadę wyliczania takiej transformacji. Jest ona jak widać na  załączonym krótkim filmiku zdecydowanie za wolna, żeby można było ją wykorzystać do analizy widma w locie. Procek działa na swoim maksymalnym taktowaniu 16Mhz i jak widać wyliczanie każdego słupka sygnału zajmuje mu bardzo dużo czasu, a jest to jedynie 16 prążków z próbki o długości N=32.
Za dużo na tym filmiku nie widać, ale właśnie o to chodzi, żeby pokazać że działa ale się nie nadaje :)
Większość  czasu algorytm spędza na liczeniu funkcji trygonometrycznych sinus i cosinus. Gdyby można było zastosować wcześniej wyliczone tablice sinusów i cosinusów to by było szybciej, ale niestety Atmega 16 ma tylko 1KB pamięci SRAM co nie  starcza na zapisanie w pamięci takich tablic. Zresztą i tak ten algorytm był by za wolny do wykorzystania przy większej ilości próbek sygnału wejściowego, a to docelowo chcę zrobić bo zwiększa to dokładność obliczeń.
Spróbuje teraz swoich sił w zmianie tego algorytmu na algorytm FFT czyli szybkiej transformaty fouriera, który jest znacznie szybszy lecz też bardzo skomplikowany.
Mam nadzieję, że wkrótce  uraczę  was lepszymi rezultatami.

czwartek, 7 października 2010

A jednak się udało

W końcu po wielu przeróbkach i testach udało mi się uruchomić myślę ostatni już klocek tej konstrukcji - układ formowania sygnału wejściowego.

Generalnie niby nic specjalnego, ot zwykły wzmacniacz operacyjny pracujący w konfiguracji wzmacniacza odwracającego fazę. Potencjometrem można ustawiać wzmocnienie układu. Układzik ten pełni bardzo ważną funkcję bo po pierwsze na wejściu sygnał widzi dużą impedancję więc nie obciąża źródła sygnału a poza tym ustawia sygnał w zakresie od 0 do 5V tak żeby przetwornik miał łatwo taki sygnał obrobić.
Całość tego bajzlu wygląda tak:
Na razie wyświetlacz pokazuje trochę głupoty ale to już kwestia programu, który będzie dopiero rozwijany.
Tak w ogóle to spędziłem nad tym układem dzisiaj całe mnóstwo czasu starając się dojść czemu po podaniu na wejście równiutkiej sinusoidy na wyjściu dostawałem to:
Kompletnie rozwalona sinusoida. Bardzo duże zniekształcenia. Początkowo myślałem, że może wejście przetwornika tak silnie obciąża wyjście wzm. op. że powoduje takie zniekształcenia, lecz eksperymenty z różnymi rezystorami równolegle do wyjścia nic nie dały. W końcu gdy już nie miałem innego pomysłu rozwiązanie przyszło praktycznie same.Chodziło tu o stan w jakim znajduje się wejście przetwornika gdy układ kontrolera jest bez zasilania. Do tych testów zasilałem jedynie układ formowania sygnału, lecz gdy tylko włączyłem kontroler, który miał ten sygnał odbierać to przebieg widoczny wyżej zmienił się w piękną sinusoidę.
Tak więc część elektroniczna wydaje się być po raz kolejny skończona :). Biorę się za pisanie działającego algorytmu DFT, zobaczymy co z tego wyjdzie.

środa, 6 października 2010

Postęp czy porażka?

No w końcu się zebrałem żeby ruszyć z miejsca. Ostatnio miałem trochę innych spraw na głowie, stąd tak długi czas bez aktualizacji, a do zrobienia był układ wejściowy. Układ ten ma za zadanie formować sygnał wejściowy w ładny przebieg dla przetwornika mikro-kontrolera. No więc wziąłem się do roboty.
Po żmudnym projektowaniu wpierw schematu następnie płytki już miałem się wziąć za płytkę uniwersalną ale coś mnie tknęło i postanowiłem zrobić pierwszą płytkę metodą termotransferu. W necie można znaleźć sporą ilość poradnikó na  ten temat jak wykonać płytkę metodą "chałupniczą". Z racji iż nie posiadam najodpowiedniejszego papieru do tego celu użyłem ten co mam (90g z lekkim połyskiem do laserowych kopiarek). Nie wchodząc w szczegóły wyszło tak średnio. Papier nie do końca chciał przekazywać toner na płytkę, ale efekt finalny i tak był zadowalający.
Ścieżki wyszły troszkę ponadżerane, ale po ocynowaniu powinno być ok.
Lutowanie części to już sama przyjemność, nie miałem tutaj żadnych problemów. Efekt finalny wyszedł tak:
Zasada działania jest taka.
Najpierw na wejściu puszczamy sygnał przez kondensator żeby odciąć składową stałą. Następnie podajemy na wejście odwracające wzmacniacza operacyjnego pracującego w trybie wzmacniacza odwracającego fazę z regulowanym wzmocnieniem (potencjometr na zdjęciu). Aby układ poprawnie działał przy pojedynczym zasilaniu (bo wzmacniacze operacyjne normalnie potrzebują symetrycznego) na wejście nieodwracające podałem napięcie z dzielnika rezystorowego dostrajanego potencjometrem montażowym. Na koniec już przetworzony sygnał znowu daje przez dzielnik rezystorowy obniżam do poziomu od 0 do +5V i tyle.
Niestety po zmontowaniu i podłączeniu pod oscyloskop w celu sprawdzenia działania okazało się że układ nie działa tak jak powinien. Na wyjściu pojawia się jedynie składowa stała. Po wieczorze spędzonym przy szukaniu gdzie popełniłem błąd mam już potencjalnego winnego. Prawdopodobnie mój układ sztucznej masy jest źle zaprojektowany.
Dzisiaj już nie będę tego poprawiał, bo zrobiło się późno.
Jutro postaram się coś z tym zrobić.

niedziela, 3 października 2010

Warsztat - weszaki zamiast szufladek

Chyba każdy elektronik marzy sobie o wielkim zapleczu części elektronicznych pięknie posegregowanych w odpowiednich szufladkach. Niestety szufladki takie są bardzo drogie, a różnorodność części jaką się trzyma w swoim warsztatowym zapleczu bardzo duża. Alternatywą dla szufladek są podpisane torebeczki. Takie spinane u góry szczelnie (jak na narkotyki :) ). Niestety i to rozwiązanie ma pewną swoją wadę. Po prostu tych torebeczek robi się całkiem sporo i znowu szukanie potrzebnej części niepotrzebnie zajmuje dużo czasu.
Ostatnio lubię  kupować na tzw. wolumenie, na giełdzie elektronicznej, gotowe zestawy części, przeważnie rezystorów, kondensatorów i diod w jednej torebce po 2-3 zł. W jednej takiej torebce jest, nie przesadzając, kilkaset części. Co prawda większość to rezystory, ale i tak wychodzi to znacznie taniej niż kupując rezystorki po 30gr za sztukę w normalnym sklepie lub stoisku na giełdzie.  A poza tym ten drobny dreszczyk emocji - co się trafi w takiej paczce :).
Segregując sobie w domu świeżo zakupione paczki zamyśliłem patrząc się w otwór w górnej części tej torebeczki o której wspominałem wcześniej, taki otwór do powieszenia np na jakimś haczyku i wpadłem na pewien pomysł jak usprawnić sobie segregację części w swoim mini warsztaciku nie kupując drogich szufladek i nie przedzierając się przez dziesiątki torebeczek. Oczywiście jak zwykle im taniej tym ciekawiej :). Pojechałem więc do marketu budowlanego i zakupiłem listwę drewnianą prostokątną o długości ponad 2m za całe 2zł i 2 paczki małych wkręcanych haczyków, niestety całkiem drogich bo paczkowanych (nie było na wagę), paczka haczyków 40szt po niecałe 10zł. W domu wszystko dokładnie rozplanowałem i pomierzyłem. Listwę przeciąłem na pół, w ścianie wywierciłem 2 otwory na plastikowe kołki 8-ki. W listwie otwory na wkręty na brzegach i 20 otworów w odstępach co 5 cm na każdej z listew, łącznie 40 otworków. Następnie listwy przykręciłem do ściany, a w miejsce małych otworów pokręcałem haczyki i gotowe.
A do czego to, a  no do tego żeby sobie powiesić właśnie te torebeczki.
Oczywiście listew będzie więcej niż dwie. Na razie dodałem 2 po pierwsze żeby zobaczyć jak to się  będzie prezentowało, a po drugie dlatego że w markecie nie mieli akurat więcej tych tanich listew. Tak więc koszt takiego "segregatora" z 40-ma miejscami na torebeczki to około 15 zł. Trzeba przyznać, że całkiem tanio, a poza tym jaka wygoda przy szukaniu odpowiednich wartości teraz. Trzeba jeszcze wspomnieć jedną zaletę takiego rozwiązania: praktycznie nie zajmuje ona miejsca. Ścianę i tak zwykle mamy pustą, więc czemu by sobie jej nie zapełnić czymś pożytecznym.
Mi się podoba. Naprawdę polecam.

piątek, 1 października 2010

Troszkę się sprawa przedłuża, bo uświadomiłem sobie, że potrzebuje lepszego układu wejściowego dla sygnału audio. Podanie sygnału bezpośrednio na przetwornik jest mało efektywne, bo sygnał taki może mieć różne składowe stałe i różną amplitudę przez co za każdym razem przy zmianie źródła sygnału trzeba by dostrajać układ przetwornika, a to jest mało wykwintna metoda. Na szczęście układ, który by mnie zadowalał jest raczej prosty do zrobienia, tylko czasu troszkę brak, więc na jakieś wyniki będzie trzeba troszkę poczekać.
Na razie póki co zrobiłem sobie na tym wyświetlaczu efekt oscyloskopu do sygnału muzyki, ale to tak tylko do zabawy, jak testowałem przetwornik.
Jutro postaram się zrobić ten układ wejściowy i pokazać jakieś wyniki.