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

Xiaomi And Two Other Chinese Brands Surpass Samsung In India

aartashyan

After Taking Over as CEO of Google’s Parent Company, Pichai Faces Three Major Challenges in 2020

PIYUSH SHARMA

Indian Software Outsourcing Giant Infosys Stunned Accounting Fraud Scandal, Stock Price Plummeted

ekkoirving

Leave a Reply

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