Beispiel #1
0
def test_servo():
    print("Testing servo")
    s = Servo()
    s.angle(0, 90)
    time.sleep(2)
    s.angle(0, 0)
    time.sleep(2)
    s.angle(0, 180)
    time.sleep(2)
    s.angle(0, 90)
    time.sleep(2)
    s.angle(0, 180)
    time.sleep(2)
Beispiel #2
0
    next_update = time + datetime.timedelta(days=1)
    try:
        while True:

            time = datetime.datetime.utcnow()
            # The positions are returned in Earth-centric, Earth fixed coords. I need to convert those.
            ecef_location = locations.Location('station', *ecef_to_llh(predictor.get_only_position(time)))

            ### Convert ECEF to alt, az ###
            az, elev = me.get_azimuth_elev_deg(ecef_location)

            lcd.set_cursor(0,1)
            lcd.message("{:<8.2f}{:>8.2f}".format(az, elev))

            # Move the actuators to the right angles
            elevation_actuator.angle = elev
            azimuth_actuator.to_angle(az, block=True)

            stop = time + datetime.timedelta(seconds=DELAY)
            while datetime.datetime.utcnow() < stop:
                sleep(0.1)

            if next_update < time:
                # Home the stepper
                lcd.clear()
                lcd.set_cursor(0,0)
                lcd.message("Re-homing\nstepper motor...  ")
                azimuth_actuator.home(switch, home_angle)
                try:
                    station_names, satlist = get_satlist()
                    predictor, tracking = get_satellite(current_index, station_names, satlist)
from servo import Servo

device = Servo()

try:
  while True:
    device.angle = input("Digite um angulo destino ")
    device.set_angle()

except KeyboardInterrupt:
  GPIO.cleanup()
Beispiel #4
0
print("Homing the stepper motor...  ", end='')
move.home(switch)
print("Done!")

servo_angle = 0
stepper_angle = 0
try:
    while True:
        stepper_angle += 45
        servo_angle += 15
        if servo_angle >= servo.max_angle:
            servo_angle = servo.min_angle

        print("Moving to {} deg".format(stepper_angle))
        move.to_angle(stepper_angle, block=True)
        servo.angle = servo_angle

        time.sleep(DELAY)

        stepper_angle += 0
        servo_angle += 15
        if servo_angle >= servo.max_angle:
            servo_angle = servo.min_angle

        print("Moving to {} deg".format(stepper_angle))
        move.to_angle(stepper_angle)
        servo.angle = servo_angle

        time.sleep(DELAY)

except KeyboardInterrupt:
Beispiel #5
0
acc = []
gyro = []
while True:
    #start = utime.ticks_ms()
    accelerometer = sensor.accel
    gyrometer = sensor.gyro
    acc = umatrix.matrix([accelerometer.x, accelerometer.y, accelerometer.z],
                         cstride=1,
                         rstride=3,
                         dtype=float)
    gyro = umatrix.matrix([gyrometer.x, gyrometer.y, gyrometer.z],
                          cstride=1,
                          rstride=3,
                          dtype=float)

    #print("acceleration [X:%0.2f, Y:%0.2f, Z:%0.2f] gyro [X:%0.2f, Y:%0.2f, Z:%0.2f] \n"
    #        %(accelerometer.x, accelerometer.y, accelerometer.z, gyrometer.x * math.pi/180, gyrometer.y * math.pi/180, gyrometer.z * math.pi/180))

    #print("temperature [T:%0.2f]\n" %(sensor.temperature))

    ahrs.update_imu(gyro * math.pi / 180.0, acc)

    (roll, pitch, yaw) = ahrs.quaternion.to_euler()

    print("roll: %0.2f, pitch: %0.2f yaw: %0.2f\n" % (roll, pitch, yaw))

    servo0.angle(math.pi / 2 - pitch)
    servo1.angle(math.pi / 2 + yaw)

    #print("Elapsed: %d" % (utime.ticks_ms() - start))