Digital Electronics Robotics Learn By Building Module Ii

Over 12,000 enrolled! Open doors to careers and hobbies and have fun while learning digital electronics!

Last updated 2022-01-10 | 4.7

- Design and construct digital electronic circuits
- use microcontrollers to control real world items like robots you build!
- You will be able to program microcontrollers like the PIC and Arduino.

What you'll learn

Design and construct digital electronic circuits
use microcontrollers to control real world items like robots you build!
You will be able to program microcontrollers like the PIC and Arduino.

* Requirements

* You will need knowledge of analog electronics and the parts listed in the first lesson.
* No prior experience or knowledge in digital electronics is needed - just some basic math and computer skills!

Description

Building on the knowledge you gained in the Analog Electronics module opens even more doors to diverse careers and hobbies. Think about how many industries / businesses / hobbies that involve computers or computer control. Even automobiles are chock full of digital electronics now. All of this involves digital electronics, and you want in on it today. In this module 2 course, you will build digital electronic circuits, use and program microcontrollers like the PIC and Arduino, and connect to the real world with them. You'll need a good understanding of basic electronics (i.e., you've completed the Robotics: Learn by building, module I), some basic math skills, a computer, and that's it!


With over 12,000 students enrolled and more than 300 five star ratings, students aged 8 to 60+ have enjoyed the course and its projects.

No prior knowledge of digital electronics or programming is required, and yet by the end of this course you'll have built functioning digital electronic circuits like a digital memory, and programmed microcontrollers which are basically a computer on a microchip. You will connect these to the real world for home automation and of course, controlling your robots. All courses have captions for the hearing impaired.

Course materials:

You will need the analog electronic parts and a breadboard, which you can purchase as an accompanying kit (i.e., the Analog Electronics Kit from module I) or provide your own.

You will also need the digital electronics kit which again you can purchase as an accompanying kit or provide your own parts. The first lesson is a walk-through of what is in the kit and acts as a parts list for this module.


This series of "Robotics: Learn by building" modules has an end-goal focus on the diverse field of robotics. In module I we learned the basics of electricity and electronics. In this module II you further develop your knowledge and skills to include digital electronics and practice your skills on real-life digital components. 

This course is the prerequisite for the module III course where you'll learn robotic drive systems and physics, and gain a wide variety of skills in prototyping so you can actually build your own robots and manufacture your own parts. In module IV, you'll culminate all you've learned so far as you build a 3D printer from scratch, hook it up to a desktop computer and make your own plastic parts. The 3D printer is, in effect, a robot which you can then use to make parts for your other robot designs. In module V you can take your robot design and construction skills to the next level with a hands-on approach to autonomous robotic systems: learning about various sensors to know where you are and what your robot is doing, GPS navigation, basic artificial intelligence, powerful microchips known as FPGA's where you literally design a custom circuit on the chip, vision systems and more.


Lesson overview:

In this course we'll be covering:

What is digital?

Binary & Hexadecimal system and ASCII
Analog to digital and digital to analog conversion
Logic gates and you'll make your own RAM
Digital Addressing/demultiplexing

Microprocessors & microcontrollers - what are they?

Programming & using PIC microcontrollers to:

-display information on an LCD display

-Read both digital and analog inputs

-PWM control a DC motor and servo motor

-Read keypad matrixes

-control LED displays

-writing to flash memory on board for remote systems


What is Arduino?
-using Arduino for all of the PIC projects above, as well as using full-colour TFT touch screens

Building our mobile robot

Giving our mobile robot a "brain"
Ultrasonics and ultrasonic radar / external sensing
Programmable IR remote

and more!



Who this course is for:

  • You have a desire to learn computer control and electronics, especially geared towards building and controlling robots.
  • You want to understand the heartbeat of computers and digital systems, and want to build your own digital electronic devices.

Course content

1 sections • 70 lectures

Introduction and Whatcha gonna need: The kit of parts Preview 09:35

An introduction to the digital electronics kit and what you'll need parts wise for this course.

Parts list Preview 00:35

What is digital? Why digital? Free preview! Preview 08:28

So just what is "digital?" What does that even mean? In this lecture Ian gives a down-to-earth explanation of what digital is and why it's so powerful.

Binary and ASCII Preview 11:45

How on earth do you communicate large volumes of information using only a 1 or a 0? Ian explains the binary system and how to use it to even communicate letters.

Hexawhat? Preview 06:48

Binary is a base-2 system, Hexadecimal is a base-16 system which is also used extensively in digital electronics. Ian explains what hex is and how to interpret it.

Logic gates Preview 12:00

Digital logic gates simple to understand and are the heart hiding in the background of most digital circuits.  Here you learn what they are and how they work.

Registers and memory Preview 14:12

Not only do you learn what a register is and how to use it, but you build one!  Registers are critical components in digital systems, built up from logic gates to store a 1 or a 0.

