sexta-feira, 3 de abril de 2020

Controle Rotunda

Este controle para Rotunda (ou Virador de Locomotivas) tem uma interface muito amigável com um display de cristal líquido e painel com 5 botões (Dois para seleção da saída (UP / DOWN), um para CONFIRMAR, um para CANCELAR e outro para INVERTER a PONTE (Giro 360º). Além disso as configurações da Rotunda (Número de Saídas e Posições) são configuradas diretamente no display sem a necessidade de alterações do Sketch.



Diagrama do Acionador:


MATERIAL NECESSÁRIO:
- Arduino Nano/Uno (ATMEGA328P);
- Modulo UNL2003 + Motor de Passo 28byj-48;
- Modulo LCD OLED 0.91inch 128x32;
- Modulo Rele de Dois Contatos - DPDT (Double Pole Double Throw);
- 5 Push Button (Botoes de Pressão);
- Led Infra-Vermelho TIL32 3mm
- Receptor InfraVermelho TIL78 3mm
- Resistor 470R 1/8W;
- Resistor 10K 1/8W;

Conexão entre os Módulos 

Montagem dos Módulos na Rotunda


Sketch:
O Sketch pode ser baixado no seguinte link: https://github.com/cledersontp/RotundaArduino

Alem dele você ira precisar da biblioteca Adafruit_SSD1306 que pode ser baixada neste link: https://github.com/adafruit/Adafruit_SSD1306


FUNCIONAMENTO:
Quando o circuito é ligado o motor gira até a posição inicial (Saída 1). Neste processo o motor é acionado continuamente até que o sensor de infra vermelho (pino 12) detecte a ranhura do Disco de Posicionamento.
Mensagem de Movimento Inicial no Display 

Detalhe do Corte no Disco de Posicionamento

Painel de Operação da Rotunda

Depois de posicionado na Saída 1 o usuário pode selecionar a saída desejada pelos botões UP/DOWN/INVERTER e clicar em Confirmar para movimentar a PONTE.

Botoes UP/DOWN para selecionar a SAIDA

Botão OK para mover a PONTE para a SAIDA selecionada

Movimento PONTE da SAIDA 1 para SAIDA 2

INVERSÃO DA PONTE
Para ativar/desativar a opção INVERTER basta clicar no botão INVERTER, quando a opção estiver ativa será exibido um “i” com fundo branco no display. A opção INVERTER move a PONTE para a saída selecionada alinhando a outra extremidade da PONTE com a SAIDA, ou seja invertendo a PONTE.
Botão INVERTER sentido da PONTE

Depois de ativar a OPÇÃO inverter e escolher para qual saída deseja movimentar a locomotiva basta clicar em OK para movimentar a PONTE.

Veja no exemplo abaixo:
Se por exemplo a PONTE estiver na SAIDA 2 e for movimentada para a SAIDA 1 a locomotiva sairá de ré da rotunda.

Movimento normal da SAIDA 2 para a SAIDA 1 

Porem, se for ativada a opção INVERTER para mover a PONTE da SAIDA 2 para a SAIDA 1, a locomotiva sairá de frente da rotunda.

Movimento INVERTIDO da SAIDA 2 para a SAIDA 1

Caso a PONTE esteja invertida, sua polaridade também estará, nesta situação é acionado o modulo Rele para inverter a polaridade dos trilhos da PONTE compatibilizando com a polaridade dos trilhos das saídas.


CONFIGURAÇÃO:
Para configurar a Rotunda deve ser mantido pressionado o botão “INVERTER” quando o circuito é ligado. Logo após a PONTE fazer o movimento para a posição inicial (Saída 1) será apresentado o menu de configuração (O botão Inverter só deve ser solto quanto o menu de configuração for exibido).
Manter o botão INVERTER pressionado ao ligar a rotunda para Configurar

Menu de Configurações

Para navegar nas opções basta utilizar os botoes UP/DOWN e clicar em CONFIRMAR para entrar no menu desejado.

Opções do Menu:
a) Número de Saídas
b) Posição das Saídas
c) Direção Padrão
d) OffSet
e) Fim

