domingo, 21 de janeiro de 2018

Criando um CCO no Panel Pro do JMRI - Parte 1

Revisado 25/03/2018
O CCO (Centro de Controle Operacional) é o local onde é realizado o monitoramento e controle do tráfego da ferrovia. 


Neste Centro, os Controladores e Trafego conseguem acompanhar a movimentação dos trens através de sensores espalhados pela ferrovia, gerenciar a sinalização e AMVs da via.


Neste vídeos da MRS e da REFER(Portugal) explicam um pouco mais sobre o CCO em uma ferrovia:

CCO - MRS



CCO - REFER(Portugal)



Como o CCO tem muitos recursos,  nesse primeiro artigo ver como desenhar o Painel Sinótico da ferrovia, criar no JMRI o painel do CCO e incluir as chaves para acionamento dos AMVs. 


1. Controle dos AMVs
Para acionar os AMV’s estou utilizando Servos 9G com a Interface Configurável para 48 Controles CRMI.

Interface Configurável 48 Portas CMRI + Modulo Entrada 4021 
+ Módulo Saída 16 Servos I2C + Módulo Saída 74HC595

Servos 9G que serão utilizados na maquete


Nesta primeira etapa estou configurando 8 AMVs que já configurei no JMRI com os nomes Centiolandia_01 a Centiolandia_08.  Centiolandia é o nome fictício da comunidade da minha maquete onde estão os 8 AMVs.

Para ter maiores informações sobre a Interface Configurável para 48 Controles CRM e como configurar os AMVs no JMRI de uma olhada nesse artigo:




2. Painel CCO no JMRI

Antes de criarmos nosso painel no JMRI precisamos “desenhar” o layout da ferrovia, ele feito no CorelDraw ou mesmo o Paint do Windows. Eu prefiro utilizar o Corel pois alem do desenho do Layout consigo detalhar outros elementos do painel.

O formato do arquivo  pode ser GIG, JPG ou BMP, pessoalmente prefiro o JPG pela melhor qualidade da imagem em relação ao tamanho do arquivo.



2.1. Convertendo o Layout da sua Ferrovia em um Painel Sinótico

Para desenhar o painel sinótico da sua ferrovia, basicamente “esticamos” o layout em única linha... Opa... meu layout é um oval não tem como “esticar”... Tem sim!!! Você faz um “corte imaginário” no seu layout como se ele fosse ponto a ponto e desta forma consegue representa-lo como uma reta.

Vou mostrar passo a passo como fiz o painel sinótico da minha maquete:

2.1.1. Layout Original






Este é o layout atual da minha maquete, ele representa a ligação de duas cidades fictícias Sheykcity e Centiolandia. 

A linha curva no canto inferior esquerdo que interliga as duas cidades  será meu corte, como se ela não existisse. Assim tenho um layout ponto a ponto.


Por enquanto apenas os trilhos de Centiolandia foram todos assentados, então meu diagrama vai detalhar apenas essa parte da maquete.



2.1.2. Convertendo o Layout em Linha 

Primeiro, vamos pegar no layout as partes do layout que precisamos colocar em linha (1), (2) e (3): 




Em seguida colocamos as partes selecionada em linha 




Agora vamos seguir os seguintes critérios:

a. As linhas que representam os trilhos e pátios devem ser retas, horizontais e paralelas.

b. A ligação dos AMVs é deve ser feita com uma linha em ângulo determinado, eu uso 45º.

c. O comprimento das linhas do painel sinótico não precisa ser proporcional as comprimento das linhas do layout. 

Seguindo as três regras a o painel sinótico desta parte do meu layout ficou assim:



2.1.4. Para completar vamos adicionar a numeração dos AMVs seguindo em sequencia da esquerda para direita e o nome do cidade/local. Opcionalmente você pode colocar alguns nomes para as linhas, mas cuidados com a poluição visual! Utilize letras bem pequenas para isso.



