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: 5710

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 21 novembro 2016 às 9:36

Leandro,

Infelizmente não. Ela foi descontinuada.

Abraço!

Comentário de Leandro Cesar Agapito da Silveir em 19 novembro 2016 às 11:39
Encontro essa placa para venda no Brasil?
Comentário de Marcelo Rodrigues em 13 junho 2016 às 12:46

Lucas,

Veja o manual do seu dispositivo: http://www.sibratec.ind.br/binario/3679/dem421ac-220380v.pdf

Na página 17 ele mostra duas opções de comunicação (além do IR): Contagem de pulsos e RS485.

O próprio manual é bem completo e detalha bastante a comunicação via RS485.

Você precisará entender do assunto para fazer a integração das duas plataformas AB+DEM, mas não parece impossível.

Com algum estudo você chega lá.

A outra opção, bem mais simples, é contar os pulsos, como descrito na página 17 do manual do DEM421AC.

Boa sorte!

Comentário de Lucas PEdroso em 11 junho 2016 às 0:27

Estou tentando comunicar um medidor de energia(DEM421AC) com a placa automation board, porém não tenho nenhuma intimidade com essa parte de comunicação de dados, sabe me dizer se é melhor utilizar a comunicação RS485 ou infravermelho. (Ambas estão presentes no medidor e na placa). ? 

Comentário de Marcelo Rodrigues em 10 junho 2016 às 12:52

Lucas,

Segue outro link para o esquemático:

http://www.garagelab.com.br/automation/Images/ABSechmatic.png

Comentário de Lucas PEdroso em 10 junho 2016 às 11:19

Obrigado, Marcelo.

O link esquemático não está funcionado.

 

Comentário de Marcelo Rodrigues em 10 junho 2016 às 10:51

Lucas,

Neste link você pode conhecer mais sobre o chip 75176 usado para RS485 na placa e como utilizá-lo:

http://www.ti.com/lit/ds/symlink/sn75176a.pdf

Neste link você pode conferir como o 75176 foi integrado ao ATmega328 na AB:

Esquemático

Se tiver dúvidas gerais sobre a AB. Segue uma página com toda a informação técnica disponível:

AutomationBoard

Comentário de Lucas PEdroso em 9 junho 2016 às 14:19

Como é feita o recebimento de dados via rs485 ?

Rx=2, Tx= 3, pino para controlar o envio/recebimento = 4   ? 


#include <SoftwareSerial.h>

#define RS485_DIR_PIN 4

unsigned char Cmd;

SoftwareSerial mySerial(2, 3); // RX, TX

void setup()
{
pinMode(RS485_DIR_PIN, OUTPUT);
digitalWrite(RS485_DIR_PIN, LOW);

Serial.begin(9600);
mySerial.begin(9600);

}

void loop()
{
Cmd = mySerial.read();
Serial.print("cmd: ");
Serial.println(Cmd);
delay(1000);
}

Comentário de Lucas PEdroso em 28 abril 2016 às 20:38

Ok. Vou fazer isso. Obrigado.

Comentário de Flavio Hernan em 28 abril 2016 às 20:37

O problema é que, os mesmos pinos para gravação via serial, são usados para a comunicação com o xbee, parecer ser conflito no uso da serial, então você deve remover o xbee, para poder programar o atmega328.

Destaques

Registre-se no
Lab de Garagem
Clicando aqui

Convide um
amigo para fazer
parte

curso gratis de arduino

© 2019   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço