Modifications

Sauter à la navigation Sauter à la recherche
1 221 octets ajoutés ,  30 octobre 2018 à 21:46
Ligne 242 : Ligne 242 :     
== Capturing data to file ==
 
== Capturing data to file ==
Having data available in the Arduino Serial Monitor is great... but capturing the content to a file is even better.
+
Having data available in the Arduino Serial Monitor is great... but capturing it without Arduino would be even better.
    +
=== Putty ===
 +
The putty software (available on Windows, Mac, Linux) can be also be used to connect to the Arduino Serial Port interface
 +
 +
Here how it should be configured to capture the data.
 +
 +
[[Fichier:ENG-CANSAT-MISSION1-RECEIVE-30.png|360px]]
 +
 +
Putty also offers some logging capability that may be useful.
 +
 +
=== Linux command ===
 +
If you are addict to Linux or Raspberry-Pi board then you can easily view and capture the data with the following commnands.
 +
 +
cat /dev/ttyACM0 > output.dat
 +
 +
This command will redirect the content of the USB port to a file named {{fname|output.dat}} .
    
=== With Python ===
 
=== With Python ===
 +
The following Python script will capture a serial port (see {{fname|baud_rate}} variable) and write the content to a file (see {{fname|write_to_file_path}} variable).
 +
 +
The content of the file is reset when the script is started.
 +
 +
{{ambox-stop|text=Openning the Serial Port will issue the automatic Reset feature of the Arduino board.}}
 +
 
<syntaxhighlight lang="python">
 
<syntaxhighlight lang="python">
 
import serial
 
import serial
    
serial_port = '/dev/ttyACM0';
 
serial_port = '/dev/ttyACM0';
baud_rate = 9600; #In arduino, Serial.begin(baud_rate)
+
# depend on Serial.begin(baud_rate) in Arduino
 +
baud_rate = 115200;
 
write_to_file_path = "output.txt";
 
write_to_file_path = "output.txt";
   −
output_file = open(write_to_file_path, "w+");
+
output_file = open(write_to_file_path, "w+")
 
ser = serial.Serial(serial_port, baud_rate)
 
ser = serial.Serial(serial_port, baud_rate)
while True:
+
try:
    line = ser.readline();
+
    while True:
    line = line.decode("utf-8") #ser.readline returns a binary, convert to string
+
        line = ser.readline()
    print(line);
+
        line = line.encode("utf-8") #ser.readline returns a binary, convert to string
    output_file.write(line);
+
        print(line)
 +
        output_file.write(line)
 +
except KeyboardInterrupt:
 +
    print( 'User abord' )
 +
output_file.close()
 +
ser.close()
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
=== Other options ===
 +
You may find many other capture methods from Internet:
 +
* Free Software available on Internet
 +
* Source Code example for your favourite programming language.
    
{{ENG-CANSAT-TRAILER}}
 
{{ENG-CANSAT-TRAILER}}
29 884

modifications

Menu de navigation