Compare commits
2 Commits
f3775e7d01
...
5a1734f181
Author | SHA1 | Date |
---|---|---|
interfisch | 5a1734f181 | |
interfisch | f09919ca62 |
|
@ -106,9 +106,9 @@ int16_t max_acceleration_rate=NORMAL_MAX_ACCELERATION_RATE; //maximum cmd send i
|
||||||
//Driving parameters
|
//Driving parameters
|
||||||
int16_t minimum_constant_cmd_reduce=1; //reduce cmd every loop by this constant amount when freewheeling/braking
|
int16_t minimum_constant_cmd_reduce=1; //reduce cmd every loop by this constant amount when freewheeling/braking
|
||||||
int16_t brake_cmdreduce_proportional=500; //cmd gets reduced by an amount proportional to brake position (ignores freewheeling). cmd_new-=brake_cmdreduce_proportional / second @ full brake. with BREAK_CMDREDUCE_CONSTANT=1000 car would stop with full brake at least after a second (ignoring influence of brake current control/freewheeling)
|
int16_t brake_cmdreduce_proportional=500; //cmd gets reduced by an amount proportional to brake position (ignores freewheeling). cmd_new-=brake_cmdreduce_proportional / second @ full brake. with BREAK_CMDREDUCE_CONSTANT=1000 car would stop with full brake at least after a second (ignoring influence of brake current control/freewheeling)
|
||||||
float startbrakecurrent=2; //Ampere. "targeted brake current @full brake". at what point to start apply brake proportional to brake_pos. for everything above that cmd is reduced by freewheel_break_factor
|
float startbrakecurrent=2.0; //Ampere. "targeted brake current @full brake". at what point to start apply brake proportional to brake_pos. for everything above that cmd is reduced by freewheel_break_factor
|
||||||
float startbrakecurrent_offset=0.13; //offset start point for breaking, because of reading fluctuations around 0A. set this slightly above idle current reading
|
float startbrakecurrent_offset=0.13; //offset start point for breaking, because of reading fluctuations around 0A. set this slightly above idle current reading
|
||||||
float freewheel_break_factor=500.0; //speed cmd units per amp per second. 1A over freewheel_current decreases cmd speed by this amount (on average)
|
float freewheel_break_factor=200.0; //speed cmd units per amp per second. 1A over freewheel_current decreases cmd speed by this amount (on average). Was 500 until 20240809
|
||||||
float reverse_speed=0.25; //reverse driving speed //0 to 1
|
float reverse_speed=0.25; //reverse driving speed //0 to 1
|
||||||
int16_t throttle_max=1000; //maximum allowed set speed. used for scaling and limiting. [0,1000]
|
int16_t throttle_max=1000; //maximum allowed set speed. used for scaling and limiting. [0,1000]
|
||||||
|
|
||||||
|
|
|
@ -2,6 +2,10 @@
|
||||||
import serial
|
import serial
|
||||||
import os
|
import os
|
||||||
import time
|
import time
|
||||||
|
import random
|
||||||
|
import string
|
||||||
|
|
||||||
|
import argparse
|
||||||
chunksize=4096
|
chunksize=4096
|
||||||
|
|
||||||
#LOG0002
|
#LOG0002
|
||||||
|
@ -150,6 +154,20 @@ def delete_file(filename):
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
||||||
|
|
||||||
|
parser = argparse.ArgumentParser(description='Transfers log files from bobbycar over serial')
|
||||||
|
parser.add_argument('-o', '--output', nargs='?', help="output directory")
|
||||||
|
parser.add_argument('-d','--delete', action="store_true", help="delete files after transfer")
|
||||||
|
args = parser.parse_args()
|
||||||
|
outputfolder="sdcard"
|
||||||
|
if (args.output is not None):
|
||||||
|
outputfolder = args.output
|
||||||
|
if(outputfolder[-1]=='/'):
|
||||||
|
outputfolder=outputfolder[:-1] #remove last slash
|
||||||
|
print("Outputfolder:"+outputfolder)
|
||||||
|
|
||||||
|
|
||||||
if serialport.isOpen():
|
if serialport.isOpen():
|
||||||
|
|
||||||
establish_connection()
|
establish_connection()
|
||||||
|
@ -169,7 +187,7 @@ if __name__ == "__main__":
|
||||||
expectedsize=get_filesize(filename)
|
expectedsize=get_filesize(filename)
|
||||||
print("Expecting "+str(expectedsize)+" Byte")
|
print("Expecting "+str(expectedsize)+" Byte")
|
||||||
|
|
||||||
writefilename='sdcard/'+filename
|
writefilename=outputfolder+'/'+filename
|
||||||
receivedsize=copy_file(filename,writefilename,expectedsize)
|
receivedsize=copy_file(filename,writefilename,expectedsize)
|
||||||
|
|
||||||
if (expectedsize!=receivedsize):
|
if (expectedsize!=receivedsize):
|
||||||
|
@ -182,13 +200,22 @@ if __name__ == "__main__":
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#Delete all files
|
#Delete all files
|
||||||
|
if (args.delete):
|
||||||
'''
|
if (failed>0):
|
||||||
log_off()
|
print("Copy not successful. Files won't be deleted!")
|
||||||
for filename in filenames:
|
exit()
|
||||||
delete_file(filename)
|
deletecheckstring=''.join(random.choices(string.ascii_lowercase, k=3))
|
||||||
'''
|
deletecheck=input("Enter "+deletecheckstring+" to confirm deletion of "+str(len(filenames))+" files on bobbycar:")
|
||||||
|
|
||||||
|
if (deletecheck==deletecheckstring):
|
||||||
|
log_off()
|
||||||
|
for filename in filenames:
|
||||||
|
print("Deleting "+filename)
|
||||||
|
delete_file(filename)
|
||||||
|
else:
|
||||||
|
print("Verification failed!")
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
serialport.write("echo on\n".encode())
|
serialport.write("echo on\n".encode())
|
||||||
|
|
Loading…
Reference in New Issue