--
You received this message because you are subscribed to the Google Groups "diyrovers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to diyrovers+unsubscribe@googlegroups.com.
To post to this group, send email to diyr...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/diyrovers/20161207233244.611751ebf853c85a377df259b93db888.0fe1d3fb26.wbe%40email24.godaddy.com.
For more options, visit https://groups.google.com/d/optout.
Looks really cool. Keep us posted!
To unsubscribe from this group and stop receiving emails from it, send an email to diyrovers+...@googlegroups.com.
To post to this group, send email to diyr...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/diyrovers/20161207233244.611751ebf853c85a377df259b93db888.0fe1d3fb26.wbe%40email24.godaddy.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "diyrovers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to diyrovers+...@googlegroups.com.
To post to this group, send email to diyr...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/diyrovers/CAJgyHGNgrc7fao794cj3avAH0YLA5U6QiRUrELQH60uKdryeXw%40mail.gmail.com.
To unsubscribe from this group and stop receiving emails from it, send an email to diyrovers+unsubscribe@googlegroups.com.
To post to this group, send email to diyr...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/diyrovers/20161207233244.611751ebf853c85a377df259b93db888.0fe1d3fb26.wbe%40email24.godaddy.com.
For more options, visit https://groups.google.com/d/optout.
To view this discussion on the web visit https://groups.google.com/d/msgid/diyrovers/CAJgyHGNgrc7fao794cj3avAH0YLA5U6QiRUrELQH60uKdryeXw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "diyrovers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to diyrovers+unsubscribe@googlegroups.com.
To post to this group, send email to diyr...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/diyrovers/20161208110049.611751ebf853c85a377df259b93db888.208672a306.wbe%40email24.godaddy.com.
To unsubscribe from this group and stop receiving emails from it, send an email to diyrovers+...@googlegroups.com.
To post to this group, send email to diyr...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/diyrovers/20161207233244.611751ebf853c85a377df259b93db888.0fe1d3fb26.wbe%40email24.godaddy.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "diyrovers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to diyrovers+...@googlegroups.com.
To post to this group, send email to diyr...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/diyrovers/CAJgyHGNgrc7fao794cj3avAH0YLA5U6QiRUrELQH60uKdryeXw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "diyrovers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to diyrovers+...@googlegroups.com.
To post to this group, send email to diyr...@googlegroups.com.
For anyone interested, here is Gil's code translated into Arduino:
--
You received this message because you are subscribed to the Google Groups "diyrovers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to diyrovers+...@googlegroups.com.
To post to this group, send email to diyr...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/diyrovers/77cfbddd-40e7-4568-a27d-7c1907dd8f26%40googlegroups.com.
-------- Original Message --------
Subject: Re: [diyrovers] yet another VL53L0X board
From: Ted Meyers <ted.m...@gmail.com>
Yeah, the really big Sharps work well, and the biggest ones go out 550 cm (GP2Y0A710K0F)! And they are fairly consistent, reliable and easy to work with, and they work well outdoors, as long as you don't point them generally towards the sun.
I have had issues with the sharp rangers causing power spikes though.
On Thursday, December 8, 2016 at 10:56:17 PM UTC-7, Jon Watte wrote:
I've used Sharps out to 1500 mm. That might be the older generation that got deprecated and replaced with the newer, which might not have the version for the long range.Some people still have it in stock, though! http://www.trossenrobotics.com/sharp-ir-distance-sensor-gp2y0a02yk.aspxSincerely,jw
Sincerely,
Jon Watte
--
"I find that the harder I work, the more luck I seem to have." -- Thomas Jefferson
On Thu, Dec 8, 2016 at 10:00 AM, googlegroups <google...@surlee.com> wrote:
Have not tried the sharp IR sensors, but they only seem to range to 80 to 150mm based on model, where this lidar is good to 1200mm (2000mm if you spend more time figuring out the init stuff needed for long-distance mode).
gil
range_mm = read_range_mm();
// so, the max range of this gizmo is about 2000mm, but we will use it in
// "default mode," which is specified to 1200mm (30 ms range timing budget).
// note: 20mm or 8190mm seems to be returned for bogus readings, so trap/limit:
if ( (range_mm <= 20) || (8190 == range_mm) ) {
range_mm = prev_range_mm; // bad reading -- use previous
++num_bogus_conversions; // count the bad readings
}
else if (range_mm > 1200) { // our defined max
range_mm = 1200; // out-of-spec reading -- just limit
++num_bogus_conversions; // but also count the out-of-spec readings
}
else {
prev_range_mm = range_mm; // good reading (hopefully) -- save
num_bogus_conversions = 0;
}
// --- super-simple "calibration" by surlee:
if (range_mm > 400) range_mm -= 50;
else if (range_mm > 160) range_mm -= 40;
else if (range_mm > 100) range_mm -= 35;
else range_mm -= 30;
...
}}
//------------------------------------------------------------------------------
/**
Returns a range reading in millimeters.
@param void
@return range in mm (or 0 for timeout, or 20 or 8190 for bogus measurement)
*/
uint16_t read_range_mm(void) {
uint16_t range_mm;
uint8_t timeout = 40; // should be 20-30 ms between continuous conversions
// wait until reading available, or timeout:
while (0 == i2c_master_get_byte(VL53L0X_ADDR, VL53L0X_RESULT_INTR_STATUS) & 0x07) {
if (0 == --timeout) return 0;
delay_ms(1);
}
// get range in mm (just deal with errouneous readings in calling routine).
range_mm = i2c_master_get_word(VL53L0X_ADDR, (VL53L0X_RESULT_RANGE_STATUS + 10));
// clear interrupt (is this needed for a simple polling scheme?):
i2c_master_send_byte(VL53L0X_ADDR, VL53L0X_SYS_INTR_CLR, 0x01);
return range_mm;
}
//------------------------------------------------------------------------------
So, only two things need to be done to init:- set 2.8V mode (sets IOVDD thresholds; default is 1.8V levels)- set I2C standard mode (not really sure this needs done either, but it is easy)A single line starts continuous mode.The read is easy, and a bit of logic produces two numbers: range in mm, and a count of bogus readings, which can be used as a quality indicator -- if it is 0, then you got a valid reading; over 0 and the previous range is returned so you are kinda close; if it gets over say 10 bogus readings, then range is getting suspect. In practice I saw the bogus count only getting excessive when the distance was over the 1200mm max, but that is also good info.The returned range numbers were off a bit but consistent, so I added a very simple "cal" routine of my own to correct it quite well. Unsure whether that is the same for different chips, but will find out shortly (I have about 200 of these boards built up and about 8 satellite modules to test).FYI, Gil
--
You received this message because you are subscribed to the Google Groups "diyrovers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to diyrovers+...@googlegroups.com.
To post to this group, send email to diyr...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/diyrovers/20161207233244.611751ebf853c85a377df259b93db888.0fe1d3fb26.wbe%40email24.godaddy.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "diyrovers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to diyrovers+...@googlegroups.com.
To post to this group, send email to diyr...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/diyrovers/CAJgyHGNgrc7fao794cj3avAH0YLA5U6QiRUrELQH60uKdryeXw%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.
--
You received this message because you are subscribed to the Google Groups "diyrovers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to diyrovers+...@googlegroups.com.
To post to this group, send email to diyr...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/diyrovers/20161208110049.611751ebf853c85a377df259b93db888.208672a306.wbe%40email24.godaddy.com.
--
You received this message because you are subscribed to the Google Groups "diyrovers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to diyrovers+...@googlegroups.com.
To post to this group, send email to diyr...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/diyrovers/e6b1ffa1-5da6-4e63-b063-fdced89af990%40googlegroups.com.
-------- Original Message --------
Subject: [diyrovers] Re: yet another VL53L0X board
From: Ted Meyers <ted.m...@gmail.com>
range_mm = read_range_mm();// so, the max range of this gizmo is about 2000mm, but we will use it in// "default mode," which is specified to 1200mm (30 ms range timing budget).// note: 20mm or 8190mm seems to be returned for bogus readings, so trap/limit:if ( (range_mm <= 20) || (8190 == range_mm) ) {range_mm = prev_range_mm; // bad reading -- use previous++num_bogus_conversions; // count the bad readings} else if (range_mm > 1200) { // our defined maxrange_mm = 1200; // out-of-spec reading -- just limit++num_bogus_conversions; // but also count the out-of-spec readings} else {prev_range_mm = range_mm; // good reading (hopefully) -- savenum_bogus_conversions = 0;}// --- super-simple "calibration" by surlee:if (range_mm > 400) range_mm -= 50;else if (range_mm > 160) range_mm -= 40;else if (range_mm > 100) range_mm -= 35;else range_mm -= 30;
Serial.print("R: ");Serial.print(range_mm);Serial.print(" B: ");Serial.println(num_bogus_conversions);delay(1);}
//------------------------------------------------------------------------------/**Returns a range reading in millimeters.@param void@return range in mm (or 0 for timeout, or 20 or 8190 for bogus measurement)*/uint16_t read_range_mm(void) {uint16_t range_mm;uint8_t timeout = 40; // should be 20-30 ms between continuous conversions// wait until reading available, or timeout:
while (0 == read_byte_data_at(VL53L0X_RESULT_INTR_STATUS) & 0x07) {
if (0 == --timeout) return 0;
delay(1);
}// get range in mm (just deal with errouneous readings in calling routine).
range_mm = read_int_data_at(VL53L0X_RESULT_RANGE_STATUS + 10);
// clear interrupt (is this needed for a simple polling scheme?):
--
You received this message because you are subscribed to the Google Groups "diyrovers" group.
To unsubscribe from this group and stop receiving emails from it, send an email to diyrovers+...@googlegroups.com.
To post to this group, send email to diyr...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/diyrovers/f5692a60-718e-421a-acdd-64f59d05c2bb%40googlegroups.com.