Anotação.
Para fazer iluminação dos painéis, utilizar acrilico transparente, pintar de cinza ou a cor que se deseja.
Para que a parte da frente seja iluminada, letras, palavras, numeros etc, deve-se utilizar o laser CO2 para fazer a marcação fosca. Marcação fosca no acrilico transparente pintado de cinza.
Atenção: Nos buracos das lampadas ou LEDs, a lateral do buraco do acrilico deve ser TRANSPARENTE, Nunca fosca, para que a luz se propague para dentro do acrílico.
Se utilizar a furadeira para fazer o furo, o mesmo ficará fosco, pode utilizar um chama no buraco para que o acrilico fique transparente naquela área.
Para devolver a transparencia do acrilico, fazer um teste com esmalte incolor.
sábado, 11 de julho de 2015
sexta-feira, 26 de junho de 2015
Trabalhando com circuito integrado que fazem a comunicação I2C.
Testes com o CI PCF8574P
Endereço de acesso 0x20 em binario
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_ttsSu4gvJF1Gl9boTsknu4OvXG81QPGw7kKRsJUGbC2ZIiDfWk1dWzEOsW9Od515qhHcXRHQtyMBEaMb2Mta3IXyx-nEA4rb6CV76Qd3WA4Yfze3wAeVm4IAmvzqHL6j9jUlS-vrPSaq6q9aS9WdO6DeBAihQxpTQoM5xFEZ0RruyfcvLXw8CuVExant5XQr8CmWNgiDPtTFlp8_Hrk9QI34y7oe5mB7kEgvVdjqA=s0-d)
Conectando um teclado de membrana 4X4 usando I2C.
![](https://lh3.googleusercontent.com/blogger_img_proxy/AEn0k_tC_9-9RIA_GTlACy1vR5EKSIYyyJyyogTLykkboPbMG4W3MXQsQD9LHSeuQqmbEXj3IVTvCfXMzJOMp0xeAVu9p8VIZhygi1EIRr1TnEnRQohkY5WjeG7LFz5SRwow2_Cjqm2UFOU2IB6u5DLgwI6ncnq3gA=s0-d)
Bibliotecas necessárias:
Arquivos da biblioteca
Keypad
Keypac_i2c
Endereço de acesso 0x20 em binario
Conectando um teclado de membrana 4X4 usando I2C.
Bibliotecas necessárias:
Arquivos da biblioteca
Keypad
Keypac_i2c
sábado, 20 de junho de 2015
Flap Gauge 737 + Arduino
Gauge flap 737 NGX usando Arduino + Servo motor + Link2fs
Você vai precisar de:
-Uma placa arduino, neste exemplo vou utilizar a UNO.
-Um servo motor, neste exemplo estou usando o S0009, super barato.
-Engrenagens feitas em MDF cordatas a laser, mas você pode usar qualquer conjunto de engrenagens, desde que a engrenagem acoplada do servo seja maior que a engrenagem do ponteiro. Isso é necessário porque o curso deste servo motor é de apenas 180 graus, e o curso do ponteiro do flap é 270 graus, desta forma as engrenagens aumentarão o curso.
- Parafusos para fixação, para o eixo pode ser um pedaço de aro de bicicleta.
- Espaçadores para os parafusos, eu usei carga de caneta.
- Os arquivos de desenhos para corte a laser vou disponibilizar mais tarde.
Programas: FSX, LINK2FS e ARDUINO.
Programa do Arduíno.
Eu usei como base o programa DEMO que vem junto com o programa Link2fs, o arquivo é o MULT_KEYS_WITH_FLAP dentro da pasta DEMO INO´s.
Programe o Arduino com este arquivo, ligue o servo motor da seguinte forma:
Positivo no 5volts da propria placa do Arduino, Negativo na GND, e o fio de dados no pino 13 do Arduino. Obs.: Aconselho utilizar uma fonte de alimentação no Arduino pois o servo consome um pouquinho mais.
Apenas fotos do primeiro gauge. Usei MDF e corte a laser, inclusive as engrenagens.
quinta-feira, 21 de maio de 2015
Iniciando o projeto do being 737 800 PMDG.
Iníciando
O objetivo deste blog é documentar o desenvolvimento do meu home cockpit baseado no Boeng 737 800 PMDG e Flight Simulator X.
Programas utilizados:
- Flight Simulator X
Simconnect.
Fsuipc 4.9 resgistrado.
LINDA
737 800 PMDG.
- Link2FS 6f.
- Programador do arduíno 1.61
1 - Lista de offset do PDMG.
2 - Programação Arduíno.
3 - Hardware
MCP 35 botoes sendo 7 encoders, desdes encoders um é uma chave rotativa de 4 posições. duplo para a função HDG e BANK ANG.
Botões tipo push: 17 sendo 14 quadrados.
Botões tipo chave L/D
Display
V/S 5 normais mais um especial para + e -
Altitude 5
HDG 3
Course 3 + 3
Speed 4
Total 24 Display 7 segmentos.
---------------------------------------------------------------------------------------
Iniciando a programação do Arduino para leitura das chaves do MCP
O principio da programação é esta:
Apenas um exemplo, já que a luz de taxi não está ligado ao MCP.
Definir as variaveis:
int taxi=10 //significa que o botão para a chave da luz de taxi será ligado no pino 10 do arduino.
int taxinew; // utilizado para receber o valor da porta 10, será 1 ou 0, ligado ou desligado.
int taxiold; // será utilizado para armazenar o ultimo valor lido da porta 10, no caso será o valor da variavel taxinew.
void setup(){
pinMode(taxi,INPUT_PULLUP); //define o pino 10 como entrada e em nivel alto.
Serial.begin(9600); // configura a serial
}
void loop(){
taxinew = (digitalRead(taxi)); //Faz a leitura da porta TAXI (neste caso pino 10), e joga o resultado na variavel TAXINEW
if(taxinew != taxiold){ //Compara com o ultimo estado da porta, se houver modificação, ele segue no IF, caso não houve nenhuma mudança no estado da porta, passa direto.
if (taxinew==1) {Serial.println("Taxi on");} //Se estiver ligada, imprime na serial
if (taxinew==0) {Serial.println("Taxi off");} // Se estiver desliga, imprime na serial
taxiold=taxinew; /* joga o valor atual para a variavel TAXIOLD, para ser comparado ali em cima,
pois caso a posição da chave não mudou, passa direto evitando enviar dados sem necessidade pela serial.*/
}
}
Isso resolve como o arduino fará a leitura das chaves.
--------------------------------
Multiplicando a quantidade de portas do arduino uno.
Trabalhando somente com as portas digitais, temos de 0 a 13 num total de 14 portas.
Utilizamos 8 portas para multiplicar, sendo que o fator multiplicador será 4 bits( 4 portas ).
Sendo assim temos um gasto total de:
8 portas para chaves.
4 portas para controle.
Utilizando 4 portas para ativar cada circuito intregado 74ls245, temos os seguintes bits.
1-0000
2-0001
3-0010
4-0011
5-0100
6-0101
7-0110
8-0111
9-1000
10-1001
11-1010
12-1011
13-1100
14-1101
15-1110
16-1111
16 CI 74LS245 contendo 8 portas cada um, num total de 128 portas.
Resumindo, utilizando 12 portas para produzir 128, é um excelente ganho.
Mais 2 portas digitais que não foram utilizadas.
Total 130 portas digitais no Arduino.
Caso não necessite de todas as 128 portas, poderemos utilizar menos.
Exemplo:
Ao invés de 4 bit de controle podemos utilizar apenas 3.
1-000
2-001
3-010
4-011
5-100
6-101
7-110
8-111
8 CI 74LS245 num total 64 portas.
Mais 3 portas digitais que não foram utilizadas.
Total 67 portas digitais no Arduino.
------------------------------------------------------------------------
Utilizando uma porta analógica para fazer o seletor BANK ANGLE do MCP.
São cinco posiçoes, 10,15,20,25 e 30 graus.
Uma chave rotatória de cinco posições deve ser usada.
O esquema de ligação consiste em colocar 4 resistores de 10k em serie conforme a imagem abaixo.
A parte de programação fica desta forma:
int bank; // variavel para armazenar o valor da porta A0
int bank_old; // utilizado para guardar o ultimo valor da porta A0.
void setup(){ // setup
pinMode(A0,INPUT); // definir a porta analogia A0 como entrada.
Serial.begin(115200); // configura a serial.
}
void loop(){ // o programa em si.
bank=(analogRead(A0)); // faz a leitura da porta analogica A0, cada posição tem um resistor de 10k
if(bank !=bank_old){ // verifica se ultima posição da chave foi mudada, caso sim continua.
if(bank >=0 && bank <=100 ){Serial.println("ZZ700210");}// bank angle 10
if(bank >=200 && bank <=300){Serial.println("ZZ700211");} //bank angle 15
if(bank >=400 && bank <=600){Serial.println("ZZ700212");} //bank angle 20
if(bank >=650 && bank <=850){Serial.println("ZZ700213");} //bank angle 25
if(bank >=900 && bank <=1250){Serial.println("ZZ700214");} //bank angle 30
bank_old=bank;
}
Ex.: posição 2: Leitura esperada 256, faixa entre 200 e 300.
Abaixo o esquema elétrico ainda não terminado.
---------------------------------------------------------------------------
Display 7 segmentos com MAX7219
Necessário a biblioteca LeControl.h, pode ser baixada via site do Arduino.
Comando para mostrar um caracter no display
lc.setChar (int addr, int digit,char value, boolean dp)
sendo que ADDR, endereço do display, 0 se for o primeiro chip max7219
DIGIT, a posição no display, exemplo, int 0, o caracter será mostrado no primeiro display da esquerda para direita.
VALUE, o valor a ser mostrado no display.
BOOLEAN DP, ativa o ponto decimal.
---------------------------------
Problema com o Link2fs.
Assinar:
Postagens (Atom)