LIDAR/Ultrasonic Transducer -- MC1 Obstacle Avoiding Robot W/Arduino Uno

By mtripoli3

Project Overview

This project details the construction of an autonomous obstacle-avoiding robot using an Arduino Uno, an ultrasonic ranging transducer, and a LIDAR sensor (VL53L0X Time-of-Flight). The robot navigates autonomously, avoiding obstacles without user intervention. The creator envisions future enhancements, such as using a solar cell to create a "light tracking robot" that seeks the brightest spot.

The project defines a "true robot" as one that is fully autonomous, distinguishing it from remote-controlled devices often categorized as "toy robots".

Supplies

List of components:

  • Base chassis: A robot kit designed for Raspberry Pi was used for convenience.
  • Arduino UNO R3
  • Arduino motor shield
  • Arduino blank breadboards and headers for making a shield
  • 10mm RGB common anode diffused LED's
  • DROK SMPS power supply: Used to convert 8.4VDC battery power to 5VDC for the steering servo.
  • Ultrasonic Model HC-SR04
  • VL53L0X Time-of-flight Distance Sensor

Step 1: Start With Bare Chassis With 2 Drive Motors and a Servo Steering

The initial chassis came with thin motor wires, which were replaced with more substantial wire. Each rear wheel is driven by its own motor, currently operating in tandem (forward and reverse together). Future plans include individual wheel control for enhanced maneuverability, coordinated with the front steering servo.

[Image Description: A front view of the obstacle-avoiding robot, showcasing its 'eyes' (green LEDs), ultrasonic sensors, and headlights.]

Step 2: Attach Arduino UNO

A pattern was drilled into the chassis to mount the Arduino UNO R3 using M3 metric brass stand-offs. The motor shield was then attached to the UNO.

[Image Description: The robot chassis, showing the mounting points for the Arduino UNO and motor shield.]

Step 3: LED EYE's for Fun and Feedback

10mm RGB diffused LEDs were used to create the robot's "eyes". Ballast resistors were soldered to each LED, and heatshrink tubing was applied over the connections for protection and aesthetics. These are common anode LEDs, requiring a small drive circuit as they are driven by a voltage higher than 5V. A simple 2N7000 N-channel MOSFET in an "open drain" configuration is used, allowing the Arduino UNO's logic level to control the MOSFET and thus the LED color. The Arduino code drives the LEDs GREEN when the robot moves forward. When an obstacle is detected, the GREEN light turns off, and the RED LEDs flash briefly during the "avoidance" mode. The code also includes routines for other colors like yellow, magenta, and white, though these are not yet assigned to specific functions.

[Image Description: A close-up of the Arduino UNO and motor shield, detailing the connections for the LEDs and other components.]

Step 4: Building a "breadboard Shield"

Interface circuitry is required to drive the LED "eyes" and a DC-dc voltage converter circuit. The image shows the completed shield attached to the UNO. To ensure proper alignment, headers are placed and inserted into the UNO to hold them in position while the board's leads are carefully soldered. Care must be taken to avoid excessive solder, which could prevent the shield from inserting correctly into the UNO.

[Image Description: A close-up of a green perfboard (breadboard shield) with headers soldered in place, ready to be attached to the Arduino UNO.]

Step 5: Attach EYE LED's and Power Converter Circuitry

The DROK SMPS (switch mode power supply) is shown connected to the power pin of the steering servo. The three 2N7000 MOSFETs connected to the EYE LEDs are not fully visible but are configured in an "open drain" setup where the LED is in the "drain" and the Arduino controls the gates. This is a common circuit with many examples available online. The photo also shows the solar cell, which outputs approximately 4V in bright light, and the breadboard shield.

