Cartão SD#
Introdução#
A API de cartão SD para VEX IQ (2ª geração) permite armazenar e aceder aos ficheiros num cartão SD amovível inserido na ranhura do cartão 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 ficheiros. O cartão SD amovível permite transferir dados facilmente entre o Brain e o computador.
O módulo IQ (2ª geração) 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 módulo VEX IQ (2ª geração). 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.
Esta página utiliza brain como exemplo de nome Cérebro. Substitua-o pelo seu próprio nome configurado conforme necessário.
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 o conteúdo de um ficheiro do cartão SD para um buffer de memória fornecido pelo utilizador.savefile— Guarda os dados de um buffer fornecido pelo utilizador num ficheiro no cartão SD do IQ (2ª geração) Brain.appendfile— Anexa dados de um buffer fornecido pelo utilizador ao final de um ficheiro existente no cartão SD do IQ (2ª geração) Brain.draw_image_from_file— Apresenta uma imagem bitmap do cartão SD.
Receptores — Devolvem o cartão SD e a informação dos ficheiros.
is_inserted— Retorna se um cartão SD está inserido no Brain.filesize— Retorna o tamanho de um ficheiro.size— Devolve o tamanho de um ficheiro.exists— Retorna se foi encontrado um ficheiro no cartão SD.
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 |
|---|---|
|
O nome do ficheiro a carregar, em formato de texto. O nome do ficheiro deve incluir a extensão. |
|
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 |
|---|---|
|
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. |
|
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 |
|---|---|
|
O nome do ficheiro a anexar, em formato string. O nome do ficheiro deve incluir a extensão. |
|
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 IQ (2ª geração) Brain suporta apenas a apresentação de .bmp A codificação RLE de 8 bits é recomendada para minimizar o tamanho do ficheiro.
Usage
brain.screen.draw_image_from_file(filename, x, y)
Parâmetros |
Descrição |
|---|---|
|
O nome do ficheiro da imagem. |
|
A coordenada x do canto superior esquerdo da imagem no ecrã. |
|
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 Brain 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 como um decimal (float).
Usage:
brain.sdcard.filesize(filename)
Parâmetros |
Descrição |
|---|---|
|
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 como um decimal (float).
Usage:
brain.sdcard.size(filename)
Parâmetros |
Descrição |
|---|---|
|
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 |
|---|---|
|
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 the file exists
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)