Observe que AMV 8 não segue a sequencia citada. Como ele faz  a seleção da linha do depósito de locomotivas optei em utilizar a sequencia de 1 a 7 para as linhas de manobras com vagões e por ultimo esse AMV.



2.1.5. Finalizando a Imagem do Painel Sinótico

No CorelDraw desenhei todo fundo do painel, inclusive as chaves seletoras de posição dos AMVs e salvei o arquivo com uma resolução de 800x637 para não ocupar a tela inteira (Uso meu monitor com resolução 1366x768).



Você não precisa desenhar as chaves seletoras na imagem do seu painel, o JMRI tem algumas imagens que você pode adicionar ao seu painel. 

Caso tenha o CorelDraw segue o link do arquivo deste painel:  PainelJMRI_v1


Falando sobre as chaves seletoras, eu identifiquei no desenho a posições das chaves conforme a direção de cada AMV (Veja imagem abaixo os AMVs 4 e 5) com as posições C - Closed (Passagem Direta) e T - Thorwn (Desvio Linha).



Com o desenho do Painel Sinótico pronto vamos criar o painel no JMRI. 



2.2. Criando o Painel no JMRI

2.2.1. Abra o Panel Pro do JMRI e vá no opção “Panes / New Panel / Panel Editor”:


Serão abertas duas janelas, uma maior ao fundo com o Painel que está sendo criado e outro menor com algumas opções de edição do painel. Vamos chamar essa janela menor de Opções de Edição.

Telas de Edição de Painéis do JMRI


2.2.2.  Nome / Título do Painel

A primeira coisa que vamos fazer é definir um título para o Painel, para isso clique no botão “Set Panel Name” da janela de Opções de Edição (1).


Será aberta uma caixa para que você digite o nome do Painel, no exemplo digitei Minha Ferrovia, para concluir clique no botão “OK”.



Observe que o nome informado será exibido na parte superior da janela do Painel.


2.2.3. Adicionando o Fundo ao Painel (Backgroud)

Na janela de Opções de Edição, clique na caixa “Select the type of icon to add to panel:” (1) e escolha a opção “Backgroud”.



Será aberta a Tela de Seleção de Ícones (o JMRI chama todos imagens de “ícone”).



Para localizar a imagem que foi criada para fundo do painel vamos clicar no menu “Find Icons” / “Search File System for Icons”



Será aberta uma janela para selecionar o diretório em que foi gravada a imagem de fundo do painel. Selecione a pasta onde está o arquivo e clique em “Abrir”.


As imagens que forem encontradas na pasta selecionada serão exibidas em uma caixa de visualização.




Para utilizar uma dessas imagens, você precisa “arrastar” a imagem que irá utilizar até o icone do JMRI da Tela de Seleção de Ícones. Ao soltar o botão do mouse imagem que “arrastou” será exibida no lugar do logo.


Para adicionar a imagem ao fundo do painel basta clicar no botão “Add to panel”



Agora seu painel já tem um fundo!!!



2.2.3. Adicionando o fundo para as chaves AMVs

No desenho do meu painel que fiz no CorelDraw já inclui as “placas” (fundo) das chaves de controle dos AMVs, mas se o seu desenho do painel tem apenas o layout e um espaço para os controles você pode incluir as imagem do fundo das chaves:

Na janela de Opções de Edição, clique na caixa “Select the type of icon to add to panel:” (1) e escolha uma das opções “Icon” (2):




Será aberta uma janela de seleção da imagem para adicionar ao painel, clique no botão “Change Icon” para escolher a imagem.



Será exibida uma lista de pastas a esquerda e a direita miniaturas das imagens encontradas na pasta. Ajuste o tamanho da janela para que fique fácil escolher uma pasta e visualizar as imagens.



Selecione a pasta Program Diretory” / “Icons” / “CTCPanels” / “CTCPlates60x60” e “arraste” a imagem “scale 1:1 plateSwitch” sobre a figura exibida na parte de cima da tela, logo abaixo do titulo “Icon”



Clique no botão “Add to panel” para adicionar a imagem ao painel:


No Painel, no canto superior esquerdo será adiciona a imagem selecionada.


Para mover a imagem até o lugar desejado do painel você tem duas opções:

a) Digitar a posição desejada (x / y): Para isso clique uma vez sobre o ícone com o botão da direita, será aberto um menu. Escolha nesse menu a opção “Location” / “Set x & y..”
Na caixa que é exibida você deve informar as coordenadas x e y da posição do AMV.



b) Arrastar o ícone segurando o botão da direita pressionado;


Com o Ícone no lugar certo vamos travar a sua posição para evitar que seja arrastado por engano, para isso clique uma vez com o botão da direita sobre o ícone e marque a opção “Lock Position”.


Repita esses passos para adicionar as chaves necessárias para seu painel.


2.2.4. Adicionando as chaves para os AMVs

Na janela de Opções de Edição, clique na caixa “Select the type of icon to add to panel:” (1) e escolha uma das opções “Right Hand Turnout” ou “Left Hand Turnout” conforme o tipo (Direito ou Esquerdo) do AMV deste controle. No exemplo vamos configurar o AMV 1 que é um desvio a esquerda (“Left Hand Turnout”)



Será aberta uma janela de seleção dos Ícones para o controle do AMV, observe que temos 4 ícones para representar o AMV conforme sua situação e abaixo a lista de AMVs configurados no JMRI (Item 1 acima):


Icones de Status do AMV:
a) Closed: Ícone exibido quando o AMV está com Passagem Direta;
b) Thorwn: Ícone exibido quando o AMV está com Desvio Linha;
c) Unknown: Ícone exibido quando o Painel não sabe qual a posição atual do AMV. 
d) Inconsistent: Ícone exibido caso o JMRi receba um valor inválido de posição do AMV;


Clique no botão “Change Icon” para escolher novas imagens para os status do controle.




Será exibida uma lista de pastas a esquerda e a direita miniaturas das imagens encontradas na pasta. Ajuste o tamanho da janela para que fique fácil escolher uma pasta e visualizar as imagens.

Selecione a pasta “Program Diretory” / “Icons” / “USS” / “Plate” / “Levers”.  


“Arraste” os seguintes ícones marcados com a, b, c e d sobre as imagens do AMV na parte de cima da tela:



Com os icones escolhidos clique no botão “Close Catalog” para fechar a lista de imagens.



Selecione na lista o AMV que será controlado por esse controle (1) e adicione o controle ao painel clicando em “Add to panel” (2) 


No canto superior esquerdo será incluído o controle que será exibido conforme o ícone da situação atual do AMV:


Se clicar com o botão da esquerda sobre o ícone ele irá mudar a situação do AMV, mudando assim o ícone e enviando o comando para a Interface CMRI. Se seu servo/bobina estiver ligado ele irá se movimentar conforme a posição da chave.

Agora você deve posicionar o controle do AMV sobre a “placa” de fundo, para fazer isso você pode:
a) Digitar a posição desejada (x / y). Para isso clique uma vez sobre o ícone com o botão da direita, será aberto um menu. Escolha nesse menu a opção “Location” / “Set x & y..”
Na caixa que é exibida você deve informar as coordenadas x e y da posição do AMV.
b) Arrastar o ícone segurando o botão da direita pressionado;



Agora que o ícone está posicionado no lugar certo vamos travar a sua posição para evitar que seja arrastado por engano, para isso clique uma vez com o botão da direita sobre o ícone e marque a opção “Lock Position”.


Agora é só repetir os passos acima para adicionar os demais AMVs e mover seus ícones para as suas devidas posições.



