This course is in pre-release. Lessons will total over 30 in number, released over the month of November.
With over 1,600 students enrolled in Module I, this module is the second of five on how to build robots. 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 complete module I), some basic math skills, a computer, and that's it! 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.
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 course is the prerequisite for Module III which is physics and robotic drives and prototyping skills. In Module IV, you'll culminate all you've learned 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. Module V takes your robot to the next level with autonomy. Navigation and external sensing, receiving and using GPS signals, inertial guidance for areas where you can't get GPS, artificial intelligence, and more.
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
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
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.
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.
I've been an instructor in science and technology for 30 years. I got my start teaching at a science camp when I was 16. I also taught technology at the high school level for 10 years. I am a graduate of robotics engineering from Canadore College, North Bay, Ontario, and conducted research and development for multiple innovations over the years, including work with an Eastern Ontario company producing cool suits and hot suits for harsh environments. Our suits were used on board the space shuttle while it was in operation.
My interests have gone far beyond robotics, having written multiple scientific papers, published in peer reviewed journals and a book, wrote a book on video production, and am currently a railroader, working for Canadian National Railroad in Ontario. I produced a video series on how to read Canadian railroad signals which is now being used in conductor courses to instruct the students on how to read the signals. I traveled on the road for ten years with a traveling museum I collected and constructed, speaking on the creation/evolution debate and have produced and hosted a television show on the topic for five years now.