Elektroda.pl
Elektroda.pl
X
Metal Work Pneumatic
Proszę, dodaj wyjątek www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Mikroprocesorowy sterownik gitarowy

marcomarecki 25 Lip 2014 18:08 2142 16
  • #1 25 Lip 2014 18:08
    marcomarecki
    Poziom 10  

    Witam.
    Po pierwsze nie wiem czy piszę w dobrym dziale, jednak temat według mnie mógł by być jeszcze w kilku innych działach i też by był odpowiedni.

    Chciałbym zbudować sterownik gitarowy który by posiadał 10 pętli do podłączenia efektów gitarowych.
    Zdjęcie poglądowe zamieszczam żeby łatwiej mi było wytłumaczyć o co mi chodzi.

    Mikroprocesorowy sterownik gitarowy

    Obsługa:
    Uruchamiamy sterownik
    Do dyspozycji mamy:
    - trzy banki: 1-świeci dioda X, 2-świeci dioda Y, 3-świecą obie diody - zmiana banku następuje przez wciśnięcie przycisku UP lub DOWN
    - po 8 presetów sygnalizowanych diodą 1-8 w każdym banku, czyli razem 24 presety, wybierane przyciskami 1-8
    - 14 przekaźników A-N -stan NC sygnalizowany diodą A-N
    - przycisk MUTE - stan aktywny sygnalizowany diodą mute przekaźnik stan NC
    Chodzi o to że w danej chwili możemy włączyć tylko jeden preset 1-8 z jednego z banków.
    Co to jest preset? Jest to ustawienie stanu NO lub NC przekażnika(ów). Przy czym stan NC przynajmniej jednego z przekaźników od A do N ale przekaźników w stanie NC może być kilka a nawet wszystkie. Aktywne przekaźniki sygnalizowane są odpowiednią diodą LED od A do N.
    Wyjątkiem jest tylko przycisk, przekaźnik, dioda MUTE, gdzie aktywacja -dezaktywacja następuje bez względu na pozostałe ustawienia banków i presetów.
    Tyle jeśli chodzi o obsługę.
    Programowanie:
    Tryb edycji następuje po wciśnięciu przycisku mute dłużej niż 3 sekundy.
    Wtedy dioda Mute miga.
    Edytowany preset nie musi jakoś być sygnalizowany, wystarczy że będzie swieciła odpowiednia dioda presetu i banku. Naturalnie możemy zmieniać edytowane presety przyciskami 1-8. Odpowiedni bank musi być wybrany przed edycją.
    Edycja presetu
    Po wciśnięciu przycisku mute dłużej niż 3 sekundy wchodzimy w tryb edycji.
    Wybieramy preset do edycji poprzez wciśnięcie odpowiedniego przyciski 1-8
    Kursor ustawia się na pierwszym przekaźniku czyli miga dioda A ustawiamy stan NO przyciskiem DOWN swieci dioda Y lub ustawiamy stan NC świeci dioda X przekaźnika A.
    Po wciśnięciu przycisku UP lub DOWN następuje automatyczne przesunięcie o jeden przekaźnik i ustawienie stanu kolejnego przekaźnika. Edycję możemy zakończyć w dowolnym momencie po przez wciśnięcie przycisku EDIT ale tylko przy pomocy tego przycisku.
    Wyjście z edycji może zostać zasygnalizowane np poprzez potrójne błyśniecie diod 1-8.
    Po wyłączeniu urządzenia wszystkie ustawienia pozostają w pamięci.
    Dobrze aby po włączeniu urządzenia domyślnie ustawiał się ostatnio używany preset.

    Moje pytanie brzmi:
    Czy ktoś z forum zechciałby napisać wsad i pomógł dokonać wyboru odpowiedniego mikroprocesora.

    Jestem elektronikiem amatorem. Mam za sobą wiele konstrukcji, większość ma zastosowanie w sprzęcie gitarowym, jednak z mikroprocesorami zetknąłem się nie dawno. Nie znam żadnego języka programowania choć próbuje się nauczyć ale brakuje czasu, a informacji jest tak dużo że nie potrafię tego ogarnąć.
    Mam kupiony programator USBASP i bardzo proste programiki pisałem na Atmega8.
    Ale jeśli chodzi o sterownik to nawet nie wiem jak to ugryźć.

    Jeśli znalazła by się osoba-osoby które zechciałby napisać kod wsadu tutaj na forum byłbym wdzięczny. Sam jestem w stanie prowadzić skrupulatnie dokumentację z budowy urządzenia i w miarę realizacji publikować poczynania na tymże forum.
    Rozważałem też budowę całkowicie analogową, ale mikroprocesor znacznie uprości budowę i ograniczy ilość elementów.
    Projekt mógłby być dowolnie wykorzystywany, modyfikowany i rozpowszechniany na forum.
    Wiem że nie jeden gitarzysta-elektronik byłby zainteresowany budową urządzenia.
    Pozdrawiam Marek M.

    0 16
  • Metal Work Pneumatic
  • #2 25 Lip 2014 19:30
    Kuniarz
    Moderator Projektowanie

    Może jednak spróbujesz sam to zbudować i napisać soft, to nie będzie skomplikowane. Jeśli chodzi o mikrokontroler, to zapewne dało by się to zrobić na Atmega8, ale proponuję mieć zapas i wziąć np. Atmega 32.
    Jeśli wyrazisz chęć i trochę zapału, to chętnie podsunę kilka pomysłów jak to zrealizować. Zacznij od schematu, np. w EAGLE.

    Wchodzisz w to ? :)

    0
  • Metal Work Pneumatic
  • #3 26 Lip 2014 11:01
    marcomarecki
    Poziom 10  

    Witam
    Oczywiście że wchodzę. Cieszę się że chciałbyś udzielić pomocy.

    Wiem że trzeba zacząć od schematów. Z Eagle też nie mam problemów.
    Przejdźmy do konkretów
    Kuniarz dlaczego Atmega32? Przecież Atmega 16 ma takie same wyprowadzenia.
    Z tego co wyczytałem to różni się pojemnością pamięci. Czy z tego powodu wybór padł by na Atmega32?

    I drugie pytanie
    Wyjść/wejść i tak w µC jest niewystarczająca ilość żeby podłączyć wszystko bezpośrednio. Dlatego -tak myślę- Przyciski i LEDy trzeba połączyć multipleksowo.
    Czy dobrze rozumuję?

    Dodano po 2 [minuty]:

    Jak bym miał te informacje, to zaczął bym już coś rysować

    0
  • #4 26 Lip 2014 17:31
    emarcus
    Poziom 35  

    marcomarecki napisał:
    Witam
    ...... dlaczego Atmega32? Przecież Atmega 16 ma takie same wyprowadzenia.
    Z tego co wyczytałem to różni się pojemnością pamięci. Czy z tego powodu wybór padł by na Atmega32?

    I drugie pytanie
    Wyjść/wejść i tak w uC jest niewystarczająca ilość żeby podłączyć wszystko bezpośrednio. Dlatego -tak myślę- Przyciski i LEDy trzeba połączyć multipleksowo.
    Czy dobrze rozumuję?

    Dodano po 2 [minuty]:

    Jak bym miał te informacje, to zaczął bym już coś rysować


    Oczywiście, Mega 16 na ten projekt jest wystarczający...
    Nawet "na siłę" można go zrealizowac na Mega8, ale wymagałoby to trochę optymalizacji i nieco innego podejścia do projektu...
    \
    Popatrz, wszystkie przyciski możesz skonfigurowac w keypad (wystarczy 3x4; 0÷9 oraz *, # - tak jak telefon) co w zasadzie zajmie jeden (cały) port, za to masz nie zliczoną ilośc możliwych informacji wejściowych.
    Zamiast załączania diod sygnalizacyjnych możesz wszystkie potrzebne i nie potrzebne informacje wyświetlic na LCD display (dowolnej wielkości)- co zajmie nastęny, choc nie cały port (6 wyjśc).
    Dalej, sprawa wymyślnych banków 'preset'; całośc w efekcie sprowadza się do wybrania jednego z 24 przygotowanych/(wybranych) kombinacji załączeń przekażników (1 lub kilka z 14). Możesz przecież wybrac odpowiednią kombinację bezpośrednio na keypad. Prosta obsługa KBD ograniczałaby wprowadzenie w tym wypadku "nie legalnego" numeru powyżej 24.
    Jeżeli użyjesz processor M16 to masz do dyspozycji dwa pozostałe pełne porty po 8 bit kazdy (16 wyjśc). Dla przekaźników potrzebujesz 14 co pozwoli na bezkolizyjne jednoczesne załączenie dowolnie wybranych przekaźników. Ponadto pozostaje ci dodatkowo 2 wolne wyjścia na porcie obsługującym LCD, które możesz wykorzystac w dowolny sposób.

    Podobnie możesz przeanalizowac możliwośc zastosowania Mega8. Ponieważ dysponujesz tu mniejszą ilością portów, zatem wymagałoby to poświęcenia więcej uwagi na konfigurację i podłaczenie peryferiów; (nie wiem czy to jest warte czasu!!!).
    Ponieważ port C jest praktycznie tylko 6 bit, zatem arbitralnie zachęca na podłączenie LCD.
    Pozostałe dwa pełne porty 8-bitowe możesz skonfigurowac: jeden do obsługi keypad (standard), a drugi do podłączenia 14 (!) przekaźników.
    Najwięcej uwagi wymałaby optymalizacja konfiguracji diagramu. Ośmio-bitowy port daje możliwośc podłączenia 56 peryferiów [n * (n-1)] bez powtórzeń, w systemie 'charlieplexing'. Ty potrzebujesz wykorzystac tylko 14. Port daje 256 możliwych kombinacji stanów wyjściowych, z czego u ciebie wykorzystasz tylko 24; zatem jest teoretyczna szansa na wyszukanie możliwych podłączeń gdzie zaspokoisz jednoczesne załączenie więcej niż jeden przekażnik (powtórzenia). Wymagana jest znana lista wszystkich 24 presets, gdzie w odróżnieniu dla M16 taka optymalizacja nie jest potrzebna.
    Niemniej jednak lista presets wymagana będzie dla utworzenia tabeli dla stanów portów wyjściowych.

    e marcus

    0
  • #5 27 Lip 2014 12:50
    Kuniarz
    Moderator Projektowanie

    Może być Atmega 16, po prostu z przyzwyczajenia używam często A32... LEDy przy przekaźnikach podłączyłbym na jednej linii z tranzystorem sterującym przekaźnikiem. Co do przycisków - zależy jak się w programowaniu czujesz : soft jest prostszy, jeśli masz podpięty każdy przycisk i każdą diodę do oddzielnego pinu (Atmega32 ma ich wystarczająco). Bardziej elegancko jest dać przyciski w matrycy, ale trochę soft się komplikuje.

    Proponuję zacząć schemat od :
    - mikrokontroler
    - układ resetu
    - kondensatory filtrujące zasilanie
    - zasilacz (wystarczy 7805)
    - przekaźniki dałbym przez ULN2803
    - przyciski bezpośrednio
    - LEDy związane z przekaźnikami równolegle do wejść ULN'a
    - przekaźniki na 12V

    ... tak teraz policzyłem i proponuję jednak przyciski dać w matrycy, a diodki przy przyciskach przez rejestr 74HC164

    Wszystko co potrzebujesz znajdziesz w notach w/w układów. Wrzuć schemat jak już coś naskrobiesz :)

    0
  • #6 28 Lip 2014 23:10
    marcomarecki
    Poziom 10  

    Witam Panowie.
    Dzisiaj troszeczkę posiedziałem i naszkicowałem coś takiego.
    Wiem że nie mam narysowanego filtrowania zasilania, czyt. w ogóle go nie ma przy procku. Generalnie zależy mi byście napisali czy ledy, switche i przekaźniki dobrze podpięte. Jeśli będzie ok, natychmiast uzupełniam schemat.

    Mikroprocesorowy sterownik gitarowy

    Emarcus.
    Urządzenie ma być obsługiwane nogą, a zmiana programu musi nastąpić błyskawicznie jednym ruchem. Nie mogę sobie pozwolić na wybieranie programu np. nr. 23 itd. To ma być jedno kliknięcie. Banki to dodatkowy tylko bajer. W ostateczności wystarczy tylko 8 programów. Ale jeśli by się dało to można zrobić, i to tylko kwestia softu.
    Wyświetlacz fajna sprawa i kolejne uproszczenie układu - elektronicznie, ale nie byłbym w stanie dojrzeć co się "tam na podłodze" wyświetla.
    Firmowe urządzenia to coś takiego:

    Mikroprocesorowy sterownik gitarowy

    Oczywiście przekaźniki dam przez ULN2803.
    Kolejne uproszczenie.
    Jeśli chodzi o ledy sygnalizujące stan przekaźników to chciałbym żeby migały przy edycji presetu więc dobrze by było jeśli były by sterowane z µC.

    0
  • #7 29 Lip 2014 06:43
    Kuniarz
    Moderator Projektowanie

    Jak dasz ULN'y do przekaźników, to odpadną rezystory, tranzystory i diody przy przekaźnikach - to spore uproszczenie.
    Daj złącze programowania (Kanda, lub 6pin).
    Reset podciągnij do VCC przez rezystor 47k.
    Zaczyna to wyglądać dobrze. Technologia SMD czy przewlekane ? Podpięcie portów pod dane funkcje można jeszcze pomodyfikować przy projektowaniu płytki. Czasem łatwiej remapować port, niż prowadzić ścieżkę "kanałami" ;-)

    0
  • #8 30 Lip 2014 00:24
    marcomarecki
    Poziom 10  

    Tyle udało mi się dzisiaj zrobić.


    Mikroprocesorowy sterownik gitarowy

    Czy zasilanie przekaźników i procka może być to samo czy lepiej osobno procek i osobno przekaźniki + ULNy

    0
  • #9 30 Lip 2014 06:18
    Kuniarz
    Moderator Projektowanie

    marcomarecki napisał:
    Czy zasilanie przekaźników i procka może być to samo czy lepiej osobno procek i osobno przekaźniki + ULNy

    Lepiej osobno i lepiej z 12V, nie będziesz przekaźnikami męczył stabilizatora, który zasila procka (dołóż do schematu np. na 7805).
    Jakieś próby szkicu płytki już robiłeś ? Chcesz dać LEDy na kabelkach, czy zrobisz na tyle dużą płytkę, żeby diody wlutować w PCB w odpowiednich miejscach ?

    0
  • #10 30 Lip 2014 07:38
    rrytel
    Poziom 14  

    dla zaoszczędzenia wyjść można diody sygnalizujące włączenie przekaźników umieścić równolegle do tych przekaźników (A-N) wtedy mamy jedynie 11 diód a nie 25.

    0
  • #11 30 Lip 2014 10:55
    marcomarecki
    Poziom 10  

    Do Rrytel

    Cytat:

    Jeśli chodzi o ledy sygnalizujące stan przekaźników to chciałbym żeby migały przy edycji presetu więc dobrze by było jeśli były by sterowane z µC.


    Płytek jeszcze nie projektowałem. Na wszystko brakuje czasu, ale tak już musi być.
    Niebawem biorę się za płytki bo będzie ich kilka.
    Pozdrawiam

    0
  • #13 30 Lip 2014 17:29
    marcomarecki
    Poziom 10  

    Chciałbym na jednej :D
    Tak jak pisałem wcześniej urządzenie obsługiwane będzie nogą tzn butem, więc odstępy poszczególnych switchy powinny wynosić ok 10cm, żeby przypadkiem nie wcisnąć 2 przycisków (programów) w tym samym czasie bądź też przypadkowo.
    Więc sterownik będzie miał ok 80-100cm szerokości. Do tego dwa rzędy gniazd jack których jeszcze nie ma na schemacie.
    Całość dość spora ale wąska i nie wysoka.
    Nie mam możliwości zrobienia pojedynczej płytki tak dużych rozmiarów - ale chciałbym!
    Wszystkie elementy będą na płytkach, połączenia poszczególnych płytek tylko taśmami. Bez plątaniny kabli.

    0
  • #14 30 Lip 2014 23:02
    emarcus
    Poziom 35  

    marcomarecki napisał:
    Chciałbym na jednej :D
    Tak jak pisałem wcześniej urządzenie obsługiwane będzie nogą tzn butem, więc odstępy poszczególnych switchy powinny wynosić ok 10cm, żeby przypadkiem nie wcisnąć 2 przycisków (programów) w tym samym czasie bądź też przypadkowo.


    Nie masz chyba zamiary montowac tych 'switches bezpośrednio na płytce; są to (a przynajmniej powinny byc) 'foot-switches' montowane do górnej obudowy i łączone do płytki przewodami ułożonymi w 'fachowym porządu' (wiązki) a nie w formie plątaniny(!).....
    Poza tym przedstawiony w ostatniej versji diagram jest zupełnie błędny.
    Schemat projektujesz do w pełni dopracowanego konceptu razem/równolegle z tworzeniem programu. Jak widac te 2 rzeczy są oddzielne i na zupełnie różnych płaszczyznach.
    Po pierwsze; wyjścia do obwodów sterowania (o ile możliwe) winny leżec na tymsamym porcie lub dwóch (nie mieszanych) - łatwiej je adresowac w programie jako grupę i w przypadku wpisów ustawień do pamięci np. eeprom, redukuje proces do odczytu stanu wyjścia portu/ów i tą wartośc wpisac do pamięci.
    Po drugie przyciski skonfigurowane w stylu 'matrix', podczas scanowania wykorzystują cały port. Nie jest praktyczne aby na tym porcie znajdowały się inne peryferia ( port B.0 obsuguje jeden z przekaźników (8)). Dla wygody i ewentualnych poprawek przeznaczyłbym cały port na obsługę keypad (4x4) niezależnie od tego że w tej fazie projektu wykorzystujesz na razie tylko 11 switches. Latwiej jest te nie wykorzystane (switches) pominąc niż przerabiac cały projekt albo gotową płytkę.
    Trzecie(!) Cały array 25 diod LED w formie matrix; jest (bez urazy!) pobawiony sensu.
    Kto zechce pisac karkołomny program na multiplexing tych diod, tak aby był zsynchronizowany z przedstawieniem odpowiednich stanów portów albo data z innej części programu, gdy tymczasem jest to zupełnie zbędne, bo diody mogą byc podłączone bezpośrednio do wyjśc sterujących rzekaźnikami lub odpowiednich portów processora na które wystawiasz odpowiedni stan jeżeli taka sygnalizacja jest konieczna. Nie brakuje ci przecież portów.
    Podobnie port wyjściowy dla przekaźnika 'MUTE' nie powinien 'leżec' w grupie z pozostałymi przekaźnikami tego samego portu; (nie jest programowalny jak pozostałe, więc winien byc 'odseparowany').

    To tyle co zauważyłem.

    e marcus

    0
  • #15 31 Lip 2014 06:26
    Kuniarz
    Moderator Projektowanie

    emarcus napisał:
    Nie jest praktyczne aby na tym porcie znajdowały się inne peryferia

    Po to procki mają (prawie) dowolnie konfigurowalne działanie pinów, żeby można było sobie ustawiać jak będzie wygodnie. Nie widzę sensownego uzasadnienia.
    emarcus napisał:
    bo diody mogą byc podłączone bezpośrednio do wyjśc sterujących rzekaźnikami

    Nie mogą, czytaj posty.
    emarcus napisał:
    Nie brakuje ci przecież portów.

    Wbrew pozorom brakuje.

    emarcus napisał:
    Podobnie port wyjściowy dla przekaźnika 'MUTE' nie powinien 'leżec' w grupie z pozostałymi przekaźnikami tego samego portu; (nie jest programowalny jak pozostałe, więc winien byc 'odseparowany').

    Z całym szacunkiem, ale bzdury Kolego piszesz...

    0
  • #16 31 Lip 2014 19:55
    marcomarecki
    Poziom 10  

    Cytat:

    Nie masz chyba zamiary montowac tych 'switches bezpośrednio na płytce; są to (a przynajmniej powinny byc) 'foot-switches' montowane do górnej obudowy i łączone do płytki przewodami ułożonymi w 'fachowym porządu' (wiązki) a nie w formie plątaniny(!).....


    Zobaczę jeszcze jak będzie mi szło z płytkami. Nie ukrywam, że mimo wszystko będę się starał aby switche umieścić na płytkach. Przy montażu w całość świetna sprawa. Przylutowane kabelki docelowo mogły by być. Ja jednak wole sobie zadać trochę trudu i umieścić wszystko na PCB.

    Dla potwierdzenia, przesyłam kilka zdjęć z moich ostatnich projektów. Są to kopie znanych - w świecie gitarowym - efektów. Projekty płytek moje własne.
    Więc nie rozumiem czemu nie można wlutować tych switch?

    Mikroprocesorowy sterownik gitarowy Mikroprocesorowy sterownik gitarowy Mikroprocesorowy sterownik gitarowy

    A tutaj switch w wersji do PCB

    Mikroprocesorowy sterownik gitarowy

    Cytat:
    Schemat projektujesz do w pełni dopracowanego konceptu


    Mojego projektu nie nazywał bym "konceptem" bo to nic oryginalnego, nie jest to wyszukany pomysł. Nie wymyśliłem nic nadzwyczajnego. Urządzenie ma mieć takie same funkcje jak "firmówki", tylko moje bardziej uproszczone. Sam jestem gitarzystą i wiem jak bym sterownik chciał obsługiwać, jak ma wyglądać i jakie mam mieć funkcje. Od Was, Drodzy Forumowicze potrzebuję pomocy odnośnie programowania (bo to mój pierwszy taki projekt) i zaprojektowania urządzenia.

    I proszę o wskazówki.
    Jak mam napisać program na µC skoro jeszcze na 100% nie wiem czy akurat porty w takiej konfiguracji będą wykorzystane.

    Ja to widzę tak:
    1. Rysuję schemat (w miarę ostateczna wersja)
    2.Projektuje płytki (ewentualna korekcja schematu, zamiana portów etc.)
    3. Piszemy wsad
    4. Składamy wszystko na płytce stykowej (działa -super, nie działa -modyfikujemy)
    5. Trawimy płytki
    6. Składamy wszystko
    7. Testujemy i pijemy... herbatkę :D

    0
  • #17 01 Sie 2014 19:14
    Kuniarz
    Moderator Projektowanie

    marcomarecki napisał:
    Jak mam napisać program na µC skoro jeszcze na 100% nie wiem czy akurat porty w takiej konfiguracji będą wykorzystane.

    Zwyczajnie, tak się to robi. Układasz elementy mniej więcej na płytce, łączysz na schemacie porty tak, żeby było wygodnie ścieżki prowadzić. Sprawdzasz, czy nie podłączyłeś czegoś nie tak (np. jakąś linię pod reset, albo kwarc) i gotowe.
    Z Twojej listy pominąłbym punkt 4, ale jak Ci się chce, to zmontuj najpierw.

    0
  Szukaj w 5mln produktów