Newer
Older
Nicolas Nunez Barreto
committed
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
import numpy as np
from time import sleep
from artiq.experiment import *
from pyLIAF.artiq.controllers import UrukulCh
from pyLIAF.RedPitaya import Read_analog as rp
from scipy import interpolate
class LaserPowerCalibration(EnvExperiment):
"""Testing UV Laser power calibration with photodiode and a red pitaya """
def build(self):
self.setattr_device("ccb")
self.setattr_device("scheduler")
self.setattr_device("core")
self.laserUV = UrukulCh(self, ch=2, freq=110.0, amp=0.3, name="UV") #corresponde a 0.7 Vpp
@rpc
def create_datasets(self):
self.Experiment_freqs = self.get_dataset("Experiment_freqs")
self.Experiment_amps = self.get_dataset("Experiment_amps")
self.set_dataset("Experiment_freqs", self.Experiment_freqs, broadcast=True, archive=True)
self.set_dataset("Experiment_amps", self.Experiment_amps, broadcast=True, archive=True)
self.set_dataset("Measured_PD_UV_counts", list(np.zeros(len(self.Experiment_freqs), dtype=int)), broadcast=True, archive=True)
@rpc(flags={"async"})
def create_applets(self):
self.ccb.issue("create_applet", "verification_powercalibration",
"${python} -m pyLIAF.artiq.applets.plot_xy "
"Measured_PD_UV_counts "
"--x Experiment_freqs")
@rpc(flags={"async"})
def measure_PD(self, i):
value = rp.ReadVoltage()
print(value)
self.mutate_dataset("Measured_PD_UV_counts", i, np.abs(value))
@kernel
def init_kernel(self):
self.core.reset()
self.laserUV.initialize_channel()
delay(10*us)
self.laserUV.set_channel()
self.core.wait_until_mu(now_mu())
delay(1*ms)
self.laserUV.on()
@kernel
def change_frequency(self, freq, amp):
self.core.break_realtime()
delay(50*ms)
self.laserUV.set_frequency(freq, amp)
def run(self):
self.create_datasets()
self.create_applets()
self.init_kernel()
self.No_freqs = len(self.Experiment_freqs)
i = 0
for amp, freq in zip(self.Experiment_amps, self.Experiment_freqs):
print(amp, freq)
self.change_frequency(freq, amp)
self.measure_PD(i)
i = i + 1