Demultiplexing/Addressing Preview 06:59

Using logic gates, we can give an "address" to a specific digital element and control it using demultiplexing.  In this lecture you will learn what demultiplexing is and even solve some demultiplexing problems.

What is a microprocessor? Part I - Free preview! Preview 12:15

In this lesson, we learn what a microprocessor is by exploring its internal workings and functions.

Microprocessors, Part II: The stack and the ALU Preview 12:37

In this lecture we learn what the stack is and how it works and the Arithmetic Logic Unit or ALU for short.

What is a microcontroller? Preview 14:34

In this lesson, we explore what a microcontroller is and its advantages.

Please note: In the video I show what was supposed to be the PIC16F1455 chip on the anti-static foam. Well apparently I've gotten to that age in life where I need to wear glasses more often, as I instead grabbed a 556 chip (also a 14 pin DIP socket chip) during the filming!  So no, your eyes aren't fooling you, my eyes fooled me.  :)

Installing IDE Preview 01:36

A quick walk through on obtaining and installing the MPLAB software from Microchip to program your PIC microcontroller.

Our first PIC program Preview 20:01

Troubleshooting our program Preview 09:45

In this lesson, we'll cover the most common pitfalls you'll encounter as you attempt to program your PIC.

Deconstructing our first program Preview 17:13

In this lesson we will go line by line through our program to see what it did and how.

PIC program #2: Binary counter Preview 10:05

In this lesson we learn two new instructions while we build a binary counter.

PIC program #3: Pushbutton binary counter Preview 11:27

Here we take our binary counter and build the circuit and program so as to manually trigger the count...with a small surprise at the end.

"Debouncing???" Preview 10:31

In this lesson we explain why the previous circuit and program behave erratically, and what we do about it - a very important process called debouncing. 

Two quick points Preview 04:24

I made a mistake and also wanted to cover a mistake before it was made.  :)

Variables Preview 06:57

Please note: A student kindly pointed out a source of confusion I caused.  Towards the end of the lesson, I use the example of 50 instead of d'50'.  I should have had the d’50’ because it was decimal. Because I didn’t include the d or ”, the compiler defaults to hex, so it would assume that was H50, not D’50’ My bad.

In this lesson, we explore what a variable is and why it is useful.

KITT car challenge! Preview 19:19

In this lesson we are introduced to a few new instructions and then given your first coding challenge!

Using the Hitachi LCD displays, part 1 Preview 14:14

In this lecture we learn how to communicate with and control the Hitachi LCD displays.

Using the Hitachi LCD displays, part 2 Preview 09:43

Interfacing the PIC with the LCD display, project 1, part 1 Preview 19:17

In this lesson, we interface our PIC microcontroller to the LCD display.

Interfacing the PIC with LCD display, project 1, part 2 Preview 04:19

In this lesson, we finalize the code involved in interfacing the PIC and LCD display.

Tables on the PIC and interfacing to the LCD, project 2, part 1 Preview 07:46

Tables on the PIC and interfacing to the LCD, project 2, part 2 Preview 15:36

Analog and digital converting Preview 10:10

In this lesson, we are introduced to the concept of analog and digital conversion.

How to convert Analog to Digital Preview 09:58

In this lesson, we cover the various techniques of converting an analog signal into digital numbers, how the processes work and the time involved.

Direct feedback and calibration Preview 09:18

In this lesson, you will learn of the importance and methods of obtaining direct feedback from the microcontroller, and the why's and how's of calibration.

A/D converter to LCD display, part I Preview 19:08

This lesson walks us through what's involved in setting up and reading the A/D converter, and then displaying it on our LCD display.

A/D converter to LCD display, part 2 Preview 17:00

Configuration settings on the PIC microcontrollers Preview 04:37

In this lesson we discover the dead-easy way to set the "fuses" on board the PIC microcontrollers

What is Arduino? Preview 16:48

You will get a quick grasp on what Arduino is and why it's all the rage.

Installing Arduino IDE Preview 03:01

You can download and install the IDE needed to program the Arduino.  Here's how.

"Hello world" on the Arduino Preview 06:40

Please note: the IDE installs a more recent version of the "Blink" file.  The old version which I used in the lesson is available in the downloads section as a zipped file. Download it, unzip it somewhere on your computer, and then from the Arduino IDE go FILE > OPEN and select the unzipped old_blink.ino file.  It will ask you if you want to put it in a folder and open it, just select yes.


Just like we did previously with the PIC microcontroller, we'll kick off Arduino by flashing an LED in a typical "Hello world" first program.

Arduino programming basics Preview 12:58

After you see some basic programming rules, you're given your first programming challenge: Program a traffic light!

Timing on the Arduino Preview 11:21

After a brief look at one of the possible ways to accomplish our traffic light challenge, we venture in to how timing is accomplished on the Arduino.

