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. |
| | | |
− | === On Linux system === | + | === 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. | | 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/ttyUSB0 | + | 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}} |