Exemplo n.º 1
0
def climb_thread(fg_climb):
    """ Climb Rate loop thread. """
    while True:
        # Read variable
        variometer = fg_climb['/instrumentation/vertical-speed-indicator/indicated-speed-fpm']
         # Variometer, climb rate
        variometer_deg_cal = 90.0 + (variometer * 0.0225)
        # Travel snubber
        variometer_deg_cal = snubber(variometer_deg_cal)
        TINK.setSERVO(0,1,variometer_deg_cal)
Exemplo n.º 2
0
def art_hor_thread(fg_art_hor):     
    """ Artificial Horizon loop thread. """
    # 1/2 of an artificial horizon
    while True:
        # Read Variable
        roll_deg = fg_art_hor['/instrumentation/attitude-indicator/indicated-roll-deg']
        # Reverse and calibrate, FG is 45 0 -45, PiPlate is 0 180deg
        roll_deg_cal = 90.0 - roll_deg
        # Travel snubber
        roll_deg_cal = snubber(roll_deg_cal)
        TINK.setSERVO(0,8,roll_deg_cal)
Exemplo n.º 3
0
def slow_gauge(fg_slow):
    """ A place for slow changing instruments. """
    while True:
        # Fuel gauge
        # Consider tank select switch
        tank_switch = TINK.getPOT(0,4)
        if tank_switch <= 5:
            fuel_gauge = fg_slow['/consumables/fuel/tank/level-gal_us']
        elif tank_switch > 5 and tank_switch <= 40:
            fuel_gauge = fg_slow['/consumables/fuel/tank[1]/level-gal_us']
        elif tank_switch > 40 and tank_switch <= 80:
            fuel_gauge = fg_slow['/consumables/fuel/tank[2]/level-gal_us']
        else:
            fuel_gauge = fg_slow['/consumables/fuel/tank[3]/level-gal_us']
        # Normalize fuel gauge value
        fuel_gauge_deg_cal = fuel_gauge * 0.9
        # Travel snubber
        fuel_gauge_deg_cal = snubber(fuel_gauge_deg_cal)
        TINK.setSERVO(0,2,fuel_gauge_deg_cal)
        time.sleep(1.0)
Exemplo n.º 4
0
import piplates.TINKERplate as TINK
import time

TINK.setDEFAULTS(0)         #return all ports to their default states
TINK.setMODE(0,8,'servo')   #set Digital I/O port 1 to drive a servo
lLimit=12.0                 #The lower limit = 0 volts
hLimit=166.0                #The upper limit = 12 volts


while(True):
    analogIn=TINK.getADC(0,1)   #read analog channel 1
    #scale the data to an angle in the range of lLimit to hLimit
    angle=analogIn*(hLimit-lLimit)/12.0
    TINK.setSERVO(0,8,lLimit+angle) #set servo angle 
    time.sleep(.1)              #delay and repeat