Desde seu lançamento, em 2010, a placa Arduino Uno R3 + Cabo Usb para Arduino é o membro mais conhecido e usado da família. Sua difusão em meio à comunidade maker foi um marco que contribuiu para o desenvolvimento de diversos projetos e para a entrada de diversas pessoas neste meio. Existem diversas shields espacialmente dimensionadas especificamente para encaixar nele e diversas bibliotecas configuradas para sua pinagem. Por isso, mesmo com a disponibilidade de chips bem mais poderosos, o Uno continua sendo uma opção privilegiada na hora de definir o controlador de seu projeto. Na verdade, em diversos casos a placa Uno é a única opção viável para o projeto devido à restrição que os demais membros do sistemas trazem em relação a outras placas ou chips.
Já em 2014, uma nova placa chamou a atenção da comunidade maker: o Módulo WiFi Serial ESP8266 ESP-01. Muito mais poderoso do que o Arduino Uno, o chip ESP8266 integra acesso a rede WiFi, opera em 32 bits, possui maior capacidade de memória RAM e, geralmente, acompanha memórias FLASH de alguns MB. Entretanto, consome, em condições usuais, maior corrente, possui menos entradas analógicas e apresenta mais detalhes e complicadores para a programação do que o ATmega328p. A Uno WiFi, nova em nossa loja, une a praticidade de interação com módulos e sensores externos, apresentada pelo Arduino Uno, à capacidade de se conectar ou gerar uma rede WiFi, proporcionada pelo ESP8266.
Posts introdutórios sobre o Arduino Uno:
Posts introdutórios sobre o ESP8266:
Para os exemplos abaixo, foram utilizados:
Para essa demonstração, utilizaremos um LED externo conectado ao pino digital 10 e a um resistor de 220 ohm. O código pode ser visto abaixo:
void setup() { pinMode(10, OUTPUT); digitalWrite(10, HIGH); } void loop() { digitalWrite(10, !digitalRead(10)); delay(500); }
Para carrega-lo no ATmega328p, devemos utilizar a seguinte configuração nas chaves seletoras presentes na placa:
Chave | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
Posição | OFF | OFF | ON | ON | OFF | OFF | OFF | X |
Com as chaves posicionadas, basta conectar a placa ao computador por meio de um cabo USB. Importante: Essa placa utiliza o conversor CH340, para o qual a IDE não apresenta, nativamente, driver. Este pode ser encontrado em: https://sparks.gogo.co.nz/ch340.html
Na tela de seleção de placas da IDE, deve ser escolhida a opção “Arduino Uno”, não “Arduino Uno WiFi”. A placa Arduino WiFi sobre a qual a segunda opção se refere é outra, com outro chip controlador.
Após compilar e carregar o código, o resultado abaixo será obtido:
Para essa demonstração, utilizaremos um LED externo conectado ao pino digital 16 e a um resistor de 220 ohm. O código pode ser visto abaixo:
void setup() { pinMode(16, OUTPUT); digitalWrite(16, HIGH); } void loop() { digitalWrite(16, !digitalRead(16)); delay(500); }
Para carrega-lo no ESP8266, devemos utilizar a seguinte configuração nas chaves seletoras presentes na placa:
Chave | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
Posição | OFF | OFF | OFF | OFF | ON | ON | ON | X |
Com as chaves posicionadas, basta conectar a placa ao computador por meio de um cabo USB. Importante: Essa placa utiliza o conversor CH340, para o qual a IDE não apresenta, nativamente, driver. Este pode ser encontrado em: https://sparks.gogo.co.nz/ch340.html
Na tela de seleção de placas da IDE, selecione “Generic ESP8266 Module”. Caso a opção não esteja disponível, siga o tutorial deste link para habilita-la.
Após compilar e carregar o código, para que o ESP execute o programa, é necessário ajustar a configuração das chaves para a seguinte:
Chave | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
Posição | OFF | OFF | OFF | OFF | ON | ON | OFF | X |
Assim, pode-se observar o seguinte funcionamento:
Ambos processadores podem ser usados ao mesmo tempo, como mostra o vídeo:
Na própria placa, há vias conectando os pinos das UART dos microcontroladores, eliminando a necessidade de jumpers. Para habilitar a comunicação entre os chips, as chaves devem estar na seguinte configuração:
Chave | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
Posição | ON | ON | OFF | OFF | OFF | OFF | OFF | X |
Para essa demonstração, utilizaremos o seguinte código no ATmega328p:
void setup() { pinMode(10, OUTPUT); Serial.begin(9600); digitalWrite(10, LOW); } void loop() { if(Serial.available()) if(Serial.read() == 'X') digitalWrite(10, !digitalRead(10)); }
E, no ESP8266, o seguinte:
void setup() { pinMode(16, INPUT); Serial.begin(9600); } void loop() { if(!digitalRead(16)) { delay(50); if(!digitalRead(16)) { Serial.write('X'); while(!digitalRead(16)); } } }
Com os programas carregados e as chaves ajustadas, o comportamento do sistema será o seguinte:
Vimos que, com a placa Uno WiFi, é possível, de forma compacta, integrar o chip ATmega328p ao ESP8266, unindo grande capacidade de processamento e funcionalidades Wireless a disponibilidade de pinos para interface externa. Todas as funcionalidades do ESP8266 são mantidas nesta placa, incluindo criação de AP e conexão como STA. Além disso, vale reparar que o chip opera sem a necessidade de nível lógico alto ser colocado nos pinos RST e CH_PD da placa. Isso decorre do fato de existirem resistores de pull-up na PCB que ligam a tensão de alimentação aos respectivos pinos do chip.
Por hoje, é isso! Não deixe de compartilhar e nos marcar, nas redes sociais, seus projetos utilizando essa placa. Havendo dúvidas, deixe-as nos comentários, abaixo. Até a próxima!
Conheça a Metodologia Eletrogate e ofereça aulas de robótica em sua escola!
|
A Eletrogate é uma loja virtual de componentes eletrônicos do Brasil e possui diversos produtos relacionados à Arduino, Automação, Robótica e Eletrônica em geral.
Tenha a Metodologia Eletrogate dentro da sua Escola! Conheça nosso Programa de Robótica nas Escolas!