2.3. Salvando o Painel
Para salvar o painel você deve ir na opção do JMRI “Panels” / “Save Panels...”
Informe o nome do arquivo em que irá salvar o painel, de preferência o mesmo arquivo em que foram salvos os tables (AMV’s) do item 1



3. Luzes Indicativas de Posição das Chaves

O JMRI permite mais que um Ícone para os AMVs/Luzes, etc, então podemos utilizar o ícone de AMV para as luzes indicativas de posição das chaves.


3.1. Adicionando Luz Verde (Posição Closed - Passagem Direta)

Na janela de Opções de Edição, clique na caixa “Select the type of icon to add to panel:” (1) e escolha uma das opções “Right Hand Turnout” ou “Left Hand Turnout” conforme o tipo (Direito ou Esquerdo) do AMV deste controle. No exemplo vamos configurar o AMV 1 que é um desvio a esquerda (“Left Hand Turnout”):



Clique no botão “Change Icon” para escolher novas imagens para os status do controle.



Selecione a pasta “Program Diretory” / “Icons” / “USS” / “Sensor” e arraste os seguintes ícones marcados com a, b, c e d sobre as imagens do AMV na parte de cima da tela. Quando concluir clique no botão "Close Catalog":



Selecione na lista o AMV que será controlado por esse controle (1) e adicione o controle ao painel clicando em “Add to panel” (2) 



Mova o ícone ate a posição desejada sobre a chave arrastando o mesmo ou digitando as coordenadas ( “Location/Set x & y):



Trave a posição para evitar que o icone seja arrastado por engano. Clique uma vez com o botão da direita sobre o ícone e marque a opção “Lock Position”.



Para finalizar vamos desabilitar o ícone para que o AMV não seja acionado quando clicarmos sobre ele. Clique uma vez com o botão da direita sobre o ícone e marque a opção “Disable”. 



3.2. Adicionando Luz Vermelha (Posição Thorwn – Desvio de Linha):
Vamos repetir os passos do item 3.1 mas vamos selecionar ícones diferentes para as posições do AMV:

“Arraste” os seguintes ícones marcados com a, b, c e d sobre as imagens do AMV na parte de cima da tela e quando concluir clique no botão "Close Catalog":


Selecione na lista o AMV que será controlado por esse controle (1) e adicione o controle ao painel clicando em “Add to panel” (2) 


Mova o ícone ate a posição desejada sobre a chave arrastando o mesmo ou digitando as coordenadas ( “Location/Set x & y):



Trave a posição para evitar que o ícone clicando como o botão da direita sobre o ícone e marcando a opção “Lock Position”.



Desabilite o ícone clicando com o botão da direita sobre ele e marque a opção “Disable”. 




Agora quando mudar a chave do AMV de posição as luzes pareceram acender/apagar facilitando a visualização da posição do AMV.

Repita esses passos para os demais AMVs.


Para finalizar não esqueça de salvar as alterações no painel na opção “Panels” / “Save Panels...”



Texto Revisado em 25/03/2018

segunda-feira, 16 de outubro de 2017

Interface Configurável Para 48 Controles CMRI MK1

Esta interface é bastante flexível e pode ser utilizada para controlar AMV acionados por Servos, Bobinas ou Motor Lento, assim como Luzes de Sinalização e outros dispositivos de forma simultânea. 




É isso mesmo, você pode controlar AMVs com Servos, Bobinas e Motores de Acionamento com uma única interface.

Ela tem dois modos de funcionamento: 
1: Modo Standalone onde os controles são acionados através de interruptores 
2: Modo Node CMRI onde os controles são gerenciados por um software como o JMRI.


Componentes da Interface 48 Controles CMRI:
1. Arduino Nano
2. Modulo RS485
3. Módulo Saída I2C Servos PCA9685
4. Módulo Saída 74HC595
5. Módulo Entrada CD4021

Módulos Protótipo


Diagramas dos Blocos da Interface