a) Número de Saídas: Nesta opção é configurado o número de saídas da rotunda, lembrando que a Saída 1 tem a posição fixa conforme a posição inicial do motor.
Configuração do NUMERO DE SAÍDAS da rotunda

Para ajustar o número de saídas basta pressionar os botões UP/DOWN e clicar em CONFIRMAR para gravar. Para voltar para o menu inicial sem alterações basta clicar em CANCELAR.


b) Posição da Saída: Nesta opção são configuradas as posições de cada saídas da rotunda. Ao todo são 2048 posições para os 360º da volta (0.176o por Posição).

Para ajustar o número de saídas, primeiro selecione a SAÍDA que será configurada com os botões UP/DOWN e aperte o botão CONFIRMAR. 
Seleção da SAÍDA que será configurada

A PONTE ira movimentar para a posição configurada para aquela saída e basta fazer o ajuste da posição com o trilho da saída utilizando os botões UP/DOWN. Para gravar a posição basta clicar em CONFIRMAR. 
Use os botoes UP/DOWN para ajustar a posição da PONTE

Alinhamento da PONTE com a SAIDA

Para sair da configuração utilize o botão CANCELAR.

c) Direção Padrão: A direção padrão indica se a contagem das saídas é feita em sentido Horário ou Anti-horário. Para ajustar basta pressionar os botões UP/DOWN e clicar em CONFIRMAR para gravar. Para voltar para o menu inicial sem alterações basta clicar em CANCELAR.
Entrando na configuração de Direção Padrão

Seleção da direção: HORÁRIO ou ANTI-HORÁRIO

Direção Padrão

d) OffSet: O motor de passo 28byj-48 possui internamente alguma engrenagens que normalmente apresentam um pequeno “jogo” quando é feita a inversão de rotação. 
Entrando na configuração do OffSet

Jogo nas Engrenagens / Engrenagens do motor 28byj-48

O OffSet é uma maneira de compensar esse pequeno “jogo” adicionado alguns passos no movimento do motor sempre que a rotação é invertida. Para ajustar o valor basta pressionar os botões UP/DOWN e clicar em CONFIRMAR para gravar. Para voltar para o menu inicial sem alterações basta clicar em CANCELAR.
Utilize os botões UP/DOWN para ajustar os Passos do OffSet

O ajuste do OffSet pode ser feito testando a movimentação entre as Saídas 1 e 2:
1. Ligar o circuito e movimentar a PONTE para a Saída 2.
2.  Em seguida mova a PONTE da Saída 2 para a Saída 1.
Caso a PONTE ao retornar não alinhe corretamente com a Saida 1 é necessário ajustar o OffSet: 
Desalinhamento da PONTE ao retornar da POSIÇÃO 2 para POSIÇÃO 1

Se PONTE parar antes da saída o OffSet deve ser aumentado, caso a PONTE parar depois da Saída o OffSet deve ser reduzido.


MECANISMO DE ACIONAMENTO
A parte mecânica é muito importante e mais complexa que o circuito de controle por necessitar de giro em 360o e qualquer “folga” acarreta em diferença no alinhamento da PONTE com os trilhos das saídas.
Mecanismo acionamento Rotunda

As peças plásticas foram impressas em 3D com PLA salvo as engrenagens que foram impressas com HPLA. 

Para a transmissão da energia a solução foi utilizar um tubo de latão de 5mm como eixo e dentro dele isolado, um tubo de latão de 2mm.

Corte do Mecanismo detalhando seu eixo


Os contatos com os tubos de latão do eixo utilizam Sondas de Teste Pongo como "Escovas". Estas sondas são pequenos tubos de latão com uma agulha de contato pressionada por uma mola interna:
Sonda Pongo utilizada como "escova"


A PONTE é um Pontilhão Frateschi (Cod 1515) que teve os trilhos substituídos para Latão e foram adicionados rodas nas extremidades (Rolo Pressor de Toca Fitas).
Pontilhão Frateschi (Cod 1515) modificado

O suporte para encaixe do Pontilhão ao Eixo de acionamento foi impresso em 3D.

O pontilhão deve ser fixado alinhado ao trilho de entrada da Posição 1 (Posição Inicial), para isso reinicie o circuito para que a mecanismo vá para a posição inicial, com cuidado fixe o pontilhão alinhado aos trilhos da Posição 1. 
Pontilhão alinhado com a SAÍDA 1. 


