logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

Schemat i kod w Bascomie dla kolorofonu z ATMega8

heyka 29 Lis 2005 19:16 3539 7
REKLAMA
  • #1 2038168
    heyka
    Poziom 17  
    Posty: 412
    Ocena: 56
    poszukuje jakiegos schematu kolorofonu z ATMega8 oraz kodu programu do tego procesorka w Bascomie
  • REKLAMA
  • #2 2039570
    shg
    Poziom 35  
    Posty: 2289
    Pomógł: 339
    Ocena: 135
    W bascomie, to raczej ciężko będzie.
    Jak rozumiem, chcesz zrobić jak najwięcej rzeczy programowo.
    A więc.
    Część analogowa i tak musi pozostać i będzie skłądała się z przedwzmacniacza i filtru antyaliasingowego.

    Wyjście filtru podpięte do wejścia przetwornika A/C ATmegi, no i dalej próbkowanie. Częstotliwość próbkowania powinna być dość duża, aby prawidłowo przetwarzać wysokie tony. Przydało by się z 16kHz, ale do tego trzeba "przetaktować" przetwornik. U mnie chodzi na 250kHz (max. to 200kHz) i nie ma problemów. Rozdzielczość 8 bit w zupełności wystarczy.
    Dalej trzeba przepuścić spróbkowany sygnał przez filtry cyfrowe (to już programowo) filtrów musi być tyle, ile kanałów (kolorów). I tu pojawia się problem, bo nie wiem, czy bascom sobie z tym poradzi, no ale zawsze można kawałek kodu w asm wkleić :] Można użyć np. filtrów IIR.
    Za filtrami detektor obwiedni.
    Potem dość ważna część - różniczkowanie obwiedni. Jest to konieczne, jeżeli chcesz, żeby kolorofon reagował tylko na "uderzenia", a nie na ciągły dźwięk.
    Dalej - jakiś blok decyzyjny - albo wykrywanie zera pochodnej obwiedni, czyli zapalenie lampy w momencie, gdy dźwięk będzie najsilniejszy
    Albo wykrywanie przekroczenia określonego progu przez pochodną, w tym wypadku kolorofon będzie reagował wyłącznie na mocne "uderzenia", natomiast nie zapali lampy, jeżeli głośność będzie narastała powoli.
    Potem programowe przerzutniki monostabilne, które będą wyznaczały czas świecenia lamp
    No i dalej już tylko wyjścia proca, układ wykonawczy na triakach sterowanych przez transoptory

    Jak widać to wcale nie takie proste. I z gotowcem się jeszcze nie spotkałem, co nie znaczy, że się nie da. Zresztą powiedzmy część takiego urządzenia już poskładałem, służy wprawdzie zupełnie do czego innego, ale i kolorofon da się zrobić :]
  • REKLAMA
  • #3 2039924
    heyka
    Poziom 17  
    Posty: 412
    Ocena: 56
    Śliczne dzięki, ale z tego wynika , że nie jestem jeszcze na takim etapie żeby sobie z tym poradzić :cry:, musze jeszcze więc sie poduczyć


    pozdrawiam
  • REKLAMA
  • #4 2040879
    shg
    Poziom 35  
    Posty: 2289
    Pomógł: 339
    Ocena: 135
    Nie, no z gotowca złożysz, tylko właśnie cały problem polega na tym, żeby gotowca mieć.

    Uruchamiać takiego układu praktycznie wcale nie trzeba, znaczy żadnej regulacji itp. Jak złożysz to działa dobrze, albo wcale.

    Znalazłem aż jeden schemat:
    http://wolfstone.halloweenhost.com/TechBase/clomak_MakingColorOrgan.html
    Tylko, że nie na ATmega, a na PICu.
    Jest kod żródłowy, no ale w asm, więc troche zabawy z przeniesieniem na AVR by było.
    Jeżeli natomiast chcesz to tylko poskładać, to programator do PICa jest dość prosty.

    Jest to zrobione mniej więcej tak, jak mówiłem, brak natomiast filtru antyaliasingowego (a przynajmniej najprostszy filtr RC by się przydał), ale z tego co widzę, to tam jest dość wysoka częstotliwość próbkowania.
    No i decyzja o zapaleniu lampy jest podejmwana na podstawie poziomu sygnału, a próg zadziałania jest chyba dobierany automatycznie. No i to tyle z pobieżnej analizy kodu.
  • #5 2040982
    heyka
    Poziom 17  
    Posty: 412
    Ocena: 56
    czy naprawde to bez asemblera i bez c nie da sie da sie programowac procesorkow na wysokim poziomie, wszyscy radzą te języki, ale na pierwszy rzut oka sa one o wiele btrudniejsze niz bascom, jezeli chodzi o bascom to kupilem 1 książkę, zrobiłem samodzielnie układ testowy do prób i po kilku dniach napisałem aplikację, zegara( działa), węża świetlnego(dziła) kończe miernik częstotliwości i raczej bedzie działa, natomiast jak probowalem cos napisac w c to od razu na początek makefile czy cos takiego nie zadziałało, zresztą nie wiem jakiego oprogramowania najlepiej uzyć do c , a o asemblrze to nawet nie bede pisał, a bascom jest prosty, posiada wszystko w budowane kompilator, programator i symulator, ale coś czuje że ma jednak spore ograniczenia i niewiele jest materialów na jego temat, jak sądzisz od czego zacząć c?
    jeżeli tak to jaki program itd?

    dzięki za informacje

    pozdrawiam
  • #6 2041843
    shg
    Poziom 35  
    Posty: 2289
    Pomógł: 339
    Ocena: 135
    No właśnie czy zaczynać od C, czy asm, to jest problem. Wszystko zależy od zainteresowań, jeżeli to ma być wyciskanie siódmych potów z procka, czyli np. taki kolorofon, czy jakieś DSP (a co! na ATmega też się da :] ) to zdecydowanie asm, który wbrew pozorom nie jest wcale taki skomplikowany.
    C z kolei nadaje się doskonale do aparatury kontrolno - pomiarowej itp.
    Oba te języki wymagają więcej wysiłku niż taki bascom, w obu trzeba dobrze opanować architekturę mikrokontrolera, ale to potem procentuje :]

    Bascom z kolei jest dobry do prostych aplikacji, tam gdzie wydajność nie ma większego znaczenia - program można napisać szybko i bezboleśnie.

    Asembler ma jeszcze taka zaletę, że jak poznasz jeden, to potem nauczenie się kolejnego to już pikuś :]

    Do asm - AVR Studio, darmowe do pobrania ze strony Atmela
    Do C - AVR-GCC z pakietu WinAVR, też darmowy.

    A tak BTW, to asembler nie jest jezykiem wsokiego poziomu. :P
  • REKLAMA
  • #7 2043201
    heyka
    Poziom 17  
    Posty: 412
    Ocena: 56
    pisałem, że programowanie na wysokim poziomie tz, nie chodziło mi o to że asembler jest językiem wysokiego pozimu, tylko o to że programowanie a raczej programista posługyjący sie asemblerem musi być na wysokim pozimie wiedzy, a czy te programy mają np symulacje programowe, a może poleciłbys jakąś literaturę, od czego zacząć np C?

    dzieki wogóle za odpowiedzi

    pozdrawiam
  • #8 2044099
    shg
    Poziom 35  
    Posty: 2289
    Pomógł: 339
    Ocena: 135
    AVR Studio ma bardzo dobry debuger. Niestety nie emuluje żadnych układów zewnętrznych typu LCD, czy terminal.

    Do WinAVR jest chyba standardowy gdb (z pakietu gnu), ale osobiście nie próbowałem nawet uruchamiać :]
    Pliki wygenerowane przez AVR-GCC (w formacie elf / dwarf-2) można bez problemu wczytać w debugerze z AVR Studio.

    Jeżeli chcesz się uczyć C, to jakakolwiek książka traktująca ogólnie o tym języku powinna być dobra.
    A zarówno do asm i do C wymagana jest znajomość architektury, czyli kierunek: nota katalogowa.

    Jest też dostępna książka "Mikrokontrolery AVR w praktyce", ale co w niej jest to nie powiem, bo nie widziałem, ale z opisów na forum wynika, że są to przetłumaczone na polski noty katalogowe, czyli w sumie opis architektury.

    No a w ogóle to temat jest o kolorofonie :] A wady i zalety jezyków programowania w przyklejonym w tym dziale temacie:
    https://www.elektroda.pl/rtvforum/topic106833.html

