def __init__(self, env): NoRewardTask.__init__(self, env) self.rewardSensor = ["EdgesSumReal"] self.obsSensors = ["EdgesReal", "EdgesTarget"] self.inDim = len(self.getObservation()) self.plotString = [ "World Interactions", "Size", "Reward on Growing Task" ] self.env.mySensors = sensors.Sensors(self.obsSensors + self.rewardSensor) self.epiLen = 200 #suggested episode length
def __init__(self, env): NoRewardTask.__init__(self, env) self.rewardSensor = ["DistToOrigin"] self.obsSensors = [ "EdgesTarget", "EdgesReal", "VerticesContact", "Time" ] self.inDim = len(self.getObservation()) self.plotString = [ "World Interactions", "Distance", "Reward on Walking Task" ] self.env.mySensors = sensors.Sensors(self.obsSensors + self.rewardSensor) self.epiLen = 2000 #suggested episode length
def __init__(self, env): NoRewardTask.__init__(self, env) self.rewardSensor = ["VerticesMinHight"] self.obsSensors = ["EdgesTarget", "EdgesReal", "VerticesContact"] self.inDim = len(self.getObservation()) self.plotString = [ "World Interactions", "Distance", "Reward on Walking Task" ] self.env.mySensors = sensors.Sensors(self.obsSensors + self.rewardSensor) self.epiLen = 500 self.maxReward = 0.0 self.maxSpeed = self.dif / 10.0
def __init__(self, gpo_count=2): self.sensors = sensors.Sensors() self.sensorlist = self.sensors.get_ids( ) #after initialisation then sensor can't be added until restart self.set_threads() self.gpo_count = gpo_count #max number of gpos is 7 atm #create separate instances of GPO. Not sure if this is the right thing to do.... for gpo_num in range(self.gpo_count): self.gpo.append(gpo.GPO(gpo_num)) self.control_sensor.append(None) self.setpoints.append({}) self.setpoints[gpo_num]['temp_on'] = 15.0 self.setpoints[gpo_num]['temp_off'] = 21.0
def __init__(self, env): WalkTask.__init__(self, env) self.rewardSensor = ["Target"] self.obsSensors.append("Target") self.inDim = len(self.getObservation()) self.plotString = [ "World Interactions", "Distance", "Reward on Target Approach Task" ] self.env.mySensors = sensors.Sensors(self.obsSensors) self.env.mySensors.sensors[4].targetList = [array([160.0, 0.0, 0.0])] if self.env.hasRenderInterface(): self.env.getRenderInterface( ).target = self.env.mySensors.sensors[4].targetList[0] self.epiLen = 2000
def main(): global noise sensor = sensors.Sensors() display = disp.Display(rotation=270) t_logger = threading.Thread(target=retardar_logger) t_logger.start() for v in variables: values[v] = np.ones(160) noise = noise * 60 delay = 0.5 # Debounce the proximity tap ultimo_toque = 0 # cuando se hizo el ultimo toque # The main loop try: while True: proximity = sensor.get_proximity() if proximity > 1500 and time.time() - ultimo_toque > delay: ultimo_toque = time.time() # display.prender_apagar() Lo comento porque tengo activado el por luminocidad brillo_prom = values['light'][-60:].mean() display.prender_apagar_por_luminocidad(brillo_prom) # Everything on one screen raw_data = sensor.get_temperature() save_data(0, raw_data) raw_data = sensor.get_pressure() save_data(1, raw_data) raw_data = sensor.get_humidity() save_data(2, raw_data) if sensor.get_proximity() < 10: raw_data = sensor.get_lux() else: raw_data = 1 save_data(3, raw_data) display.display_everything(variables, values, units) # Exit cleanly except KeyboardInterrupt: sys.exit(0)
def main(): p = Predict() s = sensors.Sensors() data = None try: while True: data = s.read() or data y_pred = p.predict(data) print("\r%s" % data, end='') if y_pred is None: print(" " * 25, end='') else: print(" Prediction: %s" % (y_pred) + " " * 5, end='') except KeyboardInterrupt: print("Interrupted." + " " * 36)
def __init__(self, startPos, startDirection): self.cam = camera.Camera() self.sens = sensors.Sensors() self.enc = encoders.Encoders() self.serv = servos.Servos() self.centeredInSquareLength = 7.5 self.sideDistance = 7.05 self.distanceBetweenSquares = 18 self.speed = 7 self.detectWallDistance = 15 self.nav = navigate.Navigate(startPos, startDirection) self.useColor = False self.colorList = [] self.foundColorList = [] self.foundColorNorth = False self.foundColorEast = False self.foundColorSouth = False self.foundColorWest = False
def start_iotly(): """Starting...""" conf = config.load_config() mqttInstance = MqttHandler.MqttHandler(conf) mqttInstance.start() sensors = Sensors.Sensors(conf, mqttInstance) sensors.start() try: log.info("Ready.") while 1: time.sleep(100) except KeyboardInterrupt: mqttInstance.stop() sensors.stop() log.info("Quit")
def __init__(self): self.logFileName = "./data/system/" + datetime.today().strftime( '%Y-%m-%d---%H-%M-%S') + ".txt" self.config = configparser.ConfigParser() self.config.read(configLocation) self.opMode = 'startup' self.sensors = sensors.Sensors() callsign = self.config['COMMUNICATION']['Callsign'] self.communication = communication.Coms(callsign) self.previousAltitude_checkLanded = 0 self.landed = False self.previousAltitude_checkDescending = 0 self.descending = False
def main(): #Initialize the time #rtc = machine.RTC() #rtc.init((2014, 5, 1, 4, 13, 0, 0, 0)) # sck = connect_to_lora() sck = 0 sensor = sensors.Sensors() day = {} day['date'] = [] # Every 24 hours, do a check on battery, light, acceleration and how much storage is left # while(True): # check_status(sck) # time.sleep(30) sensor.movement_detection(sensor, day)
def __init__(self, x=100, y=100, o=0\ , genotype=None\ , energy=2000): # init self.x = x self.y = y self.o = o # from genotype self.genotype = genotype self.energy = self.genotype.energy self.r = self.genotype.r self.max_speed = self.genotype.max_speed self.wheels_sep = self.genotype.r self.feed_range = self.genotype.feed_range self.feed_rate = self.genotype.feed_rate self.com = np.random.rand() # modules self.sensors = sensors.Sensors(s_points=self.genotype.s_points, ir_angle=self.genotype.ir_angle, ray_length=self.genotype.ray_length, beam_spread=self.genotype.beam_spread, olf_angle=self.genotype.olf_angle, olf_range=self.genotype.olf_range, aud_angle=self.genotype.aud_angle, aud_range=self.genotype.aud_range) self.net = evol_net.RNN(n_input=self.genotype.n_in, n_hidden=self.genotype.n_hidden, n_output=self.genotype.n_out, upper_t=self.genotype.ut, lower_t=self.genotype.lt, veto_t=self.genotype.vt, W=self.genotype.W, V=self.genotype.V) self.genotype.W = self.net.W self.genotype.V = self.net.V # SM state = [ir1, ir2, olf, aud1, aud2, e] self.state = None # data self.states = [] self.positions = [] self.body_states = [] self.feeding_states = []
def __init__(self, address, port, password): self.address = address self.port = port self.password = password self.Server = Sockets.HandleSockets(self.address, self.port, self.password, mode="s", on_message=self.on_message) self.Server.start() self.Sensors = sensors.Sensors(50) flight_maneuvers.arm() self.controller = Controller.SimpleController() self.loop = DoEvery(1 / 50, self.update) self.loop.start() self.input_loop()
class SensorNode: """SensorNode class: main code to execute """ nodeAddresses = ["A0:A0:A0:A0:A0"] port = "/dev/ttyAMA0" baudrate = 9600 sens = sensors.Sensors(port, baudrate) for nodeAddr in nodeAddresses: #print(nodeAddr) sens.SetNodeAddress(nodeAddr) sens.Update() sens.InterpretResponse() print(sens) sens.spawnSensors() for sob in sens.sensorObjList: #print(sob) thr.append(Thread(UpdateThreads, (sob))) while 1: try: pass except (KeyboardInterrupt): for t in thr: t.join() for s in sens.sensorObjList: s.signal = 0 sleep(1) sys.exit()
def FloorShopManager(): # Declare variables op = operators.Operators() sen = sensors.Sensors(op) arm = armController.ArmController(op) inv = inventory.Inventory(op, sen) # Loop through process of completing orders on the shop floor while not rospy.is_shutdown(): # Listen for orders if len(op.currentOrders) > 0: # There are orders to be processed order = orders.Orders(op.currentOrders[0]) agv = 'agv1' tray = 'Left' # loop through each kit and process for kit in order.kits: # Get type of parts we need to add to tray for part in kit['Objects']: # Set procede to false proceed = False # Check whether this part has successfully being placed on tray and should procede while proceed == False: # Return part location from inventory inventoryPart = False # Set desired pose of part in tray desiredPose = part.pose # Wait for step to complete while inventoryPart == False: # Loop and wait for part to be found inventoryPart = inv.getPart(part.type) # Get part pose rospy.loginfo("Part: " + str(inventoryPart)) rospy.loginfo("Desired Pose: " + str(desiredPose)) # Check if found, if not wait and try again if inventoryPart == False: # Wait rospy.sleep(1.0) # Scan inventory and update (this is really only for later when new parts # are being actively placed on belt) inv.updateInventory() print "=========== Transfer Part: " + str(inventoryPart['Type']) while op.gripperStateData.attached != True: # Move arm to above part position pose = arm.transformPose(inventoryPart['Pose'], [-0.2,0,0], [0,0,0,0], 'logical_camera_1_frame') arm.poseTarget(pose) rospy.loginfo("Arm Pose for part" + str(pose)) # Plan arm.planPose() # Execute plan arm.executePlan() # Wait rospy.sleep(1.5) # Move arm into contact with part pose = arm.transformPose(inventoryPart['Pose'], [-0.02,0,0], [0,0,0,0], 'logical_camera_1_frame') arm.poseTarget(pose) # Plan arm.planPose() # Execute plan arm.executePlan() # Wait rospy.sleep(0.5) # Activate gripper first attempt arm.gripper(True) # Check if op.gripperStateData.attached != True: # Gripper failed print "Gripper attempt failed!" # Move arm into contact with part pose = arm.transformPose(inventoryPart['Pose'], [-0.01,0,0], [0,0,0,0], 'logical_camera_1_frame') arm.poseTarget(pose) arm.planPose() #raw_input("Press Enter to continue...") arm.executePlan() # Wait rospy.sleep(0.5) # Set count count = 0 # Activate gripper in loop for 1.0 second while op.gripperStateData.attached != True and count < 5: arm.gripper(True) # Update count and wait count += 1 # Wait rospy.sleep(0.2) while arm.armState() == 'Moving': # Hold here pass #raw_input("Press Enter to continue...") # Wait rospy.sleep(1.0) while arm.armState() == 'Moving': # Hold here pass # Return arm to holding position arm.handlePart() # Wait rospy.sleep(1.5) while arm.armState() == 'Moving': # Hold here pass #raw_input("Press Enter to continue...") # Move part to desired tray location arm.moveToTray(tray) #raw_input("Press Enter to continue...") # Wait rospy.sleep(0.5) while arm.armState() == 'Moving': # Hold here pass # Move part to desired tray location arm.moveOverTray(tray) #raw_input("Press Enter to continue...") # Wait rospy.sleep(0.5) while arm.armState() == 'Moving': # Hold here pass # Get tray pose trayPose = arm.trayPose(agv + '_load_point_frame') if agv == 'agv1': # Check desired pose values if desiredPose.position.x > 0.12: # Lower value desiredPose.position.x = 0.1 if desiredPose.position.y > 0.12: # Lower value desiredPose.position.y = 0.055 if desiredPose.position.x < -0.12: # Lower value desiredPose.position.x = -0.1 elif agv == 'agv2': # Check desired pose values if desiredPose.position.x > 0.09: # Lower value desiredPose.position.x = 0.055 if desiredPose.position.y < -0.12: # Lower value desiredPose.position.y = -0.055 if desiredPose.position.x < -0.12: # Lower value desiredPose.position.x = -0.1 # Offset to desired pose of part on tray trayPose.pose.position.x += desiredPose.position.x trayPose.pose.position.y += desiredPose.position.y trayPose.pose.position.z += (desiredPose.position.z + 0.3) # Set orinetation, currently just use these values, not sure how to get correct orientation from world yet trayPose.pose.orientation.x = 0 trayPose.pose.orientation.y = 0.917 trayPose.pose.orientation.z = 0 trayPose.pose.orientation.w = 0.398 # Place part in correct position on tray according to order arm.poseTarget(trayPose) arm.planPose() arm.executePlan() # Wait rospy.sleep(0.5) while arm.armState() == 'Moving': # Hold here pass # Check whether we should procede if op.gripperStateData.attached != True: # Part has fallen off print "Gripper is empty, Oh My!!" proceed = False else: # Successful proceed = True # Inactivate gripper arm.gripper(False) # Wait rospy.sleep(0.5) while arm.armState() == 'Moving': # Hold here pass # Remove part from inventory inv.removePart(inventoryPart) # Retract arm arm.moveToTray(tray) # Wait rospy.sleep(0.5) while arm.armState() == 'Moving': # Hold here pass # Return arm to holding position arm.handlePart() # Wait rospy.sleep(0.5) while arm.armState() == 'Moving': # Hold here pass # Move over inventory arm.moveOverInventory() # Wait for some reason otherwise moveit screws up rospy.sleep(1.0) # Update inventory inv.buildInventory() # Send AGV away print "Sending AGV away,..." if agv == 'agv1': # Submit 1st agv op.submitAGV(0, 'order_0') else: # Submit 2nd agv op.submitAGV(1, 'order_0') else: # Do nothing and wait pass
import paho.mqtt.client as mqtt import datetime import time import ssl import sensors import json host = "node02.myqtthub.com" port = 1883 clean_session = True client_id = "magnetometers" user_name = "*****@*****.**" password = "******" # The sensor module that collects the data magnetometers = sensors.Sensors() def on_connect(client, userdata, flags, rc): """ Callback called when connection/reconnection is detected """ print("Connect %s result is: %s" % (host, rc)) if rc == 0: client.connected_flag = True print("connected OK") # Publish and retain a message describing magnetometers used to detect chicken with magnets attached to their legs in beds sensor = { "id": {2, 3}, "name": {"SenseHat Magnetometer", "HMC5883L Magnetometer"}, "type": "magnetometer", "isHostedBy": { "location": "Aberdeen"
def FloorShopManager(): # Declare variables op = operators.Operators() sen = sensors.Sensors(op) arm = armController.ArmController(op) inv = inventory.Inventory(op, sen) # Loop through process of completing orders on the shop floor while not rospy.is_shutdown(): # Listen for orders if len(op.currentOrders) > 0: # There are orders to be processed order = orders.Orders(op.currentOrders[0]) agv = 'agv1' tray = 'Left' # loop through each kit and process for kit in order.kits: # Get type of parts we need to add to tray for part in kit['Objects']: # Set procede to false proceed = False # Check whether this part has successfully being placed on tray and should procede while proceed == False: # Return part location from inventory inventoryPart = None # Set desired pose of part in tray desiredPose = part.pose # Update inventory inv.updateInventory() # Wait for step to complete while inventoryPart is None: # Loop and wait for part to be found inventoryPart = inv.getPart(part.type) # Get part pose #rospy.loginfo("Part: " + str(inventoryPart)) #rospy.loginfo("Desired Pose: " + str(desiredPose)) # Check if found, if not wait and try again if inventoryPart is None: # Wait rospy.sleep(1.0) # Scan inventory and update (this is really only for later when new parts # are being actively placed on belt) inv.updateInventory() # Check belt print "=========== Transfer Part: " + str(inventoryPart['Type']) print "=========== Transfer Source: " + str(inventoryPart['Source']) while op.gripperStateData.attached != True: # Move over inventory arm.moveOverInventory() # Wait rospy.sleep(1.0) # Move arm to above part position print 'Move arm to part' pose = arm.transformPose(inventoryPart['Pose'], [0,0,0.2], [0,0,0,0], inventoryPart['Source'] + '_frame') arm.poseTarget(pose) #rospy.loginfo("Arm Pose for part" + str(pose)) # Plan arm.planPose() # Execute plan arm.executePlan() # Wait rospy.sleep(1.5) # Move arm into contact with part pose = arm.transformPose(inventoryPart['Pose'], [0.0,0,0.02], [0,0,0,0], inventoryPart['Source'] + '_frame') arm.poseTarget(pose) # Plan arm.planPose() # Execute plan arm.executePlan() # Wait rospy.sleep(0.5) # Activate gripper first attempt arm.gripper(True) # Check if op.gripperStateData.attached != True: # Gripper failed print "Gripper attempt failed!" # Move arm into contact with part pose = arm.transformPose(inventoryPart['Pose'], [0.0,0,0.01], [0,0,0,0], inventoryPart['Source'] + '_frame') arm.poseTarget(pose) arm.planPose() arm.executePlan() # Wait rospy.sleep(0.5) # Set count count = 0 # Activate gripper in loop for 1.0 second while op.gripperStateData.attached != True and count < 5: arm.gripper(True) # Update count and wait count += 1 # Wait rospy.sleep(0.2) while arm.armState() == 'Moving': # Hold here pass # Wait rospy.sleep(1.0) # Return arm to holding position arm.handlePart() # Wait rospy.sleep(1.5) while arm.armState() == 'Moving': # Hold here pass if op.gripperStateData.attached != True: # Gripper failed print "Gripper failed part has fallen!" # Reset inventory part and find a new one inventoryPart = None # are being actively placed on belt) inv.updateInventory() # Find part while inventoryPart is None: # Loop and wait for part to be found inventoryPart = inv.getPart(part.type) # Check if found, if not wait and try again if inventoryPart is None: # Wait rospy.sleep(1.0) # Scan inventory and update (this is really only for later when new parts # are being actively placed on belt) inv.updateInventory() # Move part to desired tray location arm.moveToTray(tray) # Wait rospy.sleep(0.5) while arm.armState() == 'Moving': # Hold here pass # Move part to desired tray location arm.moveOverTray(tray) # Wait rospy.sleep(0.5) while arm.armState() == 'Moving': # Hold here pass # Get tray pose trayPose = arm.trayPose(desiredPose, 'logical_camera_5_kit_tray_1_frame', inv) trayPose.pose.position.z += 0.3 # Place part in correct position on tray according to order arm.poseTarget(trayPose) arm.planPose() arm.executePlan() # Wait rospy.sleep(0.5) while arm.armState() == 'Moving': # Hold here pass # Check whether we should procede if op.gripperStateData.attached != True: # Part has fallen off print "Gripper is empty, Oh My!!" proceed = False else: # Successful proceed = True # If our part fell off, retrieve from tray and place again if (proceed == False): # Move part to desired tray location arm.moveOverTray(tray) # Wait rospy.sleep(0.5) while arm.armState() == 'Moving': # Hold here pass # Attempt to pick up part, first get part on tray fallenPart = arm.getFallenTrayPart('logical_camera_5_kit_tray_1_frame', inv) # Offset z axis fallenPart.pose.position.z += 0.02 arm.poseTarget(fallenPart) # Plan arm.planPose() # Execute plan arm.executePlan() # Wait rospy.sleep(1.5) # Activate gripper first attempt arm.gripper(True) # Check if op.gripperStateData.attached != True: # Gripper failed print "Gripper attempt failed!" # Move arm into contact with part fallenPart.pose.position.z -= 0.01 arm.poseTarget(fallenPart) arm.planPose() arm.executePlan() # Wait rospy.sleep(0.5) # Set count count = 0 # Activate gripper in loop for 1.0 second while op.gripperStateData.attached != True and count < 5: arm.gripper(True) # Update count and wait count += 1 # Wait rospy.sleep(0.2) while arm.armState() == 'Moving': # Hold here pass # Move part to desired tray location arm.moveOverTray(tray) # Wait rospy.sleep(0.5) while arm.armState() == 'Moving': # Hold here pass # Get tray pose trayPose = arm.trayPose(desiredPose, 'logical_camera_5_kit_tray_1_frame', inv) trayPose.pose.position.z += 0.3 # Place part in correct position on tray according to order arm.poseTarget(trayPose) arm.planPose() arm.executePlan() # Wait rospy.sleep(0.5) while arm.armState() == 'Moving': # Hold here pass # Check whether we should procede if op.gripperStateData.attached != True: # Part has fallen off print "Gripper is empty, Oh My!!" proceed = False else: # Successful proceed = True # Inactivate gripper arm.gripper(False) # Wait rospy.sleep(0.5) while arm.armState() == 'Moving': # Hold here pass # Remove part from inventory #inv.removePart(inventoryPart) # Retract arm arm.moveToTray(tray) # Wait rospy.sleep(0.5) while arm.armState() == 'Moving': # Hold here pass # Return arm to holding position arm.handlePart() # Wait rospy.sleep(0.5) while arm.armState() == 'Moving': # Hold here pass # Move over inventory arm.moveOverInventory() # Wait for some reason otherwise moveit screws up rospy.sleep(1.0) # Update inventory inv.buildInventory() # Send AGV away print "Sending AGV away,..." # Set current agv state state = op.getAGVState(1) # Check if agv == 'agv1': # Submit 1st agv op.submitAGV(0, 'order_0') rospy.sleep(0.5) # Wait for return while state != op.getAGVState(1): # Hold here and wait for agv to return if state == op.getAGVState(1): print "AGV 1 back, restart!,.." break # Remove order op.removeOrder(order.ID) else: # Submit 2nd agv op.submitAGV(1, 'order_0') # Wait for return while state != op.getAGVState(2): # Hold here and wait for agv to return if state == op.getAGVState(2): print "AGV 2 back, restart!,.." break # Remove order op.removeOrder(order.ID) print "Next kit?" else: # Do nothing and wait print "No Orders!!" op.endCompetition() rospy.sleep(2.5)
import config import db import io_data import sensors import dashboard import resources import ambient import random import socket from tendo import singleton from utils import log_stderr, os_async_command io_status = io_data.Status() sensor = sensors.Sensors() lcd = dashboard.Dashboard() ambient = ambient.Ambient() TEST_INIT_TEMP = 20.0 TEST_DELTA_EXT_INT_COEFF = .001 TEST_DELTA_THERMO_ON_TEMP_C = .03 current_status = '' sig_command = False is_status_changed = True initial_time = datetime.datetime.now() sig_switch_timeout = [datetime.datetime.now()]*len(config.BUTTONS) temp = temp_avg_accu = temp_avg_sum = 0.0 temp_avg_counter = 0
def main(): parser = argparse.ArgumentParser() parser.add_argument('file', nargs='?', default=None, help="Name of the file to save") parser.add_argument('-d', '--duration', type=int, nargs='?', default=None, help="Duration to record in seconds") parser.add_argument('-a', '--activities', type=int, nargs='?', default=1, help="Number of activities to record") args = parser.parse_args() filename = args.file duration = args.duration activities = args.activities if filename is None: i = 1 while os.path.exists("data/data%d.csv" % i): i += 1 filename = "data/data%d.csv" % i # Create directory if it doesn't exist if not os.path.exists(os.path.dirname(filename)): try: os.makedirs(os.path.dirname(filename)) except OSError as exc: # Guard against race condition if exc.errno != errno.EEXIST: raise # Start reading from serial port s = sensors.Sensors() print("Press Ctrl+C to terminate.") i = 0 while i < activities: print("\n ACTIVITY %d:" % (i + 1)) start_time = None total_time = None record_time = 0 reply = None dq = deque() while duration is None or start_time is None or total_time <= duration: try: data = s.read() if data is None: continue elif start_time is None: start_time = time.time() record_time = start_time - 0.5 total_time = time.time() - start_time print("\r[%ds] " % (total_time), end='') print(str(data) + " " * 10, end='') if time.time() - record_time >= 0.5: record_time = time.time() dq.append({ 'time': total_time, 'data': sensors.SensorData(*data.data()) }) if dq and total_time - dq[0][ 'time'] >= 1: # if time more than 1 second save_data = data - dq.popleft()['data'] with open(filename, "a", newline='') as csv_file: csv_writer = csv.writer(csv_file) csv_writer.writerow([i] + list(save_data.data())) print(" Saved %s " % (save_data), end='') except KeyboardInterrupt: print() reply = input("\n\n(C)ontinue, (q)uit, or next (a)ctivity?" + " " * 100) if reply in ('a', 'A', 'q', 'Q'): break else: start_time = time.time() dq.clear() continue print("\r[%ds] " % (total_time), end='') if reply in ('q', 'Q'): break i += 1 if not i >= activities and not (reply == "a" or reply == "A"): input("Press ENTER to continue")
import wheels import sensors from time import sleep #wheels.turn_left(0.2) #wheels.forward(0.2) #wheels.forward(0.2) #wheels.forward(0.2) #wheels.backward(0.2) #wheels.turn_right(0.2) sensor = sensors.Sensors(15, 14) wheels = wheels.Wheels(27, 22, 25, 24, sensor) wheels.setSpeed(0.7) wheels.calibrate(1.1) for i in range(10): wheels.forwardUntilClose(40) wheels.backwardUntilFurther(60)
# def createTableWaypoints(): # try: # curs.execute('''CREATE TABLE IF NOT EXISTS Waypoint (Number int, Latitude text, Longitude text, Completed boolean)''') # except: # print("Table Waypoint not created") # #below is run once per second # def dataLog(time, speed, rudder, aftWin, forWin): # curs.execute("INSERT INTO stocks VAlUES (')") #Creating single objects for each class rudderMain = rudder.Rudder(0) sailMain = SailControl.sailControl(0, 0) sensor = sensors.Sensors(0, 0, 0, 0) class actionThreading: def threadStart(): print("Threads Started") threading.Thread(target=startSteer).start() def startSteer(): print("Rudder Steering Initialized") while True: rudderMain.Steer() #get current heading, target heading) time.sleep(.1) def updateGPS(): #gets gps data and updates the current craft heading
from xmlrpc_server import XMLRPC_Server import signal import sys import time import logger print("Starting atlantis service...") dpy = display.Display() dpy.printMessage("Initializing...", 0) arduino_comm = arduinocomm.ArduinoComm() leds = leds.RGBLEDStrip(GlobalConfig.leds_r, GlobalConfig.leds_g, GlobalConfig.leds_b) leds.configPWM() sensors = sensors.Sensors(arduino_comm) relays = relay.RelayModule( GlobalConfig.relay_pins ) for dev in GlobalConfig.relay_devices: relays.registerDevice(dev[0], dev[1]) stream = streaming.Stream() # Wait some seconds, to wait for the network to be completely configured before trying to start the server time.sleep(10) xmlrpc_server = XMLRPC_Server(relays, stream, sensors, leds) rot = rotary.RotaryEncoder() main_menu = menu.Menu(rot, dpy, relays, stream)
import sqlite3 import sensors import dataxml from flask import Flask, render_template, jsonify app = Flask(__name__, template_folder="web", static_folder="web") sensors = sensors.Sensors() @app.route('/') def index(): return render_template("index.html") @app.route('/get_data') def get_data(): conn = sqlite3.connect("data.db") cursor = conn.cursor() cursor.execute("SELECT * FROM mesures") lines = cursor.fetchall() data = [] for line in lines: new_data = { "id": line[0], "pression": round(line[3], 2), "temperature": round(line[2], 2), "timestamp": line[1], "altitude": round(line[4], 2) } data.append(new_data)
Arguments: agrs {float} -- value of arg """ # create the Server object and start it Server = Sockets.HandleSockets("localhost", 1337, "admin", mode="s", on_message=on_message) Server.start() # create sensor thread Sensors = sensors.Sensors(send=send_telemetry) Sensors.isDaemon = True Sensors.start() # get user input try: while running: i = input("\r-> ") # parse for commands if i == "q": Server.close_all() Sockets.should_be_running = False exit() Server.join() print("server joined") running = False
# (r"/images/(.*)",tornado.web.StaticFileHandler, {"path": "static/images"},), # (r"/js/(.*)",tornado.web.StaticFileHandler, {"path": "static/js"},) ], debug=False, static_hash_cache=False) if __name__ == "__main__": listDirs = ['static/logs'] for directory in listDirs: if not os.path.exists(directory): print("create new dir " + directory) os.makedirs(directory) tornado.options.parse_command_line() # signal.signal(signal.SIGINT, application.signal_handler) try: suit = sensors.Sensors(options.host, options.port) suit.isDaemon = True suit.start() application.listen(options.port) logger.info("start websocketServer on port: " + str(options.port)) # tornado.ioloop.PeriodicCallback(application.try_exit, 1000).start() logger.info("Press Ctrl-C for stop the server.") tornado.autoreload.watch(os.path.join(root_dir, "eaServer.py")) tornado.autoreload.watch(os.path.join(root_dir, "index.html")) for dir, _, files in os.walk('static/js'): for f in files: if not f.startswith('.'): #logger.debug(dir + '/' +f) tornado.autoreload.watch(dir + '/' + f) logger.debug("start Sensors thread") tornado.ioloop.IOLoop.instance().start()
def __init__(self, conf, args): self._conf = conf self._args = args # Create Sensors if sensors is not None: self._sensors = sensors.Sensors() self._sensors.begin() else: self._sensors = None logging.warn("sensors module not loaded.") # Background image manager if config.HAS_DISPLAY: self._display = display.Display() # Evaluate experiment setup expression self._control = eval(conf['experiment']['controller']) self._stim = eval(conf['experiment']['stimulus']) trigger_exp = conf['experiment']['trigger'] trigger_code = compile(trigger_exp, '<string>', 'eval') def _trigger_func(pos_tank): xpos, ypos = pos_tank return eval(trigger_code) self._trigger = _trigger_func wiring.IR_on() if 'ambient_light_level' in conf['experiment']: wiring.visible_on(conf['experiment']['ambient_light_level']) # setup Stream (*after* starting stimulus, visible light bar, and IR light bar) if args.vidfile: self._stream = tracking.Stream(args.vidfile) args.width = self._stream.width args.height = self._stream.height else: params = {} self._stream = tracking.Stream(0, conf=conf['camera'], params=params) # Tank bounds in pixel coordinates # NOTE: tank Y coordinate is inverted w.r.t. pixel coordinates, hence (1.0 - ...). self._tx1 = int(self._stream.width * self._conf['camera']['tank_min_x']) self._tx2 = int(self._stream.width * self._conf['camera']['tank_max_x']) self._ty1 = int(self._stream.height * (1.0 - self._conf['camera']['tank_max_y'])) self._ty2 = int(self._stream.height * (1.0 - self._conf['camera']['tank_min_y'])) # Vidfile stats, if relevant if self._stream.sourcetype == 'file': # Get frame count, fps for calculating frame times self._framecount, self._fps = self._stream.get_video_stats() logging.info("Video file: %d frames, %d fps", self._framecount, self._fps) # Tracking: Simple tank_width = self._tx2 - self._tx1 tank_height = self._ty2 - self._ty1 self._track = tracking.VelocityTracker(w=tank_width, h=tank_height) # Frame processing (though these feed into the Tracker, some also rely on its position estimate) filt_bgsub = tracking.TargetFilterBGSub() filt_bright = tracking.TargetFilterBrightness() filt_dist = tracking.TargetFilterDistance(self._track, maxdist=int(tank_width * 0.1)) # First try the AND of both filters' outputs; # then the background subtractor alone; # then the brightness filter alone but with a distance limit # (brightness should only be needed if fish isn't moving, # so don't accept large jumps from brightness filter) self._framefilters = [ filt_bgsub & filt_bright, filt_bgsub, filt_bright & filt_dist ] self._proc = tracking.FrameProcessor() # For measuring status percentages self._statuses = collections.defaultdict(int) # Setup printing stats on exit atexit.register(self._print_stats) # Record status of previous frame to know when tracking is first lost. self._prev_status = None