Recebi vário pedidos quanto aos arquivos STL utilizados para impressão da base do virador, então estou disponibilizando esses arquivos para quem tiver interesse:

Arquivos STL Virador Motor de Passo 28byj-48

Montagem as peças Impressas em 3D


Alem das peças impressas em 3 será necessário:

- Tubo de Latão 5mm (Eixo Externo);
- Tubo de Latão 2mm (Eixo Interno)
- Dois Rolamentos MR115ZZ (Diâmetro Interno 5mm / Externo 11mm);
- Demais componentes descritos acima no projeto;

terça-feira, 4 de fevereiro de 2020

Diário de Bordo da Implementação de Sinaleiro e Sensor de Ocupação

Autor: Renato Petersen

O objetivo deste diário de bordo é mostrar a configuração necessária para instalação básica de controle de ocupação de vias e sua respectiva sinalização. Meu objetivo final é fazer a instalação tanto na minha maquete de casa (Maquete do Petersen) quanto em uma maquete modular que usamos para divulgar o hobby.


Nossa implementação de testes consiste em apenas um pequeno circuito com um desvio e alguns blocos.


Para iniciar o trabalho, o primeiro passo é conectar o hardware necessário, que consiste em ligar nas interfaces USB o cabo do DCC++ e o cabo USB do barramento RS485.




Cada uma destas interfaces tem sua função. O DCC++ será utilizado para alimentar os blocos da linha de testes.

A interface RS485 gera um barramento onde é possível conectar diversos dispositivos de controle de blocos de ocupação e também vários sinais, servos para movimentação de AMVs e iluminação em geral da maquete. De fato, com a utilização de relés é possível controlar qualquer dispositivo.


Todos estes controles são realizados nas janelas da interface gráfica do JMRI.

Configurar no JMRI os endereços dos hardwares nos respectivos endereços de USB. O processo é escolher DCC++ e C/MRI na primeira combo (System manufacturer) após clicar no sinal +, em seguida é necessário informar na combo seguinte (System Connection) a opção por Serial Port, e na opção seguinte (Settings) a porta serial correta.

 

Uma dica a respeito deste processo é fazer a inserção do DCC++ antes e o C/MRI em seguida, inclusive conectando na USB primeiro um deles e fazendo toda a respectiva configuração, depois fazer o mesmo para a com a outra USB. Assim se evita escolher as portas invertidas ou erradas.

Após fazer a inclusão das configurações do C/MRI é necessário criar um nó de comunicação entre o JMRI e o arduino que controla os hardwares necessários para servos, luzes e sensores. O nó é criado e a ele se atribui um endereço, este endereço irá determinar toda a codificação associada aos servos, luzes e sensores.

Demos ao nó o endereço 0. Esta opção determina que todos os próximos elementos serão definidos na faixa de 01 a 48. Caso o endereço fosse 1, os próximos elementos seriam definidos na faixa 1001 a 1048, e assim por diante a medida em que o número do nó vai crescendo.

Todas as saídas do C/MRI, ou seja tudo que será definido no JMRI e irá gerar uma ação sobre algum elemento da maquete é um turnout. Sobre o nó C/MRI criar os controles de saídas, que o JMRI chama genericamente de turnouts. Turnout além de ser usado como desvio na ferrovia, também pode ser traduzido para saída, o que faz todo o sentido.


Embora o layout de teste tenha apenas um desvio nossa interface permite a criação de controles para 16 desvios. Para experiência iremos criar 4 desvios.

Como pode ser visto os desvios criados assumiram as iniciais CT, onde C foi uma letra atribuída ao C/MRI na tela inicial de criação da interface, no mesmo local onde foi dito qual era a porta USB usada. O T é a identificação interna de Turnout.

Os nomes no sistema são definidos são então definidos pela junção da letra escolhida ao criar a conexão do C/MRI + a letra T de turnout e um número sequencial definido pelo número do nó + um sequencial que são os endereços na interface.

Temos assim a nossa disposição as saídas CT01, CT02, CT03 e CT04. Escolhi nomes mais amigáveis para estas saídas e denominei elas de AMV0001, AMV0002, AMV0003 e AMV0004.
 

