Changeset c2cf7f2 in robotics for car/python/Car_Demo.py


Ignore:
Timestamp:
06/14/14 08:33:28 (8 years ago)
Author:
Steve Castellotti <sc@…>
Branches:
master
Children:
7868465
Parents:
18a0139
Message:
  • working on command line control
File:
1 edited

Legend:

Unmodified
Added
Removed
  • car/python/Car_Demo.py

    rb821883 rc2cf7f2  
    77 
    88__changelog__ = """\ 
    9 Last Update: 2014.06.09 
     9Last Update: 2014.06.10 
    1010""" 
    1111 
     
    1313""" 
    1414 
    15 import string, time 
     15import string, sys, time 
    1616import serial 
     17import signal 
    1718 
    1819#import Configuration as configuration 
    1920 
    2021#if configuration.ENABLE_PYSIDE: 
    21         #try: 
    22                 #import PySide as PyQt4 
    23                 #from PySide import QtCore 
    24         #except Exception, e: 
    25                 #print "ERROR: Exception importing PySide:", 
    26                 #print e 
     22try: 
     23        import PySide as PyQt4 
     24        from PySide import QtCore 
     25except Exception, e: 
     26        print "ERROR: Exception importing PySide:", 
     27        print e 
    2728                #configuration.ENABLE_PYSIDE = False 
    2829        #else: 
     
    4546TAG = 'Robotics:Car' 
    4647 
    47 #DEFAULT_COMMAND = 'neutral' 
     48DEFAULT_COMMAND = 'neutral' 
    4849#DEFAULT_SERIAL_DEVICE = '/dev/ttyACM0' 
    4950DEFAULT_SERIAL_DEVICE_STEPPER = '/dev/ttyACM0' 
     
    6465 
    6566LOOP_TIMER = 80 # 80 ms 
     67 
     68KEY_CODES = { 
     69        'hover': 'muf008001t100020y000000p000000d', \ 
     70        'forward': 'mff008001t100020y000000p063005d', \ 
     71        'backward': 'mbf008001t100020y000000p015003d', \ 
     72        'left': 'mlf008001t100020y127004p000000d', \ 
     73        'right': 'mrf008001t100020y000008p000000d', \ 
     74        'land': 'O', \ 
     75} 
    6676 
    6777 
     
    93103                self.device_pyramid = None 
    94104                 
    95                 self.configuration = configuration 
     105                #self.configuration = configuration 
    96106                 
    97107                self.name = "Robotics-Car-Demo" 
     
    186196                        init_rts_cts_flow_control = 0 
    187197                 
    188                 self.device_stepper = serial.Serial(port = self.serial_port_stepper, \ 
    189                                             baudrate = baudrate, \ 
    190                                             bytesize = init_byte_size, \ 
    191                                             parity = init_parity, \ 
    192                                             stopbits = init_stopbits, \ 
    193                                             xonxoff = init_software_flow_control, \ 
    194                                             rtscts = init_rts_cts_flow_control, \ 
    195                                             timeout = timeout) 
     198                #self.device_stepper = serial.Serial(port = self.serial_port_stepper, \ 
     199                                            ##baudrate = baudrate, \ 
     200                                            ##bytesize = init_byte_size, \ 
     201                                            ##parity = init_parity, \ 
     202                                            ##stopbits = init_stopbits, \ 
     203                                            ##xonxoff = init_software_flow_control, \ 
     204                                            ##rtscts = init_rts_cts_flow_control, \ 
     205                                            ##timeout = timeout) 
    196206                 
    197207                self.device_pyramid = serial.Serial(port = self.serial_port_pyramid, \ 
     
    203213                                            rtscts = init_rts_cts_flow_control, \ 
    204214                                            timeout = timeout) 
     215                 
    205216                #self.land() 
     217                self.left() 
    206218                 
    207219                time.sleep(ARDUINO_INITIALIZATION_TIME) 
     
    239251                # Issue command 
    240252                if self.DEBUG: 
    241                         print '--> [TAG] Land ("O")' 
     253                        print '--> [%s] Land ("O")' % TAG 
    242254                 
    243255                self.command_queue.append("O") 
    244                 #self.device.write("O") 
     256                #self.device_pyramid.write("O") 
     257         
     258         
     259        ################################################################## 
     260         
     261        def left(self): 
     262                 
     263                "Drive left" 
     264                 
     265                # Issue command 
     266                if self.DEBUG: 
     267                        print '--> [%s] Left ("mlf008001t100020y127004p000000d")' % TAG 
     268                 
     269                self.command_queue.append("mlf008001t100020y127004p000000d") 
     270                #self.device_pyramid.write("O") 
     271         
     272         
     273        ################################################################## 
     274         
     275        def right(self): 
     276                 
     277                "Drive right" 
     278                 
     279                # Issue command 
     280                if self.DEBUG: 
     281                        print '--> [%s] Left ("mrf008001t100020y000008p000000d")' % TAG 
     282                 
     283                self.command_queue.append("mrf008001t100020y000008p000000d") 
     284                #self.device_pyramid.write("O") 
    245285         
    246286         
     
    264304                 
    265305                if self.DEBUG: 
    266                         print "--> [TAG] Sending Orbit Command:", 
     306                        print "--> [%s] Sending Orbit Command:" % TAG, 
    267307                        print command 
    268308                 
     
    385425                        self.land() 
    386426                 
    387                 else: 
    388                         self.device.write(command) 
     427                elif (command =='left'): 
     428                        self.left() 
     429                 
     430                elif (command == 'right'): 
     431                        self.right() 
     432                 
     433                 
     434                else: 
     435                        self.device_pyramid.write(command) 
     436         
     437         
     438        ################################################################## 
     439         
     440        def cycleTest(self): 
     441                 
     442                print "cycleTest(On)" 
     443                print "..." 
     444                self.serial_port_pyramid.write('P\n') 
     445                print "written: P\r" 
     446                #QtCore.QThread.msleep(1000) 
     447                time.sleep(1) 
     448                 
     449                print "cycleTest(Off)" 
     450                self.serial_port_pyramid.write('O\n') 
     451                print "written: O\r" 
     452                #QtCore.QThread.msleep(1000) 
     453                time.sleep(1) 
     454         
     455         
     456        ################################################################## 
     457         
     458        def cycleDemo(self): 
     459                 
     460                print "cycleDemo()" 
     461                 
     462                self.serial_port_stepper.write('r090\r') 
     463                self.serial_port_pyramid.write(KEY_CODES['right'] + '\r') 
     464                 
     465                self.serial_port_stepper.write('l090\r') 
     466                QtCore.QThread.msleep(1000) 
     467                self.serial_port_pyramid.write(KEY_CODES['left'] + '\r') 
     468                QtCore.QThread.msleep(1000) 
    389469         
    390470         
     
    394474                 
    395475                while self.keep_running: 
     476                         
     477                        #self.cycleDemo() 
     478                         
     479                        #self.cycleTest() 
     480                         
    396481                         
    397482                        #if self.command_queue != []: 
     
    460545         
    461546        # Collect default settings and command line parameters 
    462         device = DEFAULT_SERIAL_DEVICE 
     547        device = DEFAULT_SERIAL_DEVICE_PYRAMID 
    463548        mode = DEFAULT_MODE 
    464549        command = DEFAULT_COMMAND 
Note: See TracChangeset for help on using the changeset viewer.