Pesquisar este blog

Mostrando postagens com marcador loop switcher. Mostrar todas as postagens
Mostrando postagens com marcador loop switcher. Mostrar todas as postagens

sábado, 31 de agosto de 2013

Octoswitch

OCTOSWITCH - CHAVEADOR DE PEDAIS

Dado o know-how que obtive ao desenvolver o hexaswitch, consegui fazer um chaveador mais simples, usando um PIC com menos pinos. Essa versão não permite que se escolha bancos de presets, assim ele pode selecionar e armazenar apenas 8 presets (patches) de 8 loops, que ficam gravados na memória EEPROM de forma a não perder as configurações quando o equipamento for desligado.

Como o 16F628 possui apenas 16 portas de entrada/saída, e destes 8 são usados para acionar os relés/chaves dos loops e respectivos leds, sobraram 8 portas pra acionar um display e ler as chaves de seleção e programação. Aí começam os malabarismos pra aproveitar ao máximo as portas que sobraram. Como são 8 chaves (momentâneas) para selecionar os presets e mais duas chaves de controle (programa e bypass) totalizando 10 chaves. A princípio eu pensei em fazer uma matriz de chaves, mas isso consumiria mais portas do que desejava pois para acionar 8 leds também deveria ter um sistema de matriz ou multiplexação. Optei por usar um display de 7 segmentos para mostrar o número do preset selecionado e um decodificador BCD para 7 segmentos que é o ci CD4511, que usa 4 entradas em binário. Assim, tirando as 4 portas para acionar o 4511, sobraram 4 portas pra ler as chaves.
Havia a opção de usar outro ci que seria um codificador de 16 entradas para 4 saídas binárias. Mas como eu não queria usar mais integrados, resolvi usar uma técnica de codificação usando simples diodos, o que funcionou nas simulações. Em tese 4 entradas codificadas poderiam distinguir até 16 chaves. Mas como 10 eram suficientes e isso simplifica o layout, deixo sobrando 6 possibilidades, para futuras expansões.

O esquema é o abaixo:

E o firmware para o 16F628(A):

:10000000712883178001840AFF3E031D02286C2893
:1000100083161C141A0883169B0A6C280301831686
:100020009A001C1555309D00AA309D009C149C1808
:1000300017281C119B0A6C28A301A200FF30A207FD
:10004000031CA307031C6C280330A100DF302A2007
:100050001E28A101E83EA000A109FC30031C3328A2
:10006000A00703183028A0076400A10F302820182B
:100070003928A01C3D2800003D280800A2000530BA
:10008000A80023082102031D47282208200204306B
:1000900003180130031902302805031DFF306C28B6
:1000A000A501A4011030A600210DA40DA50D220864
:1000B000A4022308031C230FA502031866282208A4
:1000C000A40723080318230FA5070310A00DA10DF3
:1000D000A60B542820086C28831303138312640092
:1000E00008008316F03085008601831207309F00D8
:1000F0002030840060300220A03084005030022084
:10010000203084003030012083167E309B00831223
:100110000820B80083167F309B0083120820B900A6
:100120006400E1300502031C9728B801B901E830EA
:10013000A0000330A1003908A30038083E20031DA9
:10014000A2289028B80A0319B90A83167E309B00AA
:10015000831238080F2083167F309B0083123908E2
:100160000F200130BA0064003A08013C031DC42886
:10017000013085000130BB003B0883169B008312D1
:100180000820BD003D08860064003A08023C031DBB
:10019000D528023085000230BB003B0883169B0047
:1001A00083120820BD003D08860064003A08033C25
:1001B000031DE628033085000330BB003B0883168F
:1001C0009B0083120820BD003D08860064003A08A9
:1001D000043C031DF728043085000430BB003B08B5
:1001E00083169B0083120820BD003D088600640032
:1001F0003A08053C031D0829053085000530BB0081
:100200003B0883169B0083120820BD003D08860032
:1002100064003A08063C031D1929063085000630A3
:10022000BB003B0883169B0083120820BD003D08DD
:10023000860064003A08073C031D2A290730850020
:100240000730BB003B0883169B0083120820BD00CB
:100250003D08860064003A08083C031D3B2908302D
:1002600085000830BB003B0883169B0083120820E2
:10027000BD003D08860064003A08093C031D412981
:10028000512964003A080A3C031D4F2964003C18B8
:100290004C2986013C144F293D0886003C10AD21B5
:1002A000B3288501AD2164003A08013C031D5C2997
:1002B0000130BD063D08860064003A08023C031D7B
:1002C00065290230BD063D08860064003A08033CFB
:1002D000031D6E290430BD063D08860064003A08FF
:1002E000043C031D77290830BD063D0886006400E4
:1002F0003A08053C031D80291030BD063D088600E4
:1003000064003A08063C031D89292030BD063D08DB
:10031000860064003A08073C031D92294030BD0660
:100320003D08860064003A08083C031D9B29803084
:10033000BD063D08860064003A08093C031DAC294F
:100340003B0883169B0083123D080F203B08850065
:100350003D088600BA01B32851290508BE00F030D7
:10036000BE053E08A000A1011030A200A30150204C
:10037000BE0064003E08013C031DC1290130BA00E3
:100380000A2A64003E08023C031DC9290230BA0053
:100390000A2A64003E08043C031DD1290330BA0038
:1003A0000A2A64003E08083C031DD9290430BA001B
:1003B0000A2A64003E08033C031DE1290530BA0007
:1003C0000A2A64003E08053C031DE9290630BA00EC
:1003D0000A2A64003E08093C031DF1290730BA00CF
:1003E0000A2A64003E08063C031DF9290830BA00B9
:1003F0000A2A64003E080C3C031D012A0930BA0099
:100400000A2A64003E080A3C031D092A0A30BA0081
:100410000A2ABA0164003A08003C0319132A013081
:0C042000A3002C301D2008006300142AEB
:02400E00103F61
:00000001FF

