Joseph Bradshaw / Mbed 2 deprecated mbed_Hokuyo_Example

Dependencies:   HOKUYO mbed

You are viewing an older revision! See the latest version

Homepage

Table of Contents

  1. Hokuyo Library

Hokuyo Library

This is an example of using the Hokuyo library for the Hokuyo URG-04LX 2 dimensional LIDAR (range finder) with the mbed. /media/uploads/jebradshaw/mbedwse_sbc_hokuyo.jpg

Above is the Hokuyo attached to the mbed WSE Project board (https://developer.mbed.org/users/jebradshaw/code/mbedWSEsbc/). I'm using a xbee form factor RS-232 level converter with a male DB9 (DTE). The on board 5V 1.5A OKI-78SR105 switching regulator is more then sufficient for powering the LIDAR.

/media/uploads/jebradshaw/hokuyo_mbedwsesbc_hookup.jpg

O'scope capture of the serial data. This is using a cluster size of 3, about a degree resolution at 19200 baud gives an update rate of about 3.3Hz.

/media/uploads/jebradshaw/dataterminal_stream.jpg

Above is a screen capture of the data being transmitted to Tera-terminal.

include the mbed library with this snippet

// J Bradshaw  20160304  Hokuyo Lidar interface library example
// cluster - groups together points, each point is .351 degrees
#include "mbed.h"
#include "hokuyo.h"

DigitalOut led1(LED1);
Hokuyo lidar(p13, p14); // tx, rx for Xbee header (RS232 board for Hokuyo)
Serial pc(USBTX, USBRX);

int main() {
    float scan_width = 180.0;   //scan X number of degrees
    int cluster = 3;            //~degree 1 accuracy with every 3 samples at .351/sample
    
    pc.baud(921600);

    if(!lidar.Init())
        pc.printf("Hokuyo Init successful\r\n");
    else{
        pc.printf("Error Initializing Hokuyo!\r\n");
        wait(10);
    }
          
    while(1) {        
        if(!lidar.Read_Scan(scan_width, cluster)){        //scan 30deg wide, cluster of 5 points
            //pc.printf("total points read = %d\r\n\r\n", lidar.numPts);        
            for(int i=0;i<lidar.numPts;i++){
                 pc.printf("%5.2f %05d\r\n", lidar.angle[i], lidar.dist_mm[i]);
                 wait(.0001);
            }
            led1=!led1;
        }
        else
            pc.printf("Error Scanning Hokuyo!\r\n");
    }
}

All wikipages