Use the Scanse Sweep LIDAR with processing.
Sweep for Processing is a port of the Scanse Sweep LIDAR library for processing. It gives you full access to the C API and adds some processing specfic methods to it.
Currently it is still under development and ONLY tested on MacOS.
Example of the LIDAR with FX2D
To get sample data from the LIDAR sensor, you have to create a new SweepSensor
and call the start
method. The start method needs the path to the Sweep COM port.
import ch.bildspur.sweep.*;
SweepSensor sweep;
void setup()
{
size(600, 300, FX2D);
sweep = new SweepSensor(this);
sweep.start("/dev/tty.usbserial-DO004HM4");
}
In draw you then just have to read the new samples from the device.
void draw()
{
// do your stuff
// read samples
List<SensorSample> samples = sweep.getSamples()
// do drawing
}
It is recommended to save the reference to the list of samples in a own variable and only use getSamples()
once in a draw loop. Otherwise it is not guaranteed, that the samples are from the same scan (Concurrency).
Based on BasicExample
With version 0.3
it is possible to start the device asynchronous and set the set the motor speed and sample rate through the constructor (thanks to @felixerdy).
import ch.bildspur.sweep.*;
SweepSensor sweep;
void setup()
{
size(600, 300, FX2D);
sweep = new SweepSensor(this);
sweep.startAsync("/dev/tty.usbserial-DO004HM4", 5, 500);
}
It is recommended to use this method if the processing main thread should not be blocked by the start of the sweep device.
Based on AsyncExample