Aqui um rascunho do layout em placa 10x5cm:


A operação é simples. Ao ligar o chaveador, entra no preset 1. As chaves P1 a P8 selecionam os presets com os loops (são 8) acionados indicados pelos respectivos leds.  A chave BYPASS simplesmente desliga todos os loops (e leds) e mantém o preset atual. Ao apertar BYPASS novamente, volta ao preset que estava com os loops que estavam ativados.  Para programar os loops em cada preset, basta escolher primeiro o preset a ser configurado e apertar PROGRAM, que o display vai mostrar 0 (indicando que está em modo de programa) e as chaves P1 a P8 passam a ligar e desligar os loops (P1 para o loop 1 e assim por diante). O led do loop aceso indica se ele vai estar ativo ou não. Para sair do modo de programa, basta apertar a chave de PROGRAM novamente que o display volta a apresentar o número do preset que foi programado.
O Nevio do Handmades, montou esse chaveador e fez alguns vídeos bem instrutivos demonstrando o funcionamento:
https://www.youtube.com/watch?v=CEMsefys2do
http://www.youtube.com/watch?v=xtyX6BHv2Ro



domingo, 25 de agosto de 2013

Hexaswitch

Projeto Hexaswitch Handmades

Para inaugurar meu blog sobre projetos de áudio, microcontroladores e eletrônica em geral, escolhi esse chaveador de pedais de efeitos que foi desenvolvido a pedido e com a ajuda do pessoal do Fórum Handmades, do qual eu contribuí com a programação do firmware para o PIC 16F877(A) que iria controlar as chaves que iriam ativar ou desativar os pedais, bem como o layout da placa de controle.

A ideia inicial partiu de algumas unidades comerciais que faziam uso de dip switches para programar os presets (grupos de pedais) e era meio limitado em termos de número de presets e sem bancos de presets para aumentar as possibilidades de combinações dos pedais. Assim a melhor opção era usar um microcontrolador para poder controlar e armazenar os presets em memória não volátil (EEPROM). Desenhei então um esquema elétrico para servir de base para o projeto e o desenho final ficou assim:



Opcionalmente pode ser usado para o oscilador um cristal de 4MHz e os capacitores de 22pF auxiliares. Também pode ser usado tanto o 16F877 como  o 16F877A. Depois de várias versões de firmware sendo testados, chegou-se a seguinte versão:

