El Raspberry Pi Pico ciertamente puso al gato entre las palomas en 2021, pero le faltaba una característica clave, Wi-Fi. Claro que podemos piratear nuestra propia solución, pero tuvimos que esperar hasta mediados de 2022 para que Raspberry Pi anunciara Raspberry Pi Pico W para obtener soporte oficial. Raspberry Pi Pico W se lanzó con un firmware MicroPython robusto, pero CircuitPython, nuestro favorito. lanzamiento del microcontrolador Python, lamentablemente le faltaba soporte. Puede haber tomado algunos meses, pero gracias al arduo trabajo de @jeffepler ahora tenemos CircuitPython 8 Beta 2 que ofrece compatibilidad Wi-Fi para Pico W, al tiempo que conserva el ecosistema familiar de CircuitPython. Para celebrar este hito, elaboramos un proyecto para resaltar CircuitPython en Raspberry Pi Pico W. Trabajaremos con datos en vivo de una fuente de noticias RSS, convertidos a JSON y luego mostrados en una pequeña pantalla OLED.
1. Vaya a la página oficial de CircuitPython para Raspberry Pi Pico W y descargue la última versión de la imagen del firmware UF2. Al momento de escribir esto, esto era CircuitPython 8 Beta 2.2. Mientras mantiene presionado el botón BOOTSEL, conecte el Raspberry Pi Pico W a su computadora. Aparecerá una nueva unidad, RPI-RP23. Copie el archivo CircuitPython UF2 descargado a RPI-RP2. Esto escribirá CircuitPython en el almacenamiento flash interno del Pico W. Aparecerá una nueva unidad, CIRCUITPY. Necesitamos varias bibliotecas de CircuitPython antes de poder continuar. Estas bibliotecas de código preescrito agregan características adicionales a un proyecto.1. Descargar el paquete de bibliotecas para la misma versión de CircuitPython instalada en el Pico W. Instalamos CircuitPython 8, así que descargamos el paquete para la versión 8.x.2. Extraiga el paquete a su escritorio y luego abre la carpeta lib contenida dentro de.
1. Descargar e instalar Thonny si no lo tienes ya. Thonny es un editor de Python que cubre Python 3, MicroPython y CircuitPython.2. Abra Thonny y vaya a Herramientas >> Opciones.
ssid = “SU NOMBRE DE WI-FI AP AQUÍ” contraseña = “SU CONTRASEÑA SECRETA” El código para este proyecto está contenido en un archivo llamado code.py. Este archivo se ejecutará automáticamente cuando se encienda el Pico W, esta es una característica de CircuitPython. En MicroPython nombraríamos el archivo main.py para lograr el mismo resultado. Ahora comenzamos el proceso de escritura del código que compondrá nuestro proyecto.1. Haga clic en Archivo >> Abrir y seleccione el dispositivo CircuitPython. Abra code.py en la unidad CIRCUITPY. Elimine cualquier código en el archivo.
15. Crea un objeto, alimenta a almacenar la URL del feed JSON que contiene los titulares de las noticias. Utilizamos rss2json.com para convertir la fuente RSS de Tom’s Hardware en JSON, con la que se puede trabajar fácilmente en CircuitPython.feed = request.get(“https://api.rss2json.com/v1/api.json?rss_url=https %3A%2F%2Fwww.tomshardware.com%2Ffeeds%2Fall”)16. Use un ciclo for para recuperar las primeras cinco historias de la historia feed.for en el rango (5):17. Imprime el titular de la historia al shell de Python.print(feed.json()[‘items’][story][‘title’])18. Actualiza el texto desplazable para desplazar el títulocon un buffer de 20 espacios en blanco antes del texto y una escala (tamaño de texto) de 2.my_scrolling_label = ScrollingLabel(terminalio.FONT, text=” “*20+str(feed.json()[‘items’][story][‘title’]), max_characters=20, animate_time=0.1, scale=2)19. Establecer la posición del texto (horizontal, x y vertical, y).my_scrolling_label.x = 10 my_scrolling_label.y = 1020. Muestra el texto en la pantalla OLED.display.show(mi_etiqueta_de_desplazamiento)21. Usa otro bucle for para desplazarte por el texto del título. Las iteraciones en el bucle se establecen por la longitud del título, más 21 caracteres para crear un búfer. para i en el rango (len (feed.json ())[‘items’][story][‘title’])+21): my_scrolling_label.update() time.sleep(0.1)22. Finalmente agregue un sueño de 30 minutos, (1800 segundos) para configurar el Pico W para buscar nuevos titulares cada media hora.time.sleep(1800)23. Guarda el proyecto como código.py a CIRCUITPY y haga clic en Ejecutar para probar el inicio del código.
importar tiempo importar ipaddress importar wifi importar socketpool importar ssl importar adafruit_requests importar secretos importar tablero importar busio importar displayio importar terminalio de adafruit_display_text.scrolling_label importar ScrollingLabel importar adafruit_displayio_ssd1306 # Configurar la pantalla displayio.release_displays() i2c = busio.I2C(board.GP1, board .GP0) display_bus = displayio.I2CDisplay(i2c, device_address=0x3C) display = adafruit_displayio_ssd1306.SSD1306(display_bus, ancho=128, alto=32) wifi.radio.connect(ssid=secrets.ssid,password=secrets.password) pool = socketpool.SocketPool(wifi.radio) request = adafruit_requests.Session(pool, ssl.create_default_context()) while True: toms = “*”*10+” Tom’s Hardware News”+”*”*10 my_scrolling_label = ScrollingLabel(terminalio .FONT, text=toms, max_characters=20, animate_time=0.1, scale=3) my_scrolling_label.x = 10 my_scrolling_label.y = 10 display.show(my_scrolling_label) for i in range(len(toms)-6): my_scrolling_label. actualizar () tiempo.dormir (0.1) f eed = request.get(“https://api.rss2json.com/v1/api.json?rss_url=https%3A%2F%2Fwww.tomshardware.com%2Ffeeds%2Fall”) para la historia en el rango (5): imprimir(alimentar.json()[‘items’][story][‘title’]) my_scrolling_label = ScrollingLabel(terminalio.FONT, text=” “*20+str(feed.json()[‘items’][story][‘title’]), max_characters=20, animate_time=0.1, scale=2) my_scrolling_label.x = 10 my_scrolling_label.y = 10 display.show(my_scrolling_label) for i in range(len(feed.json()[‘items’][story][‘title’])+21): my_scrolling_label.update() time.sleep(0.1) time.sleep(1800)
Los días felices de la PDA y Blackberry han quedado definitivamente atrás, pero el factor…
Tutorial sobre cómo pronosticar usando un modelo autorregresivo en PythonFoto de Aron Visuals en UnsplashForecasting…
Si tienes un iPhone, los AirPods Pro son la opción obvia para escuchar música, ¡aunque…
Ilustración de Alex Castro / The Verge Plus nuevos rumores sobre el quinto Galaxy Fold.…
Se rumorea que los auriculares premium de próxima generación de Apple, los AirPods Max 2,…
El desarrollador Motive Studio y el editor EA han lanzado un nuevo tráiler de la…