Inputs on Arduino Preview 09:43

In this lesson you will invoke a digital input to control a digital output. Easy peasy!

If, Else statements Preview 06:13

In this lesson you'll learn to perform digital tests with the If, Else function.

Variables on the Arduino Preview 15:33

In this lesson, you'll explore variables and how they're used in the Arduino programming language.

PWM on the Arduino Preview 08:50

In this lesson, we'll get introduced to the basics of Pulse Width Modulation on the Arduino by controlling the brightness of an LED.

The L298 H-bridge and Arduino Preview 13:09

In this lesson we see how to use the dead-simple, yet very powerful L298 H-bridge board combined with our Arduino to control a DC motor.

July 2018, Please note an error in the original sample code was pointed out to me. The video shows the correct code, but mysteriously the sample code (which I used in the video!) got altered between filming and uploading all the files. The correct code is now provided.

Using PWM and an H-bridge Preview 08:03

In this lesson, we'll use a combination of PWM with our H-bridge to control both the speed and direction of a DC motor.

driving servos with the Arduino Preview 10:00

After discussing the unique challenges and characteristics of PWM on the Arduino and why it won't work for driving hobby servos, we then look at a new instruction and a way to control the servos.

Serial Communication Preview 14:25

Here you learn the basics of serial communication and how to use it in powerful ways.

Using the serial monitor Preview 13:21

In this lesson, we make use of the serial monitor - a very useful tool in the Arduino IDE.

Analog to digital conversion on the Arduino Preview 06:11

Now we'll walk through the super simple to use and very powerful analog to digital conversion on the Arduino.

Internal Pull-up resistors Preview 04:17

Loops in Arduino Preview 17:18

Keypad and keyboards Preview 18:56

In this lesson we learn how to use the membrane keypad from our kits, a common style of keypad for Arduino. Learning how to read matrix keypads also helps us to understand standard computer keyboards as well.

Base numbering in Arduino Preview 04:42

We briefly go over how to represent the different base numbering systems in the Arduino IDE.

Shift registers Preview 03:24

In this lecture, we ask "What on earth is a shift register?"  Oh, we also answer that question.

Using the TM1638 contoller and LED & KEY board, part 1 Preview 15:54

In this lecture, we learn how to write to the venerable TM1638 controller and its "LED & KEY" circuit board. Super cheap, very useful, dead easy to use controller that is so versatile. Horrible documentation, so we try and rectify that little problem with easy to follow steps.

Using the TM1638 contoller and LED & KEY board, part 2 Preview 08:19

Part 2, we explore some more details about using boards with the TM1638 controller and look at two more example codes.

Reading buttons on the TM1638 controller Preview 14:12

In this lesson, we look at the last function of the TM1638 controller: the button matrix.

Using our reflective Infrared sensor with Arduino Preview 09:39

In this lesson, we'll learn how our reflective infrared emitter/receiver pair works and how to make use of it with our Arduino in preparation for our mobile robot.

Assembling our mobile robot Preview 18:29

In this lesson, we go over the actual assembly of our mobile robot platform.

Adding electronics to our mobile robot Preview 10:50

In this lesson, we'll add our computer control and electronics to our mobile robot/smart car platform.

Programming and calibrating movements on our mobile robot - Free preview! Preview 19:45

In this lesson, we calibrate and program our mobile robot and teach it some dance moves.

Obstacle avoidance with infrared sensor Preview 09:36

In this lesson we mount and use our infrared proximity sensor for basic obstacle avoidance and navigation. We also mount some googly eyes.

Subroutines, aka functions in Arduino Preview 18:25

In this lesson we explore functions in the Arduino programming language.

Libraries in Arduino Preview 09:07

In this lesson, we briefly explain what libraries are and install a couple in preparation for our next few lessons.

Using our ultrasonic shield Preview 16:23

In this lesson, we'll put our ultrasonic sensor to work, measuring distances in non-destructive, no-contact ways.

Arrays & String variables Preview 15:22

Before we move on to using our Hitachi & full colour LCD touch screens, we need to learn what "arrays" are and what "string variables" are. Here we go.

Multidimensional arrays Preview 06:04

Here we'll dive into multidimensional arrays cause, you know, single arrays just weren't complicated enough.

Using a library to drive our Hitachi display Preview 05:24

In this lesson, we'll actually put into practice using Arduino libraries to manage our Hitachi display.

Identifying and wiring our TFT displays Preview 19:37

In this lesson, we attempt to cut down the confusion regarding these beautiful full-colour, TFT LCD displays. We then wire them for use in preparation for the next lesson.

Starting up our TFT display Preview 17:45

In this lesson we go through the startup and initialization sequence for our TFT display.

Bonus lesson: Line following robot Preview 03:48

This bonus lesson is in response to a student's excellent question about a line following robot challenge. Here's how to do it.