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 napisać analizator widma akustycznego w Bascom dla LCD i Atmela?

bartods 05 Mar 2006 21:48 26203 86
Najlepsze odpowiedzi

Jak zrealizować analizator widma akustycznego na AVR w Bascomie z wyświetlaniem na LCD?

Zrób to przez próbkowanie sygnału audio, zebranie np. 128 próbek i policzenie DFT/FFT, a jeśli chcesz wykrywać tylko konkretne składowe, rozważ algorytm Goertzela; częstotliwość próbkowania musi być co najmniej dwukrotnie większa od szerokości pasma sygnału [#2380245] BASCOM jest do takiego zadania zwykle zbyt wolny, więc najlepiej pisać całość w ASM albo C [#2380245] Da się jednak zrobić DFT w Bascomie z wstawkami ASM — w wątku pokazano działający projekt z odświeżaniem około 25 Hz [#2381173] Wyniki widma możesz potem wyświetlać na LCD, ale trzeba liczyć się z ograniczeniami wydajności mikrokontrolera [#2380245][#2381173]
Wygenerowane przez model językowy.
REKLAMA
  • Pomocny post
    #61 2463627
    hunterhouse
    Poziom 26  
    Posty: 893
    Pomógł: 84
    Ocena: 3
    może być i z zasilacza komputerowego a moze być z zewnątrz, ważne żeby było 5V stabilizowane.

    jak łączysz z zewnątrz to musisz oczywiście połączyć też mase.
  • REKLAMA
  • #63 2463942
    karlos79
    Poziom 33  
    Posty: 1768
    Pomógł: 254
    Ocena: 76
    Witam
    Zasilanie możesz wziąść z GAMEPORTU piny 1,9,8 i 15.
    Pozdrawiam
  • #64 2468447
    bartods
    Poziom 16  
    Posty: 356
    Ocena: 258
    Zrobiłem ten programatorek i ustawiłem go w Bascomie na sample electronik programmer i nadal występuje ten sam błąd could not identify chip with ID:FFFFFF :cry:
    A mam jeszcze pytanie czy te ułożenie mikroproccesora

    ...______
    - |////////|-
    - |/0//////|-
    - |////////|-
    - |////////|-
    - |////////|-
    ...--------

    odpowiada temu :?:

    ...___ ___
    - |///U///|-
    - |////////|-
    - |////////|-
    - |////////|-
    - |////////|-
    ... --------

    chodzi mi o to czy wyżłobienie górne w pierwszym rys odpowiada wyżłobieniu na drugim bo ta ATTINA nie ma nacięcia na górze tylko lekki dołem w jednym z rogów :?:
  • #65 2468734
    karlos79
    Poziom 33  
    Posty: 1768
    Pomógł: 254
    Ocena: 76
    Witam
    Wyżłobienie, wgłębienie, kreska czy cokolwiek na krótszym boku oznacza,że w żędzie po lewej znajduje sie pierwsza noga.
    Pozdrawiam
    P.S
    Czytałem gdzieś, że Tiny sa kapryśne jeśli chodzi o ich programowanie.
  • #66 2468834
    hunterhouse
    Poziom 26  
    Posty: 893
    Pomógł: 84
    Ocena: 3
    ja miałem attiny2313 i ten programator ten co ci podałem i niebyło kłopotów.
    sprawdz jeszcze raz wszystki połączenia.
    jaki masz kabel od programatora ?? długość i czy ekranowany.
    bo ja mam dosć długi ale za to ekranowany.

    policz jeszcze raz czy masz dobrze w lpt i w procku piny

    sprawdz też czy sygnały z lpt docierają do odpowiednich koncuwek lpt poprzez odpalenie programatora w bascomie i tam w "FILE >> TEST >> Sam..."
    mozna kazać ustawić +5V na poszczególnych liniach. (tylko odłącz przedtem procka)
    w opcjach bascoma możesz tez sprawdzić czy jest ustawiony na poprawy adres portu LPT (poprawy adres masz w menadzerze urządzen windows)
  • #67 2469502
    bartods
    Poziom 16  
    Posty: 356
    Ocena: 258
    a JEŻELI PRZYPUŚĆMY WŁOŻE ODWROTNIE PROCKA TZN LEWĄ STRONĘ DO PRAWEJ TO CZY PROCEK SIĘ KOPNIE :?: A w tym Attiny obie strony są tej samej długości :(
  • #68 2471001
    hunterhouse
    Poziom 26  
    Posty: 893
    Pomógł: 84
    Ocena: 3
    attiny ma zasilanie po przekątnej czyli jak włożysz go odwrotnie to masz 90% szans że go spalisz. to jeszcze zależy do wydajności prądowej zasilacza ale prawdopodobnie nawet 50mA go uszkodzi.
    w sumie to dawno mi sie to nie zdażyło ale ja juz kilka avr'ów uszkodziłem poprzez złe podłaczenie. czasami wystraczy tylko podpiąc mase na nietą nóżkę.
  • REKLAMA
  • REKLAMA
  • #70 2523384
    bartods
    Poziom 16  
    Posty: 356
    Ocena: 258
    No w końcu udało mi się uruchomić programator.
    Tylko że mam teraz problem z LCD-ekiem bo spaliłem inwerter :(
    Mam małe pytnko dlaczego po zaprogramowaniu okazuje się że uP ma błędy tzn. że program który w niego wrzuciłem nie jest taki sam jaki napisałem czyli jaki chciałem wrzucić :?:
    O i jeszcze jedno pytanko jak ustawić procek aby wyświetlił jaki kolwiek znak na tym graficznym LCD :?:
    Kożystam z Bascoma a tam mam do wyboru LCD alfanumeryczne a nie graficzne oraz które piny do jakiej nogi mogę podłączyć i jak je ustawić :?:
  • #71 2523397
    hunterhouse
    Poziom 26  
    Posty: 893
    Pomógł: 84
    Ocena: 3
    czemu masz błędy w programie ??? zle to za każdym razem czy tylko czasami??

    prwdopodobnie gdzieś udzielają sie zakłucenia. jaki w końcu masz programator?? jakie długie kable i czy ekranowane i na jakiej częstotliwości pracuje procesor ??
  • #72 2524032
    bartods
    Poziom 16  
    Posty: 356
    Ocena: 258
    za pierwszym razem poszło wszystko dobrze. za drugim programowaniem był już błąd i za trzecim też teraz wklepie trzwarty raz i zobaczę. Przewód ma ok 1 metra a programator to ten co mi podesłałeś i działa. Z tym że zamiast rezystorów 330 ohm dałem 220 ohm bo nie miałem 330 :P , ale myśle że to nic nie zmienia.
  • #73 2524734
    hunterhouse
    Poziom 26  
    Posty: 893
    Pomógł: 84
    Ocena: 3
    więc tak jeśli masz szybkiego kompa to zmień port delay.
    jesli kabel jest nieekranowany to też może być przyczyną. ja mam coprawda około 5m i niema problemów ale kabel jest w ekranie.

    jaka jest częstotliwość procesora AVR. jeśli powyżej 4Mhz to też może być przyczyna niepoprawnej pracy.

    a co zepsułeś w tyl lcd ?? ja kiedyś przez przypadek podąłem 12V na płytkę, avr umarł ale lcd działał dalej.
  • #74 2525979
    bartods
    Poziom 16  
    Posty: 356
    Ocena: 258
    Popsułem inwerter :P
    A co do Procka to znalazłem problem, po prostu jeden zimny lut tzn. nie było lutu tylko na dotyk :) ale już poprawiłem i chodzi.
    A programik testowy na którym przetestowałem poziom sygnału podaje niżej.
    Tylko rzecz w tym że nie mogę sobie poradzić z twoim programikiem nie potrafie podać mu wyświetlania na LCD 16x2 :(

    A jak podłączyłeś AVR do LCD graficznego masz może jakiś schemat :?:
    O i z tym podziałem LCD to masz dobry pomysł bo górną część chcę poświęcić na poziom sygnału w % i wejście z którego akurat ciągnie przedwzmak [co to za nowotwór językowy ?].
    Załączniki:
    • analizator Bascom.rar (4.88 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #75 2526033
    hunterhouse
    Poziom 26  
    Posty: 893
    Pomógł: 84
    Ocena: 3
    bartods napisał:
    ....
    A programik testowy na którym przetestowałem poziom sygnału podaje niżej.
    ....

    hehe :D aleś zaszałał z tym programikiem. jedyny użyteczny plik to ten z rozszeżeniem .bas któego niestety brakuje :P

    teraz co do lcd to każdy typ podłącza sie inaczej. jedne mają sterowniki inne nie. ten twój chyba niema sterownika tylko drivery. do tego rózne zasilanie. na 90 procent będziesz potrzebowął zasilania +5V i -20V. znaczy sie 5V to na 100%.

    poszukaj noty katalogowej od lcd tam wszystko jest.

    a ten lcd 2x16 to jak chcesz użyć ??
  • #76 2526051
    bartods
    Poziom 16  
    Posty: 356
    Ocena: 258
    Wielkie sorry za brak .bas LCD który mam potrzebuje zasilania 5V i 16.2V .

    nr . pinów

    SHARP LM64P728

    Pin No,Pin name/signal;
    1 S (startup scan signal)
    2 CP1 (input data latch signal)
    3 CP2 (Data input latch signal)
    4 Vdd (power suply for logic and LCD +5V)
    5 Vss (GND)
    6 Vee (~-16.2V)
    7 Vss (GND)
    8 DU0 (data Upper half area)
    9 DU1
    10 DU2
    11 DU3
    12 DL0 (data lower half area)
    13 DL1
    14 DL2
    15 DL3


    Screen area;

    ____________________
    |1,1.....................1,640|
    |....Upper half area...... |
    |240,1..............240,640
    ----------------------------
    |241,1 ..............41,640|
    |....Lower half area.......|
    |480,1..............480,640|
    ----------------------------

    A plik .bas
    Załączniki:
    • bascom lcd 16x2 .rar (1.63 KB) Musisz być zalogowany, aby pobrać ten załącznik.
  • #77 2528106
    hunterhouse
    Poziom 26  
    Posty: 893
    Pomógł: 84
    Ocena: 3
    ja sterowałem podobnym wyswietalczem tak jak w załaczonym programie (320x240).
    co do twojego to AVR niestety w żaden sposub sie nie wyrobi. zamała częstotliwość kwarcu. ten wyświetlacz niema starownika ani pamięci. żeby obraz był poprawnie wyświetlany musisz 70 razy na sekunde przesłąć całą mape bitową obrazu
    czyli 70*640*480/8=2688000 bajtów/s a to bardzo dużo jak na AVR.
    AVR niezostały wymyślone do sterowania takich matryc. do tego są karty graficzne. dlatego naprawde proponuje zając sie innym sposobem wyświetlania.

    pozdrawiam

    link do programu https://www.elektroda.pl/rtvforum/topic465823.html#2387164
  • #78 2529784
    bartods
    Poziom 16  
    Posty: 356
    Ocena: 258
    A czy wyrobi się na dwóch prockach :?:
    Bo wspominałe wcześniej o tym żeby jeden procek zajmował się częścią a drugi resztą.
  • #79 2539237
    hunterhouse
    Poziom 26  
    Posty: 893
    Pomógł: 84
    Ocena: 3
    bartods napisał:
    A czy wyrobi się na dwóch prockach :?:
    Bo wspominałeś wcześniej o tym żeby jeden procesor zajmował się częścią a drugi resztą.


    na 100% ci nie powiem. Na pewno to będzie musiało by być w asm. do tego bardzo szybka pamięć zewnętrzna ram. oba procki musiałby by pracować na jednym generatorze i do tego trzeba by je trochę pokręcić. wtedy była by jakaś szansa ale nie będzie to takie łatwe i trzeba mieć spore doświadczenie. sam nie wiem czy był bym w stanie się z tym zmierzyć.
    szczerze radzę zając się czymś mniej ambitnym. coś co jest w zasięgu ręki.
  • #80 2624738
    bartods
    Poziom 16  
    Posty: 356
    Ocena: 258
    sorka ale mam jeszcze jeden problemik...
    Nie mogę sobie poradzić ze skonfigurowaniem LCD w bascomie oraz z podłączeniem.
    Bascom z tego co widzę obsługuje wyświetlacze do 240x128 a i z konfiguracją pinów w bASCOMIE MAM PROBLEM...
    Hunterhouse jak skonfigurowałeś piny w tym LCD 320x240 :?:
    Czy to ma być tak :?:

    Config Graphlcd = 640 * 480 ---- no i dalej niewiem jak skonfigurować piny wyświetlacza :?:
  • REKLAMA
  • #81 2625757
    hunterhouse
    Poziom 26  
    Posty: 893
    Pomógł: 84
    Ocena: 3
    bartods napisał:
    Config Graphlcd = 640 * 480 ---- no i dalej niewiem jak skonfigurować piny wyświetlacza :?:

    widze że kolega nauczył się podstaw bascoma i żuca się z motyką na słonce.
    żeby odpalić ten wyświetlacz trzeba wszystko pisac od 0.
    bascom nie wspiera wyświeltaczy bez sterownika. trzeba mieć bardzo dobrze opanowaną budowe wewnętrzną procesora i jeszcze lepiej znać asemblera. wszystko trzeba pisać samemu. żadne gotowe funkcje ci nie pomogą.
    widze ze to naprawde niema narazie sensu

    Do tego niemam nawet czasu żeby cos koledze w tym pomóc.
    pozdrawiam
  • #82 2625790
    bartods
    Poziom 16  
    Posty: 356
    Ocena: 258
    Sorka ale żle to zrozumiałeś...
    Po prostu nigdy nie bawiłem się z wyświetlaczem graficznym.
    Napisz mi tylko czy po skonfigurowaniu portów i dołączeniu tego LCD do scalaka da się na nim wyświetlić tekst taką komendą jaką wyświetla się tekst na wyświetlaczach alfanumerycznych :?:
    Rozumiem że nie chce ci się bawić z kimś jak z przedszkolaczkiem bo to raczej nie jest miłe uczyć kogoś od podstaw.
    Jeśli nie masz czasu tozrozumiem, i tak bardzo dużo mi pomogłeś.
    Dzięki....
  • #83 2625868
    hunterhouse
    Poziom 26  
    Posty: 893
    Pomógł: 84
    Ocena: 3
    poprostu ostatnio niemam czasu żeby cokolwiek pisac na elektrodzie, nawet czytać niemam kiedy.
    wracając do problemu. to podłaczaspiny gdzie tylk odusz zapragnie bo i tak musisz wszystko oprogramowacsam. zadna z funkcji bascoma ci nie pomoze. a zeby wpisać tekst na ten wyświetlacz to dopieor trzeba sienarobić. musisz mieć zrobiona czcionkę w postaci małych map bitowych. pobierac pojedynczo znaki , dekodowac ja na odpowiednią bitmape i tą bitmape wstawić w odpowiednie miejsce w pamieci.powtarzam w tym wyślietlaczu niema zadnego sterownika, tam jest tylko prosta logika do adresowania poszczególnych pikseli.
    z mojej strony to koniec w tym temacie. pozdrawiam wszystkich.
  • #85 2652951
    crazy_phisic
    VIP Zasłużony dla elektroda
    Posty: 2244
    Pomógł: 278
    Ocena: 130
    Sygnal wychodzący z filtrow podajesz zamiast na cd4051 na wejscia przetworników ADC w procku np. ATMEGA8. Potem cyklicznie szczytujesz wartości napięcia i na LCD... (nie brałem pod uwagę poziomów napięć za filtrami... prawdopodobnie potrzebna będzie korekcja wzmocnienia)
  • #86 2652965
    Mc'Cart
    Poziom 12  
    Posty: 114
    Pomógł: 1
    Ocena: 4
    Programuje (w zasadzie zaczynam) w bascomie, i jakie polecenia odpowieadą za pomiary napięć . . ?? Czy sam procek np 89C52 pomierzy napiecia . . . ?? Jakie znaki wysyłać na LCD . . . ??

Podsumowanie tematu

✨ Dyskusja dotyczy realizacji analizatora widma akustycznego w Bascomie dla mikrokontrolerów Atmel z wyświetlaczem LCD. Podstawowym problemem jest ograniczona moc obliczeniowa AVR, co utrudnia implementację szybkiej transformaty Fouriera (FFT) lub DFT w Bascomie, dlatego zalecane jest stosowanie asemblera lub C dla efektywności. Proponowane metody obejmują próbkowanie sygnału z częstotliwością co najmniej dwukrotnie większą niż pasmo sygnału, zbieranie próbek (np. 32 lub 128) i obliczanie widma za pomocą FFT lub algorytmu Goertzela. Wyniki widma można wyświetlać na graficznym LCD lub diodach LED, jednak wyświetlacze graficzne bez sterownika (np. SHARP LM64P728 640x480) wymagają bardzo dużej przepustowości i pamięci RAM, co przekracza możliwości pojedynczego AVR. Rozwiązaniem może być zastosowanie dwóch mikrokontrolerów – jeden do obliczeń, drugi do wyświetlania – jednak wymaga to zaawansowanej synchronizacji i szybkiej pamięci zewnętrznej. W Bascomie brak natywnego wsparcia dla wyświetlaczy graficznych bez sterownika, co wymusza ręczne programowanie obsługi pikseli i czcionek. Dyskutowano także o problemach z programowaniem mikrokontrolerów ATTiny2313 za pomocą prostych programatorów, gdzie istotne są poprawne połączenia, ekranowanie kabli, odpowiednie ustawienia portu LPT i stabilne zasilanie 5V. Wątki obejmowały także implementację funkcji DFT, zarządzanie tablicami sinusów i okienkowania (Blackman, Hamming, Hanning), obsługę wartości ujemnych w obliczeniach, oraz skalowanie i logarytmowanie wyników do wyświetlania na LED. Podkreślono, że Bascom jest dobrym narzędziem, jeśli zna się jego ograniczenia i potrafi optymalizować kod, ale dla bardziej zaawansowanych projektów lepszy jest C lub asembler. Wskazano na konieczność posiadania dokumentacji LCD i dobranie odpowiedniego wyświetlacza z wbudowanym sterownikiem dla łatwiejszej obsługi.
Wygenerowane przez model językowy.
REKLAMA