start penna zip
This commit is contained in:
parent
e60146cdfe
commit
88b607c42f
188 changed files with 236868 additions and 0 deletions
50
serial_dexp.py
Normal file
50
serial_dexp.py
Normal file
|
|
@ -0,0 +1,50 @@
|
|||
# contact ST32 microcontroller via serial,
|
||||
# gather the single bytes we recieve and put them together (two by two),
|
||||
# plot the 16bits numbers.
|
||||
|
||||
import serial
|
||||
import sys
|
||||
from matplotlib import pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
SERIAL_PORT = '/dev/ttyACM0'
|
||||
BAUDRATE = 115200
|
||||
TIMEOUT = 1
|
||||
|
||||
CONTROL_CHAR = 'h' # trigger char for sending data configured on the board
|
||||
|
||||
# define the expected resulting function and plot it
|
||||
AMP = 40000
|
||||
TAU1 = 25
|
||||
TAU2 = 8
|
||||
def dexp(x):
|
||||
exp1 = AMP * np.exp(-x/TAU1)
|
||||
exp2 = AMP * np.exp(-x/TAU2)
|
||||
return exp1-exp2
|
||||
x_coord = np.linspace(0,100,1000)
|
||||
plt.plot(x_coord, dexp(x_coord), linestyle='dashed', linewidth='0.7', color='blue', label='expected')
|
||||
|
||||
# init serial port
|
||||
try:
|
||||
ser = serial.Serial(SERIAL_PORT, BAUDRATE, timeout=TIMEOUT)
|
||||
except serial.SerialException as e:
|
||||
print(f"Serial port init error: {e}")
|
||||
sys.exit(1)
|
||||
|
||||
# send the control char in ascii encoding (single byte)
|
||||
ser.write(CONTROL_CHAR.encode('ascii'))
|
||||
# read the full content being sent
|
||||
recieved = bytearray(ser.readall())
|
||||
# join the bytes two by two to get numbers back
|
||||
# (note: they were stored with little endianess i think, so set appropriate 'byteorder' value)
|
||||
numbers = [int.from_bytes(recieved[i:i+2], byteorder='little', signed=False) for i in range(0,len(recieved),2)]
|
||||
|
||||
# plot the result (both the single points and the curve connecting them)
|
||||
plt.plot(range(0,100), numbers, linewidth='0.8', color='orange', label='result')
|
||||
plt.scatter(range(0,100), numbers, marker='+', color='orange')
|
||||
|
||||
plt.legend()
|
||||
plt.grid(True)
|
||||
plt.show()
|
||||
|
||||
ser.close()
|
||||
Loading…
Add table
Add a link
Reference in a new issue