Las tarjetas CircuitPython aparecen como una unidad de disco USB, permitiéndote editar el código directamente en la tarjeta. Ya hasta estado haciendo esto por un buen rato. Es posible que te hayas preguntado, "¿Puedo escribir datos de CircuitPython hacia la unidad de disco para que funcione para bitácoras de datos (o un datalogger)?" ¡La respuesta es sí!
Sin embargo, tiene algo de truco. Necesitas agregar un código especial a boot.py, no solo en code.py. Esto es porque hay que definir que el sistema de archivos va a ser de solo lectura cuando necesitas editar el código desde tu computadora, pero lo define para escritura cuando deseas que el núcleo de CircuitPython pueda escribir.
A continuación es como se va a ver tu archivo boot.py. Copia y pega el código hacia boot.py utilizando tu editor preferido. Es posible que tengas que crearlo como un archivo nuevo.
# SPDX-FileCopyrightText: 2017 Limor Fried for Adafruit Industries # # SPDX-License-Identifier: MIT """CircuitPython Essentials Storage logging boot.py file""" import board import digitalio import storage # For Gemma M0, Trinket M0, Metro M0/M4 Express, ItsyBitsy M0/M4 Express switch = digitalio.DigitalInOut(board.D2) # For Feather M0/M4 Express # switch = digitalio.DigitalInOut(board.D5) # For Circuit Playground Express, Circuit Playground Bluefruit # switch = digitalio.DigitalInOut(board.D7) switch.direction = digitalio.Direction.INPUT switch.pull = digitalio.Pull.UP # If the switch pin is connected to ground CircuitPython can write to the drive storage.remount("/", readonly=switch.value)
Para las Gemma M0, Trinket M0, Metro M0 Express, Metro M4 Express, ItsyBitsy M0 Express y ItsyBitsy M4 Express, no es necesario realizar cambios al código inicial.
Para las Feather M0 Express y Feather M4 Express, comente switch = digitalio.DigitalInOut(board.D2)
, y descomente switch = digitalio.DigitalInOut(board.D5)
.
Para las Circuit Playground Express y Circuit Playground Bluefruit, comente switch = digitalio.DigitalInOut(board.D2)
, y descomente switch = digitalio.DigitalInOut(board.D7)
. Recuerde, D7 es el interruptor integrado, así que no se requieren cables extra o clips de lagarto.
A continuación está el código para tu code.py. Copia y pega el código hacia code.py utilizando tu editor favorito.
# SPDX-FileCopyrightText: 2017 Limor Fried for Adafruit Industries # # SPDX-License-Identifier: MIT """CircuitPython Essentials Storage logging example""" import time import board import digitalio import microcontroller # For most CircuitPython boards: led = digitalio.DigitalInOut(board.LED) # For QT Py M0: # led = digitalio.DigitalInOut(board.SCK) led.switch_to_output() try: with open("/temperature.txt", "a") as fp: while True: temp = microcontroller.cpu.temperature # do the C-to-F conversion here if you would like fp.write('{0:f}\n'.format(temp)) fp.flush() led.value = not led.value time.sleep(1) except OSError as e: # Typically when the filesystem isn't writeable... delay = 0.5 # ...blink the LED every half second. if e.args[0] == 28: # If the file system is full... delay = 0.25 # ...blink the LED faster! while True: led.value = not led.value time.sleep(delay)
La forma en como trabaja boot.py es revisando si el pin que dijiste a la hora de definir el interruptor en tu código, está conectado a tierra. Si lo está, cambia el estado de lectura-escritura del sistema de archivos, de forma que el núcleo de CircuitPython puede comenzar a escribir la temperatura en la tarjeta.
Como ayuda para encontrar los pines correctos, observe los diagramas e información en la sección de Encuentre los Pines de la guía de Entradas y Salidas Digitales con CircuitPython. En lugar de conectar un swtich, vas a conectar el in a tierra directamente con un cable de lagarto o con cables.
Una vez que haz copiado los archivos a la tarjeta, la expulsas y desconectas de tu computadora. Si está utilizando una Circuit Playground Express, todo lo que tienes que hacer es asegurarte que el interruptor esté del lado derecho. De otra manera, utilizar clips de lagarto o cables para conectar el pin designado hacia tierra. Ahora, conectar la tarjeta de nuevo a tu computadora.
¡Ya no vas a poder editar código en CIRCUITPY!
El LED rojo debería parpadear una vez por segundo, y vas a ver un nuevo archivo llamado temperature.txt en la unidad de disco CIRCUITPY.
El archivo se actualiza una vez por segundo, pero no vas a ver los datos escribiéndose en vivo. En cambio, cuando estés listo para obtener los datos, expulsa y desconecta tu tarjeta. Para CPX, mueva el interruptor hacia la izquierda, de otra forma desconecte el cable que has conectado hacia tierra. Ahora va a ser posible escribir al sistema de archivos de nuevo, pero no vas a poder grabar datos.
Tenemos una guía más detallada sobre este proyecto disponible aquí: Grabadora de Bitácoras de CPU con CircuitPython. Si te gustaría conocer más detalles, ¡revísela!
Page last edited January 22, 2025
Text editor powered by tinymce.