web-dev-qa-db-ja.com

Arduinoのテキストファイルにデータを書き込む方法

いくつかの位置データが継続的に入力されており、現在シリアルに印刷しています。

文字列「5」があり、それをテキストファイル「myTextFile」に出力したい場合、これを実現するには何をする必要がありますか?明確にするために、テキストファイルはArduinoのSDカードではなく私のコンピューターに保存されます。

また、保存を開始する前に、プログラム内にテキストファイルを作成する方法はありますか?

4

pythonスクリプトを作成して、シリアルポートを読み取り、結果をテキストファイルに書き込むことができます。

##############
## Script listens to serial port and writes contents into a file
##############
## requires pySerial to be installed 
import serial  # Sudo pip install pyserial should work

serial_port = '/dev/ttyACM0';
baud_rate = 9600; #In arduino, Serial.begin(baud_rate)
write_to_file_path = "output.txt";

output_file = open(write_to_file_path, "w+");
ser = serial.Serial(serial_port, baud_rate)
while True:
    line = ser.readline();
    line = line.decode("utf-8") #ser.readline returns a binary, convert to string
    print(line);
    output_file.write(line);
1
Ulad Kasach

これにはserial-libを使用する必要があります

Serial.begin(9600);

を使用してセンサー値をシリアルインターフェースに書き込みます

Serial.println(value);

ループメソッドで

処理側では、PrintWriterを使用して、シリアルポートから読み取ったデータをファイルに書き込みます。

import processing.serial.*;
Serial mySerial;
PrintWriter output;
void setup() {
   mySerial = new Serial( this, Serial.list()[0], 9600 );
   output = createWriter( "data.txt" );
}
void draw() {
    if (mySerial.available() > 0 ) {
         String value = mySerial.readString();
         if ( value != null ) {
              output.println( value );
         }
    }
}

void keyPressed() {
    output.flush();  // Writes the remaining data to the file
    output.close();  // Finishes the file
    exit();  // Stops the program
}
0