Beispiel #1
0
 def readheading(self):
     wiringpi.wiringPiSetupGpio()
     wiringpi.pinMode(self.pin, 0)
     ser = wiringpi.serialOpen('/dev/serial0', 115200)
     data = []
     while True:
         data.append(wiringpi.serialGetchar(ser))
         print(wiringpi.serialGetchar(ser))
         sleep(0.03)
     return data
Beispiel #2
0
def getrmc():

    serial = wp.serialOpen("/dev/ttyAMA0", 57600)  # open serial port

    wp.serialFlush(serial)
    print(serial)
    while True:  # repeat until we get a RMC NMEA string
        gpsstring = ""
        while True:  # repeat until we have a complete string
            if (wp.serialDataAvail(serial) > 0):
                letter = wp.serialGetchar(serial)
                if letter == 10:
                    break
                else:
                    gpsstring += str(chr(letter))
        if (gpsstring[3:6] == "RMC"):
            break
    wp.serialClose(serial)
    return (gpsstring)
Beispiel #3
0
def getrmc():

    serial = wp.serialOpen("/dev/ttyAMA0",57600) # open serial port 

    wp.serialFlush(serial)
    print(serial)
    while True: # repeat until we get a RMC NMEA string
        gpsstring = ""
        while True: # repeat until we have a complete string
            if (wp.serialDataAvail(serial) > 0):
		letter = wp.serialGetchar(serial)
                if letter == 10:
                    break
	        else:
                    gpsstring += str(chr(letter))
        if (gpsstring[3:6]=="RMC"):
           break
    wp.serialClose(serial)
    return(gpsstring)
def arduinoListen():
  global wiringpi2
  global arduinoIn
  global arduino

  wiringpi2.wiringPiSetup()
  arduino = wiringpi2.serialOpen("/dev/ttyACM0", 9600)
  wiringpi2.delay(250)
  wiringpi2.pinMode(0,1)
  wiringpi2.digitalWrite(0, 1)

  arduinoInReady.acquire()
  arduinoListenerReady.set()
  while(True):
    while(True):
      if(wiringpi2.serialDataAvail(arduino) > 0):
        arduinoIn = chr(wiringpi2.serialGetchar(arduino))
        arduinoInReady.release()
        time.sleep(0.5)
        break
      else:
        time.sleep(0.5)
    arduinoInReady.acquire()
import wiringpi2
	#wiringpi2.wiringPiSetupGpio()
serial = wiringpi2.serialOpen('/dev/ttyAMA0',38400) # Requires device/baud and returns an ID
if serial == -1:
	print('error')
wiringpi2.delay(1000)
while 1:
#while wiringpi2.serialDataAvail(): # this while condition might work better
	#wiringpi2.serialPuts(serial,"hello")
	print(wiringpi2.serialGetchar(serial))

wiringpi2.serialClose(serial)
Beispiel #6
0
def serial_read():
    wiringpi.wiringPiSetup()
    serial = wiringpi.serialOpen('/dev/ttyAMA0', 9600)
    #	wiringpi.serialPuts(serial,'hello world!')
    while (1):
        print(hex(wiringpi.serialGetchar(serial)))
Beispiel #7
0
import wiringpi2 as wiringpi
import time

wiringpi.wiringPiSetup()
serial = wiringpi.serialOpen('/dev/ttyS0', 9600)
if serial == -1:
    print 'error opening serial at /dev/ttyS0'
    sys.exit(0)
print 'serial opened'
i = 0
while True:
    if (wiringpi.serialDataAvail(serial) > 0):
        line = wiringpi.serialGetchar(serial)
        print line
