ESP8266 V1 conectando diretamente na protoboard

Introdução
Material necessário
Passo a passo
Conclusão

Introdução

O chip ESP8266, está conquistando cada vez mais um espaço no mundo maker, pois este pode ser facilmente programado pela IDE do Arduino, logo você não precisa aprender uma nova linguagem para se aventurar com este chip, o que é mais legal tem WIFI.

No mercado existem diversos módulos, com a quantidade de pinos variável, mas na verdade é o mesmo ESP8266, o que também pode mudar é a quantidade de memória flash, essa é usada para guardar o firmware, o interessante é que essa memória é externa ao chip, diferentemente do Atmega328p, usado no Arduino UNO, que possui memória de programa interna, por exemplo.

Comecei a brincar com o ESP8266, a placa que eu tenho no momento é a versão 1 ou ESP-01, o problema é conectar o módulo na protoboard, também é possível utilizar alguns fios, mas não achei legal, a melhor forma para fazer isso seria construir uma pequena placa para adaptar o encaixe do conector na protoboard.

Nesse post vou mostrar como utilizar o módulo ESP-01, diretamente na protoboard, esse método é somente para teste, caso queira utilizar vários módulos, recomento desenvolver uma placa.

Material necessário

  • Um Alicate bico fino;
  • Uma chave de fenda pequena;
  • Fios ou jumpers com as pontas macho-macho;
  • Um pouco de paciência.

Passo a passo

Preparando o conector

Como sabemos o módulo ESP-01 possui um conector macho, 3×3 pinos, isso não é bom para utilizar na protoboard, pois os pinos ficariam em curto circuito, impossibilitando utilizar a placa. Vou mostrar como encaixar

  1. Observando o conector do ESP-01, pode-se notar que existe um pequeno espaçador de plastico, isso deverá ser removido;
  2. De posse de uma pequena chave de fenda e com muito cuidado para não cortar as trilhas, posicione a ponta da chave entre a placa e o espaçador;
  3. Tente fazer uma alavanca para levantar o plastico, realize esse passo aos poucos e de cada lado ;
  4. Levante um pouco, o suficiente para a ponta do alicate pegar.

Este slideshow necessita de JavaScript.

  1. Com a ajuda de um alicate, posicione uma das pontas por baixo do espaçador de plastico e a outra apoiando nos pinos do conector.
  2. Com pouca força aperte o alicate, tente deslizar o espaçador para as pontas dos pinos, não deixe desnivelar ou ficar torto, pois assim não sairá.
  3. Quando estiver quase saindo, puxe o espaçador com o alicate.

Este slideshow necessita de JavaScript.

  1. Com os pinos livres, podemos entorta-los, na forma de V, não pode ser em demasia, pois corre o risco de quebra-los, caso quebre, somente usando o ferro de solda para corrigir, é o que estamos evitando.
  2. Experimente na protoboard, mas SEM encaixar, verifique se o pinos estão próximos dos furos.
  3. Esse é o passo MAIS IMPORTANTE, com o alicate tente fazer uma pequena curva, para o lado de dentro dos pinos ou de forma a deixa-los um pouco reto, faça com cuidado e paciência.
  4. Depois de entornar novamente os pinos eles devem ficar com um novo aspecto, bem inclinado perto do módulo e pouco inclinado quase reto, no restante do pino.
  5. Faça alguns testes, caso precise entorte mais um pouco até conseguir encaixar na protoboard.

Este slideshow necessita de JavaScript.

Realizando as ligações

Concluído a etapa de preparar o conector, precisamos disponibilizar os pinos que ficaram por baixo do módulo, isso é muito simples de resolver, vou mostrar com fazer:

  1. Determine o local onde a placa irá ficar, de preferência nas bordas da protoboard;
  2. Com o uso de pequenos fio, de preferencia rígido, facilmente encontrado em cabo de rede ou Cabo Ethernet, corte em tamanhos pequenos de aproximadamente 3 cm, desencape 1/2 cm, para poder inserir na protoboard;
  3. Depois de inserir os fios, coloque o módulo na protoboard;
  4. Confira a função de cada pino, para não errar quando for fazer testes com o Arduino ou programar o módulo.

