FPGA controlled Smart car

Controlling a smart car using an FPGA card. An algorithm was designed and implemented to enable the car to autonomously navigate without colliding with obstacles, follow a dark line, and track a light source.

This project is about controlling a smart car using an FPGA card.

Initially, the car was controlled by an ESP32 controller. The goalĀ  was to replace the ESP32 controller with an FPGA card to experiment with hardware and learn hardware design.

First, a research was conducted to explore the the various components in the system, how they work, and how communication is established between them. Then, the electrical schematic was designed to allow the connection of the FPGA card to the overall system.

An algorithm was planned to achieve several capabilities:
– Autonomous movement in space without colliding with obstacles
– Following a dark line
– Tracking a light source

The next stage was the implementation of the algorithm:
– Creating the controller’s state machines
– Dividing the design into different blocks
– Writing the code in System Verilog language, debugging using ModelSim
– implement the design using Vivado

In the end, the car performs all the functions that were planned, with its controller being an FPGA card of the Nexys A7 type.