def dataListen():
  global wiringpi2
  global dataIn
  global middleLayer
  global data

  wiringpi2.wiringPiSetup()
  middleLayer = wiringpi2.serialOpen("/dev/ttyACM0", 9600) #Open serial port for middle layer communication
  wiringpi2.delay(250)

  start = time.time()
  while(True):
    if(wiringpi2.serialDataAvail(middleLayer) > 0):
      time.sleep(0.02)
      newInput = []
      info = wiringpi2.serialGetchar(middleLayer)
      #The first byte is read as a number between 000-255 that gives info about this data packet
      #The hundreds place digit represents if this input contains left (0), back (1), or right (2) range data
      #The remainder of the number divided by 100 represents how many bytes total are in this data packet 
      key = info / 100 # 0: left range data, 1: back range data, 2: right range data
      length = info % 100 # number of bytes in this data packet

      newInput.append(round(time.time() - start, 2)) #Store timestamp
      newInput.append(key)  #Store key for left/back/right range data choice
      newInput.append(wiringpi2.serialGetchar(middleLayer))  #Store height value

      front = 0
      sizeOfFront = wiringpi2.serialGetchar(middleLayer) #Check how many bytes are needed for front range value
      for i in range(0, sizeOfFront):
        front += wiringpi2.serialGetchar(middleLayer) #Sum up front range value bytes
      newInput.append(front)  #Store front range value

      #Store left/right/back range value, thrust value, yaw value, aileron value, and elevator value
      for i in range(0, 5):
        newInput.append(wiringpi2.serialGetchar(middleLayer))

      #IMU readings
      num = wiringpi2.serialGetchar(middleLayer) #First byte is one's place value
      dec = wiringpi2.serialGetchar(middleLayer) / 100.00 #Second byte is decimal value stored as an integer
      heading = num + dec #Combine bytes to get heading value
      newInput.append(heading) #Store heading value

      numSign = wiringpi2.serialGetchar(middleLayer) #First byte is sign of roll value
      if(numSign == 0):
        numSign = -1
      num = wiringpi2.serialGetchar(middleLayer) #Second byte is one's place value
      dec = wiringpi2.serialGetchar(middleLayer) / 100.00 #Third byte is decimal value stored as an integer
      pitch = (numSign)*(num + dec) #Combine bytes to get pitch value
      newInput.append(pitch) #Store pitch value

      numSign = wiringpi2.serialGetchar(middleLayer) #First byte is sign of roll value
      if(numSign == 0):
        numSign = -1
      num = wiringpi2.serialGetchar(middleLayer) #Second byte is one's place value
      dec = wiringpi2.serialGetchar(middleLayer) / 100.00 #Third byte is decimal value stored as an integer
      roll = (numSign)*(num + dec) #Combine bytes to get roll value
      newInput.append(roll) #Store roll value

      #Create DataStream object from input data and add to dataIn to be used by control algorithms
      dataIn.append(DataStream(newInput))
      #Add new DataStream object to DataLog
      data.add(dataIn[-1])

      time.sleep(0.03)
    else:
      time.sleep(0.05)
Beispiel #9
0
if serial < 0:
    print("Unable to open serial device: \n")
    sys.exit()    

if wiringpi2.wiringPiSetup() == -1:
    print("Unable to start wiringPi: \n")
    sys.exit()    

i = 0
length = 0
rssi = 0
 
while True:
#    print(wiringpi2.serialDataAvail(serial))
    while wiringpi2.serialDataAvail(serial):
        get = wiringpi2.serialGetchar(serial)
        
        if get == 0x7e:
            i = 0
            print("\nBtye started")

        if i == 2:
            length = get
            print("length: ", length)
        if i == 6:
            rssi = get
            print("rssi: ", rssi)
        if i == 8:
            data = get
            print("data: ", data)
Beispiel #10
0
#this example need change script.bin
#[uart_para6]
#uart_used = 1
#uart_port = 6
#uart_type = 2
#uart_tx = port:PI12<3><1><default><default>
#uart_rx = port:PI13<3><1><default><default>
#PI12:  pin46[U14 Next to sata]
#PI13:  pin48[U14 Next to sata]
serial = wiringpi2.serialOpen('/dev/ttyS6', 115200)
wiringpi2.serialPuts(serial, "\n")
print serial
wiringpi2.serialPuts(serial, "Putchar:")
wiringpi2.serialPutchar(serial, 0x38)  #sent ascii 0x38: 8
#wiringpi2.serialPutchar(serial,0x65)#sent ascii 0x68: A
wiringpi2.serialPuts(serial, "\n")

wiringpi2.serialPuts(serial, "Puts:")
wiringpi2.serialPuts(serial, "hello\n")

wiringpi2.serialPuts(serial, "Printf:")
wiringpi2.serialPrintf(serial, "hello\n")

#####get data from serial

while 1:
    if wiringpi2.serialDataAvail(serial):
        val = wiringpi2.serialGetchar(serial)
        print chr(val)
#wiringpi2.serialClose(serial) # Pass in ID