Cartão SD#

Introdução#

A utilização de um cartão SD com o VEX V5 permite armazenar e aceder aos ficheiros num cartão SD amovível inserido no slot para cartões SD do Brain. Seja para guardar dados de sensores ou carregar imagens personalizadas, estes métodos oferecem um controlo total sobre as operações com os ficheiros. O cartão SD amovível permite transferir dados facilmente entre o Brain e o computador.

O V5 Brain requer um cartão SD com uma capacidade máxima de 32 GB, formatado em FAT32. Os cartões SD com capacidade superior a 32 GB utilizam por defeito o formato exFAT, que não é compatível com o V5 Brain. Certifique-se de que o seu cartão SD está corretamente formatado em FAT32 antes de o utilizar.

Todos os ficheiros devem ser colocados na pasta raiz do cartão SD para serem acessíveis.

Nos exemplos abaixo, o cérebro construído inclui o acesso aos métodos do cartão SD e será utilizado em todos os exemplos subsequentes ao longo desta documentação da API quando se referir estes métodos.

Segue-se uma lista de todos os métodos:

Ações – Executa operações com ficheiros e apresenta imagens do cartão SD.

  • loadfile – Carrega um ficheiro do cartão SD para um bytearray.

  • savefile – Guarda um bytearray no cartão SD.

  • appendfile – Anexa um array de bytes a um ficheiro existente.

  • draw_image_from_file – Apresenta uma imagem bitmap do cartão SD.

Recebedores – Devolvem o cartão SD e a informação dos ficheiros.

  • is_inserted – Retorna um valor booleano indicando se está inserido um cartão SD no Brain.

  • filesize – Retorna o tamanho de um ficheiro em bytes.

  • size – Devolve o tamanho de um ficheiro em bytes.

  • exists – Retorna um valor booleano indicando se foi encontrado um ficheiro no cartão SD.

Para obter informações sobre como construir um Brain para obter acesso aos métodos sdcard , consulte Brain.

Ações#

loadfile#

loadfile carrega um ficheiro do cartão SD para um array de bytes.

Usage:
brain.sdcard.loadfile(filename, buffer)

Parâmetros

Descrição

filename

O nome do ficheiro a carregar, em formato de texto. O nome do ficheiro deve incluir a extensão.

buffer

Opcional. Um array de bytes existente para carregar o conteúdo do ficheiro. Se o array de bytes existente for maior, o seu conteúdo será sobrescrito. Se o array de bytes existente for mais pequeno, o método poderá não carregar todos os dados. Por predefinição, será devolvido um novo array de bytes se não for fornecido nenhum buffer.

# Check for SD card and show a file's text
if brain.sdcard.is_inserted():
    # Save new text to a file
    brain.sdcard.savefile("Note.txt", bytearray("VEX"))
    # Load the file and print it
    data = brain.sdcard.loadfile("Note.txt")
    brain.screen.print(data.decode("utf-8"))
else:
    brain.screen.print("Insert SD card")

savefile#

savefile guarda um array de bytes no cartão SD.

Usage:
brain.sdcard.savefile(filename, buffer)

Parâmetros

Descrição

filename

O nome do ficheiro a guardar, em formato de texto. O nome do ficheiro deve incluir a extensão. Se o ficheiro já existir, será sobrescrito. Se o ficheiro não existir, será criado um novo ficheiro.

buffer

Opcional. Um array de bytes para escrever no ficheiro.

# Check for SD card and show a file's text
if brain.sdcard.is_inserted():
    # Save new text to a file
    brain.sdcard.savefile("Note.txt", bytearray("VEX"))
    # Load the file and print it
    data = brain.sdcard.loadfile("Note.txt")
    brain.screen.print(data.decode("utf-8"))
else:
    brain.screen.print("Insert SD card")

appendfile#

appendfile anexa um array de bytes a um ficheiro existente, adicionando novos dados no final do ficheiro sem alterar o conteúdo actual.

Usage:
brain.sdcard.appendfile(filename, buffer)

Parâmetros

Descrição

filename

O nome do ficheiro a anexar, em formato string. O nome do ficheiro deve incluir a extensão.

buffer

Um array de bytes contendo os dados a anexar.

# Add more text and display file size
if brain.sdcard.exists("Note.txt"):
    brain.sdcard.appendfile("Note.txt", bytearray("code"))
    size = brain.sdcard.size("Note.txt")
    brain.screen.print("Size: ")
    brain.screen.print(size)

draw_image_from_file#

draw_image_from_file apresenta uma imagem Bitmap (BMP) guardada no cartão SD.

.bmp files are limited to 5120 pixels and 6KB in size.

Nota: O V5 Brain apenas suporta a apresentação de ficheiros .bmp 8 bits para minimizar o tamanho do ficheiro.

Usage
brain.screen.draw_image_from_file(filename, x, y)

Parâmetros

Descrição

filename

O nome do ficheiro da imagem.

x

A coordenada x do canto superior esquerdo da imagem no ecrã.

y

A coordenada y do canto superior esquerdo da imagem no ecrã.

# Draw a bmp file on the Brain's screen at coordinate 0, 0
brain.screen.draw_image_from_file('test_image.bmp', 0, 0)

Getters#

is_inserted#

is_inserted devolve um valor booleano indicando se um cartão SD está atualmente inserido no Brain.

  • True - O cérebro tem um cartão SD inserido.

  • False - O cérebro não tem um cartão SD inserido.

Usage:
brain.sdcard.is_inserted()

Parâmetros

Descrição

Este método não tem parâmetros.

# Check for SD card and show a file's text
if brain.sdcard.is_inserted():
    # Save new text to a file
    brain.sdcard.savefile("Note.txt", bytearray("VEX"))
    # Load the file and print it
    data = brain.sdcard.loadfile("Note.txt")
    brain.screen.print(data.decode("utf-8"))
else:
    brain.screen.print("Insert SD card")

filesize#

filesize devolve o tamanho de um ficheiro em bytes.

Usage:
brain.sdcard.filesize(filename)

Parâmetros

Descrição

filename

O nome do ficheiro em formato de texto. O nome do ficheiro deve incluir a extensão.

# Add more text and display file size
if brain.sdcard.exists("Note.txt"):
    brain.sdcard.appendfile("Note.txt", bytearray("code"))
    size = brain.sdcard.filesize("Note.txt")
    brain.screen.print("Size: ")
    brain.screen.print(size)

size#

size devolve o tamanho de um ficheiro em bytes.

Usage:
brain.sdcard.size(filename)

Parâmetros

Descrição

filename

O nome do ficheiro em formato de texto. O nome do ficheiro deve incluir a extensão.

# Add more text and display file size
if brain.sdcard.exists("Note.txt"):
    brain.sdcard.appendfile("Note.txt", bytearray("code"))
    size = brain.sdcard.size("Note.txt")
    brain.screen.print("Size: ")
    brain.screen.print(size)

exists#

exists devolve um valor booleano indicando se foi encontrado um ficheiro no cartão SD.

  • True - O ficheiro está no cartão SD.

  • False - O ficheiro não está no cartão SD.

Usage:
brain.sdcard.exists(filename)

Parâmetros

Descrição

filename

O nome do ficheiro em formato de texto. O nome do ficheiro deve incluir a extensão.

# Add more text and display file size
if brain.sdcard.exists("Note.txt"):
    brain.sdcard.appendfile("Note.txt", bytearray(" World"))
    size = brain.sdcard.size("Note.txt")
    brain.screen.print("Size: ")
    brain.screen.print(size)