Podsumowanie tematu

✨ Dyskusja dotyczy poszukiwania schematu i kodu w Bascomie dla kolorofonu opartego na mikrokontrolerze ATMega8. Wskazano, że realizacja kolorofonu wymaga części analogowej, w tym przedwzmacniacza i filtru antyaliasingowego, a następnie próbkowania sygnału przez przetwornik A/C mikrokontrolera z częstotliwością około 16 kHz lub wyższą. Próbkowany sygnał powinien być przetwarzany cyfrowo przez filtry IIR, po których następuje detekcja obwiedni i różniczkowanie sygnału, co pozwala na reakcję kolorofonu na impulsy dźwiękowe. Wskazano, że Bascom może mieć ograniczenia w realizacji zaawansowanych filtrów cyfrowych, dlatego sugerowano użycie asemblera do krytycznych fragmentów kodu. Podano przykład schematu kolorofonu na mikrokontrolerze PIC z kodem w asemblerze, który wymagałby przeniesienia na AVR. Poruszono również temat wyboru języka programowania: Bascom jest prosty i szybki do nauki, ale ma ograniczenia wydajnościowe, natomiast asembler i C oferują większe możliwości, choć wymagają lepszej znajomości architektury mikrokontrolera. Do nauki asemblera polecono AVR Studio, a do C pakiet WinAVR z AVR-GCC. Podkreślono, że znajomość not katalogowych i architektury jest kluczowa do efektywnego programowania mikrokontrolerów.
Wygenerowane przez model językowy.
REKLAMA