Showing posts with label Energia. Show all posts
Showing posts with label Energia. Show all posts

Saturday, April 18, 2015

ESP8266 ESP-01 review

O módulo ESP-01 v090 utiliza o SoC ESP8266 para prover um roteador e estação WiFi do tamanho de uma porta USB e custa menos de 3 dólares.

ESP-01 conectado no PC pelo Prolific PL2303

SDK oficial
http://espressif.com/new-sdk-release/

Segundo o datasheet do ESP8266
https://nurdspace.nl/images/e/e0/ESP8266_Specifications_English.pdf
O máximo permitido em qualquer pino é 3.6V
Portanto para ligar em I/O de 5V (ex: Arduino) precisa usar um shift level de 5v para 3.3v.
Pelo que vi alguns makers ligam direto no i/o 5v sem shift level, e funciona, mas a risco de queimar o esp8266. Testei ligando no PL2303 com i/o de 3.3v e com i/o de 5v e funcinou, para minimizar a change de queimar resolvi continuar usando o 3.3v que está dentro das especificações.

Pinout do ESP-01
Existem 2 modos de operações: o normal e o gravação de firmware.
Quem determinar o modo de operação é o GPIO0 durante o boot.
Se GPIO0 estiver em Low durante o boot, vai em entrar em modo de gravação.
Se GPIO0 estiver em High durante o boot, vai em entrar em modo normal.
Depois do boot dá para usar o GPIO0 como uma saída digital, mas eu não gosto de usar esse pinos de gravação para outras finalidades pois em alguns casos ocorrem problemas.

O pino CH_PD (chip select) deve se ligado ao VCC senão o ESP8266 fica travado antes do boot.
ESP-01 com pullup de 2.2k no CH_PD.

Também é preciso garantir a corrente necessária para o funcionamento do ESP8266, que no pico de transmissão pode chegar até 300mA
ModeMinTypicalMaxUnits
802.11b, CCK 1Mbps, POUT=+19.5dBm215mA
802.11b, CCK 11Mbps, POUT=+18.5dBm197mA
802.11g, OFDM 54Mbps, POUT=+16dBm145mA
802.11n, MCS7, POUT =+14dBm135mA
802.11b, packet size of 1024 bytes, -80dBm60mA
802.11b, packet size of 1024 bytes, -70dBm60mA
802.11b, packet size of 1024 bytes, -65dBm62mA
Standby0.9uA
Deep sleep10mA
Saving mode DTIM 11.2mA
Saving mode DTIM 30.86mA
Shutdown0.5uA

É possível ligar o RTS do PL2303 no RST do ESP-01 e o DTR do PL2303 no GPIO0 do ESP-01, assim dá para controlar o modo de operação dinamicamente pela serial sem ficar mexendo nos fios.
https://github.com/themadinventor/esptool/blob/master/esptool.py
# RTS = CH_PD (i.e reset)
# DTR = GPIO0

Firmware com Comandos AT
http://www.electrodragon.com/w/ESP8266_Firmware

Código para Arduino/Energia
http://www.electrodragon.com/w/ESP8266_with_Arduino

Firmware com script Lua:
https://github.com/nodemcu/nodemcu-firmware

Ferramenta de gravação de firmware:
https://github.com/nodemcu/nodemcu-flasher
Existe uma opção de gravar o firmware que vem embutido nessa ferramenta, que no caso é umas das últimas versões do nodemcu com suporte a Lua.

nodemcu firmware programmer
Firmware com AT versão 0.952
AT version:0.21.0.0
SDK version:0.9.5
https://drive.google.com/folderview?id=0B_ctPy0pJuW6fnVLeGYzWmhzeGtZa1hwTF9zakJUOEdNejVhcFZXYi02Zk5GLXp6ckRNZkE&usp=drive_web&tid=0B3dUKfqzZnlwRjFaNTUzZFptbzg#list

nodemcu firmware programmer configurar para gravar o firmware AT 0.952

Log do firmware que veio pré instalado no ESP-01:
não tem como sabe qual a versão do AT e nem do SDK que compilou, já que o AT+GMR não retorna nada muito útil.

OK
AT+RST


