Tutorial: Primeiros Passos com a Automation Board

Olá Garagista!

Neste tutorial falaremos da placa Automation Board e mostraremos os primeiros passos para quem pretende desenvolver sistemas de automação com ela. Para entender a placa, basta imaginar um Arduino ou Garagino que viesse com 4 relés e fonte de alimentação na placa, permitindo que ele pudesse ser ligado diretamente na rede elétrica 110/220V. Além disso, esta placa ainda vem com conversor para RS485, conectores para sensores de infravermelho e para XBee, mas esses mostraremos em detalhes nos próximos tutoriais.

A AutomationBoard permite ainda que você utilize shields de Arduino ou mini-shields de Garagino. Mas você precisa verificar se o seu shield utilizará os pinos que foram reservados para os relés. Nesse caso, o shield não funcionará corretamente. Na dúvida, consulte o esquemático da placa neste link ou a tabela abaixo:

Pinos Reservados

  • D5 - Relé 1
  • D6 - Relé 2
  • D7 - Relé 3
  • D8 - Relé 4
  • A0/A1 - Infravermelho
  • D2, D3 e D4 - RS485

Pinos Disponíveis

  • D0/RX, D1/TX, D9, D10, D11, D12, D13
  • A2, A3, A4, A5

Os pinos disponíveis podem ser utilizados por seu shield ou por periféricos que você queira conectar à placa, como sensores, relés extras, servos, etc.

Abaixo você poderá conferir as demais especificações da placa:

  • Microcontrolador: Atmel ATmega328P-PU (DIP)
  • Bootloader: Optiboot (mesmo do Arduino UNO)
  • Relés: 100V/10A - 250V/7A
  • Alimentação: 100/240Vac
  • Tensão de operação do circuito digital: 5V
  • Incluso regulador de tensão e conversores de nível lógico para módulos XBee
  • Pinos digitais I/O: 14 (D0~D8 Reservados / D9~D13 disponíveis)
  • Pinos analógicos: 6 (A0 e A1 Reservados /A2~A5 disponíveis)
  • Dimensões: 130 x 112 x 26mm

A placa é vendida com um firmware de teste, utilizado durante a fabricação. Você poderá checar o funcionamento da sua placa observando a rotina de teste assim que a ligar. Ela irá acender os LEDs e acionar os relés sequencialmente, depois acionará os LEDs dos circuitos para XBee e RS485.

Passo 1 - Ligando a placa

Para ligar a sua placa, conecte um cabo de alimentação (não incluso) conforme a imagem a seguir e ligue na tomada.

CUIDADO: Você estará mexendo com a rede elétrica e não deve mais tocar a placa enquanto ela estiver energizada. Não apoie a placa em superfície metálica, úmida, ou que possa representar risco de choque elétrico ou de curto-circuito aos terminais energizados. Não recomendamos a utilização da placa por pessoas não habilitadas.

Após a rotina de testes, que deverá durar poucos segundos, a placa ficará inativa. Mantendo apenas o LED PWR aceso, indicando que ela está ligada.

Passo 2 - Conexão serial

Para que a placa ficasse mais barata, o chip conversor USB/Serial não foi incluso, já que na maioria dos projetos de automação, a comunicação com a placa é feita através de Ethernet, Bluetooth, XBee, RS485, WiFi, entre outros.

Assim, para que se possa enviar o código, é preciso utilizar um conversor USB/Serial. O conversor comercializado pelo Lab de Garagem (neste link) encaixa perfeitamente na placa, mas você poderá usar outras opções, exemplo:

  • Qualquer converso USB/Serial disponível no mercado (verificar posição dos pinos ou usar jumpers)
  • Cabo conversor
  • Outro Arduino (retirar o ATmega do Arduino)

Em todos os casos, basta utilizar jumpers para conectar os pinos RX, TX, Vcc, GND e DTR (ou RST no lugar do DTR se for utilizado o Arduino como conversor)

Neste tutorial utilizaremos o conversor do LdG, conectando-o como na imagem abaixo:

Passo 3 - Enviando o primeiro código

