
This course includes our updated coding exercises so you can practice your skills as you learn.
See a demo
Format the SD card on the Jetson Nano using the SD card formatter, following windows/mac steps, select quick format, and confirm completion.
Set up remote access to a Jetson Nano with VNC, paste setup codes in the terminal, set a password, reboot, and locate the IP with ifconfig for remote connection.
Launch and install Visual Studio Code on the NVIDIA Jetson Nano via VNC, enabling remote Python and OpenCV coding in the VSCode IDE.
Edit the xorg.conf to create a virtual screen on the Jetson Nano, set 1280 by 720, then reboot and verify via the VNC viewer.
Install Python in Visual Studio Code on Jetson Nano via VNC, then install the Microsoft Python extension, create a project folder, and run a hello world script.
Install and verify the OpenCV library on the Jetson Nano using Visual Studio Code and Python. Confirm the OpenCV version (4.1.1) by importing cv2 and printing its version.
Explore Python basics by learning variables, naming rules, and how to assign values. Understand data types like integers, floats, strings, and booleans, and how dynamic typing works.
Explore Python operators, including arithmetic, assignment, comparison, and logical operators, with practical examples of x and y demonstrating addition, subtraction, multiplication, division (float and int), modulus, and exponentiation.
Explore how logical operators and, or, and not guide an autonomous vehicle in prioritizing objects and controlling engine states using Python.
Learn how standard input and output functions in Python let users enter data and display results via the console, using input() and print() and basic prompts.
Practice using Python's print function to display strings, integers, floats, and booleans by creating variables and printing them, including formatting with commas for multiple outputs.
Learn to use the Python input function on a Jetson Nano with VSCode, create variables and prompts, print results, and verify inputs are strings via the type function.
Learn conditional statements in Python, using if, else, and elif to control program flow based on conditions; understand indentation and practical examples with comparing numbers and lane-following decisions.
Master conditional structures in Python by building if and else statements in VS Code, evaluating true or false conditions, and printing outcomes with variable comparisons between x and y.
Learn Python loops with hands-on exercises: use a for loop to print even numbers from 1 to 10, then build a while loop counter from 0 to 9.
Explore how Python modules simplify code reuse and organization, and learn to import and use modules like math and OpenCV for lane tracking.
Create and use custom Python modules by defining functions in my_module.py, importing them in main.py, and executing greetings and exponentiation operations.
Learn to read an image with cv2.imread and display it using cv2.imshow, then control how long it stays on screen with cv2.waitKey, illustrating with a sample OpenCV basics project image.
learn to draw a line on an image with OpenCV using the line function, setting start and end points, color, and thickness, then display the result with imshow and waitKey.
Learn how to draw a circle on an image using OpenCV's cv2.circle function, including setting the center, radius, color, and thickness, and display the result with imread and show.
Discover how to print text on an image with OpenCV using cv2.putText, including loading an image, choosing font Hershey simplex, blue color, and coordinates for placement, then displaying the result.
Learn to use the CSI camera on Jetson Nano with OpenCV, capture frames via cv2.VideoCapture, adjust frame size, apply vertical flip, and display results in Python.
Learn how external dc motor drivers power a four-motor autonomous vehicle to follow lanes, adjusting speeds for left and right turns with Jetson Nano and L298n and PCA 9685 modules.
Discover how the PCA9685 motor driver enables I2C control of DC motors, servos, and steppers with Jetson Nano, controlling motor speed via the L298N module and a Python library.
Explore the dc motor circuit diagram for an autonomous vehicle with Jetson Nano, featuring the L298N driver, four dc motors, a nine-volt battery, ground connections, and PCA9685 motor driver integration.
Examine the wiring between the L293d and PCA9685 motor drivers, including enable and input pins, and connect Jetson Nano via I2C (gnd, sda, scl, 3.3v) for DC motor speed control.
Control the speed of DC motors on the Jetson Nano using the PCA 9685 I2C module, with setup of I2C lines, SDA/SCL pins, and Adafruit libraries.
Adjust the PCA 9685 circuit to control a dc motor with pwm, and set channel duty cycles to 0XFF and 0XFFFF for out one and out two.
Assemble the -1 module for a self-driving car project, using Jetson Nano hardware fundamentals to explore lane tracking and OpenCV workflows.
Assembling -2 reveals basic assembly concepts through a playful caption about beetles and bills for learners.
Explore canny edge detection for lane tracking on highways, including grayscale conversion and threshold parameters, using Python on Jetson Nano to detect edges in images.
Learn to implement canny edge detection in OpenCV with Python, processing highway images in grayscale, tuning thresholds, and visualizing original and edge-detected results.
Explore contours in OpenCV to detect object boundaries for lane tracking. Use find contours on edge images from canny detection, retrieve contours, and apply chain approx to simplify contour points.
Learn to perform contouring with OpenCV on a highway image by converting to gray, applying canny edge detection, finding and drawing contours, then displaying results.
Learn thresholding to distinguish road lines by applying a threshold function to a grayscale image, producing a binary image (black and white) for lane tracking in autonomous driving.
Learn to combine edge detection and binary threshold results using OpenCV's add function to enhance lane tracking in a self-driving car project.
Define a region of interest to target analysis on images, boosting efficiency in image processing. Use OpenCV and numpy slicing to select ROI coordinates in Python.
Discover how ROI enhances image processing and analysis by enabling targeted operations that improve processing time and accuracy in image processing projects.
Create a mask from a polygon using OpenCV by generating a zero matrix, filling the polygon with fill poly, and applying bitwise and to obtain the masked image.
Develop a lane-tracking self-driving vehicle using Jetson Nano and OpenCV that can drive itself and follow the road; test on a white-tape road with 80 cm segments.
Define and explain the core modules used in the project, including OpenCV cv2 for contouring and white line detection, numpy for region of interest, and PCA 9685 motor control modules.
Initialize I2C and the PCA9685 PWM driver on a Jetson Nano, configure address 0x40, set frequency to 100 Hz, and apply a 100% duty cycle to two motor channels.
Learn to configure a Jetson Nano webcam feed with OpenCV, adjust brightness and resolution, and define a region of interest with polygons and a mask for reliable lane tracking.
Welcome to the course on developing an autonomous vehicle using Jetson Nano! This course will guide you step-by-step on how to build your own self-driving car using Jetson Nano. Starting from the basics, you will acquire the necessary hardware and software knowledge, and then reinforce these skills through practical projects.
Course Content:
Introduction to Jetson Nano setup and key features
Overview and installation of essential hardware components (Webcam, L298n motor driver, PCA9685 PWM driver)
Image processing techniques with Python and OpenCV
Developing contour-based lane detection algorithms
Lane tracking and vehicle control
Materials Used:
Webcam: For capturing image data
L298n: For driving motors
PCA9685: For generating PWM signals
Jetson Nano: For performing AI and image processing tasks
Course Objectives:
Learn how to effectively use the Jetson Nano platform
Develop lane detection algorithms using image processing techniques
Correctly connect and program hardware components
Achieve autonomous vehicle control through lane tracking
By the end of this course, you will have the skills to develop your own autonomous vehicle and advance your knowledge in this exciting field. Whether you are pursuing it as a hobby or aiming for a professional career, this course will provide you with a solid foundation.
Join us and take a step into the future of technology!
No previous programming or electronics knowledge is required.
"You are never too old to set another goal or to dream a new dream." - C.S.Lewis
"Do the difficult things while they are easy and do the great things while they are small. A journey of a thousand miles begins with a single step" - Lao Tzu
You get the best information that I have compiled over years of trial and error and experience!
Best wishes,
Yılmaz ALACA