示例#1
0
        public static void Test(AUTD autd)
        {
            const double x = AUTD.DeviceWidth / 2;
            const double y = AUTD.DeviceHeight / 2;
            const double z = 150;

            var center = new Vector3d(x, y, z);

            var g1 = Gain.FocalPoint(center);

            var focuses = new[] {
                center + 30.0 * Vector3d.UnitX,
                center - 30.0 * Vector3d.UnitX
            };
            var amps = new[] {
                1.0,
                1.0
            };
            var backend = Gain.Eigen3Backend();
            var g2      = Gain.HoloGSPAT(focuses, amps, backend);

            var gainMap = new Dictionary <int, Gain>
            {
                [0] = g1,
                [1] = g2
            };
            var gain = Gain.Grouped(autd, gainMap);
            var mod  = Modulation.Sine(150); // AM sin 150 Hz

            autd.Send(gain, mod);

            Gain.DeleteBackend(backend);
        }
示例#2
0
        public static void Test(AUTD autd)
        {
            const double x = AUTD.TransSpacing * (AUTD.NumTransInX - 1) / 2.0;
            const double y = AUTD.TransSpacing * (AUTD.NumTransInY - 1) / 2.0;
            const double z = 150.0;

            var mod = Modulation.Sine(150);

            var center  = new Vector3d(x, y, z);
            var focuses = new[] {
                center + 20.0 * Vector3d.UnitX,
                center - 20.0 * Vector3d.UnitX
            };
            var amps = new[] {
                1.0,
                1.0
            };

            var backend = Gain.Eigen3Backend();
            var gain    = Gain.HoloSDP(focuses, amps, backend);

            autd.Send(gain, mod);

            Gain.DeleteBackend(backend);
        }
示例#3
0
        public static void Test(AUTD autd)
        {
            const double x = AUTD.DeviceWidth / 2;
            const double y = AUTD.DeviceHeight / 2;
            const double z = 150;

            var mod  = Modulation.Sine(150);
            var gain = Focus(autd, new Vector3d(x, y, z));

            autd.Send(gain, mod);
        }
示例#4
0
        public static void Test(AUTD autd)
        {
            const double x = AUTD.DeviceWidth / 2;
            const double y = AUTD.DeviceHeight / 2;
            const double z = 150;

            var mod  = Modulation.Sine(150);                   // AM sin 150 Hz
            var gain = Gain.FocalPoint(new Vector3d(x, y, z)); // Focal point @ (x, y, z) [mm]

            autd.Send(gain, mod);
        }
示例#5
0
        public static void Test(AUTD autd)
        {
            const double x = AUTD.DeviceWidth / 2;
            const double y = AUTD.DeviceHeight / 2;

            var mod = Modulation.Sine(150); // AM sin 150 Hz

            var start = new Vector3d(x, y, 0);
            var dir   = Vector3d.UnitZ;
            var gain  = Gain.BesselBeam(start, dir, 13.0f / 180f * AUTD.Pi); // BesselBeam from (x, y, 0), theta = 13 deg

            autd.Send(gain, mod);
        }
示例#6
0
    void Awake()
    {
        _autd = new AUTD();

        _autd.AddDevice(gameObject.transform.position, gameObject.transform.rotation);

        string ifname = @"write your interface name here";

        _link = Link.SOEM(ifname, _autd.NumDevices);
        _autd.Open(_link);

        _autd.Clear();

        _autd.Send(Modulation.Sine(150)); // 150 Hz
    }