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!!!

domingo, 17 de setembro de 2017

Controle 8 AMV's Com Servos & Arduino

Este projeto pode ser utilizado pelos colegas Ferromodelistas para controlar AMVs de uma maquete com chaves ou pelo JMRI utilizando o Arduino UNO/Arduino Nano/Arduino Pro.



Você vai precisar para esse projeto: Arduino, Servos e as Chaves para acionamento.

O código pode ser baixado no link abaixo e transferido para o Arduino utilizando o IDE:




Os pinos para conexão do dos Servos e Controles são:

Pino Servo Pino Controle
AMV 1 2 6
AMV 2 3 7
AMV 3 4 8
AMV 4 5 9
AMV 5 A0 10
AMV 6 A1 11
AMV 7 A2 12
AMV 8 A3 A5



As chaves de controle precisam de apenas dois fios, um ligado ao GND e outro ao seu respectivo pino de controle:


Exemplo Ligação do Servo 1


Para alimentação dos servos é recomendada uma fonte separada e o uso do PowerOnDelay para evitar o “pulo” dos servos quando a fonte for ligada.



Ajustes nas Configurações:

Eventualmente será necessário algum ajuste nas configurações dos servos ou do tempo de movimento. Para fazer esses ajustes seguem algumas orientações:



1. Tempo de Movimento do AMV

Para ajustar o tempo de movimento do AMV altere da variável “TempoPulso”. Quanto maior, maior será o tempo do movimento:

//Milisegundos para avanço por grau 
#define TempoPulso 100


2. Posição Inicial e Final do AMV

Para alterar a posição Inicial e Final do AMV você precisa alterar os valores das variáveis valIniServo e/ou valFimServo.  
Os valores entre chaves nas linhas abaixo representam os valores para cada servo na sequencia (Servo 1 a 8):

//Angulo Minimo dos Servos
byte valIniServo[8] {5, 5, 5, 5, 5, 5, 5, 5};  
//Angulo Maximo dos Servos
byte valFimServo[8] {60, 60, 60, 60, 60, 60, 60, 60};


Exemplo: Para alterar os valores do Servo 5, configurado o valor Inicial para 10 e o valor final para 50:

//Angulo Minimo dos Servos
byte valIniServo[8] {5, 5, 5, 5, 10, 5, 5, 5};  
//Angulo Maximo dos Servos
byte valFimServo[8] {60, 60, 60, 60, 50, 60, 60, 60};




Fixação do Servos sobre a Maquete: 

Para fixação dos servos na maquete você pode confeccionar um suporte utilizando estireno de 3mm e de 1mm cortado nas medidas abaixo:





1. Monte o suporte de fixação colando as tiras de 20mm sobre as tiras de 45mm:


2. Deixe uma distancia para colocar o servo, ele precisa entrar em diagonal por causa do fio;



3. Faça os furos para fixação do servo:


4. Faça os furos de fixação da base e de passagem do arame do AMV. Os furos de fixação maiores facilitam ajustes do AMV sobre a maquete e o furo de passagem do arame precisa ter um diametro bem superior ao arame para permitir a sua curvatura (Veja o item 8):


6. Antes de colar a Base alinhe o Braço do Servo com o final do Furo do arame:


7. Faça uma curva “Z” na ponta do arame para fixa-lo ao braço do servo:


8. Faça um furo o menor possível na tira de estireno de 1mm o suficiente para passar o arame que ira acionar os AMV, isso evitara folgas e o funcionamento correto do mecanismo:
Tira "guia" do Arame

A tira de 1 mm ira definir o ponto de inclinação do arame. Se tiver muita folga o mecanismo não irá funcionar corretamente. Já o furo na base precisa permitir a inclinação total do arame.


9. Pronto, agora é só fixar sob a maquete e fazer os eventuais ajustes no ângulo inicial e final do servo;




Veja o vídeo de funcionamento desse controle e o suporte para servos:


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