import matplotlib
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from matplotlib import style
from matplotlib.colors import BoundaryNorm
from matplotlib.ticker import MaxNLocator
import numpy as np
import serial #Import Serial Library
import time
from time import sleep
arduinoSerialData = serial.Serial('COM6',115200) #Create Serial port object called arduinoSerialData
size_of_the_matrix = 5
x, y = np.meshgrid(np.linspace(0,5,6), np.linspace(0,5,6)) #each axis is from 0 to 3 devided in 4 sections
distances_matrix = np.zeros((size_of_the_matrix,size_of_the_matrix))
fig = plt.figure(figsize=None,facecolor='white')
ax2 = plt.subplot()
quad1 = ax2.pcolormesh(x,y,distances_matrix,vmin=0,vmax=3000,shading='flat')
bar = fig.colorbar(quad1, ax=ax2)
bar.set_label("Ranges in each ROI (mm)")
ax2.set_xlabel('X')
ax2.set_ylabel('Y')
def init():
quad1.set_array([])
return quad1
def animate(iter):
global distances_matrix
if (arduinoSerialData.inWaiting()>0): #Check if data is on the serial port
data_receving_from_arduino_as_string= arduinoSerialData.readline()
distances_in_string = data_receving_from_arduino_as_string.split(',') #Convering the data received from the arduino from string to a float
distances_in_string.pop()
distances = [float(i) for i in distances_in_string]
if(len(distances)==size_of_the_matrix*size_of_the_matrix):
distances_matrix = np.reshape(distances, (size_of_the_matrix, size_of_the_matrix))
b = distances_matrix[:,0:1]
#print b
a = distances_matrix [:,1:5]
#print a
c = np.concatenate((a,b), axis =1)
distances_matrix = np.flipud(c)
#distances_matrix = c
#print distances_matrix
quad1.set_array(distances_matrix.ravel())
anim = animation.FuncAnimation(fig,animate ,interval=100,blit=False,repeat=False)
plt.show()
such as titles in the ikodeu distances are [) (I float for I in distances in _ string] part of an error occurred. In other can not be resolved in the same way and distances : [float decode ()). (I for I in distances in _ string]. What's wrong?
The full text of the error message is as follows!
PS C:\Users\hjj96> & python "c:/Users/hjj96/Desktop/Lidar-using-VL53L1X- master/Files_for_demo/Files for demo/Read_and_plot_2d_map.py"
Traceback (most recent call last):
File "C:\Users\hjj96\anaconda3\lib\site-packages\matplotlib\backend_bases.py", line 1216, in _on_timer
ret = func(*args, **kwargs)
File "C:\Users\hjj96\anaconda3\lib\site-packages\matplotlib\animation.py", line 1477, in _step
still_going = super()._step(*args)
File "C:\Users\hjj96\anaconda3\lib\site-packages\matplotlib\animation.py", line 1189, in _step
self._dra w_next_frame(framedata, self._blit)
File "C:\Users\hjj96\anaconda3\lib\site-packages\matplotlib\animation.py", line 1208, in _draw_next_frame
self._draw_frame(framedata)
File "C:\Users\hjj96\anaconda3\lib\site-packages\matplotlib\animation.py", line 1776, in _draw_frame
self._drawn_artists = self._func(framedata, *self._args)
File "c:/Users/hjj96/Desktop/Lidar-using-VL53L1X-master/Files_for_demo/Files for demo/Read_and_plot_2d_map.py", line 44, in animate
distances_in_string = data_receving_from_arduino_as_string.split(',') #Convering the data received from the arduino from string to a float
TypeError: a bytes-like object is required, not 'str'
If a bytes-like object is required, not 'str' occurs in data_receasing_from_arduino_as_string(';'), I think data_receiving_from_arduino_as_string is not a string, but a byte-array.
>>> s = b'abcde'
>>> s.split('c')
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
s.split('c')
TypeError: a bytes-like object is required, not 'str'
You can reproduce the same error like this.
To fix this, an error occurred while trying to split the byte array into a string (';'), so if you just split it into b'',' there won't be an error.
>>> s = b'abcde'
>>> s.split('c')
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
s.split('c')
TypeError: a bytes-like object is required, not 'str'
>>> s.split(b'c')
[b'ab', b'de']
573 rails db:create error: Could not find mysql2-0.5.4 in any of the sources
916 When building Fast API+Uvicorn environment with PyInstaller, console=False results in an error
578 Understanding How to Configure Google API Key
613 GDB gets version error when attempting to debug with the Presense SDK (IDE)
© 2024 OneMinuteCode. All rights reserved.