
An introduction to the digital electronics kit and what you'll need parts wise for this course.
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.
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.
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.
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.
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.
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.
In this lesson, we learn what a microprocessor is by exploring its internal workings and functions.
In this lecture we learn what the stack is and how it works and the Arithmetic Logic Unit or ALU for short.
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. :)
A quick walk through on obtaining and installing the MPLAB software from Microchip to program your PIC microcontroller.
In this lesson, we'll cover the most common pitfalls you'll encounter as you attempt to program your PIC.
In this lesson we will go line by line through our program to see what it did and how.
In this lesson we learn two new instructions while we build a binary counter.
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.
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.
I made a mistake and also wanted to cover a mistake before it was made. :)
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.
In this lesson we are introduced to a few new instructions and then given your first coding challenge!
In this lecture we learn how to communicate with and control the Hitachi LCD displays.
In this lesson, we interface our PIC microcontroller to the LCD display.
In this lesson, we finalize the code involved in interfacing the PIC and LCD display.
In this lesson, we are introduced to the concept of analog and digital conversion.
In this lesson, we cover the various techniques of converting an analog signal into digital numbers, how the processes work and the time involved.
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.
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.
In this lesson we discover the dead-easy way to set the "fuses" on board the PIC microcontrollers
You will get a quick grasp on what Arduino is and why it's all the rage.
You can download and install the IDE needed to program the Arduino. Here's how.
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.
After you see some basic programming rules, you're given your first programming challenge: Program a traffic light!
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.
In this lesson you will invoke a digital input to control a digital output. Easy peasy!
In this lesson you'll learn to perform digital tests with the If, Else function.
In this lesson, you'll explore variables and how they're used in the Arduino programming language.
In this lesson, we'll get introduced to the basics of Pulse Width Modulation on the Arduino by controlling the brightness of an LED.
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.
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.
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.
Here you learn the basics of serial communication and how to use it in powerful ways.
In this lesson, we make use of the serial monitor - a very useful tool in the Arduino IDE.
Now we'll walk through the super simple to use and very powerful analog to digital conversion on the Arduino.
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.
We briefly go over how to represent the different base numbering systems in the Arduino IDE.
In this lecture, we ask "What on earth is a shift register?" Oh, we also answer that question.
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.
Part 2, we explore some more details about using boards with the TM1638 controller and look at two more example codes.
In this lesson, we look at the last function of the TM1638 controller: the button matrix.
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.
In this lesson, we go over the actual assembly of our mobile robot platform.
In this lesson, we'll add our computer control and electronics to our mobile robot/smart car platform.
In this lesson, we calibrate and program our mobile robot and teach it some dance moves.
In this lesson we mount and use our infrared proximity sensor for basic obstacle avoidance and navigation. We also mount some googly eyes.
In this lesson we explore functions in the Arduino programming language.
In this lesson, we briefly explain what libraries are and install a couple in preparation for our next few lessons.
In this lesson, we'll put our ultrasonic sensor to work, measuring distances in non-destructive, no-contact ways.
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.
Here we'll dive into multidimensional arrays cause, you know, single arrays just weren't complicated enough.
In this lesson, we'll actually put into practice using Arduino libraries to manage our Hitachi display.
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.
In this lesson we go through the startup and initialization sequence for our TFT display.
This bonus lesson is in response to a student's excellent question about a line following robot challenge. Here's how to do it.
Updated January 2023
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 14,000 students enrolled and more than 500 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!