[Image Description: A close-up showing the DROK SMPS (switch mode power supply) connected to the steering servo's power pin, along with the solar cell and breadboard shield.]

Step 6: Battery Power

To power the robot, custom battery packs were built. An 8.4V@2500mAh Li-ion pack was assembled. In the lower left corner of the photo, a switch is visible that controls the robot's power (on/off) or charging. Zip ties are used to secure the battery in place. The dual motor drive system, including the motors and gearheads, is also visible.

[Image Description: A close-up of the robot's internal components, featuring the 8.4V Li-ion battery pack secured with zip ties, and the dual DC motors with gearheads.]

Step 7: Ultrasonic Transducer

This step focuses on testing the performance of the ultrasonic transducer, which is the primary reason for building the robot. The sensor comprises two parts: a "send" unit and a "receive" unit, located below the LED "eyes". It operates on a "time of flight" principle: the transmit sensor is driven with a high voltage for 10µS, emitting a pulse at a specific frequency. The circuit then switches to receive mode, listening for the return pulse reflected off an object. The time between pulse generation and signal reception is measured and converted into distance units, in this case, centimeters.

[Image Description: A front view of the robot, highlighting the ultrasonic transducer sensors positioned below the LED 'eyes'.]

Step 8: VL53L0X Time-of-Flight Distance Measurement Sensor

The VL53L0X is a "time of flight" transducer, also known as LIDAR (Light Detection and Ranging). LIDAR is a method for determining distances by targeting an object with a laser and measuring the time for the reflected light to return. This process is similar to the ultrasonic transducer but uses light instead of sound. The VL53L0X device is a small unit with a white rectangle, containing a 940nM laser that emits pulses and measures their return time. Testing indicates a range of approximately 2 meters. By positioning the ultrasonic device upwards and the LIDAR sensor level with the ground, different fields of view (FOV) are captured.

[Image Description: A close-up of the VL53L0X Time-of-Flight distance sensor module, showing its small size and the labeled pins (XSHUT, GPIO1, SDA, SCL, GND, VIN).]

Step 9: Putting It All Together W/CODE

The robot is shown operating in a living room environment. Its maneuvering algorithm is simple: upon detecting an obstacle, it executes a random turn (left or right) until the obstacle is no longer detected, then centers its steering and continues. Further fine-tuning is planned, including integrating the solar cell light detector routine to enable the robot to steer towards the brightest spot.

A video demonstrating the robot's operation is available at: Download Video

[Image Description: A front view of the completed obstacle-avoiding robot, with its LED 'eyes' illuminated.]


File Info : application/pdf, 23 Pages, 1,003.44KB

PDF preview unavailable. Download the PDF instead.

LIDARUltrasonic-Transducer-MC1-Obstacle-Avoiding-R

References

wkhtmltopdf 0.12.6 Qt 4.8.7

Related Documents

Preview Ultrasonic Intelligent Obstacle Avoidance Vehicle: Assembly and Programming Guide
A comprehensive manual for building and programming an Arduino-based intelligent obstacle avoidance vehicle. Covers hardware assembly, component connections, Arduino microcontroller basics, L298N motor driver control, and HC-SR04 ultrasonic sensor integration for distance measurement and autonomous navigation.
Preview Kid's Control Panel with Arduino: A DIY Project Guide
Learn how to build a custom Kid's Control Panel using Arduino. This comprehensive guide covers concept, design with FreeCAD, component selection, step-by-step assembly, and Arduino coding for a fun, interactive project.
Preview Tuto Arduino Uno: 45 Original Electronic Projects
A comprehensive guide to Arduino Uno, featuring 45 original electronic projects. This tutorial covers essential concepts, required components, software setup, and practical projects ranging from basic LED blinking to more advanced applications like ultrasonic sensors and artificial intelligence.
Preview Arduino Sensor Buzzer 5V User Manual: Play Melodies with PWM
A user manual for the Arduino Sensor Buzzer 5V, explaining how to use it to play melodies using PWM signals. Includes connection details, code examples, and technical specifications for tones.
Preview Arduino-Controlled Drawing Robot Assembly Guide
A step-by-step guide to assembling an Arduino-controlled drawing robot, including a list of components and detailed instructions.
Preview DIY Wireless Customisable Cat Toy with Arduino and Blynk
Build a customisable, wireless cat toy using Arduino and Blynk. This step-by-step guide covers assembly, wiring, and software setup for an interactive pet toy.
Preview Automatic Temperature Based Fan Controller using Arduino
This project details the design and implementation of an automatic fan speed controller using an Arduino microcontroller, an LM35 temperature sensor, and PWM technology to regulate fan speed based on room temperature. It includes hardware and software requirements, working principles, and potential applications.
Preview Arduino LED Matrix Display: DIY Project Guide
Step-by-step instructions for building a custom Arduino-controlled LED matrix display using WS2812b RGB LEDs. Learn how to assemble, wire, program, and create animations for your own LED matrix.