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

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 Josauro S.J. em 29 fevereiro 2016 às 8:27

Ainda não entendi como ligar esse componente   http://produto.mercadolivre.com.br/MLB-692503849-receptor-infraverm. na AutomationBoard, Alguem poderia me informar, A parte de programação eu me viro.

Comentário de Marcelo Rodrigues em 27 fevereiro 2016 às 14:28

Emilio,

Exatamente o que o Flávio disse. Se o problema persistir escreva para a gente no e-mail engenharia[a]labdegaragem.com que daremos todo suporte.

Tiago,

Por segurança, a AutomationBoard não é alimentada pelo módulo. Para programar, ela precisa estar ligada à rede elétrica.

Comentário de Flavio Hernan em 27 fevereiro 2016 às 13:16

Olá Emilo

Esse problema acontece geralmente quando não há comunicação entre o Avrdude e o microcontrolador,

Verifique as ligações, cabo USB ou troque de porta USB (preferencialmente 2.0).

Também ocorre, quando a IDE está configurado para uma placa diferente da que você está usando.

Certifique-se que o bootloader esteja corretamente gravado.

Comentário de Emilio Bandeira Lima em 27 fevereiro 2016 às 12:48

Copiei e colei o primeiro programa na ide do arduino (2:1.0.5+dfsg2-4) instalada numa maquina ubuntu 15.10 64bits e deu o erro abaixo

Tamanho do arquivo binário sketch: 1,018 (de no máximo 32,256 bytes)
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00

o que pode ser

lsusb
Bus 004 Device 003: ID 138a:0011 Validity Sensors, Inc. VFS5011 Fingerprint Reader
Bus 004 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 004 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 007: ID 0403:6001 Future Technology Devices International, Ltd FT232 USB-Serial (UART) IC
Bus 001 Device 002: ID 045e:07fd Microsoft Corp.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 003 Device 004: ID 0c45:6483 Microdia
Bus 003 Device 003: ID 8086:0189 Intel Corp.
Bus 003 Device 002: ID 8087:0024 Intel Corp. Integrated Rate Matching Hub
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

Placa conectada na dev/ttyUSB0

O que pode ser isso?

Comentário de Tiago Alexandre em 26 fevereiro 2016 às 18:36

Aeee, chegou, ma tentei usar o meeu FDTi, que uso no garagino, para programar ela, mas não consegui energizar ela.

Ela só grava conectado a rede, ou consigo gravar igual ao garagino?

Comentário de Marcelo Rodrigues em 26 fevereiro 2016 às 13:29

Emilio,

A princípio nenhum problema. Você não poderá usar os dois ao mesmo tempo apenas (cartão + RS485).

Abraço!

Comentário de Emilio Bandeira Lima em 26 fevereiro 2016 às 12:38

Uma pergunta de um neófito, (Desculpa de ante mão) a porta digital D4 é reservada para o RS485, no entanto a minha placa ethernet tem um cartão de memória que é ligada nessa porta também. pergunta-se: em quais circunstâncias eu utilizo esta ligação serial (RS485)? Existe conflito entre o RS485 e o cartão de memória do ethernet, sendo que a única comunicação que usarei no sistema é ethernet?

Comentário de Josauro S.J. em 26 fevereiro 2016 às 10:32

Legal Marcelo, é que o que eu tenho é esse   http://produto.mercadolivre.com.br/MLB-692503849-receptor-infraverm... , por isso não vi como liga-lo.

Muito obrigado pela resposta.

Comentário de Marcelo Rodrigues em 26 fevereiro 2016 às 10:04

Josauro,

A AutomationBoard tem no receptor de IR uma conexão em uma porta analógica com um resistor de pull-up. Esse esquema foi desenhado para ser usado com fotoreceptores desse tipo: http://www.labdegaragem.com.br/LED-Receptor-Infravermelho-5mm ou com fotosensores com transistor integrado. Para simplificar o raciocínio, imagine que o sensor funcione como um transistor, sendo que a luz (IR) é a base. Quanto mais luz, maior a passagem de corrente. Assim, a intensidade da luz pode ser medida na porta analógica. Em alguns casos, pode ser necessário um circuito externo, dependendo do sensor que você pretende utilizar.

Segue um esquemático dessa parte do circuito para sua referência.

Vou arrumar um tempo aqui para fazer um tutorial sobre esse assunto para ajudar quem pretende usar controle remoto com a AutomationBoard.

Abraço!

Comentário de Josauro S.J. em 25 fevereiro 2016 às 22:18

Ola não entendi como ligar o receptor de IR na placa, na posição IR-IN tem conexão para 2 pinos mas o IR tem 3, (acho).

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço