UNPKG

bno055-imu-node

Version:

Interact with a BNO055 IMU from your Node.js app

84 lines (60 loc) 2.86 kB
![npm version](https://img.shields.io/npm/v/bno055-imu-node.svg?style=for-the-badge&logo=npm&color=c41949) # BNO055 IMU + Node.js ## Install ``` npm install --save bno055-imu-node ``` ## Usage ```ts import { BNO055, // Enums: OpMode, DeviceAddress, PowerLevel, } from 'bno055-imu-node'; // All BNO055 instance methods are async and return a promise (async () => { // Start the sensor // The begin method performs basic connection verification and resets the device const imu = await BNO055.begin( DeviceAddress.A, // Address enum: A = 0x28, B = 0x29 OpMode.FullFusion // Operation mode enum ); // Get the sensors' calibration status const calibration = await imu.getCalibrationStatuses(); // Check to see if the device is fully calibrated const isCalibrated = await imu.isFullyCalibrated(); // Get information about the device's operational systems const systemStatus = await imu.getSystemStatus(); const systemError = await imu.getSystemError(); const selfTestResults = await imu.getSelfTestResults(); const versions = await imu.getVersions(); // Get the device's orientation as a quaternion object { x, y, z, w } const quat = await imu.getQuat(); // Force the device to reset await imu.resetSystem(); // Set the device power level (Normal, Low, or Suspend) await imu.setPowerLevel(PowerLevel.Normal); // Force the device to use an external clock source await imu.useExternalClock(); // Verify that the device is connected (will throw an error if not) await imu.verifyConnection(); })(); ``` ## Workflow > Make sure you have [passwordless SSH](https://www.raspberrypi.org/documentation/remote-access/ssh/passwordless.md) access to your Raspberry Pi. Clone/fork your repo onto both your local machine and your Raspberry Pi. `npm install` inside the project on both your local machine and the remote device. Create a file called `sync.config.json` on the machine on which you'll be developing, and substitute these values with your own: ```jsonc { "username": "<<<username>>>", "hostname": "<<<hostname or IP address of your remote device>>>", "directory": "<<<parent directory on remote device into which the repo was cloned>>>", "quiet": false // Disable most rsync logs (defaults to false) } ``` **Locally**, you can now run `npm run sync-changes`, and any changes made to files inside `/src` or `/examples` will automatically be uploaded to your Pi. > You can configure which excluded from uploaded by opening `sync.js` and modifying the `exclude` option passed to `Rsync.build`. **From the remote device**, you can run `npm run build-changes`, and any changes pushed from your local machine will automatically be rebuilt. You can run additional scripts (test scripts, etc) by appending the shell commands to the `exec` property inside `nodemon.build.json`.