esquema de mixer elevons vtail
- marcos soares
- membro
- Mensagens: 957
- Registrado em: Dom Out 18, 2009 9:28 am
- Localização: brasilia de minas MG
esquema de mixer elevons vtail
vi esse esquema e achei interessante,gostaria de saber se alguem ja montou algo parecido...... abrços
- Anexos
-
- mix.jpeg (29.46 KiB) Exibido 5647 vezes
- marcos soares
- membro
- Mensagens: 957
- Registrado em: Dom Out 18, 2009 9:28 am
- Localização: brasilia de minas MG
- marcos soares
- membro
- Mensagens: 957
- Registrado em: Dom Out 18, 2009 9:28 am
- Localização: brasilia de minas MG
[quote:037bb0a07f="alexcmag"]É legal para aprender jeitos diferentes de fazer circuitos, mas é muito trampo pra pouca coisa.
Atualmente faço isto com um único componente de 8 pinos e algumas dezenas de linhas de código.[/quote:037bb0a07f]
amigo vc poderia me falar mais sobre esse circuito........... fiquei bastante interessado........ abraços
Atualmente faço isto com um único componente de 8 pinos e algumas dezenas de linhas de código.[/quote:037bb0a07f]
amigo vc poderia me falar mais sobre esse circuito........... fiquei bastante interessado........ abraços
- Marco Antonio
- Equipe E-voo.com
- Mensagens: 19364
- Registrado em: Seg Dez 29, 2003 4:51 pm
- Localização: São Paulo, SP-52
[quote:3ccdc50902="alexcmag"]É legal para aprender jeitos diferentes de fazer circuitos, mas é muito trampo pra pouca coisa.
Atualmente faço isto com um único componente de 8 pinos e algumas dezenas de linhas de código.[/quote:3ccdc50902]
Alex.. maldade tua hem, poxa alex da um desconto, o cara não conhece nada de programação, igual o cara que não conhece de luz de navegação... hehe, vc precisava de um puxão na orelha.
Colocou doce na boca do menino.
É feito com um microprocessador PIC o Alex fez a algum tempo uma série de circuitos com PIC que substitui um punhado de componentes
Atualmente faço isto com um único componente de 8 pinos e algumas dezenas de linhas de código.[/quote:3ccdc50902]
Alex.. maldade tua hem, poxa alex da um desconto, o cara não conhece nada de programação, igual o cara que não conhece de luz de navegação... hehe, vc precisava de um puxão na orelha.
Colocou doce na boca do menino.
É feito com um microprocessador PIC o Alex fez a algum tempo uma série de circuitos com PIC que substitui um punhado de componentes
Aviso: Usuário ainda mais Raivoso! Chegou 2014, daqui pra frente a coisa só piora!!! BUUUUU!!!
- alexcmag
- Equipe E-voo.com
- Mensagens: 14800
- Registrado em: Sex Fev 13, 2004 12:13 pm
- Localização: Sao Paulo SP
- Contato:
O circuito é este abaixo, entram dois canais, saem dois canais.
Não recompilei o HEX para ter certeza de que é o correto, mas se não for é só recompilar.
[code:1:d8b309f990]
// General purpose mixer with failsafe
// Designer: Alexandre Magalhaes alexcmag@e-voo.com
//
// BASIC LAYOUT
// +------_------+
// + -->|VCC GND|-- -
// | |
// |GP5 PIC GP0|<--
// | 12F629 |
// Ch2-->|GP4 GP1|--> Out1
// | |
// Ch1-->|GP3 GP2|--> Out2
// | |
// +-------------+
//
// I usually use a DIP PIC12F629 on a single sided PCB, so GP5 can be connected
// to GND and a jumper below the PIC let GND bypass to PIN8, same as VCC pin to
// PIN7. This was a good way to make left wide input and right side output, with
// a minimum of extra wires
// Enabled FAILSAFE and VMIXER60%
#pragma chip PIC12F675
#pragma config = 0x2E4C
#define FAILSAFE
//#define NOMIXER
#define VMIXER
//#define VMIXER60
//#define MIXERBLIMP
//#define REVOMIXER
#pragma bit out1 @ GPIO.1 // Left output - channel 1
#pragma bit out2 @ GPIO.2 // Right output - channel 2
#pragma bit can1 @ GPIO.3 // Input channel 1
#pragma bit can2 @ GPIO.4 // Input channel 2
//#pragma bit out1 @ GPIO.1 // Saída esquerda / 1 - Layout Vicente
//#pragma bit out2 @ GPIO.5 // Saída direita / 2 - Layout Vicente
unsigned char vcount;
unsigned char c1,c2; // Last valid input (or failsafe value) channels 1,2
unsigned char o1,o2; // Output values for channels 1,2
unsigned char a1,a2; // Previous value for channels 1,2
unsigned char d1,d2; // Command difference from last read for channels 1, 2
unsigned char ct1,ct2; // general use counters
void servo1 (unsigned char v) // Channel 1 servo output
{
unsigned char ct;
if (v < 90) v = 90; // Don't send commands below 900us
if (v > 210) v = 210; // Don't send commands over 2100us
out1 = 1;
for (ct=14;ct<v;ct++) { nop(); nop(); nop(); nop(); }; // loop takes 10us
out1 = 0;
clrwdt();
}
void servo2 (unsigned char v) // Channel 2 servo output
{
unsigned char ct;
if (v < 90) v = 90;
if (v > 210) v = 210;
out2 = 1;
for (ct=14;ct<v;ct++) { nop(); nop(); nop(); nop(); }; // o loop takes 10us
out2 = 0;
clrwdt();
}
void nomixer(void) // failsafe only, no mixing
{
o1 = c1;
o2 = c2;
}
void vmixer(void) // v-tail / elevon mixer
{
o1 = (c1>>1);
o1 = o1 + (c2>>1);
o2 = 150+(c1>>1);
o2 = o2 - (c2>>1);
}
void mixerblimp(void) // mixer/tank/thrust vector mixer (100%)
{
o1 = c1 - 150;
o1 = o1 + c2;
o2 = c1 + 150;
o2 = o2 - c2;
if (o1 < 100) o1 = 100;
if (o1 > 200) o1 = 200;
if (o2 < 100) o2 = 100;
if (o2 > 200) o2 = 200;
}
void vmixer60(void) // 60% mixer (more servo deflection)
{
uns16 i1, i2, s1,s2,s;
i1 = c1-150;
i2 = c2-150;
i1 = i1*60;
i1 = i1 / 100;
i2 = i2*60;
i2 = i2 / 100;
s1 = (i1 + i2);
s2 = (i1 - i2);
o1 = s1+150;
o2 = s2+150;
}
void revomixer(void) // Heli mixer (revo mixer) motor and rudder
{
if (c1 < 121) // idle
{
o1 = c1;
o2 = c1;
}
else
{
uns16 x, y, s1,s2,s;
x = c1;
y = c2;
s1=x*y;
s1 = s1 / 300;
s2=(y/x);
s = s1 + s2;
s = s + 66;
o1 = c1;
o2 = s;
}
}
void main(void) // main loop
{
// initialize internal rc
#asm
bsf STATUS, RP0
dw 0x23ff //__call 0x03FF
movwf OSCCAL
bcf STATUS, RP0
#endasm
// initialize IOs
GPIO = 0;
TRISIO= 0b00111001; // GPIO.0 TriState, bypass for 5V na placa
// TRISIO= 0b00101001; // Layout Vicente
ANSEL = 0b00000000; // for 12F675
CMCON = 0b00000111;
WPU = 0b00111000;
OPTION= 7;
// initialize variables
while ( can1 || can2 )
{
clrwdt();
}
for (;;) /* Loop infinito */
{
while (!can1) clrwdt(); // Wait channel 1
for (c1 = 6; c1 < 250; c1++) // Check pulse width
{
if (can1 == 0) break;
}
clrwdt();
while (!can2) clrwdt(); // Wait channel 2
for (c2 = 6; c2 < 250; c2++) // Check pulse width
{
if (can2 == 0) break;
}
clrwdt();
// mixerblimp();
vmixer();
clrwdt();
servo1 (o1); // output signals
servo2 (o2);
clrwdt();
}
}
[/code:1:d8b309f990]
Não recompilei o HEX para ter certeza de que é o correto, mas se não for é só recompilar.
[code:1:d8b309f990]
// General purpose mixer with failsafe
// Designer: Alexandre Magalhaes alexcmag@e-voo.com
//
// BASIC LAYOUT
// +------_------+
// + -->|VCC GND|-- -
// | |
// |GP5 PIC GP0|<--
// | 12F629 |
// Ch2-->|GP4 GP1|--> Out1
// | |
// Ch1-->|GP3 GP2|--> Out2
// | |
// +-------------+
//
// I usually use a DIP PIC12F629 on a single sided PCB, so GP5 can be connected
// to GND and a jumper below the PIC let GND bypass to PIN8, same as VCC pin to
// PIN7. This was a good way to make left wide input and right side output, with
// a minimum of extra wires
// Enabled FAILSAFE and VMIXER60%
#pragma chip PIC12F675
#pragma config = 0x2E4C
#define FAILSAFE
//#define NOMIXER
#define VMIXER
//#define VMIXER60
//#define MIXERBLIMP
//#define REVOMIXER
#pragma bit out1 @ GPIO.1 // Left output - channel 1
#pragma bit out2 @ GPIO.2 // Right output - channel 2
#pragma bit can1 @ GPIO.3 // Input channel 1
#pragma bit can2 @ GPIO.4 // Input channel 2
//#pragma bit out1 @ GPIO.1 // Saída esquerda / 1 - Layout Vicente
//#pragma bit out2 @ GPIO.5 // Saída direita / 2 - Layout Vicente
unsigned char vcount;
unsigned char c1,c2; // Last valid input (or failsafe value) channels 1,2
unsigned char o1,o2; // Output values for channels 1,2
unsigned char a1,a2; // Previous value for channels 1,2
unsigned char d1,d2; // Command difference from last read for channels 1, 2
unsigned char ct1,ct2; // general use counters
void servo1 (unsigned char v) // Channel 1 servo output
{
unsigned char ct;
if (v < 90) v = 90; // Don't send commands below 900us
if (v > 210) v = 210; // Don't send commands over 2100us
out1 = 1;
for (ct=14;ct<v;ct++) { nop(); nop(); nop(); nop(); }; // loop takes 10us
out1 = 0;
clrwdt();
}
void servo2 (unsigned char v) // Channel 2 servo output
{
unsigned char ct;
if (v < 90) v = 90;
if (v > 210) v = 210;
out2 = 1;
for (ct=14;ct<v;ct++) { nop(); nop(); nop(); nop(); }; // o loop takes 10us
out2 = 0;
clrwdt();
}
void nomixer(void) // failsafe only, no mixing
{
o1 = c1;
o2 = c2;
}
void vmixer(void) // v-tail / elevon mixer
{
o1 = (c1>>1);
o1 = o1 + (c2>>1);
o2 = 150+(c1>>1);
o2 = o2 - (c2>>1);
}
void mixerblimp(void) // mixer/tank/thrust vector mixer (100%)
{
o1 = c1 - 150;
o1 = o1 + c2;
o2 = c1 + 150;
o2 = o2 - c2;
if (o1 < 100) o1 = 100;
if (o1 > 200) o1 = 200;
if (o2 < 100) o2 = 100;
if (o2 > 200) o2 = 200;
}
void vmixer60(void) // 60% mixer (more servo deflection)
{
uns16 i1, i2, s1,s2,s;
i1 = c1-150;
i2 = c2-150;
i1 = i1*60;
i1 = i1 / 100;
i2 = i2*60;
i2 = i2 / 100;
s1 = (i1 + i2);
s2 = (i1 - i2);
o1 = s1+150;
o2 = s2+150;
}
void revomixer(void) // Heli mixer (revo mixer) motor and rudder
{
if (c1 < 121) // idle
{
o1 = c1;
o2 = c1;
}
else
{
uns16 x, y, s1,s2,s;
x = c1;
y = c2;
s1=x*y;
s1 = s1 / 300;
s2=(y/x);
s = s1 + s2;
s = s + 66;
o1 = c1;
o2 = s;
}
}
void main(void) // main loop
{
// initialize internal rc
#asm
bsf STATUS, RP0
dw 0x23ff //__call 0x03FF
movwf OSCCAL
bcf STATUS, RP0
#endasm
// initialize IOs
GPIO = 0;
TRISIO= 0b00111001; // GPIO.0 TriState, bypass for 5V na placa
// TRISIO= 0b00101001; // Layout Vicente
ANSEL = 0b00000000; // for 12F675
CMCON = 0b00000111;
WPU = 0b00111000;
OPTION= 7;
// initialize variables
while ( can1 || can2 )
{
clrwdt();
}
for (;;) /* Loop infinito */
{
while (!can1) clrwdt(); // Wait channel 1
for (c1 = 6; c1 < 250; c1++) // Check pulse width
{
if (can1 == 0) break;
}
clrwdt();
while (!can2) clrwdt(); // Wait channel 2
for (c2 = 6; c2 < 250; c2++) // Check pulse width
{
if (can2 == 0) break;
}
clrwdt();
// mixerblimp();
vmixer();
clrwdt();
servo1 (o1); // output signals
servo2 (o2);
clrwdt();
}
}
[/code:1:d8b309f990]
- alexcmag
- Equipe E-voo.com
- Mensagens: 14800
- Registrado em: Sex Fev 13, 2004 12:13 pm
- Localização: Sao Paulo SP
- Contato:
É importante saber como as coisas funcionam, o circuito que você postou transforma os pulsos de comando para os servos em tensões, que são somadas e subtraídas para gerar outras tensões, que codificam novos pulsos. Funciona, mas se mudar uma merreca o timing já era.
Tinha muitos circuitos de ESC assim antigamente, mas eram grandes, pesados, pouco confiáveis, pouco funcionais, e se mudasse de rádio podia parar de funcionar. O último que mexi era uma caixa do tamanho de dois baralhos empilhados com uma placa grande, o dono estava reclamando que não funcionava. Descobri que funcionava sim, mas só no rádio antigo dele, aí fiz um novo com meia dúzia de componentes do tamanho de uma caixa de fósforos que podia aguentar o dobro da corrente e funcionava em qualquer rádio.
Atualmente para lidar com eletrônica é bom conhecer programação. Os componentes custam muito pouco, mas área de placa, caixa, etc. custam bastante e qualquer coisa que tenha mais componentes do que o necessário acaba ficando mais difícil de montar, menos confiável e mais caro.
Tinha muitos circuitos de ESC assim antigamente, mas eram grandes, pesados, pouco confiáveis, pouco funcionais, e se mudasse de rádio podia parar de funcionar. O último que mexi era uma caixa do tamanho de dois baralhos empilhados com uma placa grande, o dono estava reclamando que não funcionava. Descobri que funcionava sim, mas só no rádio antigo dele, aí fiz um novo com meia dúzia de componentes do tamanho de uma caixa de fósforos que podia aguentar o dobro da corrente e funcionava em qualquer rádio.
Atualmente para lidar com eletrônica é bom conhecer programação. Os componentes custam muito pouco, mas área de placa, caixa, etc. custam bastante e qualquer coisa que tenha mais componentes do que o necessário acaba ficando mais difícil de montar, menos confiável e mais caro.
- marcos soares
- membro
- Mensagens: 957
- Registrado em: Dom Out 18, 2009 9:28 am
- Localização: brasilia de minas MG
[quote:520bd09a86="alexcmag"]É importante saber como as coisas funcionam, o circuito que você postou transforma os pulsos de comando para os servos em tensões, que são somadas e subtraídas para gerar outras tensões, que codificam novos pulsos. Funciona, mas se mudar uma merreca o timing já era.
Tinha muitos circuitos de ESC assim antigamente, mas eram grandes, pesados, pouco confiáveis, pouco funcionais, e se mudasse de rádio podia parar de funcionar. O último que mexi era uma caixa do tamanho de dois baralhos empilhados com uma placa grande, o dono estava reclamando que não funcionava. Descobri que funcionava sim, mas só no rádio antigo dele, aí fiz um novo com meia dúzia de componentes do tamanho de uma caixa de fósforos que podia aguentar o dobro da corrente e funcionava em qualquer rádio.
Atualmente para lidar com eletrônica é bom conhecer programação. Os componentes custam muito pouco, mas área de placa, caixa, etc. custam bastante e qualquer coisa que tenha mais componentes do que o necessário acaba ficando mais difícil de montar, menos confiável e mais caro.[/quote:520bd09a86]
legal gostei........
Tinha muitos circuitos de ESC assim antigamente, mas eram grandes, pesados, pouco confiáveis, pouco funcionais, e se mudasse de rádio podia parar de funcionar. O último que mexi era uma caixa do tamanho de dois baralhos empilhados com uma placa grande, o dono estava reclamando que não funcionava. Descobri que funcionava sim, mas só no rádio antigo dele, aí fiz um novo com meia dúzia de componentes do tamanho de uma caixa de fósforos que podia aguentar o dobro da corrente e funcionava em qualquer rádio.
Atualmente para lidar com eletrônica é bom conhecer programação. Os componentes custam muito pouco, mas área de placa, caixa, etc. custam bastante e qualquer coisa que tenha mais componentes do que o necessário acaba ficando mais difícil de montar, menos confiável e mais caro.[/quote:520bd09a86]
legal gostei........
- Guilherme Ch
- membro
- Mensagens: 1045
- Registrado em: Seg Jul 24, 2006 5:03 pm
- Localização: Ponta Grossa, PR
- Contato:
alex, olhando para o seu codigo me encorajei à começar com os microcontroladores, pela descriçao das linhas e pela simplicidade.
fiz tec em ciencia da computacao e conheço o basico de um programa em c, mas nao direcionado a pics. esse sera minha primeira experiencia com os bichinhos hhrehreh
encontrei tambem esta apostila que pra quem quer comecar é uma boa...
marcos recomendo a leitura! abracos
http://www.scribd.com/doc/20286180/Microcontrolador-PIC-em-Linguagem-C
fiz tec em ciencia da computacao e conheço o basico de um programa em c, mas nao direcionado a pics. esse sera minha primeira experiencia com os bichinhos hhrehreh
encontrei tambem esta apostila que pra quem quer comecar é uma boa...
marcos recomendo a leitura! abracos
http://www.scribd.com/doc/20286180/Microcontrolador-PIC-em-Linguagem-C
- alexcmag
- Equipe E-voo.com
- Mensagens: 14800
- Registrado em: Sex Fev 13, 2004 12:13 pm
- Localização: Sao Paulo SP
- Contato:
Para começar a brincar com microcontroladores o PIC é um dos mais fáceis porque acha-se boa parte da linha facilmente no Brasil.
Além da apostila é legal pegar alguma coisa que lhe seja útil de alguma forma, montar, se tiver algum programa fácil na internet usar como base, e ir evoluindo o projeto.
Meu primeiro projeto em PIC foi um semáforo com indicação de quanto tempo faltava para abrir ou fechar, como os que há em algumas cidades atualmente. Após montar a parte elétrica do programa ficou o desafio de como fazer a eletrônica.
Eu já trabalhava com PC e já tinha trabalhado em vários projetos de eletrônica, mas geralmente usava placas prontas e só escrevia o código, na época com 8051.
Aí fiz o primeiro protótipo em PC mesmo, usando um notebook, deu para demonstrar o conceito. Mas claro que não dava para pendurar o notebook num poste e deixar o dia todo, então procurei rapidamente algum microcontrolador ou placa semi-pronta que pudesse usar.
Acabei achando gravador PIC e alguns PIC16F84 (já praticamente saiu de linha) à venda e fiz rapidamente um circuito e programa para ele. Na sequência fiz outros programas para controlar catracas, fechaduras, etc. para controle de acesso. O gravador ficou com o cliente e acabei não mexendo mais nisto por um tempo.
Depois de uns anos precisei de um teclado estilo ATM (4 teclas de cada lado do monitor) para um projeto, com teclas membrana (tipo microondas) que pudessem ser coladas na borda do monitor e a eletrônica embutida. Achamos um fabricante e pedimos algumas unidades para testes, mas quando o projeto foi aprovado descobrimos que o fabricante precisava de alguns meses para produzir 100 unidades do circuito.
Na pressa, novamente comprei um gravador PIC, um monte de PIC16F84 e componentes auxiliares, mandei fazer umas placas em uma fábrica de Mauá, e uma semana depois estava montando 200 conjuntos controladores de teclado, a tempo de testar tudo implantar o projeto sem atrasos. Novamente o gravador e estoque de PICs ficou com a empresa.
Quando comecei no modelismo queria fazer uma Zagi e alguns modelos com cauda em V, precisava de um mixer. Queria também uma interface para simulador. O mixer custava 60 reais na época, uma interface serial para simulador mais uns 100. Por 120 comprei um gravador e alguns PICs, fiz ambos, e aprendi bastante coisa pelo caminho.
Depois disto voltei a brincar com eles, às vezes para o aeromodelismo, às vezes profissionalmente, às vezes como um hobby à parte.
Além da apostila é legal pegar alguma coisa que lhe seja útil de alguma forma, montar, se tiver algum programa fácil na internet usar como base, e ir evoluindo o projeto.
Meu primeiro projeto em PIC foi um semáforo com indicação de quanto tempo faltava para abrir ou fechar, como os que há em algumas cidades atualmente. Após montar a parte elétrica do programa ficou o desafio de como fazer a eletrônica.
Eu já trabalhava com PC e já tinha trabalhado em vários projetos de eletrônica, mas geralmente usava placas prontas e só escrevia o código, na época com 8051.
Aí fiz o primeiro protótipo em PC mesmo, usando um notebook, deu para demonstrar o conceito. Mas claro que não dava para pendurar o notebook num poste e deixar o dia todo, então procurei rapidamente algum microcontrolador ou placa semi-pronta que pudesse usar.
Acabei achando gravador PIC e alguns PIC16F84 (já praticamente saiu de linha) à venda e fiz rapidamente um circuito e programa para ele. Na sequência fiz outros programas para controlar catracas, fechaduras, etc. para controle de acesso. O gravador ficou com o cliente e acabei não mexendo mais nisto por um tempo.
Depois de uns anos precisei de um teclado estilo ATM (4 teclas de cada lado do monitor) para um projeto, com teclas membrana (tipo microondas) que pudessem ser coladas na borda do monitor e a eletrônica embutida. Achamos um fabricante e pedimos algumas unidades para testes, mas quando o projeto foi aprovado descobrimos que o fabricante precisava de alguns meses para produzir 100 unidades do circuito.
Na pressa, novamente comprei um gravador PIC, um monte de PIC16F84 e componentes auxiliares, mandei fazer umas placas em uma fábrica de Mauá, e uma semana depois estava montando 200 conjuntos controladores de teclado, a tempo de testar tudo implantar o projeto sem atrasos. Novamente o gravador e estoque de PICs ficou com a empresa.
Quando comecei no modelismo queria fazer uma Zagi e alguns modelos com cauda em V, precisava de um mixer. Queria também uma interface para simulador. O mixer custava 60 reais na época, uma interface serial para simulador mais uns 100. Por 120 comprei um gravador e alguns PICs, fiz ambos, e aprendi bastante coisa pelo caminho.
Depois disto voltei a brincar com eles, às vezes para o aeromodelismo, às vezes profissionalmente, às vezes como um hobby à parte.