Technicboon
Industrial & Scientific

Tutorial: Raspberry Pi Lidar Visualization notes

I’ve tried matplotlib which has a very convenient polar coordinate mode,

Xiaomi lidar sensor pinout

but the output looked very wrong, so there must be a few mistakes in here:

#!/usr/bin/python
import matplotlib.pyplot as plt
import matplotlib.animation as animation
import serial
import numpy as np
 
com_port = "/dev/ttyACM0"
baudrate = 115200
ser = serial.Serial(com_port, baudrate)
 
fig = plt.figure(figsize=(4,4))
ax = fig.add_subplot(111, projection='polar')
ax.set_ylim(0,2000)
 
data = np.zeros(360)
theta = np.linspace(0,360, num=360)
l,  = ax.plot([],[])
 
 
databuffer = ""
 
def update(i):
    global data, databuffer
    if (ser.inWaiting()>0):
        data_str = ser.read(ser.inWaiting()).decode('ascii')
        databuffer +=  data_str
        if ('A' in databuffer and 'B' in databuffer and 'C' in databuffer):
            databuffer = databuffer.split('A')[1]
            databuffer = databuffer.split('C')[0]
            try:
                (angle, distance) = databuffer.split('B')
                ser.reset_input_buffer()
                data[int(angle)]=int(distance)
            except Exception as e: print(e)
 
    l.set_data(theta, data )
    return l, 
 
 
             
ani = animation.FuncAnimation(fig, update, frames=360, interval=200, blit=True)
plt.show()

Related posts

Boeing 777X New Model Test When The Door Explosion

PIYUSH SHARMA

Huawei released the new smart security brand, namely Huawei HoloSens

aartashyan

iPhone 11 Is Way Popular In India Than iPhone 6

aartashyan

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.