Esempio n. 1
0
"""test-send.py: Test script to send RC commands to a MultiWii Board."""

__author__ = "Aldo Vargas"
__copyright__ = "Copyright 2016 Altax.net"

__license__ = "GPL"
__version__ = "1"
__maintainer__ = "Aldo Vargas"
__email__ = "*****@*****.**"
__status__ = "Development"

from pymultiwii import MultiWii
import time

if __name__ == "__main__":

    #board = MultiWii("/dev/tty.usbserial-AM016WP4")
    board = MultiWii("/dev/tty.SLAB_USBtoUART")
    try:
        board.arm()
        print ("Board is armed now!")
        print ("In 3 seconds it will disarm...")
        time.sleep(3)
        board.disarm()
        print ("Disarmed.")
        time.sleep(3)

    except Exception,error:
        print ("Error on Main: "+str(error))
Esempio n. 2
0
        data = data.split(':')

        if data == ['']:
            continue
        #print str(data)
        orden_s = [int(data[0]), int(data[1]), int(data[2]), int(data[3])]
        print orden_s
        if orden_s[3] == -2:
            print 'disarm command received'
            break
        if (orden_s != orden):
            orden = orden_s
            #imu=uav.sendCMDreceiveATT(8,MultiWii.SET_RAW_RC,orden)
            uav.sendCMD(8, MultiWii.SET_RAW_RC, orden)
            ##message =str(uav.getData(MultiWii.ATTITUDE))
            ##mon_socket.sendto(message,address)
            #if imu!=None:
            #imu_socket.sendto(imu,dir)
            ##print orden
        if not data: break

    cmd_socket.close()
    uav.disarm()
except KeyboardInterrupt:
    cmd_socket.close()
    uav.disarm()
except Exception as e:
    print str(e)
    cmd_socket.close()
    uav.disarm()
                idle = False
                #Loop until the user clicks the close button.
                done = False

            time.sleep(1)

        roll = 1500
        pitch = 1500
        rotate = 1500
        throttle = 1000

        roll_offset = 0
        pitch_offset = 0
        rotate_offset = 0

        butterfly.disarm()

        console_messege_timer_start = 0
        auto_land = False
        auto_pilot = False

        control_signal_log = {}
        captured_image_log = {}
        predicted_probability_log = {}
        top_label_log = {}
        log_timer_start = time.time()

        prestate = 'None'
        prestate2 = 'None'

        cap = cv2.VideoCapture(0)
 board = MultiWii("COM4")
 #cap = cv2.VideoCapture(0)
 try:
     print('Press button g to start control')
     print('Press button q to quit ')
     while True:
         #camera show
         #ret, frame = cap.read()
         #cv2.imshow('frame',frame)
         #cv2.imwrite('img{:>05}.png'.format(i), frame)
         CNN = -1
         prestate = 'None'
         if (msvcrt.kbhit()):
             key = msvcrt.getch()
             if (key.decode() == 'd'):
                 board.disarm()
                 print("Disarmed.")
             elif (key.decode() == 'q'):
                 print('Quit...')
                 break
             elif (key.decode() == 'c'):
                 if (cam == 1):
                     cam = 0
                     print('camera number change to 0')
                 elif (cam == 0):
                     cam = 1
                     print('camera number change to 1')
             elif (key.decode() == 'g'):
                 cap = cv2.VideoCapture(cam)
                 while True:
                     pitch = 1500
                    #     final = 1000
                    # else:
                    #     final = int(1200 + roll_out)

                    data = [1650, 1550, 1500, 1820]
                    print("go_left")

                elif decision > go_right:
                    data = [1350, 1525, 1500, 1840]
                    print("go_right")

                else:
                    data = [
                        int(1500 - pitch_out),
                        int(1505 + roll_out), 1500, 1800
                    ]  #roll pitch yaw throttle
                    print("fly_up")

            try:
                drone.sendCMD(8, MultiWii.SET_RAW_RC, data, '4h')
            except Exception as error:
                print(error)
                pass

            start = time.time()

    except KeyboardInterrupt as error:
        drone.disarm()
        time.sleep(0.5)
        while True:
            pass
Esempio n. 6
0
roll = ROLL + mando[3]
pitch = PITCH + mando[2]
yaw = YAW + mando[1]
trothle = TROTHLE + mando[0]
boton_up = mando[5]
boton_down = mando[4]

print 'Iniciando bucle principal'
while Done == False:
	
	bat = ina.read()
	if boton_up == 12 and arm == 0:
		placa.arm()
		arm = 1
	elif boton_up == 12 and arm ==1:
		placa.disarm()
		arm = 0
	if arm ==1:
		data =[roll,pitch,yaw,trothle,1000,1000,1000,1000]
		placa.sendCMDreceiveATT(16,MultiWii.SET_RAW_RC,data)
		x = int(placa.attitude['angx'])
		y = int(placa.attitude['angy'])
		z = int(placa.attitude['heading'])
		array = [x,y,z,bat]
		msg = pickle.dumps(array)
		sock.sendto(msg, (UDP_HOST,UDP_PORT))
	elif arm ==0:
		placa.getData(MultiWii.ATTITUDE)
		x = int(placa.attitude['angx'])
		y = int(placa.attitude['angy'])
		z = int(placa.attitude['heading'])