Este slideshow necessita de JavaScript.

Conclusão

É possível de forma barata, conectar diretamente o módulo ESP-01 na protoboard, com a ressalva de realizar o procedimento descrito, para uma pequena quantidade de placas.

Anúncios

Atualizando o Firmware do conversor USB-serial do Arduino

 

Introdução

Nesse post eu vou ensinar como atualizar o firmware do conversor USB serial utilizado nos Arduinos UNO e MEGA, esse conversor utiliza o microcontrolador MEGA16U2 ou MEGA8U2, para realizar a comunicação entre o Arduino e o seu PC.

Algumas vezes podem o ocorrer erros na gravação do Sketch ou mesmo você tentou usar o modo DFU, mas houve algum problema na hora de gravar seu firmware no MEGA16U2,  agora sua placa não é reconhecida como uma porta serial, COMx no Windows ou /dev/ttyACMx, no Linux, vou explicar como resolver esse problema.

Para executar esse tutorial é necessário ter um gravador externo, aqui eu vou utilizar o USBASP, já fiz uma explicação sobre esse gravador aqui, estou considerando que o avrdude, esteja instalado no computador, no momento estou utilizando Linux, para escrever esse tutorial.

Erro que pode ocorrer:

Using Programmer : arduino
Overriding Baud Rate : 115200
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
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
avrdude done. Thank you.
Problem uploading to board. See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.

Localizando o conversor USB-serial

O conversor USB-serial é um pequeno chip SMD, que está localizado próximo ao conector USB, seu respectivo conector para gravação  está localizado bem ao lado.

localiza_con_usb_serial

Localização do conector de gravação do MEGA16U2 e descrição do pinos

Para realizar todo esse procedimento recomento comprar um adaptador de 10 pinos para 6 pinos.

Com esse adaptador basta inserir nos pinos indicados na imagem acima, observando a posição do pino 1.

14002621_thumb_G_1365774927308

Adaptador de 10 para 6 pinos

 

Caso se sinta seguro, você pode utilizar 6 fios e realizar a ligação entre os conectores, observando a função de cada pino.

Localizando o novo firmware no MEGA16U2

A partir do local de instalação da IDE do Arduino procure pelo seguinte caminho

<caminho_instalacao>/hardware/arduino/avr/firmwares/atmegaxxu2

Dentro dessa pasta estão os arquivos pré compilados para o MEGA16U2.

 

Gravando o firmware

Com o gravador conectado na placa, no conector do MEGA16U2.

Abra um terminal e navegue até a pasta que contem os firmwares, dentro dela digite:

Para o Arduino UNO

avrdude -c usbasp -p atmega16u2 -P usb -U flash:w:Arduino-COMBINED-dfu-usbserial-atmega16u2-Uno-Rev3.hex -U lfuse:w:0xFF:m -U hfuse:w:0xD9:m -U efuse:w:0xF4:m -U lock:w:0x0F:m

Para o Arduino Mega

avrdude -c usbasp -p atmega16u2 -U flash:w:Arduino-COMBINED-dfu-usbserial-atmega16u2-Mega2560-Rev3.hex -U lfuse:w:0xFF:m -U hfuse:w:0xD9:m -U efuse:w:0xF4:m -U lock:w:0x0F:m

Com o gravador conectado na placa, no conector do MEGA8U2. (Caso sua placa seja R2).

Use outro caminho.

<caminho_instalacao>/hardware/arduino/avr/firmwares/atmegaxxu2/arduino-usbserial

Abra um terminal e navegue até a pasta que contem os firmwares, dentro dela digite:

Para o Arduino Uno

avrdude -c usbasp -p atmega8u2 -P usb -U flash:w:Arduino-usbserial-uno.hex -U lfuse:w:0xFF:m -U hfuse:w:0xD9:m -U efuse:w:0xF4:m -U lock:w:0x0F:m