Blocos de Saída - 48 Portas de Saída
Uma das maiores versatilidades deste projeto está nas combinações dos 48 Controles que podem acionar Servos, Bobinas de AMVs, Motores Lentos de AMVs, Sinalização entre outras possibilidades.

Os 48 controles são divididos em 6 blocos, cada um com 8 Controles* e cada bloco pode funcionar de uma maneira diferente conforme a configuração da Interface.


Bloco 1Controle 1 a 8
Bloco 2Controle 9 a 16
Bloco 3Controle 17 a 24
Bloco 4Controle 25 a 32
Bloco 5Controle 33 a 40
Bloco 6Controle 41 a 48



Para acionamento das saídas existem duas possibilidades de hardware: Módulo(s) Serial/Paralelo com 74HC595 e/ou Modulo(s)  PWM i2c para 16 Servos.

Número de Controles x Número de Portas de Saídas: Esta interface prevê o controle de 48 dispositivos, o que não necessariamente serão 48 Portas de Saídas. 
No caso de AMVs acionados por bobina, precisamos de puas portas de saída para o mesmo AMV, uma porta para cada bobina. 

Quando configuramos a saída de um bloco como "AMV Bobina" estaremos associando duas portas de saída para um único Controle, ou seja, se todos blocos de saída forem configurados como "Bloco AMV Bobina" teremos 96 portas de saídas na Interface.



1. Arduino Nano:

A base do projeto foi o Arduino Nano, mas você pode utilizar um Arduino UNO sem problemas. No meu caso, montei o Arduino Nano em uma PCB onde montei junto à interface serial RS-485 e alguns pinos para conexão dos módulos e da alimentação.

Foto Prototipo


Detalhe das Conexões da PCB


Conexões Arduino

2. Módulo RS-485:
Pino TX: Dados In (DI) RS485
Pino RX: Dados Out (RO) RS485 
Pino D2: Enable R (RE) e Enable T (DE) RS485

3. Módulo Saída I2C Servos PCA9685:
Pino A4: SCL Módulo I2C Servos 
Pino A5: SDA Módulo I2C Servos 


4. Módulo Saída 74HC595:
Pino D3: Clock Modulo 74HC595 (74HC595 Pin 11)
Pino D4: Latch Modulo 74HC595 (74HC595 Pin 12)
Pino D5: Data Modulo 74HC595 (74HC595 Pin 14)

5. Módulo Entrada CD4021:
Pino A0: Clock Modulo 4021 (CD4021 Pin 10)
Pino A1: Latch Modulo 4021 (CD4021 Pin 9)
Pino A2: Data Modulo 4021 (CD4021 Pin 3)

6. Pino Habilita Configuração:
Pino A3: Enable Config (GND - Enable)


2. Módulo RS-485:
A interface Serial RS-485 basicamente é um CI Max485 ou SN75176 ligado ao Arduino nos pinos 0(RX), 1 (TX) e 2 (Controle I/O). Ele irá receber e transmitir os dados da porta serial no padrão RS-485.

Você pode utilizar um modulo RS-485, para isso basta ligar os DI ao Pino 0 (RX), RO ao Pino 1 (TX) e  DE e RE ao Pino 2 (Controle). Não esqueça também de ligar o VCC (5V) e o GND. 


Os pinos para conexão dos módulos de Entrada / Saída estão ligados diretamente aos pinos do Arduino Nano:
- Pinos 3, 4 e 5:  Módulo Saídas 74HC595
- Pinos A0, A1 e A2 Módulo Entradas CD4021 
- Pinos A4 e A5 Modulo PWM I2C;


3. Módulo Saída I2C Servos PCA9685
O módulo PWM I2C para 16 Servos, utiliza comunicação I2C (Pinos A4 e A5 do Arduino) o que permite que com poucos pinos do Arduino consigamos controlar muitos servos.

A interface está preparada para conexão de até 2 módulos PWM, o que permite controlar até 32 servos.





Quando habilitamos os módulos PWM na Interface, estaremos vinculando para cada interface 2 Blocos de controles (8 x 2 = 16 Controles). Obrigatoriamente estes serão os blocos 1 e 2 (Modulo PWM 1) e blocos 3 e 4 (Modulos PWM 2).

Os blocos restantes serão acessados pelo Módulos 74HC595. Se configurarmos por exemplo um módulo PWM, teremos os blocos 1 e 2 configurados para Servos e os blocos 3, 4, 5, 6 para controle via 74HC595.

Endereçamento dos Módulos I2C:Os módulo PWM I2C tem uma série de jumpers que configuram seu endereço no barramento I2C, a interface trabalha com endereços fixos para os módulos conforme abaixo:

Modulo 1: Endereço 0x40
Modulo 2: Endereço 0x41


Jumpers de Endereçamento do Modulo

Endereco 0x40 (Todos Abertos) - Endereco 0x41 (Apenas A0 Fechado)


4. Módulo Saída 74HC595
O 74HC595 é um componente eletrônico conversor de sinal Serial para Paralelo, ele tem 8 portas de saídas e recebe as informações do Arduino utilizando 3 pinos.
Foto Protótipo Modulo Saida 74HC595

Eles podem ser ligados em cascata multiplicando o numero de saída, eu montei módulos de 16 saídas (Dois 74HC595 em cada) que podem ser conectados multiplicando o numero de portas de saída:

Foto conexão em cascata de Modulos 74HC595


5. Modulo de Entrada CD4021
O CD4021 é um componente eletrônico conversor de sinal Paralelo para Serial, ele tem 8 portas de entrada que tem seus valores transmitidas para o Arduino utilizando apenas 3 pinos.

Ele pode ser ligado em cascata com outro CD4021 multiplicando o numero de entradas possíveis com o uso de apenas 3 pinos do Arduino. Eu optei em montar módulos com 3 CD4021 e assim ter 24 portas de entrada.






Sketch Interface

O sketch com o código pode ser baixado no link abaixo:
- Sketch Interface Configurável Para 48 Controles C/MRI MK1- V 1.7 - 15/12/2018 

Além do código serão necessárias algumas bibliotecas adicionais que podem ser baixadas nos links:
- CMRI


Uma das flexibilidades desta interface é que as principais configurações são feitas via serial ao iniciar o Arduino sem a necessidade de alterar no sketch:


Configuração do Modulo via Porta Serial


- Modo de Funcionamento: Standalone ou Node CMRI;
- Endereço Node (Apenas no Modo Node CMRI);
- Numero de Módulos PWM 16 Servos conectados (Ate2 módulos);
- Funcionamento dos Blocos de Saída (Saída Simples ou AMV Bobina);
- Tempo do Pulso Acionado para cada Bloco configurado como AMV Bobina;
- Ângulo Mínimo e Máximo de Cada Servo (Conforme Numero de Modulos PWM conectados);




Modo de Funcionamento dos Blocos de Controles

Conforme citado acima, cada um dos 6 blocos de controle (8 controles por bloco) podem funcionar de maneira diferente conforme configuração:

Bloco Normal: Liga (5V) ou Desliga (0V) conforme o controle recebido. Cada saída do bloco ficará ligada ou desliga conforme a posição da respectiva entrada (Modo Standalone) ou conforme o valor recebido via serial (Modo CRMI Node).
Modo Normal: Cada saída corresponde a um controle.


Bloco Servo: Quando utilizado módulos PWM I2C as primeiras portas de controles serão associadas aos servos: PWM 0: (1 a 16) e PWM 1: (17 a 32). 

Cada servo ira para uma posição conforme o valor da respectiva entrada (Modo Standalone) ou conforme o valor recebido via serial (Modo CMRI Node). 

