Robotic Maze Solver: An Autonomous Car Design for Optimal Navigation
This project presents a step-by-step design of a robotic car capable of navigating a maze autonomously. The car utilizes modular design principles, relying on serial and wireless communications to interact with sensors and control motors effectively. Key features include storing the maze in memory, employing proximity sensors for obstacle detection, and implementing a right-follow algorithm to solve mazes. Successes and challenges faced during the project, along with recommendations for future enhancements, are discussed extensively.
Robotic Maze Solver: An Autonomous Car Design for Optimal Navigation
E N D
Presentation Transcript
ECE 345 PRESENTATION Robotic Maze Solver David Yang Niraj Nayak
PLANNED DESIGN • #1. Build a car to navigate maze autonomously • #2. Car should store maze in memory and derive optimal solution
PROJECT BUILD Step-by-Step Modular Design
#1: Serial Communications • Establish Serial Link between HC12 and Jornada running Embedded Visual Basic (EVB) • This allowed us to send commands to MCU
HC12 Serial Port • To send data: • Check that buffer is clear • Write data to serial port data register • To receive data • Check if a byte has been received • Copy data from data register
Jornada Serial Comm. • To send data • Comm1.Output = “a” • To receive data • While Comm1.InBufferCount<?? • Input=Comm1.Input
#2: HC12 PWM • The pulse width and period can be set on a PWM register • Pulse width controls speed of motors through a speed controller
PWM Protocol • EVB sends “b”, HC12 sends both motors forward • EVB sends “c”, HC12 sends both motors backward • etc…..
PWM Example • Neutral Pulse ~1.5ms • Forward Pulse is .5ms longer • Reverse Pulse is .5ms shorter
PWM • Hooked PWM Outputs to Rooster Speed Controllers • Calibrated Speed Controllers • Successfully drove car using EVB
#3 : Sensors • Originally had distance sensors • Very complicated to measure and parse • Many timing issues • Decided to use proximity sensor
Proximity Sensors • Sharp GP2D150A • 15cm range +/- 2.5 cm • Outputs logic low when d>15cm • Outputs logic high when d<15cm
Using Sensors • Send character to MCU • Wire sensors to I/O Port • Send value of port back to EVB • Successfully read sensors with EVB
#4 Algorithm • Right Follow Algorithm- • Move cell to cell • If open right turn, take it • Else move forward • Else move left • Else turn around • This should solve all mazes
#5 Maze • Used a 4 by 4 cell maze • 2’ X 2’ X 1’ dimensions • Constructed out of wood
#6 Car Settings • Set times to leave motors on to move F one cell • Set times for L,R & Full turns • Used 3 sensors: F, L, and R
#7 Wireless Comm. • Used the “Winsock” object on Visual Basic • Communicated from laptop running VB to Jornada running EVB. • 802.11 Standard
#7 Wireless Comm. • Wireless control • Send commands to Jornada • Manual driving • Move to “Next State” • Read “Current State” of Jornada
#8 Error Correction • Car kept hitting walls of maze • Solution1: Mount extra sensors to detect when we get too close – not robust enough • Solution2: Mount sensors on servos
#9 Optimal Algorithm • Didn’t have time to complete
SUCCESSES • Serial Communications • Wireless Communications • Visual Basic Programming • Modular design • Error Correction
FAILURES • Trying to number crunch • Storing maze in memory • Optimal solver
FURTHER TESTS • Faster Speeds • More runs to determine success rate • More complex mazes
Recommendations • More sensors for better error correction • Rolling vs “Shopping Cart Wheels”