Para o Arduino Mega

avrdude -c usbasp -p atmega8u2 -P usb -U flash:w:Arduino-usbserial-mega.hex -U lfuse:w:0xFF:m -U hfuse:w:0xD9:m -U efuse:w:0xF4:m -U lock:w:0x0F:m

Dicas

Dica, no linux talvez seja necessário usar como sudo, para execura o avrdude.

Se sua versão do avrdude for antiga, e não conter o atmega8u2 ou atmega16u2, será necessário usar o seguinte parâmetro -p at90usb82 -F

avrdude -c usbasp -p at90usb82 -F

Caso o avrdude não esteja instalada e acessível na PATH do sistema, será necessário passar todo o caminho até onde está o executável do avrdude ou o caminho do arquivo HEX.

Na IDE do Arduino, o avrdude está localizado no seguinte caminho

<caminho_instalacao>/hardware/tools/avr/bin

Abra o terminal no caminho acima.

Para o Arduino UNO com MEGA8U2, vai ficar assim, no Linux:

avrdude -c usbasp -p atmega8u2 -P usb -U flash:w:../../../arduino/avr/firmwares/atmegaxxu2/arduino-usbserial/Arduino-usbserial-uno.hex -U lfuse:w:0xFF:m -U hfuse:w:0xD9:m -U efuse:w:0xF4:m -U lock:w:0x0F:m

 

 

Gravando Bootloader do Arduino com USBASP

 

Introdução

Esse post tem como finalidade mostrar um outra maneira de gravar o bootloader do Arduino utilizando um gravador externo, existem diversas maneiras, a mais comum é utilizar um segundo Arduino, com o firmware ArduinoISP, para fazer isso.

Se você tem apenas um Arduino e ele está em uso ou queimou o chip Atmega328p, vai depender de você comprar um segundo Arduino e um novo microcontrolador ou comprar um gravador externo e um novo microcontrolador, eu uso o USBASP, e é com esse gravador que vou explicar o processo.

usbasp_top_peq_horiz

Gravador USBASP vendido pela BAITE

Para quem quiser montar o seu próprio gravador, é possível, pois os arquivos estão disponíveis na internet, neste site. Lembro que você ainda vai precisar de um gravador de AVR, para gravar o firmware no microcontrolador do gravador.

Instalação de Drives

Essa explicação é valida apenas para Windows, no linux não houve problema, testei no Ubuntu 14.04, e o driver foi carregado automaticamente.

Primeiramente será necessário baixar um programa chamado Zadig, neste site, e baixar para a versão correspondente ao Sistema Operacional (SO) usado em seu computador. No meu caso é Windows 7 64 bits.

Quando for conectado o gravadoor no PC, o Windows não o reconhecerá, pois não há drives, então não use o gerenciador de drives do SO.

usbasp_sem_driver

USBASP sem driver instalado

Ao executar o Zadig irá aparecer uma janela para escolher o dispositivo.

zadig_antes_instalar

Janela de seleção do dispositivo e driver

Selecionar o USBASP na lista, depois escolher o driver libusb-win32, e por ultimo  é só clicar em Install Driver.

Caso apareça diversos dispositivos na lista, certifique-se que o USB ID é 16C0 05DC

zadig_depois_instalar

Janela mostrando que o driver foi instalado com sucesso.

 

Conectando o gravador no Arduino

O USBASP utiliza um conector de 10 pinos e o Arduino utiliza outro com 6 pinos, mas é fácil conectar os dois utilizando um adaptador de 10 para 6 pinos.

14002621_thumb_G_1365774927308

Adaptador de 10 para 6 pinos

Caso não tenha comprado esse adaptador também é fácil conectar ao Arduino, apenas terá que usar 6 fios, de preferencia do tipo jumper femea-femea.

 

uno_usbasp_10_pin

Esquema de ligação USBASP 10 pino ao Arduino

