import sys
import os
from machine import Pin
import time
class Board:
class BoardType:
PICO_W = 'Raspberry Pi Pico W'
PICO = 'Raspberry Pi Pico'
RP2040 = 'RP2040'
ESP8266 = 'ESP8266'
ESP32 = 'ESP32'
UNKNOWN = 'Unknown'
def __init__(self):
self.type = self.detect_board_type()
def detect_board_type(self):
sysname = os.uname().sysname.lower()
machine = os.uname().machine.lower()
# Detectar Raspberry Pi Pico W y Pico
if sysname == 'rp2' and 'pico w' in machine:
return self.BoardType.PICO_W
elif sysname == 'rp2' and 'pico' in machine:
return self.BoardType.PICO
elif sysname == 'rp2' and 'rp2040' in machine:
return self.BoardType.RP2040
# Detectar ESP8266
elif sysname == 'esp8266':
return self.BoardType.ESP8266
# Detectar ESP32
elif sysname == 'esp32' and 'esp32' in machine:
return self.BoardType.ESP32
# Desconocido
else:
return self.BoardType.UNKNOWN
# Detectar tipo de placa
BOARD_TYPE = Board().type
print("Board type: " + BOARD_TYPE)
# Configuración de los pines según la tarjeta detectada
if BOARD_TYPE == Board.BoardType.PICO_W:
led = Pin("LED", Pin.OUT) # LED interno para Raspberry Pi Pico W
elif BOARD_TYPE == Board.BoardType.PICO or BOARD_TYPE == Board.BoardType.RP2040:
led = Pin(25, Pin.OUT) # LED interno para Raspberry Pi Pico o RP2040
elif BOARD_TYPE == Board.BoardType.ESP8266:
led = Pin(2, Pin.OUT) # GPIO 2 para el ESP8266 (LED interno)
elif BOARD_TYPE == Board.BoardType.ESP32:
led = Pin(2, Pin.OUT) # GPIO 2 para el ESP32 (LED integrado)
else:
print("Placa desconocida, usando GPIO 2 por defecto.")
led = Pin(2, Pin.OUT) # Pin por defecto para placas desconocidas
# Alternar el estado del LED (prueba sencilla)
print("Alternando el LED")
led.value(1) # Encender LED
print("LED Encendido")
time.sleep(1) # Pausa por un segundo
led.value(0) # Apagar LED
print("LED Apagado")