:10000000712883178001840AFF3E031D02286C2893
:10001000031783168C010C1483120C0803178D0A26
:100020006C28030103178C0083168C010C155530C6
:100030008D00AA308D008C148C181C280C11831292
:100040008D0A6C28A301A200FF30A207031CA3079E
:10005000031C6C280330A100DF3030202428A101CC
:10006000E83EA000A109FC30031C3928A0070318B2
:100070003628A0076400A10F362820183F28A01CAE
:100080004328000043280800A2000530A8002308E8
:100090002102031D4D2822082002043003180130DC
:1000A000031902302805031DFF306C281030A8000A
:1000B000A101A001A70CA60C031C64282208A0071C
:1000C00023080318230FA107A10CA00CA50CA40C56
:1000D000A80B5A2824086C28831303138312640086
:1000E00008008316FF3085008601C0308700880134
:1000F0000330890006309F00203084006030831276
:100100008A010220A030840050308A010220103081
:10011000840060308A0101209030840060308A01C0
:1001200001208801C030870086010911BC01031736
:10013000FF308D0003138A010820B8000317FE303A
:100140008D0003138A010820B90064000508003CF3
:100150008A110A12031DAE28B801B901E830A000C7
:100160000330A1003908A30038088A0144208A110D
:100170000A12031DBD288A01A528B80A0319B90A65
:100180000317FF308D00031338088A01122003176C
:10019000FE308D00031339088A01122064008A1191
:1001A0000A128918DB280130A3002C308A01232091
:1001B0008A110A1208223C080F3C8A110A12031CF9
:1001C000FF288A110A12E82086008A110A12FF28E5
:1001D00000308A003C08EF3E03188A0A8200773418
:1001E0007C3439345E34793471346F347434063489
:1001F0001E34383454345C347334673450346400FF
:100200008A110A120918132964008A110A1209199D
:100210000D2909158A110A120E2909110130A300AE
:100220005E308A01232064008A110A12851A272968
:10023000FA308A012220BC0364003C08FF3C8A118A
:100240000A12031D2429BC018A110A12E521640047
:100250008A110A12071B3C29FA308A012220BC0AA3
:1002600064003C08103C8A110A12031D39290F3022
:10027000BC008A110A12E52164008A110A12051ACB
:100280004829FA308A012220BE018A110A12E5218A
:1002900064008A110A1285195529FA308A01222030
:1002A0000130BE008A110A12E52164008A110A1287
:1002B00005196229FA308A0122200230BE008A1113
:1002C0000A12E52164008A110A1285186F29FA3092
:1002D0008A0122200330BE008A110A12E52164003F
:1002E0008A110A1205187C29FA308A01222004306A
:1002F000BE008A110A12E52164008A110A12871BC6
:100300008929FA308A0122200530BE008A110A129A
:10031000E52164003E08003C8A110A12031D92295F
:100320000130870064003E08013C8A110A12031D57
:100330009B290230870064003E08023C8A110A12A1
:10034000031DA4290430870064003E08033C8A1181
:100350000A12031DAD290830870064003E08043CE2
:100360008A110A12031DB6291030870064003E0866
:10037000053C8A110A12031DBF29203087003C0862
:100380000F3C8A110A12031CE3298A110A12CC219C
:1003900086008A110A12E32901308A003C08D33E04
:1003A00003188A0A820077347C3439345E34793415
:1003B00071346F34743406341E34383454345C343D
:1003C0007334673450348A01CE283C08A600A70154
:1003D0001030A200A3018A015620BA002508BB00F4
:1003E0003A083E07BD003D0803178D0003138A013C
:1003F0000820BF0064003C08003C8A110A12031D5B
:10040000022ABF013F08880032308A0122200800FA
:1004100086173C080F3C8A110A12031C2D2A8A11E8
:100420000A12162286008A110A122D2A02308A0028
:100430003C081D3E03188A0A8200F734FC34B934A4
:10044000DE34F934F134EF34F43486349E34B83485
:10045000D434DC34F334E734D03464008A110A1223
:10046000051A432AFA308A01222064008A110A12EE
:100470003F1C3E2A3F108A110A123F2A3F143F18A0
:1004800008143F1C081064008A110A128519592AA1
:10049000FA308A01222064008A110A12BF1C542AF1
:1004A000BF108A110A12552ABF14BF188814BF1C26
:1004B000881064008A110A1205196F2AFA308A011D
:1004C000222064008A110A123F1D6A2A3F118A11F4
:1004D0000A126B2A3F153F1908153F1D08116400C9
:1004E0008A110A128518852AFA308A0122206400AE
:1004F0008A110A12BF1D802ABF118A110A12812A8D
:10050000BF15BF198815BF1D881164008A110A1212
:1005100005189B2AFA308A01222064008A110A12E7
:100520003F1E962A3F128A110A12972A3F163F1A37
:1005300008163F1E081264008A110A12871BB12A8E
:10054000FA308A01222064008A110A12BF1EAC2AE6
:10055000BF128A110A12AD2ABF16BF1A8816BF1E13
:10056000881264008A110A12851AC72AFA308A0191
:10057000222064008A110A123F1FC22A3F138A11E7
:100580000A12C32A3F173F1B08173F1F08136400B6
:100590008A110A12071BDD2AFA308A012220640020
:1005A0008A110A12BF1FD82ABF138A110A12D92A28
:1005B000BF17BF1B8817BF1F88133F088800640040
:1005C0008A110A128918162B0130A3005E308A01A5
:1005D00023203D0803178D0003133F088A011220D2
:1005E00086133C080F3C8A110A12031C152B8A1132
:1005F0000A12FE2286008A110A12152B03308A0085
:100600003C08053E03188A0A820077347C3439346A
:100610005E34793471346F34743406341E343834B3
:1006200054345C3473346734503408008A012D2A02
:0606300063008A01182B93
:02400E00313F40
:00000001FF