A programação da Automation Board é feita exatamente como se ela fosse um Arduino UNO, já que o ATmega328P-PU incluso na placa já vem com o bootloader Optiboot, o mesmo do UNO.

Abra o Software Arduino IDE para enviar seu primeiro programa para acionar um dos relés. Conforme o esquemático e as informações apresentadas anteriormente, você poderá verificar que o pino digital D5 é responsável pelo acionamento do Relé 1. Assim, para acioná-lo, basta escrever o valor “HIGH” ou "1" neste pino. O código abaixo liga e desliga o relé em intervalos de 3 segundos.

void setup() {

pinMode(5, OUTPUT);

}

void loop() {

digitalWrite(5, HIGH);

delay(3000);

digitalWrite(5, LOW);

delay(3000);

}

Copie e cole o código acima no software Arduino.

Abra a guia “Ferramentas” ou “Tools” e na opção “Placa” ou “Board” selecione “Arduino UNO”.

Ainda na guia “Ferramentas” ou “Tools”, na opção “Serial Port”, selecione a porta serial que aparece disponível.

Faça o upload do código para a placa.

O LED correspondente ao Relé 1 deverá acender e apagar a cada 3 segundos. Você deverá ouvir um estalo do relé a cada acionamento, indicando que o relé está funcionando adequadamente, conforme figura abaixo:

Passo 4 – Utilizando XBee

Uma das maneiras de enviar comandos para a placa é através de módulos XBee.

Imagine uma rede de placas AutomationBoard conectadas através de módulos XBee. Com essa montagem é possível controlar cada relé de cada placa à distância, a partir de um único módulo conectado a um PC ou outro dispositivo.

Os módulos XBee também permitem a cobertura em longas distâncias, com segurança e evitando interferências.

Você poderá utilizar qualquer módulo compatível, do mais barato ao mais sofisticado, bastando conectar o módulo conforme a figura abaixo:

A placa possui marcações que indicam a posição que o módulo deve ser inserido.

A placa AutomationBoard já possui conversores de nível lógico e regulador de tensão para 3.3V, tensão utilizada pelo módulo XBee. Assim, não é preciso se preocupar com nada, basta conectar o módulo diretamente à placa.

Os acionamentos utilizando módulos XBee se fazem através de comunicação serial entre o módulo e o ATmega328. A comunição é feita via pinos RX/TX do Arduino (D0 e D1). Assim, experimente mandar comandos via rádio para o XBee da placa através de um módulo XBee conectado ao seu PC. Conforme o exemplo abaixo:

void setup(){

Serial.begin(9600);

pinMode(5, OUTPUT);

pinMode(6, OUTPUT);

pinMode(7, OUTPUT);

pinMode(8, OUTPUT);

}

void loop(){

if (Serial.available()>0) {

char a = 0;

a = Serial.read();

if (a=='5') { PORTD ^= (1 5); }

if (a=='6') { PORTD ^= (1 6); }

if (a=='7') { PORTD ^= (1 7); }

if (a=='8') { PORTB ^= (1 0); }

Serial.write(a);

}

}

O código acima recebe caracteres via comunicação serial. Toda vez que o ATmega328 recebe os caracteres “5”, “6”, “7” ou “8”, faz a mudança de estado do relé correspondente para ligado ou desligado (toggle).

Nos próximos tutoriais iremos nos aprofundar em aplicações da AutomationBoard, por ora essa é apenas uma introdução.

Passo 5 – Utilizando Shields

Conforme mencionado anteriormente, você poderá utilizar shields juntamente com sua AutomationBoard, sejam eles shields para Arduino ou para Garagino. No entanto é importante verificar quais pinos o seu shield utiliza e quais pinos estão disponíveis para uso na AutomationBoard, já que alguns deles são usados para os demais recursos da placa. Consulte a tabela no início deste tutorial

Passo 6 – Utilizando Sensores e Periféricos I2C

Você poderá conectar sensores através dos headers para Arduino ou Garagino, mas a melhor maneira é utilizar os 6 pinos indicados na imagem abaixo, eles foram posicionados estrategicamente para essa finalidade.