Desta forma, estão criados os acionamentos dos desvios que irão obedecer individualmente o ângulo inicial e o ângulo final que foram definidos e armazenados no arduíno. A coluna State (atualmente como Unknow), pode ser trocado para close ou thrown já fazendo a alteração do desvio no layout.

Criados 4 AMVs o passo seguinte é criar as luzes.

O objetivo da configuração das luzes é criar três conjuntos de luzes que serão utilizadas para anões de linha com duas cores, sinaleiros de três cores e uma indicação de posição de desvio.

Foram criadas duas saídas para quatro pares de luzes do endereço 17 ao 24 que serão usadas nos anões de linha e mais duas saídas extras para sinalização do desvio. Estas saídas funcionam aos pares uma para ativar o led vermelho e outra para ativar o led verde, no caso dos anões. Para os desvios é necessário criar também duas saídas que teriam cores definidas, mas foi implementada no hardware apenas um LED, assim a sinalização é Led aceso ou LED apagado.

Também foram criadas três saídas extras para os três leds do sinaleiro triplo, uma para vermelho, outra para amarelo e outra para verde.

Os endereços vão do CT0017 ao CT0024  para os anões de linha que serão 4 e CT25 e CT26 para a luz indicadora da posição do desvio. Os endereços CT0033, CT0034 e CT0035, são os endereços para o sinaleiro de três cores.

Escolhi nomes mais significativos como LSG, indicando Light de Signal e a numeração padrão das portas da interface.


Estes endereços tem correspondência com as plaquinhas MCP2317 e na fotografia é possível ver um flat com várias cores numa das plaquinhas que são ligadas a cada um dos LEDs, na perna positiva deles e um conjunto de três fios (Branco, cinza e roxo) na outra plaquinha que estão ligados ao positivo dos LEDs do sinaleiro triplo.

A placa central possui 16 portas de saída numeradas de 17 a 32 sendo que metade delas estão ocupadas com os 9 saídas para LEDs, são os endereços de 17 até 25. Embora tenha sido configurado um endereço CT26  ele não foi implementado fisicamente.

Na placa da esquerda existem mais três conectores ocupados, dos 16 disponíveis. Estes três são os endereços CT33, CT34 e CT35 que foram conectados aos leds do sinaleiro triplo.

Qualquer um destes LEDs pode ser ligado ou desligado diretamente na tabela onde foram criados. Funcionam diretamente independente de outras lógicas que ainda serão criadas. Assim, seria possível manualmente acender e apagar LEDs de sinalização. Esta operação além de bastante está sujeita a erros do operador.

O passo seguinte é criar unidades de sinalização que vão definir cada um dos sinais propriamente ditos, estes sinais são a conjunção de duas saídas de LEDs, com cores diferentes. É necessário dizer para o JMRI que os endereços CT17 e CT18 formam um par de sinalização, cada um deles com uma cor diferente que mais adiante serão controlados de forma excludente, ou seja se está vermelho não está verde e vice-versa.



As associações de endereços podem ser duplas ou triplas e isso permite criar sinais de duas ou de três cores. A figura anterior mostra a criação de um sinal de duas cores.

Quando os fios dos LEDs foram soldados a interface MCP2317, foi feito alternando um LED vermelho e um verde em cada um dos pinos da interface desde o pino 17 até o pino 24, ao pino 25 foi soldado um LED azul para o desvio.

A associação das saídas LSG0018 e LSG0017 em um sinal SH0001 determina que as duas saídas formam um par que será gerenciado pelo JMRI pelo nome SH0001.



O nome no sistema é determinado pelo JMRI, o User name poderia ser alterado para qualquer sequência mais amigável. Poderiam ser Anão0001 … Anão0004, AMV0001, por exemplo. Aqui neste caso foi deixado o nome sugerido pelo sistema.

Para sinais com três LEDs a configuração diverge da criação anterior apenas por apresentar mais uma definição de endereço para a cor amarelo.

 Após a criação dos sinais é necessário criar os sensores. Os sensores são implementados para dar ao sistema de sinalização a automação de troca de sinais, assim como os AMVs também são usados nas trocas de sinais.

