Artificial Intelligence with Arduinos

Learn to build and program a simple, inexpensive robot to map and navigate a maze.
  • Lectures 78
  • Video 8 Hours
  • Skill level all level
  • Languages English
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion

How taking a course works

Discover

Find online courses made by experts from around the world.

Learn

Take your courses with you and learn anywhere, anytime.

Master

Learn and practice real-world skills and achieve your goals.

Course Description

Students will learn to build and program an inexpensive robot using a breadboard, some servo motors, an Arduino Nano, and a few other basic electrical components. It will cost about $100 to purchase all the necessary materials (plus shipping), and you will need to have the frame 3D printed.

This course is structured so that you can progress at your own pace.

The lectures in this course show you how to either build a portion of the robot or program a discrete task.

Students who complete this course will learn about electronics, robotics, and a some sophisticated programming techniques. Together, these skills will allow students to build and program projects of their own design inexpensively.

If you have difficulty viewing the videos on Udemy's website, try using my YouTube Playlist for this course.

What are the requirements?

  • About $100 in electronics
  • Access to a 3D printer (to print the frame)
  • Access to a modular maze

What am I going to get from this course?

  • Over 78 lectures and 7.5 hours of content!
  • program a robot to move autonomously
  • remotely control a robot
  • program a robot to avoid obstacles autonomously
  • program a robot to map and navigate a maze autonomously

What is the target audience?

  • Anyone interested in building and programming maze solving robots.

What you get with this course?

Not for you? No problem.
30 day money back guarantee

Forever yours.
Lifetime access

Learn on the go.
Desktop, iOS and Android

Get rewarded.
Certificate of completion

Curriculum

Section 1: Getting Started
Introduction
02:12
What is an Arduino
03:28
Links
Text
3D Printing the Frame
Text
Painting a PLA Frame
02:22
How to Make a Nano Mouse Video 3.0
15:41
How to Make a Nano Mouse Slideshow 3.0
12 slides
Installing the Arduino IDE & Drivers (General Info)
Text
Installing the Arduino IDE & Drivers on OS X 10.9 & below
04:18
Example Sketches, Comments, and Reference
07:56
06:57

Take a look at the video listed in External Resources for an explanation of why it's necessary to use the internal pull-up resistor.

Test and Calibrate Your Servo Motors
04:16
Control the Servo Motors
03:33
Section 2: Movement
forward() Function
04:06
Power Level
Text
stop() Function
01:38
forwardTime() Function
03:15
Unequal Motors Tweak
Text
turn() Function
01:58
Improved turn() Function
02:23
Improved stop() Function
02:36
Challenge: Make the turn() Function use Degrees
01:32
Movement Challenge
Text
Organizing Your Code
08:56
Section 3: Remote Control
App Inventor
Text
Controller Android App
25:44
Programming the Arduino
05:20
Renaming the Bluetooth Module
Text
Adding the Bluetooth Module
1 slide
Pairing with an Android Device and Running Your App
01:39
Android Remote Control Challenge
Text
Pairing with a Computer
01:07
Controller Processing Program for a Computer
21:21
Section 4: Sensors
Adding the Front Sensor
10:21
Adding Sensors Slideshow
7 slides
Adding a Sensors Class
05:55
Adding the Left and Right Detectors
02:26
Using Reflected Light
06:18
Filtering Out Ambient Light
10:24
Smoothing
19:44
Obstacle Detection
04:14
Section 5: Obstacle Avoidance
State Machine
05:27
Improved State Machine
02:36
avoid() Function
06:26
Improved avoid() Function
06:37
Turn Random Directions
03:33
Turn Random Durations
02:15
Section 6: Navigating a Labyrinth
Proportional Control
07:06
Amplifying the Error
02:45
Calibrate targetFront
06:30
forwardWhiskers() Function
13:19
Sensors Threshold Tweak
Text
Navigating a Known Labyrinth
08:33
Navigating an Unknown Labyrinth
15:43
Navigating a Known Maze
06:40
Section 7: Solving a Maze
Concept
05:44
03:33

Learn how to add the NanoMouseMaze class to your program to help visualize the concepts covered in the following videos. Version 2 includes two improvements:

  1. The print function can now handle mazes of any size.
  2. The print function is now compatible with btMonitor - an Android App I wrote to provide wireless debugging.
Changing the Mouse's Initial Position and Heading
04:48
Initializing the Values Array
07:12
Setting the Target Cell
02:59
solve() for the North Neighbor
04:43
solve() for All Neighboring Cells
09:09
Adding Virtual Walls
09:15
solve() Given North Wall
06:33
solve() Given Neighboring Walls
09:25
solve() for All Cells
09:45
Section 8: Navigating a Maze
findBestNeighbor()
11:28
findBestNeighbor() Challenge
02:27
addWalls()
06:08
Wireless Debugging - Android
01:37
Wireless Debugging - Computer
00:54
forwardWhiskers() Modified
04:10
scanWalls()
09:36
turnTowardBestNeighbor()
10:21
Stepping Through the Maze
06:41
#ifdef DEBUG
03:07
Congratulations
04:20
Speed Run Tips
Text

Instructor Biography

Michael Backus , Educator & Robotics Enthusiast

I am an educator in Wasilla, Alaska. For nearly a decade I've taught robotics at the Alaska Summer Research Academy as well as at Twindly Bridge Charter School. When I'm not teaching robotics, I like to learn more about the various disciplines required to make really cool robots. I'm currently working on a soccer bot that uses computer vision. I hope to one day find a job that allows me to play with robots all day long in exchange for teaching middle and high school students what I learn by developing engaging online curriculum.

Join the biggest student community

5,900,000

Hours of video content

22,000,000

Course Enrollments

6,500,000

Students

Reviews

Average Rating
4.9
Details
  1. 5 Stars
    8
  2. 4 Stars
    1
  3. 3 Stars
    0
  4. 2 Stars
    0
  5. 1 Stars
    0
    • Héctor Avilés

    OUTSTANDING!!!!

    It's one of the best courses in udemy ! and totally free!! Thank you for this great course :D

    • Phillip H McCary III

    Programing Skills

    Artificial Intelligence with Arduinos is a “must take” class for practical Arduino embedded systems. I learned more practical programing skills and “tricks” in Michael Backus’ class then all my other collage “software” classes combined. I now apply the “tricks” Michael taught me in my other projects: for example, the #ifdef DEBUG concept alone is invaluable.

    • Niklas Wennerstrand

    Exelent extensive course.

    I'm very pleased with this course. The content was extensive and interesting and Michael Backus have done a great job creating this course. The programming skills required is a little bit more than a absolute beginner would expect but Michael advise on on-line resources to learn the basics, and then jump back to this course. I highly recomend this course for other Udemy students.

    • Karijn

    Really good lab on how to create a maze solving robot

    I'd really enjoy watching this course, thanks.

Ready to start learning?
Enroll for free now