SDカード#

導入#

VEX EXPでSDカードを使用すると、BrainのSDカードスロットに挿入した取り外し可能なSDカードにファイルを保存したり、アクセスしたりできます。センサーデータの保存やカスタム画像の読み込みなど、これらの方法によりファイル操作を完全に制御できます。取り外し可能なSDカードを使用することで、Brainとコンピューター間でデータを簡単に転送できます。

EXP Brainには、FAT32形式でフォーマットされた32GB以下のSDカードが必要です。32GBを超えるSDカードはデフォルトでexFAT形式でフォーマットされますが、これはEXP Brainと互換性がありません。ご使用前に、SDカードがFAT32形式で正しくフォーマットされていることを確認してください。

すべてのファイルは、アクセスできるようにSDカードのルートフォルダに配置する必要があります。

以下の例では、構築された Brain には SD カード メソッドへのアクセスが含まれており、この API ドキュメント全体を通して、これらのメソッドを参照する際には、以降のすべての例で使用されます。

以下にすべてのメソッドの一覧を示します。

アクション — SDカード内のファイル操作を実行し、画像を表示します。

  • loadfile — SD カードからファイルの内容をユーザーが指定したメモリ バッファにロードします。

  • savefile — ユーザーが指定したバッファからEXP BrainのSDカード上のファイルへデータを保存します。

  • appendfile — ユーザーが指定したバッファからデータをEXP BrainのSDカード上の既存ファイルの末尾に追加します。

  • draw_image_from_file — SD カードからビットマップ画像を表示します。

ゲッター — SDカードとファイル情報を返します。

  • is_inserted — SD カードが Brain に挿入されているかどうかを返します。

  • filesize — ファイルのサイズを返します。

  • size — ファイルのサイズを返します。

  • exists — SD カード上にファイルが見つかったかどうかを返します。

行動#

loadfile#

loadfile は、SD カードからファイルをバイト配列に読み込みます。

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

パラメータ

説明

filename

読み込むファイルの名前を文字列として指定します。ファイル名には拡張子を含める必要があります。

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 は、バイト配列を SD カードに保存します。

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

パラメータ

説明

filename

保存するファイル名を文字列として指定します。ファイル名には拡張子を含める必要があります。ファイルが既に存在する場合は上書きされます。ファイルが存在しない場合は新規作成されます。

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")

appendfile#

appendfile は、既存のファイルにバイト配列を追加し、現在の内容を変更せずにファイルの末尾に新しいデータを追加します。

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

パラメータ

説明

filename

追加するファイル名を文字列で指定します。ファイル名には拡張子を含める必要があります。

buffer

追加するデータを含むバイト配列。

# 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 は、SD カードに保存されているビットマップ画像 (BMP) を表示します。

.bmp ファイルは、5120 ピクセル、サイズ 6KB に制限されています。

注: EXP Brain は .bmp ファイルの表示のみをサポートしています。ファイル サイズを最小限に抑えるために、8 ビット RLE エンコードが推奨されます。

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

パラメータ

説明

filename

画像のファイル名。

x

画面上の画像の左上隅のx座標。

y

画面上の画像の左上隅のy座標。

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

ゲッター#

is_inserted#

is_inserted は、SD カードが現在 Brain に挿入されているかどうかを示すブール値を返します。

  • True — ブレインにSDカードが挿入されています。

  • False — Brain に SD カードが挿入されていません。

Usage:
brain.sdcard.is_inserted()

パラメータ

説明

このメソッドにはパラメータがありません。

# 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 は、ファイルのサイズをバイト単位で10進数 (float) として返します。

Usage:
brain.sdcard.filesize(filename)

パラメータ

説明

filename

ファイル名を文字列で指定します。ファイル名には拡張子を含める必要があります。

# 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 は、ファイルのサイズをバイト単位で10進数 (float) として返します。

Usage:
brain.sdcard.size(filename)

パラメータ

説明

filename

ファイル名を文字列で指定します。ファイル名には拡張子を含める必要があります。

# 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 SD カード上にファイルが見つかったかどうかを示すブール値を返します。

  • True — ファイルはSDカードにあります。

  • False — ファイルがSDカードにありません。

Usage:
brain.sdcard.exists(filename)

パラメータ

説明

filename

ファイル名を文字列で指定します。ファイル名には拡張子を含める必要があります。

# 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)