From 90c74d067adb3ba8046c8612db75e4d5114f0a0f Mon Sep 17 00:00:00 2001 From: Aaron John Sabu <aaronjohnsabu1999@gmail.com> Date: Mon, 15 Nov 2021 01:57:31 -0500 Subject: [PATCH] Changes to main_joystick --- .../Laptop_Code/ESP32_slave/ESP32_slave.ino | 5 ++- .../ESP32_master/ESP32_master.ino | 2 +- Code/Control/Laptop_Code/constants.py | 16 ++++--- Code/Control/Laptop_Code/main_joystick.py | 44 +++++++++++-------- 4 files changed, 39 insertions(+), 28 deletions(-) diff --git a/Code/Control/Laptop_Code/ESP32_slave/ESP32_slave.ino b/Code/Control/Laptop_Code/ESP32_slave/ESP32_slave.ino index f2704f6..b11be5f 100644 --- a/Code/Control/Laptop_Code/ESP32_slave/ESP32_slave.ino +++ b/Code/Control/Laptop_Code/ESP32_slave/ESP32_slave.ino @@ -16,7 +16,7 @@ #define Sensor2_newAddress 45 // MAC Address of the receiver (MASTER) -int masterID = 14; +int masterID = 13; uint8_t broadcastAddresses[][6] = {{0xC4, 0xDD, 0x57, 0x9E, 0x91, 0x74}, // #1 {0x40, 0xF5, 0x20, 0x44, 0xBD, 0xF8}, // #2 {0xC4, 0xDD, 0x57, 0x9E, 0x8A, 0x98}, // #3 @@ -173,6 +173,8 @@ void setup() { Wire.setClock(100000); pinMode(XSHUT_pin1, INPUT); + pinMode(XSHUT_pin2, INPUT); + if (!Sensor1.init()){ Serial.println("Failed to detect and initialize sensor1!"); Lidar1_flag = 0; @@ -186,7 +188,6 @@ void setup() { } - pinMode(XSHUT_pin2, INPUT); if (!Sensor2.init()) { Serial.println("Failed to detect and initialize sensor2!"); diff --git a/Code/Control/Laptop_Code/basic_comm_test/ESP32_master/ESP32_master.ino b/Code/Control/Laptop_Code/basic_comm_test/ESP32_master/ESP32_master.ino index 5bea05d..4eb996d 100644 --- a/Code/Control/Laptop_Code/basic_comm_test/ESP32_master/ESP32_master.ino +++ b/Code/Control/Laptop_Code/basic_comm_test/ESP32_master/ESP32_master.ino @@ -4,7 +4,7 @@ // ==================================== broadcast address ============================================ // MAC Address of the receiver (SLAVE) -int slaveID = 9; +int slaveID = 7; uint8_t broadcastAddresses[][6] = {{0xC4, 0xDD, 0x57, 0x9E, 0x91, 0x74}, // #1 {0x40, 0xF5, 0x20, 0x44, 0xBD, 0xF8}, // #2 {0xC4, 0xDD, 0x57, 0x9E, 0x8A, 0x98}, // #3 diff --git a/Code/Control/Laptop_Code/constants.py b/Code/Control/Laptop_Code/constants.py index cf107ee..1169488 100644 --- a/Code/Control/Laptop_Code/constants.py +++ b/Code/Control/Laptop_Code/constants.py @@ -30,15 +30,14 @@ Bmin = 31 Bmax = 127 threshold = [Lmin, Lmax, Amin, Amax, Bmin, Bmax] -base_speed = 120 +base_speed = 100 seeking_speed = 50 LIDAR_Thres = 300 # mm - # PID Control in move2ball -kpx,kix,kdx = 1.2, 0.01, 0.5 +kpx,kix,kdx = 0.8, 0.01, 0.2 # kpx,kix,kdx = 0.0, 0.00, 0.0 -kpy,kiy,kdy = 1.2, 0.05, 0.9 +kpy,kiy,kdy = 0.9, 0.1, 0.2 # kpy,kiy,kdy = 0.0, 0.0, 0.0 # PID Control in move2goal @@ -58,5 +57,10 @@ kph,kih,kdh = 1.2,0.01,0.5 # Break between AT detection during ball seeking AT_detectBreak = 60 -url_AT = 'http://10.0.0.5/cam-hi.jpg' # 1 -url_gb = 'http://10.0.0.4/cam-hi.jpg' # 6 \ No newline at end of file +url_AT = 'http://10.0.0.9/cam-hi.jpg' # 1 +url_gb = 'http://10.0.0.5/cam-hi.jpg' # 6 + +ml = 1 +esp_cam_on = 1 +openmv_on = 1 +seekVertDir = 1 \ No newline at end of file diff --git a/Code/Control/Laptop_Code/main_joystick.py b/Code/Control/Laptop_Code/main_joystick.py index bd8635b..5281a41 100644 --- a/Code/Control/Laptop_Code/main_joystick.py +++ b/Code/Control/Laptop_Code/main_joystick.py @@ -4,7 +4,7 @@ import time import simple_pid.PID as PID from constants import * from ESP32_AT.imageTread_AT import get_AT_6DOF_info -from ESP32_AT.imageTread_AT_multiple import get_AT_6DOF_info_list +# from ESP32_AT.imageTread_AT_multiple import get_AT_6DOF_info_list global mc_print,ml_on,esp_cam_on,feather_data_on @@ -56,7 +56,7 @@ def manual_horizontal(): return abs(pwm3),abs(pwm4),dir3,dir4 -def manual_control(serial_port): +def manual_control(): pwm1,pwm2,dir1,dir2 = manual_vertical() pwm3,pwm4,dir3,dir4 = manual_horizontal() if mc_print == 1: @@ -143,29 +143,29 @@ def serial_port_out(serial_port, Ctl_com): def test_function(): - # tid, tx, ty, tz, rx, ry, rz = get_AT_6DOF_info(url_AT) - tids, txs, tys, tzs, rxs, rys, rzs = get_AT_6DOF_info_list(url_AT) + tid, tx, ty, tz, rx, ry, rz = get_AT_6DOF_info(url_AT) + # tids, txs, tys, tzs, rxs, rys, rzs = get_AT_6DOF_info_list(url_AT) gbx, gby, gb_dist = ball_detection.detectLive(url_gb, model, minDetectionScore, showSight=True) print("testing new function") print("-----------------------") - # print("tid:{}".format(tid)) - # print("tx,ty,tz:{},{},{}".format(tx,ty,tz)) - # print("rx,ry,rz:{},{},{}".format(rx,ry,rz)) - print("tid:{}".format(tids)) - print("tx,ty,tz:{},{},{}".format(txs,tys,tzs)) - print("rx,ry,rz:{},{},{}".format(rxs,rys,rzs)) + print("tid:{}".format(tid)) + print("tx,ty,tz:{},{},{}".format(tx,ty,tz)) + print("rx,ry,rz:{},{},{}".format(rx,ry,rz)) + # print("tid:{}".format(tids)) + # print("tx,ty,tz:{},{},{}".format(txs,tys,tzs)) + # print("rx,ry,rz:{},{},{}".format(rxs,rys,rzs)) print("gbx,gby,gb_dist:{},{},{}".format(gbx,gby,gb_dist)) -def auto_init(serial_port,auto_init_count,gbx, gby, gb_dist, tx, ty, tz, rx, ry, rz, LIDAR_dist1, LIDAR_dist2, debugM): +def auto_init(serial_port,auto_init_count): print("This is auto_init") auto_init_count += 1 bcap_man = -1 # default: use lidar to determine - Ctl_com = main_control(gbx, gby, gb_dist, tx, ty, tz, rx, ry, rz, LIDAR_dist1, LIDAR_dist2, debugM, bcap_man) - serial_port_out(serial_port, Ctl_com) + # Ctl_com = main_control(gbx, gby, gb_dist, tx, ty, tz, rx, ry, rz, LIDAR_dist1, LIDAR_dist2, debugM, bcap_man) + # serial_port_out(serial_port, Ctl_com) return auto_init_count,bcap_man -def auto_control(serial_port): +def auto_control(serial_port,gbx, gby, gb_dist, tx, ty, tz, rx, ry, rz, LIDAR_dist1, LIDAR_dist2, debugM): # Ctl_com = [0, 0, 0, 0, "+", "+", "+", "+"] if ml_on == 1: @@ -182,6 +182,9 @@ def auto_control(serial_port): if esp_cam_on == 1: # ids,txs,tys,tzs,rxs,rys,rzs = get_AT_6DOF_info_list(url_AT) tid, tx, ty, tz, rx, ry, rz = get_AT_6DOF_info(url_AT) + # LIDAR_dist1 = 0 + # LIDAR_dist2 = 0 + # debugM = "Using Esp32 cam" # main auto control loop Ctl_com = main_control(gbx, gby, gb_dist, tx, ty, tz, rx, ry, rz, LIDAR_dist1, LIDAR_dist2, debugM, bcap_man) @@ -189,6 +192,7 @@ def auto_control(serial_port): return Ctl_com def manual_in_auto(Ctl_com, serial_port, flag): + done = 1 if joystick.get_button(axes_win.get('button_LB')): flag = 12 print("manual in auto") @@ -487,7 +491,7 @@ if __name__ == '__main__': # =========== SET UP ============ # Defining Variables for ESP 32 Serial I/O - PORT = "COM9" # for Alienware + PORT = "COM19" # for Alienware serial_port = serial.Serial(PORT, 115200) serial_port.close() serial_port.open() @@ -543,6 +547,8 @@ if __name__ == '__main__': flag = 0 print_count = 0 auto_init_count = 0 + bcap_man = -1 + while not done: done = pygame_init(done) @@ -550,7 +556,7 @@ if __name__ == '__main__': joystick = pygame.joystick.Joystick(controller_id) joystick.init() - if joystick.get_button(axes_win.get('button_start')) and joystick.get_button(axes_win.get('button_back')): + if joystick.get_button(axes_win.get('button_LB')) and joystick.get_button(axes_win.get('button_RB')): print("kill the program") done = True @@ -559,9 +565,9 @@ if __name__ == '__main__': flag = 1 while (flag==1): done = pygame_init(done) - if auto_init_count == 0: - auto_init_count,bcap_man = auto_init(serial_port,auto_init_count,gbx, gby, gb_dist, tx, ty, tz, rx, ry, rz, LIDAR_dist1, LIDAR_dist2, debugM) - Ctl_com = auto_control(serial_port) + # if auto_init_count == 0: + # auto_init_count,bcap_man = auto_init(serial_port,auto_init_count,gbx, gby, gb_dist, tx, ty, tz, rx, ry, rz, LIDAR_dist1, LIDAR_dist2, debugM) + Ctl_com = auto_control(serial_port,gbx, gby, gb_dist, tx, ty, tz, rx, ry, rz, LIDAR_dist1, LIDAR_dist2, debugM) serial_port_out(serial_port, Ctl_com) # send the control data out time.sleep(waitTime) -- GitLab