from atomiq import AtomiqExperiment
import artiq.experiment as aq
class MyRamp(AtomiqExperiment):
components = ["my_ttl", "coils_x", "coils_y"]
arguments = {
"ramp_time": {"default": 0.01, "unit": "s"},
}
@kernel
def step(self, point):
with parallel:
self.coils_x.set_field(0.0)
self.coils_y.set_field(0.0)
self.my_ttl.ttl.pulse(1*aq.ms)
with self.zotino0.parallel_arb:
self.coils_x.ramp_field(point.ramp_time,
field_start = 2., field_end = -4. # Gauss
)
self.coils_y.ramp_field(point.ramp_time,
field_end = 3. # Gauss
)
self.my_ttl.ttl.pulse(1*aq.ms)
With the atomiq abstraction layer to the powerful ARTIQ real-time system you can work with generic software objects that represent the actual hardware in the lab.
Atomiq comes completely nix-free and provides many tools and routines to remove the entry barrier of ARTIQ without loosing functionality.
Get Started ⮞