A baixo está a indicação dos pinos, o conector do Arduino é marcado como ICSP.

descricao_pinos

Nome de cada pino, do Arduino e do USBASP

Caso tenha o adaptador é só conectar no conector ICSP, observando a posição do pino 1.

Gravando o Bootloader

Essa é a etapa mais simples, pois toda a configuração do microcontrolador é realizada automaticamente pela IDE do Arduino. Para não complicar muito uma pequena explicação, os fuse bits, (responsáveis por definir parâmetros de operação do microcontrolador) são configurados nessa etapa, então parâmetros relacionados ao clock e ao espaço em memória, onde bootloader ficará armazenando no microcontrolador serão definidos, isso é muito importante para o correto funcionamento dos Sketch.

Vamos ao passo a passo.

Vamos iniciar a IDE do Arduino e nela precisamos configurar a placa que queremos gravar o bootloader, nesse exemplo será o Arduino UNO, mas é igual para as outras placas também, Duemilanove, Mega2560, Leonardo … apenas selecione a placa correspondente.

Primeiro passo, escolher a placa.

Selec_uno

Selecionando a placa alvo, nesse é exemplo o Arduino UNO

Segundo passo, escolher o gravador.

selec_usbasp

Selecionando o gravador, no caso estou usando o USBASP

Terceiro passo, gravar o bootloader.

selec_burn

Iniciando o processo de gravação do bootloader

É possível trocar a ordem dos passos 1 e 2, não há problema.

Se você terminou esses passos e não ocorreu erro, meus parabéns você gravou com exito o bootloader.

A mensagem abaixo deverá aparecer:

Done burning bootloader

Caso tenha  ocorrido algum erro a mensagem abaixo irá aparecer

Error while burning bootloader

Nesse caso verifique as ligações e refaça os passos anteriores, ou verifique se o Atmega está corretamente conectado ou se o microcontrolador tem inscrição ATMEGA328P no Arduino UNO, Duemilanove. Caso não tenha o P no final da inscrição o problema  será outro, mas adianto que pode ser resolvido.

 

Conectando um conversor externo USB Serial no Arduino, teste com CP2102

Tags

, , ,

Olá pessoal, esse é meu primeiro post, ainda estou aprendendo a trabalhar com o WordPress, preciso definir o leiaute da minha página.

Nesse primeiro post vou tentar explicar, um problema que eu criei (e realmente pode acontecer) e mostrar, uma possível solução.

Eu tinha uma curiosidade, se a placa do Arduino Uno, Mega, Duemilanove, tivesse um problema no Conversor USB Serial, o que poderia ser feito? Lembro que o conversor é baseado no Mega8U2 ou Mega16U2, que na verdade são microcontroladores com um firmware capaz de “traduzir” o protocolo USB em UART. Também é possível encontrar os chips Ft232 (na placa Arduino Duemilanove), CH340 (placas compatíveis com Arduino,  fabricadas na china).

O problema pode ser resolvido usando um conversor USB externo, no meu caso eu comprei uma placa contendo o circuito integrado CP2102.

cp2102_modulo

Só um pequeno parêntesis, no processo de  upload do sketch para a placa do Arduino, é necessário realizar um RESET no microcontrolador principal,  no caso do Arduino UNO é o Atmega328p e do Arduino Mega2560 é o Atmega2560, para “ativar” o bootloader e assim receber o sketch e gravar o programa na memoria.

O circuito para fazer o RESET automático ficou assim:

improvedResetO esquema de ligação:

esquema_ligação

Tentei ligar somente um capacitor em serie na linha do DTR/ RESET, mas não funcionou.

Uma foto do meu simples experimento:

IMG_20150701_170747555Como pode-se notar, (ou não) a alimentação era fornecida pelo conversor USB Serial.

Também testei com Arduino Uno e funcionou muito bem.

NOTA: eu conectei o cabo USB no Arduino e no computador, ao mesmo tempo em que o conversor estava ligado e NÃO funcionou, NÃO gravou o sketch.