Nesta implementação os sensores estão associados às portas 1, 2, 3 e 4 da placa MCP2317 de entrada. Os fios preto, branco e dois vermelhos estão ligados a estas portas na placa identificada como E1. É uma placa de entrada com capacidade de ler informações de 16 dispositivos. Neste caso, os dispositivos de entrada se restringem a bobinas que avaliam se existe consumo de corrente nos trilhos que elas monitoram.

 É possível ver que estes fios vão em direção ao hardware criado para avaliar as bobinas.



Olhando no detalhe é possível ver que que os mesmos fios preto, branco e dois vermelhos estão ligados a placa de gerenciamento das bobinas.

Um dos polos que alimenta cada bloco de trilho passa por dentro de cada uma destas bobinas. Estes blocos são identificados no layout como Bloco 1, Bloco 2, Bloco 3 e Bloco 4.


Os blocos são duplamente isolados 


Na imagem seguinte é possível ver melhor a configuração de blocos do layout de testes. O layout é composto por quatro trilhos e um desvio sem talas de junção para garantir o isolamento total de cada bloco.


 Para configuração dos blocos, basta criar cada um dos 4 blocos e associar o mesmo a um endereço de entrada da plaquinha MCP2317 de entrada. Isso é feito na tela de criação de Sensores. 

Ao criar os sensores já podemos dar a eles o nomes que identificam cada um dos blocos. Identificamos os blocos com nomes mais amigáveis. 


Pelas características de construção é recomendável para esta interface fazer a inversão dos sensores e isso é feito na sexta coluna da tela de criação de sensores. Na tela anterior isso não aparece, mas foi feita esta alteração na configuração.

O passo seguinte é associar a lógica de funcionamento dos sinais em relação os blocos de ocupação.

A lógica é associada para que se tenha a automação do sistema de sinalização. Basicamente blocos ocupados devem gerar uma sinalização vermelha e blocos vazios devem gerar uma sinalização verde. A garantia de que apenas uma das cores seja acionada é dada pela criação de sinais como unidades. A lógica de sinalização é criada sobre esta unicidade dos sinais, porém nada impede que o usuário manipule os LEDs individualmente, o que não é recomendado como uma boa prática após se criar uma lógica de sinalização.

Os sinais de 1 a 4 irão utilizar o mesmo processo de configuração lógica que consiste apenas em associar um bloco a um sinal. 




A sinalização de blocos que mostra um sinal vermelho ou verde para os anões de sinalização é muito básica e trata-se apenas de escolher o sinal e o bloco marcando a opção “On Single Block”. Isso foi repetido para SH0002, SH0003 e SH0004.

Para a configuração do SH0005 que está associado ao AMV0001 a configuração difere um pouco das anteriores 


E se indica o AMV001 para determinar do acionamento do sinal e a opção escolhida é “Main Leg of Turnout”

A configuração do sinal triplo traz uma maior sofisticação ao sistema de sinalização pois permite estabelecer uma luz de alerta na sinalização indicando que o bloco seguinte ao próximo bloco está ocupado e isso determina que a locomotiva deve entrar no bloco seguinte com a velocidade reduzida.

Aqui cabe uma informação de operação dos trens. Um sinal de sinalização vermelha indica que a locomotiva deve parar totalmente antes de ultrapassar o sinal. Um sinal verde indica que a locomotiva pode  seguir em velocidade máxima para o trecho seguinte. Um sinal amarelo indica que a locomotiva deve seguir na velocidade mínima indicada para o trecho. Cada trecho terá uma sinalização de velocidade máxima e de velocidade minima, neste caso de sinalização.

Frente ao exposto anteriormente para o sinal 6 a associação é diferente pois a luz amarela é dependente do próximo bloco após o seguinte bloco e tem como objetivo dizer que este outro bloco está ocupado. Se usa isso para sinalizar blocos ocupados na proximidade.



Para completar o serviço é necessária a criação de um painel de controle e gerenciamento


Sobre o autor:

Renato Petersen é um figura conhecida no mundo do ferreomodelismo que faz questão em compartilhar seu conhecimento e descobertas.
No facebook e no youtube do Petersen você encontra diversos vídeos com dicas e experimentos que ele compartilha com os colegas ferromodelistas.