O servo ira se movimentar para a Ângulo Mínimo (Ângulo por Servo configurável via Serial) quando o controle recebido for 0 (Zero) e vai movimentar para o Ângulo Máximo (Ângulo por Servo configurável via Serial) quando o controle recebido for 1.





Bloco AMV Bobina: Quando um bloco de controles 74HC595 é configurado para AMV de Bobina, cada Controle terá duas Portas de Saídas (Uma para cada bobina). 


Modo AMV Bobina: Cada par de portas de Saída coresponde a um Controle


Essas saídas são acionadas momentaneamente (Tempo Configurável via Serial) conforme o valor da respectiva entrada do Controle (Modo Standalone) ou conforme o valor recebido via serial (Modo CRMI Node). 

A primeira porta de saída será acionada momentaneamente quando o controle recebido for 0 (Zero) e a segunda saída será acionada momentaneamente quando o quando o controle recebido for 1.


Acionamento das Saídas conforme o valor dos Controles para Blocos AMV Bobina.


Como o consumo de corrente das bobinas de AMVs é bastante elevado é necessário utilizar um transistor de driver, como o TIP120.


Módulo Driver com Tip120 para Acionamento de Bobinas



Ligação do Modulo 74HC595 com Driver de Potencia aos AMVs



Logicamente quando é utilizada esta configuração você terá um numero de saída maior que 48, podendo chegar a 96 saídas caso configure todos os blocos como AMV de Bobina.  

Como o tempo de acionamento é configurável é possível controlar não apenas AMVs de Bobina, mas também motores de acionamento lento ajustando o tempo de acionamento do bloco. Neste caso não se deve usar no mesmo bloco AMVs de bobina, pois o tempo maior acionado provocará a queima da bobina.



Nota 22/06/2019: Devido a dificuldade em obter os módulos de Entrada CD4021 e de Saída 74HC595 que exigem conhecimentos de eletrônica para sua confecção foi desenvolvido a Interface Configurável Para 48 Controles CMRI MK2.

sexta-feira, 22 de setembro de 2017

Como Instalar uma Biblioteca (Library) no IDE do Arduino

Este passo a passo deve ajudar os colegas ferromodelistas que precisarem instalar uma nova biblioteca no IDE do Arduino para poder utilizar com algum sketch que tenha baixado/copiado.


Bibliotecas são códigos prontos normalmente para poder utilizar de algum hardware. Assim não precisamos nos preocupar em como fazer o Arduino se comunicar com aquele dispositivo.

Elas precisam ser instaladas (Na verdade copiadas) para uma pasta específica do IDE do Arduino para que sejam reconhecidas e compiladas.


Passo a Passo para Instalar uma Biblioteca (Library) no IDE do Arduino:

1. Baixar a Biblioteca (Exemplo biblioteca ArduinoCMRI):

A maioria dos códigos e bibliotecas para Arduino tem sido disponibilizadas no site “github.com”  por isso tomei as telas dele como exemplo:


1.1. Primeiro clique em “Clone or Download”
1.2. Clique em Download ZIP


2. Quando o Download estiver concluído acesse a pasta de Downloads do seu computador. Você deve encontrar o arquivo ZIP da biblioteca que acabou de baixar;

3. Clique com o Botão direito do mouse sobre o arquivo e no menu que se abre escolha a opção “Extract Here”;



4. Quando o processo acabar você deverá encontrar na pasta de Download uma nova pasta com o nome da biblioteca.


Selecione a pasta de dois cliques para abrir.

5. Dentro da pasta você deverá encontrar alguns arquivos e normalmente uma pasta chamada “examples”. 


Clique em Voltar (Canto Esquerdo Superior da Tela) para voltar a pasta anterior;


6. Se a pasta da biblioteca tiver o final do nome como “-master”, renomeie a mesma tirando o texto “-master”



8. Agora vamos copiar (instalar) a biblioteca no IDE do Arduino. Clique sobre a pasta e digite "Crtl + C" para copiar a pasta;


