@tsofist/rplidar

2.3.0 • Public • Published

NodeJS (and Web Serial API) driver for slamtec RPLidar

Please note: this driver tested only on A1 (but it will certainly suit advanced models without significant problems).

Yep, you can use the driver both in NodeJS and even in your browser at almost maximum design speeds (~440RPM for A1)!

Installing

// Usual module for NodeJS
import {RPLidar} from '@tsofist/rplidar';

// Usual module (for bundling) for Browser
import {RPLidarBrowser} from '@tsofist/rplidar';

// Independent module for Browser (as esm/cjs module)
import {RPLidarBrowser} from '@tsofist/rplidar/lib/rplidar-browser.esm.js';
import {RPLidarBrowser} from '@tsofist/rplidar/lib/rplidar-browser.js';

// Independent module for Browser from CDN as esm
import {RPLidarBrowser} from 'https://unpkg.com/@tsofist/rplidar/lib/rplidar-browser.esm.js';

Usage

const lidar = new RPLidar();

console.log('Opening lidar port..');

await lidar.open();
await lidar.motorStop();

console.log(`RPLidar ready on "${lidar.serialPortPath}"`);
console.log(`Lidar Info:`, await lidar.getInfo());
console.log(`Device health:`, await lidar.getHealth());
console.log(`Lidar samples rates:`, await lidar.getSamplesRate());
console.log(`Lidar scanning modes:`, await lidar.listScanModes());

lidar.on(`scan:sample`, (sample: RPLidarScanSample) => {
  console.log(`Scan sample:`, sample);
  console.log(`Actual speed: ${lidar.scanningRPM}RPM (${lidar.scanningHz}Hz)`);
});

console.log(`Start scanning..`);

await lidar.motorStart();
await lidar.scanStart();

await delay(5_000);

console.log(`Stop scanning..`);

await lidar.scanStop();
await lidar.motorStop();

await delay(3_000);

await lidar.close();

console.log(`Lidar port closed`);

Readme

Keywords

Package Sidebar

Install

npm i @tsofist/rplidar

Weekly Downloads

3

Version

2.3.0

License

MIT

Unpacked Size

171 kB

Total Files

25

Last publish

Collaborators

  • tsofist