Adafruit Feather Huzzah ESP8266

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 7

Marco Antonio Gómez Solorio Sistemas Programables 8-C

-Adafruit Feather Huzzah ESP8266

Para mi investigación decidi elegir el microcontrolador de Adafruit porque el Adafruit


Feather HUZZAH con ESP8266 es una plataforma de desarrollo popular en la
comunidad de electrónica y programación debido a sus características específicas
y la facilidad de uso. A continuación se escribiré sus características, ventajas y
desventajas.

Características
-Microcontrolador: ESP8266
-Frecuencia del CPU: 80 MHz
-Memoria Flash: 4 MB (32 Mbit)
-RAM: 80 KB de SRAM
-Wi-Fi: 802.11 b/g/n
-Voltaje de Operación: 3.3V
-Pines GPIO: 9 pines de entrada/salida
-Conector USB: Micro-USB para programación y alimentación
-Batería: Conector JST para batería de LiPo de 3.7V y circuito de carga integrado
Marco Antonio Gómez Solorio Sistemas Programables 8-C

-Tamaño: 51mm x 23mm x 8mm


-Interfaz: UART, SPI, I2C
-ADC: Un canal ADC de 10 bits

Ventajas
-Conectividad Wi-Fi Integrada: Permite proyectos de IoT sin necesidad de módulos
adicionales.
-Plataforma Compacta y Ligera: Ideal para proyectos con restricciones de espacio
y peso.
-Programación Simple: Compatible con el entorno de desarrollo de Arduino, lo que
facilita la programación incluso para principiantes.
-Soporte para Batería: Incluye un conector y un cargador para baterías LiPo, lo que
permite proyectos portátiles.
-Comunidad y Documentación: Amplia documentación y una comunidad activa que
proporciona soporte y ejemplos.
-Versatilidad: Múltiples pines GPIO y soporta varias interfaces de comunicación
(UART, SPI, I2C).
Desventajas
-Limitaciones de GPIO: Comparado con otras placas, tiene menos pines GPIO
disponibles, lo que puede ser una limitación para proyectos que requieran muchas
entradas y salidas.
-Consumo de Energía: El consumo de energía puede ser relativamente alto para
aplicaciones que requieren baja potencia y larga duración de batería.
-Capacidades de Procesamiento: Aunque adecuado para muchos proyectos de IoT,
el ESP8266 no es tan potente como otros microcontroladores más modernos, lo que
puede ser una limitación para aplicaciones más intensivas en procesamiento.
-Tensión de Operación: Opera a 3.3V, lo que puede ser una desventaja si se
necesita compatibilidad directa con sensores o dispositivos que funcionan a 5V.
-Sólo un Canal ADC: Tiene solo un canal ADC, lo que limita la capacidad de leer
múltiples señales analógicas simultáneamente.
Marco Antonio Gómez Solorio Sistemas Programables 8-C

4.1 Modelo de Programación

El ESP8266 puede ser programado de diversas maneras, incluyendo los siguientes


lenguajes y entornos de desarrollo:

- Arduino (C/C++):
Sintaxis: Similar a la de Arduino. Utiliza el IDE de Arduino para escribir y cargar el
código.
Ejemplo de código

void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
digitalWrite(LED_BUILTIN, HIGH); // Encender LED
delay(1000); // Esperar 1 segundo
digitalWrite(LED_BUILTIN, LOW); // Apagar LED
delay(1000); // Esperar 1 segundo
}

-MicroPython:
Sintaxis: Utiliza Python, con una sintaxis simplificada y adecuada para dispositivos
embebidos.
Ejemplo de código

import machine
import time
Marco Antonio Gómez Solorio Sistemas Programables 8-C

led = machine.Pin(2, machine.Pin.OUT)

while True:
led.value(1) # Encender LED
time.sleep(1)
led.value(0) # Apagar LED
time.sleep(1)

-Lua (NodeMCU firmware):


Sintaxis: Utiliza Lua, un lenguaje de scripting ligero.

