Пример #1
0
    'Joystick Y': 12294
}

# Main loop
if __name__ == '__main__':
    cap = cv2.VideoCapture(1)
    cap.set(propId=3, value=640)
    cap.set(propId=4, value=480)

    # Creating objects
    client = ModbusClient()
    js = Joystick()
    ballTracking = BallTracking(capture=cap, watch=True, color='dark-green')

    # Sends data over Modbus client for as long the connection is established
    while client.isConnected():
        ball_coordinates = ballTracking.getCoordinates()
        js_coordinates = js.getEvents()
        client.sendInt(value=ball_coordinates[0], address=addresses['Ball X'])
        client.sendInt(value=ball_coordinates[1], address=addresses['Ball Y'])
        client.sendInt(value=js_coordinates[0],
                       address=addresses['Joystick X'])
        client.sendInt(value=js_coordinates[1],
                       address=addresses['Joystick Y'])

        # Break loop with ESC-key
        key = cv2.waitKey(5) & 0xFF
        if key == 27:
            ballTracking.stop()
            break