Os pinos escolhidos para conectar sensores foram A4 e A5. Além de serem pinos analógicos, permitindo a conexão de sensores desse tipo, como o LM35, os pinos A4 e A5 formam o barramento I2C do Arduino, permitindo a conexão de sensores I2C mas também qualquer outro dispositivo que utilize esse barramento, como teclados, displays, entre outros.

Os pinos 5V e GND estão estrategicamente posicionados no mesmo local, facilitando a conexão de periféricos com apenas um cabo.

Os passos a seguir são para desenvolvedores mais experientes que já possuem conhecimentos sólidos em eletrônica e programação. No entanto, muitos projetos são possíveis com o apresentado até aqui, especialmente com a utilização de shields. Para os tópicos abaixo iremos criar tutoriais mais detalhados que permitam o aprendizado dos desenvolvedores mais iniciantes.

Passo 7 – Infravermelho

A placa poderá ainda enviar sinais de IR ou ser acionada por um controle remoto (desses de TV). Veja abaixo os detalhes do circuito da AutomationBoard para os pinos de infravermelho:

O conector JP20 corresponde ao borne IR_OUT, e possui um transistor para acionamento. Assim, você poderá ter uma corrente maior, e portanto, maior potência para acionamento de um emissor de IR. O conector JP21 corresponde ao borne IR_IN, que por sua vez poderá ser conectado a um fotoreceptor de IR. O pino PC0/A0 poderá ser utilizado para capturar o sinal recebido.

Passo 8 – RS-485

O padrão RS-485 foi incluído na AutomationBoard para permitir a sua aplicação em ambientes com maior ruído eletromagnético e para transmissões a distâncias maiores, com fio. O chip utilizado na placa é o SN75176, que é um transceptor padrão TIA/EIA-485-A. Datasheet: http://www.ti.com/lit/ds/symlink/sn65176b.pdf

Veja abaixo o esquemático das ligações desse chip na placa:

O borne para conexão do barramento localiza-se no canto inferior direito da placa, com a indicação dos pinos A, B e GND. Os LEDs indicativos RX-485 e TX_485 localizam-se próximos ao borne. Os jumpers JP1, JP2 e JP3 estão logo acima, conforme imagem abaixo:

Essa foi uma introdução e os primeiros passos com a AutomationBoard. Nos próximos tutoriais iremos utilizá-la para projetos e aplicações mais específicas. 

Obrigado por acompanhar este tutorial!

Caso queira adquirir sua AutomationBoard ou ter mais detalhes, acesse a Loja do Lab de Garagem:

http://www.labdegaragem.com.br/home/Automation-Board

Exibições: 6584

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de Marcelo Rodrigues em 19 fevereiro 2016 às 8:37

Flávio,

Você está correto. Nós não colocamos para o usuário definir esse resistor de acordo com o tipo de LED ou Sensor que pretende utilizar. Alguns usuários irão preferir usar sensores de infravermelho mais profissionais, talvez com valores de corrente diferentes do LED avulso. Por isso, não colocamos.

Mas acho importante você ter notado essa questão.

Obrigado!

Comentário de Flavio Hernan em 18 fevereiro 2016 às 23:19

Uma pequena dúvida, não deveria ter um "pequeno" resistor no coletor do BC337 (próximo a JP20), pois ligando diretamente um LED IR, este poderia queimar rapidamente, ou é responsabilidade do usuário colocar o resistor?

Comentário de Joao assis em 18 fevereiro 2016 às 21:28
Parabéns ao Labdegaragem por mais este tutorial! Nota 10!!!
Comentário de Joao assis em 18 fevereiro 2016 às 21:27
Já comprei a minha na ocasião de captação de recursos no kickstarter!
Montei um controle remoto sem fio de 4 canais o qual estarei fornecendo ao pessoal do Labdegaragem caso queiram melhorar criar texto e divulgar, apesar de ser uma configuração muito mais básica do que o bluetooth com smartphones!
Comentário de Tiago Alexandre em 12 fevereiro 2016 às 20:23

comprei a minha, agora so falta chegar para eu testar as dicas hehe

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço