import datetime
import odict
+import Gnuplot, Gnuplot.funcutils
+gnuplot = Gnuplot.Gnuplot()
# TODO: Insert variables for calibration purposes here.
calibrate = {
}
# TODO: Adjust aqcuisition parameters here
-aquire = { "DAC_Sweep" : "1500.0",# + 50.0*int(step)", # DAC Sweep value (t is in STEPS, not seconds!)
+aquire = { "DAC_Sweep" : "0.0 + 50.0*int(step)", # DAC Sweep value (t is in STEPS, not seconds!)
"ADC_Averages" : 200,
#"ADC_Vi" : 5, # ADC channel to read back Vi (set by DAC) through
#"ADC_Is" : 4, # ADC channel to read back Is through
#"ADC_Ie" : 4, # ADC channel to read back Ie through
- "DAC_Settle" : 1.0, # Time in seconds to wait for DAC to stabilise
+ "DAC_Settle" : 0.0, # Time in seconds to wait for DAC to stabilise
#"response_wait" : 0.2, # Time to wait in seconds between sending data and reading back
"start_date" : None,
"open_files" : []
#Setup the serial connection parameters
ser = serial.Serial(
- port="/dev/ttyUSB0", # Modify as needed (note: in linux need to run `sudo chmod a+rw /dev/ttyUSBX' to set permissions)
+ port="/dev/ttyUSB1", # Modify as needed (note: in linux need to run `sudo chmod a+rw /dev/ttyUSBX' to set permissions)
# Do not change the values below here (unless AVR butterfly is reprogrammed to use different values)
baudrate=4800,
sweep = 1
while True:
os.system("mkdir -p " + getDate())
- record_data([4, 5, 0], getDate()+"/"+str(getTime())+".dat", None, 4000)
+ record_data([5], getDate()+"/"+str(getTime())+".dat", None, 4000)
sweep += 1
def record_data(ADC_channels, output, pollTime = None, dac_max = None):
if (output != None):
+ gnuplot("set title \""+str(output)+"\"")
output = [log_open(output, "w"), sys.stdout]
+
else:
+ gnuplot("set title \"<No file>\"")
output = [sys.stdout]
for field in aquire:
start_time = time.time()
+ gnuplot("set xlabel \"DAC (counts)\"")
+ gnuplot("set ylabel \"ADC (counts)\"")
+
+
for out in output:
out.write("\n")
out.write("# Experiment " + str(datetime.datetime.now()) + "\n")
out.write("\n")
step = 0
+ data = [] # Keep track of data for dynamic plotting
dacValue = int(eval(aquire["DAC_Sweep"]))
if (setDAC(dacValue) == False):
setDAC(dacValue)
+ time.sleep(2.0)
while (pollTime == None or time.time() < start_time + pollTime):
if (aquire["DAC_Sweep"] != None):
nextDacValue = int(eval(aquire["DAC_Sweep"]))
end_time = time.time()
for out in output:
- out.write(str((measure_start + (end_time - measure_start)/2.0 - start_time)))
+ measure_time = measure_start + (end_time - measure_start)/2.0 - start_time
+ out.write(str(measure_time))
out.write("\t"+str(dacValue))
+ data.append([measure_time, dacValue])
+
for adc in raw_adc:
out.write("\t" + str(adc[1]) + "\t" + str(adc[2]))
+ data[len(data)-1].append(adc[1])
+ data[len(data)-1].append(adc[2])
out.write("\n")
-
+
+ gnuplot.plot(Gnuplot.Data(data, title="t = "+str(measure_time), with_="lp", using="2:3"))
for out in output:
if out != sys.stdout:
log_close(out)