戻る

ファイル入出力

ファイルを書き込んで読み込むサンプルプログラムです。

準備

PCと接続したときにファイルを読み書きするにはPyBadgeに1度CircuitPythonをインストールする必要があります。
開発環境インストール(CircuitPython)をご覧ください。
この作業をせずサンプルプログラムを動作させた場合は「Not found filesystem」を表示して停止します。

設定

[ツール]-[USB Stack]を[TinyUSB]に設定するとPCと接続したときにファイルを読み書きできるようになります。

FileSampleSetting.png

サンプルプログラム

#include <Adafruit_Arcada.h>

#if !defined(USE_TINYUSB)
  #error("Please select TinyUSB for the USB stack!")
#endif

Adafruit_Arcada arcada;

void setup()
{
	Serial.begin(9600);
	arcada.arcadaBegin();
	arcada.displayBegin();
	arcada.setBacklight(255);
	arcada.display->fillRect(0, 0, 160, 128, ARCADA_BLACK);
	arcada.display->setTextColor(ARCADA_WHITE);
	arcada.display->setCursor(0, 0);
	arcada.display->print("FileSample");

	// Initialize filesystem
	arcada.filesysBeginMSD();

	// Check FAT system
	if(arcada.filesysBegin() == false)
	{
		arcada.haltBox("Not found filesystem");
	}

	// Write test
	char* filename = "/FileSample/sample.txt";
	char* sampleText = "sample text";
	if(arcada.exists(filename) == true)
	{
		arcada.remove(filename);
	}
	File file = arcada.open(filename, O_WRITE | O_CREAT | O_TRUNC);
	file.write(sampleText, strlen(sampleText));
	file.close();
	arcada.display->setCursor(0, 20);
	if(arcada.exists(filename) == true)
	{
		arcada.display->print("Successful write file");
	}
	else
	{
		arcada.display->print("Can not write file");
	}

	// Read test
	arcada.display->setCursor(0, 40);
	if(arcada.exists(filename) == true)
	{
		char buffer[1024];
		File file = arcada.open(filename, O_READ);
		int filesize = file.fileSize();
		file.read(buffer, filesize);
		file.close();
		buffer[filesize] = '\0';
		arcada.display->print("Successful read file");
		arcada.display->setCursor(0, 50);
		arcada.display->print(buffer);
	}
	else
	{
		arcada.display->print("File not found");
	}
}

void loop()
{
}

実行結果

FileSamplePyBadge.jpg

サンプルプログラムのダウンロード


添付ファイル: fileFileSampleSetting.png 714件 [詳細] fileFileSamplePyBadge.jpg 695件 [詳細] fileFileSample.zip 727件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2020-04-23 (木) 22:24:28 (1635d)