OK
7!aSÊS:6à;Ì;!ÕýAÆ [ýÊêþ
[Vendor:www.ai-thinker.com Version:0.9.2.4]

ready
AT+GMR

0018000902-AI03

OK

Log do firmware AT versão 0.952:


AT+RST


OK

 ets Jan  8 2013,rst cause:4, boot mode:(3,7)

wdt reset
load 0x40100000, len 816, room 16 
tail 0
chksum 0x8d
load 0x3ffe8000, len 788, room 8 
tail 12
chksum 0xcf
ho 0 tail 12 room 4
load 0x3ffe8314, len 288, room 12 
tail 4
chksum 0xcf
csum 0xcf

2nd boot version : 1.2
  SPI Speed      : 40MHz
  SPI Mode       : QIO
  SPI Flash Size : 4Mbit
jump to run user1

rlŽ‚ÿ
Ai-Thinker Technology Co. Ltd.

ready
AT+GMR

AT version:0.21.0.0
SDK version:0.9.5

OK

O firmware acima foi compilado com o SDK 0.9.5 com parser AT 0.21 cabe em 512kb de flash
ESP8266 SDK (esp_iot_sdk_v0.9.5_15_01_23) released
com o SDK 1.0.0 entrou o parser AT 0.22 cabe em 512kb de flash
ESP8266 SDK (esp_iot_sdk_v1.0.0_15_03_20) released
como o SDK >= 1.0.1 os novos comandos AT precisam de pelo menos 1024kb de flash.



Ferramenta de exploração com suporte a Nodemcu/Lua e comandos AT
http://esp8266.ru/esplorer/

Esplorer tool



API do Arduino para ESP8266
https://github.com/esp8266/arduino

Arduino IDE com suporte a ESP8266


Onde comprar:
http://lista.mercadolivre.com.br/esp8266
http://www.banggood.com/buy/Esp8266.html
http://www.aliexpress.com/wholesale?SearchText=esp8266
http://www.dx.com/s/esp8266
http://www.seeedstudio.com/depot/s/esp8266.html

Tuesday, November 11, 2014

CC3200 : ARM Cortex M4 (Dual Core) com WiFi b/g/n com Nuttx , FreeRTOS, Energia

A CC3200-launchxl é um kit ARM cortex-m4 + WiFi b/g/n + sensores.
É um ponto de entrada para a Internet das coisas (IoT).

Tuesday, June 24, 2014

Tiva C Series: sync leds using I2C Bus

I2C bus é um barramento serial multi-master.
Os barramentos TWI e SMB são similares ao I2C introduzindo pequenas diferenças.
Na tabela estão as diferenças entre esses barramentos.

Tuesday, February 11, 2014

Rádio CC1101 433MHz @ 10dbm testado alcance de 300 metros com sucesso

Rádio CC1101 testado em ambiente urbano com todo tipo de obstáculo foi um sucesso.
Configurado com baudrate de 38.4k o teste consistiu em manter um enlace bidirecional com troca de pacotes com intervalo aleatório entre 100ms a 1000ms. Com perda estimada menor que 1% o rádio recebe pacotes com potência inferior a -100 dbm.

O código fonte está disponível no meu github 
https://github.com/murix/energia-0101E0011

A Stellaris foi descontinuada com a entrada Tiva C Series [Stellaris revisada] 
https://estore.ti.com/Tiva-C-LaunchPad.aspx

As placas de CC1101 usadas no experimento podem ser encontradas no DX, o único problema é que o passo do conector é de 2mm, o que dificulta a instalação em placas com passo de 2.54 mm
http://dx.com/p/diy-cc1101-433mhz-wireless-transceiver-module-for-arduino-green-2-pcs-149251#.UvojNvldWaw

Outro lote de CC1101 usado em experimentos pode ser encontrado no Aliexpress, que tem diversas opções de tamanho e preços. 
http://www.aliexpress.com/wholesale?SearchText=cc1101

Esquemático de ligação no comentário da foto.

CC1101 conectado na porta SPI0 da Stellaris Launchpad.
CC1101 -> Stellaris / Tiva
GDO0 -> PB6
CSN ->PA3
SO -> PA4
SCK -> PA2
SI -> PA5

Hardware usado no teste de alcance
CC1101 + Stellaris Launchpad
CC1101 + Tiva C Series Launchpad



Thursday, February 6, 2014

Tiva C series: resolver conflito da USART1 e USART4

Usando a Energia IDE (https://github.com/energia/Energia) é super simples.
O truque é remapear a USART1, para remover o conflito com os pinos da USART4.

Monday, November 4, 2013

Testando motores na launchpad e monitorando PWM com BusPirate

Depois de remove o R9 e R10 chegou a hora de testar os motores na launchpad (LM4F120H5QR ).
o duty cycle para ativar os motores é um pouco diferente do usado no Arduino Nano v3 (atmega328p).

Sunday, November 3, 2013

Testando MPU6050 - Acelerômetro & Giroscópio

Testando o acelerômetro a intensidade dos leds variando em função da inclinação.
Implementada task do driver do MPU-6050 no FreeRTOS com API do Arduino/Energia