예제 #1
0
    def __init__(self, servocontrollerdevice=None):
        """Create the DemoFrame."""
        wx.Frame.__init__(self, None, title="Jira controller")
        self.Bind(wx.EVT_CLOSE, self.OnClose)

        self.showOpenCVPanel = True
        self.showOpenCVPanel = False
        self.useServoController = self.showOpenCVPanel
        #self.useServoController = False
        self.showJiraPanel = True
        #self.showJiraPanel = False

        # Build the menu bar
        MenuBar = wx.MenuBar()

        FileMenu = wx.Menu()

        item = FileMenu.Append(wx.ID_EXIT, text="&Quit")
        self.Bind(wx.EVT_MENU, self.OnQuit, item)

        MenuBar.Append(FileMenu, "&File")
        self.SetMenuBar(MenuBar)

        config = Config()
        browser = Browser(config)

        self.opencv = None
        self.servocontroller = None
        if self.showOpenCVPanel:
            self.opencv = OpenCV(config)
            if self.useServoController:
                self.servocontroller = CalibratedServoController(PololuMaestroServoController(device=servocontrollerdevice))


        sizer = wx.BoxSizer(wx.HORIZONTAL)
        self.SetSizer(sizer)
        if self.showJiraPanel:
            self.jiraPanel = JiraPanel(self, config, browser, self.opencv)
            sizer.Add(self.jiraPanel, 0, wx.EXPAND | wx.ALL, 5)

        if self.showOpenCVPanel:
            self.opencvPanel = OpenCVPanel(self, config, browser, self.opencv, self.servocontroller)
            sizer.Add(self.opencvPanel, 1, wx.EXPAND | wx.ALL, 5)

        self.Fit()
예제 #2
0
parser.add_argument("maxcount", type=int)
parser.add_argument("frames_per_second", type=float)
parser.add_argument("--start_angle", type=int, default=None)
parser.add_argument("--end_angle", type=int, default=None)


logging.info("Starting")
args = parser.parse_args()

capture = cv2.VideoCapture(0)
logging.info("Got videocapture")

imagecount = 0

if not args.start_angle is None and not args.end_angle is None:
    servocontroller = CalibratedServoController(PololuMaestroServoController())
    servocontroller.set_servo_target_angle(args.start_angle)
    angle_frame_increment = float(args.start_angle - args.end_angle) / float(args.maxcount)
    while not servocontroller.servo_has_settled():
        time.sleep(0.1)
else:
    servocontroller = None

maxcount = args.maxcount
imagefilenamecounter = 1
while imagecount < maxcount:
    time.sleep(1.0 / args.frames_per_second)
    ret, image = capture.read()
    if ret:
        imagecount += 1