Essa sequência de códigos hexadecimais deve ser o texto de um arquivo com extensão .HEX para poder ser gravado num PIC 16F877(A). Eu utilizo um PICKIT2 da Microchip o que é um gravador bem prático e rápido, que trabalha pela porta USB, não necessitando de fonte de alimentação externa. Ele permite também que rapidamente sejam zeradas todas as posições da memória EEPROM, para evitar que inicialmente todos os presets iniciem com os loops de pedais todos acionados.

Em seguida consegui desenhar também um layout para a placa de controle:

Pra resumir, a operação é a seguinte:
- O chaveador pode armazenar até 90 presets de loops, organizados em 15 bancos de 6 presets cada. Cada preset pode fazer a combinação de até 8 loops ativados ou desativados. 
- Os bancos são nomeados por letras: A, b, C, d, E, F, g, H, I, J, L, n, o, p, q, r.   Sendo que o banco A apresenta todos os loops desativados para simular o bypass. Qualquer preset nesse banco terá os loops desativados.
- Os demais bancos podem ter seus presets programados e as combinações de loops armazenadas na memória EEPROM do PIC, de forma que mesmo desligado, o chaveador guarda todas as programações.
- Para selecionar um banco, usa-se os footswitches (chaves de contato momentâneo)  UP e DOWN. Os banco são mudados sequencialmente.  Em cada banco há 6 opções de presets (footswitches de 1 a 6). Ao escolher um banco, a letra é mostrada no display de leds de 7 segmentos. O preset selecionado é apontado por um led perto do footswitch correspondente. E os loops ativados são apontados por leds perto dos conectores jacks dos loops (in e out).
- Para programar um preset (8 loops ligados ou desligados), deve-se escolher o banco e preset a ser programado, apertar em seguida o botão PROG, vai acender o ponto decimal do display de 7 segmentos. A partir daí se liga ou desliga apertando os footswitches de 1 a 6 (loops 1 a 6) mais os de UP e DOWN (loops 7 e 8). Os leds acendem ou apagam a cada pressão nos footswitches. Estando a combinação de loops ok, basta apertar novamente o botão PROG, que a combinação será gravada e salva na memória do PIC.
- Para um acesso rápido ao modo Bypass, pode-se apertar o botão RESET, que imediatamente o chaveador vai para o banco A.