Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from scipy import signal
- import scipy.linalg as la
- import numpy as np
- import matplotlib.pyplot as plt
- from scipy.fftpack import fft
- import serial
- from time import sleep
- from scipy.linalg import hankel
- class Radar(object):
- def __init__(self):
- self.Fs = 0
- def setupSerial(self,port, N):
- port = port
- Nn = N
- n = N
- N = n * 2
- x = [0 for h in range(0, N)]
- radarData = [0 for h in range(0, n)]
- timeData = [0 for h in range(0, n)]
- ser = serial.Serial(port, 9600)
- sleep(2)
- if (input("Do you want to start communication?") == 'y'):
- print("Ok Im Starting Serial COmmunicatiton")
- if (ser.is_open):
- sleep(3)
- for i in range(0, N):
- ser.write(b"a")
- x[i] = ser.readline()
- print(x[i])
- else:
- print("Serial port is not open")
- self.setupSerial(port,N)
- samples = 0;
- samples1 = 0;
- for i in range(0, N):
- if (i % 2 == 0):
- radarData[samples] = float(str(x[i], 'utf-8')) * 5.0 / 1023.0
- samples = samples + 1
- else:
- timeData[samples1] = float(str(x[i], 'utf-8'))
- samples1 = samples1 + 1
- self.radar = np.asarray(radarData)
- self.time = np.asarray(timeData)
- self.samplingRate = 10 ** 6 / np.mean(np.diff(self.time))
- ser.close()
- return self.samplingRate, self.radar, self.time
- def getVariables(self):
- return self.samplingRate, self.radar,self.time
- if __name__ == '__main__':
- radar = Radar()
- radar.setupSerial(port='COM3',N=2500)
- fs,radar,time = radar.getVariables()
- print(fs, len(radar), len(time))
- print('Process took: ')
- print(time[len(time) - 1])
- plt.plot(time,radar)
- plt.show()
- ArduinoCode:
- void setup()
- {
- Serial.begin(9600);
- pinMode(A0,INPUT);
- }
- void loop()
- {
- if(Serial.available() > 0)
- {
- if(((char) Serial.read()) == 'a')
- {
- Serial.println(analogRead(A0));
- Serial.println(micros());
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement