there aren’t really vendordeps for it, so you’ll have to develop your own interface. Luckily, there is already a lot of Arduino code out there for people that have figured out to talk to the LIDAR Lite, like Sparkfun’s Arduino Library. You’ll have to understand c++ and how I2C works in general, but there are good articles on that.
We had far more luck using the DIO ports to read the PWM output of the sensor. It worked extremely well. There is labview code out there for it that should be pretty easy to port over if native code if your language doesn’t exist already. The I2C functionality on the Rio has been notoriously difficult to use for many teams.
Last year, my team used this GitHub page as a reference to get our LIDAR Lite set up. We ended up going the PWM route (as both the page and the posters before me state, it’s more reliable and we had I2C routed to something else already), and it worked very nicely for us.
Huh. Missed the /s at the end. But I’m leaving the explanation just because you typed that sentence. An abstraction is a programming term that refers to a structure that hides unneeded complexity from the user. That can be a subVI, a subroutine, or any one of a number of things in object oriented programming.
I’m not aware of any missing abstractions - just difficulties with the I2C and constant speculation if it is the MXP, the dedicated port, or the peripherials as well. You can find a number of threads here about it, and we’ve experienced a number of inconsistent behaviors with gyros, pixy cams, and the lidar lite that has led us to avoid it if we can.
There are differences in I2C communications between the different versions of the Lidar lite. There is a post here with labview code they claim works with the I2C (this is V1 I believe):
Here is the code from CTRE to run the Lidar Lite with a canifier in labview:
Here is text code that you might be more used to, all credit to Joe Jackson and the Girls of Steel (PWM):
Excellent post, although the /s indicated I was being sarcastic. I have a tendency to not do a very good job at abstracting functions because it’s just now how my brain works and drives people developing with me a little insane. I’ve started to get a lot better at it though now that I’m writing code in languages that make it more enjoyable.