9. Acesse a pasta onde está instalado o IDE do Arduino, dentro desta pasta você encontrará uma pasta chamada “libraries”.



10. Abra a pasta “libraries” e clique Ctrl + V para copiar a biblioteca para o IDE do Arduino;


Pronto! Agora é só testar se o IDE reconheceu a biblioteca!!!


1. Abra o IDE do Arduino;

2. Acesse a opção Sketch => Incluir Biblioteca, na lista que abre você deve encontrar a biblioteca que acabou de instalar!



Agora você já pode utilizar a biblioteca nos seus Sketchs!!!

sábado, 2 de setembro de 2017

Detector de Ocupação de Blocos DCC

Este circuito funciona com DCC e pode ser utilizado para sinalizar um bloco da sua ferrovia está ocupada por vagões ou por uma composição em deslocamento. Podemos utilizar para sinalização em um painel, semáforos e/ou conectar um pino do Arduino para integração com o JMRI.




Detector de Ocupação não Invasivo:
Existem varias formas de detectar a ocupação de blocos de trilhos em uma maquete, este projeto utiliza o monitoramento da corrente dos trilhos utilizando sensores não invasivos.

Quando uma corrente elétrica passa por um condutor ela gera um campo magnético, transformadores e outros dispositivos elétricos utilizam esse princípio para funcionamento.
Em resumo os sensores não invasivos geram uma corrente em seus pinos quando um campo magnético passa por ele.  

Foram utilizados sensores não invasivos modelo HWCT 5A/5mA, estes sensores comprei no mercado livre mas se procurar pode encontrar no Ebay ou Alliexpress por este modelo ou similares que tenham a mesma resolução 5A/5mA:


O Circuito:
O circuito foi baseado no projeto encontrado na internet que foi publicado por Rob Paisley datado de 2009, basicamente a única mudança foi o uso de CI 4049 no lugar do LM555:

Circuito Original de Rob Paisley



Circuito Adaptado


Funcionamento: 
Quando nenhuma corrente está circulando por T1 o transistor Q1 está em corte e a tensão no ponto A do circuito é praticamente zero.  IC 1/1 irá inverter este valor e teremos em S1 5V, em seguida IC 1/2 ira inverter novamente estes valor e teremos em S2 0V.

Quando uma corrente é induzida em T1 o transistor Q1 passa a conduzir através de R1 passando o ponto A do circuito para 5V.  IC 1/1 irá inverter este valor e teremos em S1 0V, em seguida IC 1/2 ira inverter novamente estes valor e teremos em S2 5V.


Na saída S1 pode ser ligado um led verde para indicação de que a linha está vazia e na saída S2 um led vermelho para indicar que a linha está ocupada. 



Montagem:
Como o CI 4049 possui 3 pares de inversores montei o circuito com três sensores utilizando uma placa perfurada com trilhas:
Circuito Completo do Detector de Ocupação



Montagem do Circuito


Melhorando a Indução da Corrente:
Durante os testes realizados ao enrolar o fio de alimentação dos trilhos no sensor melhorou a sensibilidade do circuito. Sem enrolar o fio, a sensibilidade era de 3,5mA, com duas voltas no sensor a sensibilidade baixou para  próximo de 1mA.



A sensibilidade é muito importante para a detecção de vagões. Para um 3,5mA você precisa adicionar um resistor de 3,3K, já com uma sensibilidade próxima de 1mA o valor deste resistor vai para 10KOhms para uma fonte de 12V.


Ligação dos Trilhos:
Para ligar o circuito aos trilhos você precisa isolar uma das linhas do seu trilho criando os blocos, nesses trechos isolados/bloco um dos fios de alimentação DCC irá passar pelo sensor de corrente, observe que apena um dos trilhos será isolado, o outro recebe o sinal DCC diretamente da Central DCC/Booster:



Demonstração de Funcionamento:
Vejo o vídeo com a demonstração de funcionamento do circuito