
Explore hardware and image processing for a self-driving car using Raspberry Pi and Arduino, learn sensor integration, thresholding, color transformation, and object detection, plus machine learning and dynamic turn indicators.
Demonstrates a complete self-driving car project operating on a track, detecting traffic lights and stop signs, executing lane changes and U-turns with Raspberry Pi and C++.
Identify hardware requirements for building a self-driving car, including a Jesse kit with four gear motors, L298 driver, Arduino Uno, Raspberry Pi 3 Model B Plus, and a camera.
Build the hardware foundation of a self-driving car by assembling motor blocks on the chassis, wiring DC gear motors in parallel across bridges, and mounting power and control boards.
Construct a continuous track by joining four charts into straight and curved sections for testing a self-driving car, using white strips as guide lines.
This lecture demonstrates wiring Arduino pins for left and right dc motors, then implements forward and backward motor control with pwm via analogWrite and digitalWrite, plus hands-on testing.
Build left and right steering functions by adapting the forward function, adjusting motor speeds to perform turns, and testing three left and right levels on Arduino.
Flash the Raspbian operating system onto a Raspberry Pi 3 B+ using a 16 gb class 10 sd card, an adapter, and a flashing tool, then boot from the card.
Learn why OpenCV installation on Raspberry Pi struggles with Raspbian Buster and follow guidance to use Raspbian Stretch with a 16 gb SD card.
Enable the SSH shell on the Raspberry Pi and install the GUI package. Connect the Pi to your PC via Ethernet and access the GUI via a remote desktop connection.
connect a raspberry pi to a personal computer over wifi, find the pi's ip with an ip scanner, then establish a remote desktop connection to access the graphical user interface.
Connect a Raspberry Pi to your computer using VNC viewer, enable the VNC server, install necessary packages, and compare VNC viewer with remote desktop for faster access.
Learn OpenCV for computer vision and image processing, install OpenCV on Raspberry Pi, and train cascade classifiers to detect stop signs and traffic lights.
Remove unnecessary software on Raspberry Pi to streamline performance, including uninstalling office suites. Expand the SD card storage, monitor temperatures, and maintain remote access during installation.
Clone OpenCV from GitHub and prepare the Raspberry Pi environment by updating the OS, configuring storage, and installing essential development packages to build OpenCV.
Install required packages and create the OpenCV build directory, clone OpenCV from GitHub, configure with cmake, build with make on Raspberry Pi, adjust swap space, and reboot.
Set up libraries in the programming editor by creating a package config file, configuring open CV paths, adjusting permissions, and linking libraries in the local library folder.
Test first program in Geany demonstrates creating a C++ project, configuring build commands to link OpenCV, troubleshooting package config paths, and verifying installation with a simple test program.
learn to create and restore an SD card backup for Raspberry Pi by downloading, unzipping, renaming to img, formatting the card, and writing the backup with disk imager.
Clone the raspicam library from GitHub, then build and install the raspicam and WiringPi libraries on Raspberry Pi, and configure include and lib paths.
Mount the Raspberry Pi and camera on the robot car. Use wooden sticks for height, place the camera at the back for a wide field of vision, then power up.
Back up the raspberry pi sd card for the self-driving car project, including opencv and raspbian libraries, using disk management software, so you can restore the backup anytime.
Enable the camera interface on the Raspberry Pi via raspi-config, then write a C++ program using OpenCV to access the camera and verify the connection.
Learn to capture images with c++ using the raspy game library. Configure the camera’s resolution, brightness, contrast, saturation, and frame rate, then retrieve and display frames.
Write a C++ program to capture video from a raspy cam using a continuous while loop, with camera grab and retrieve calls, set to 360 by 240 and adjust bitrate.
Calculate the video stream frame rate by timing with chrono and C time libraries, converting elapsed time to frames per second and displaying results in the console.
Connect a Raspberry Pi via remote desktop, capture video frames, and convert bgr to rgb using cvtColor to improve color accuracy in real-time image processing.
Define a region of interest around a track in a video frame using OpenCV, four boundary points, and a perspective warp for image processing on Raspberry Pi.
Transform a region of interest into a bird eye view by defining four points and applying a perspective transformation to map source to destination coordinates.
Convert the frame perspective to grayscale, then apply a threshold to extract features and adjust min and max values to reduce noise for outdoor conditions.
Apply Canny edge detection to a grayscale image using hysteresis thresholds and the Sobel gradient, then merge thresholded edges for a final image used in self-driving car analysis.
Troubleshoot hardware and software for a self-driving car by realigning the camera. Adjust frame width and height, region of interest, and edge detection to ensure a clear track view.
Locate the lane lines by defining a region of interest and using a strip-based histogram in OpenCV to determine their positions relative to the frame.
Develop a histogram function using dynamic vectors to process a 400-wide frame, extract a region of interest, normalize intensities, and build the histogram line.
Use iterators and the max_element function to locate the exact positions of lines by maximum intensity in image halves, compute their distance, and draw green lines on the frame.
Calibrate a self-driving car by computing the lane center from the left and right lane positions and align the frame center to overlap for accurate video frame calibration.
Compute the offset between lane center and frame center, declare a result variable, and overlay data on the frame with a string stream to show steering cues.
Connect a Raspberry Pi to a motor control circuit using digital pins, configure pins as outputs, and implement forward, left, and right movements through conditional logic and binary values.
Install and fix the wiring pi library on raspberry pi by uninstalling the existing version, building from source, and updating the package config and local library paths.
Program an Arduino Uno as a slave device to read Raspberry Pi digital inputs from pins 0–3, convert them to motor commands, and drive forward, left, right, or stop.
Test the project by compiling and running the program, diagnose issues, adjust left/right motor presets via the external camera, and keep the car centered on track.
Learn to reduce frame delay in streaming from a Raspberry Pi to your PC by lowering color depth from 32-bit to 15-bit, achieving smoother performance.
Test the self-driving car project on a larger smart track extended to twelve to fifteen black darts, with two lanes and a central curve, observed via external camera.
Detect lanes using a histogram of intensity values and implement a u-turn via Arduino to switch to the right lane.
Implement a lane-end u-turn routine for a slave device in a self-driving car, using a function with timed motor commands and camera stabilization.
"Machine Learning will change the lives of all of us. What is Machine Learning? It’s behind what makes self-driving cars a reality"
This unique course is a complete walk-through process to Design, Build and Program a Embedded IOT Project (Self driving Car). Everything is discussed with details and clear explanation. The complete Self driving Car project is divided into 2 Parts
Part-1: (Course - 1)
1. Learn to design complete hardware for self driving car
a. Learn to setup Master device ( Raspberry Pi 3 ) for any project
b. Learn to setup Slave device ( Arduino UNO ) for any project
c. Learn to Establish Communication link between Master and Slave device
2. Learn Image Processing using OpenCV4
3. Learn to driver robot on road lane
Part-2: (Course - 2)
1. Learn Essentials of Machine Learning
2. Learn to train your own cascade classifier to detect Stop Sign, Traffic Lights and any Object
3. Learn to design LED Dynamic Turn Indicators
"Machine Learning will change the lives of all of us. What is Machine Learning? It’s behind what makes self-driving cars a reality"
This unique course is a complete walk-through process to Design, Build and Program a Embedded IOT Project (Self driving Car). Everything is discussed with details and clear explanation. The complete Self driving Car project is divided into 2 Parts