Ejemplo de código
gpio.mode(1, gpio.OUTPUT)

while true do
gpio.write(1, gpio.HIGH) -- Encender LED
tmr.delay(1000000) -- Esperar 1 segundo
gpio.write(1, gpio.LOW) -- Apagar LED
tmr.delay(1000000) -- Esperar 1 segundo
end

4.2 Estructura de los Registros del CPU


El ESP8266 está basado en el procesador Tensilica Xtensa LX106. Los registros
clave incluyen:

Registros de Propósito General (GPRs): Son utilizados para operaciones


aritméticas y lógicas, almacenamiento temporal, etc.
Marco Antonio Gómez Solorio Sistemas Programables 8-C

Registros de Propósito Especial:


PC (Program Counter): Lleva la dirección de la próxima instrucción a ejecutar.
PS (Processor State): Contiene el estado actual del procesador.
SAR (Shift Amount Register): Utilizado en operaciones de desplazamiento.
El ESP8266 también tiene registros específicos para manejar la Wi-Fi y otras
funcionalidades específicas del chip.

4.3 Modos de Direccionamiento


El ESP8266 soporta varios modos de direccionamiento para acceder a datos:

Direccionamiento Inmediato: El operando es parte de la instrucción.


Direccionamiento Directo: La dirección del operando está especificada en la
instrucción.
Direccionamiento Indirecto: Utiliza un registro que contiene la dirección del
operando.
Direccionamiento por Registro: Acceso directo a los registros del CPU.

4.4 Conjunto de Instrucciones


Algunas instrucciones comunes en el ESP8266:
MOV: Mueve datos entre registros o entre registros y memoria.
MOV R1, R2 (Mueve el contenido de R2 a R1).
ADD: Suma dos operandos.
ADD R1, R2, R3 (Suma R2 y R3, almacena el resultado en R1).
SUB: Resta dos operandos.
SUB R1, R2, R3 (Resta R3 de R2, almacena el resultado en R1).
LD: Carga un valor desde la memoria a un registro.
LD R1, [R2] (Carga el valor en la dirección contenida en R2 a R1).
ST: Almacena un valor de un registro en la memoria.
ST [R1], R2 (Almacena el valor de R2 en la dirección contenida en R1).
Marco Antonio Gómez Solorio Sistemas Programables 8-C

4.5 Lenguajes Ensambladores


El ESP8266 puede ser programado en ensamblador utilizando el ensamblador de
Tensilica Xtensa. Características:

Específico del hardware: Ofrece control detallado sobre el hardware.


Eficiencia: Permite escribir código muy eficiente en términos de tiempo de
ejecución y uso de memoria.
Complejidad: Más complejo y menos intuitivo que lenguajes de alto nivel como C
o Python.
Ejemplo de código en ensamblador:
section .data
led_pin equ 2

section .text
global _start

_start:
; Inicializar el pin del LED
mov r3, led_pin
call setup_pin

loop:
; Encender LED
mov r3, led_pin
call led_on
; Esperar
call delay
; Apagar LED
mov r3, led_pin
Marco Antonio Gómez Solorio Sistemas Programables 8-C

call led_off
; Esperar
call delay
; Repetir el bucle
j loop

4.6 Codificación
El siguiente código es un programa simple en C/C++ para el ESP8266 utilizando el
entorno Arduino IDE, que enciende y apaga un LED:

void setup() {
pinMode(LED_BUILTIN, OUTPUT); // Inicializar el pin del LED como salida
}

void loop() {
digitalWrite(LED_BUILTIN, HIGH); // Encender el LED
delay(1000); // Esperar 1 segundo
digitalWrite(LED_BUILTIN, LOW); // Apagar el LED
delay(1000); // Esperar 1 segundo
}

En resumen, el Adafruit Feather HUZZAH con ESP8266 es una excelente opción


para proyectos de IoT debido a su integración de Wi-Fi, tamaño compacto y facilidad
de uso, aunque tiene algunas limitaciones en cuanto a pines GPIO y capacidades
de procesamiento.

También podría gustarte