Today may of our appliances come with displays and buttons. Instead of motors and gears, many household items today have embedded Microcontrollers. We are going to explore how we can experiment with Microcontrollers at home.
Have you ever noticed how smart our cell phones, or our music players, or even our cars are today? This is not just technology moving forward, this is a complete rethinking in how we control devices. Gone are the clock motors, gears, springs, levers, and switches. They have been replaced by electronic microcontrolers, sensors, semiconductors, and motors.
This is not an incremental change, but a revolution in command and control. What caused this revolution? Why the microprocessor of course. We have learned how to convert all types of signals from analogue to digital. In the process we have allowed the computer to sense and control all types of devices. This revolution has allowed us to do more with less in-terms of power. It has also greatly enhanced the functionality of simple devices. Finally it has improved reliability by orders of magnitude.
OK, now that we are done with the marketing hype, lets spend some time understanding the concepts behind this technology.
An embedded system is a computer system designed to perform one or a few dedicated functions often with real-time computing constraints. It is embedded as part of a complete device often including hardware and mechanical parts. By contrast, a general-purpose computer, such as a personal computer (PC), is designed to be flexible and to meet a wide range of end-user needs. Embedded systems control many devices in common use today.
The device above is a computer modem, but it will give you an example of what an embedded system looks like. Here is a list of the items called out in the picture.
Telephone decoupling electronics (for ADSL).
Multicolor LED (displaying network status).
Single color LED (displaying USB status).
Main processor, a TNETD7300GDU, a member of Texas Instruments’ AR7 product line.
JTAG (Joint Test Action Group) test and programming port.
RAM, a single ESMT M12L64164A 8 MB chip.
Flash memory, obscured by sticker.
Power supply regulator.
Main power supply fuse.
Ethernet transformer, Delta LF8505.
KS8721B ethernet PHY transmitter receiver.
Telephone (RJ11) port.
Telephone connector fuses.
This gives you a view of what an embedded system looks like. But you say electronics have always been part of communication systems. After all a modem is just a computer interface to a telephone and back to a computer. What about using embedded systems in the a non-computer system.
Washing Machine block Diagram
This is a block diagram of a washing machine and how it is controlled by a Microcontroller. The basic components are electrical switches which in the past were relay, today they are Triacs. A triac is what is used in a home dimmer switch. The other important components are sensors. These come in many varieties and types.
Microcontroller Block Diagram
This is not the Microcontroller we will be using, but I thought this was a good overview of what components are in a microcontroler. Lets look at these components and compare them to what we are used to on a PC motherboard.
Typically in a motherboard we would find storage, ram, i/o, and a CPU. Well as we can see all these components are available in the Microcontroller. The main differences are in the I/O and the storage.
On a PC motherboard we have interfaces for floppies, and hard disks. There is also eeprom used for the BIOS. But on the Microcontroller there is only the program memory. Additionally we should remember that the memory of the Microcontroller is much more limited.
A bigger difference is the I/O capabilities of each. The PC motherboard usually has video output, audio output, ethernet and USB ports. By contrast, the Microcontroller only has a single USB port for digital communication. But it has both digital and analogue I/O ports. It is through these digital and analogue ports that the Microcontroller communicates with the outside world. The USB port is there to allow another computer to load the program memory
The Microcontroller is designed to talk to more primitive interfaces than is a PC. But given the ability to process information in real time, this is not too big a hurtle. The biggest difference is that the PC is a general purpose device which can perform a myriad of tasks. The Microcontroller, on the other hand is expected to handle a more limited functionality.
Before we start experimenting with Microcontrollers we need to have an understanding of electronic components. These are the building blocks needed for experimenting. The picture above comes from the page Electronic Components on Wikipedia. This is a good over view of some components used in experiments. A detailed explanation of each of these is beyond this talk. But a basic understanding of what these components is useful to an experimenter.
One concept we will be using often is the Breadboard. These are solderless circuit boards in which we can add and remove components easily. As an example of how to use a breadboard lets have a look at the web page: Electronics Primer: Use a Breadboard to Build and Test a Simple Circuit
There is one more concept that I think is important when experimenting with circuits. That is the ability to read, or at least understand circuit diagrams. Lets have a look at a good tutorial on reading a circuit diagram at Circuit Diagrams on the website The Electronics Club. I highly recommend this site for other experimenters who would like to learn their way around electronic components and circuits. There are good explanations about how circuits work, how to use components, and the basic tools.
This is the prototype board that is causing such a stir in the Microcontroller world. A good description of this board, and it’s specifications can be found at: Arduino Uno. It has spawned a great deal of interest in embedded systems and hobbyists explorations. Or to quote it’s web site.
Arduino is an open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It’s intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments.
The web site itself is a treasure trove of information, tutorials, examples, and ideas. The hardware is easily found on the Internet. The website hosts the software for an Integrated Development Environment (IDE) that runs on windows, mac, or Linux. There is enough hand holding for even the most basic of beginners to get started.
In my research of information about the Arduino I came across sources for hardware, example projects of many different types and budgets. Part of the beauty of the Arduino, is that it makes good use of the Internet for sharing ideas, and designs.
Here is a couple of tutorials I came across in PDF format that I thought I would share. They are both PDF files so you might need to down load it to read it. Arduino Microcontrollers Made Easy and Arduino Microcontroller Guide. For those of you who want the detail documentation on the Microcontroller itself have a look at ATmega8U2/16U2/32U2.
I would like to share with you the article that first picked my curiosity about the Arduino. It is from make magazine. You can read it on-line Build and program a microcontroller clone with no soldering.
Finally for now I am going to encourage you to explore what can be done with a microcontroller. Yes many of the beginning tutorials are somewhat silly. Who needs a small computer to turn an LED on and off. But as you start to see things like power monitors for your home, or RFID keys for your house, or a slow cooker for special meals, you see what happens when you combine small brains with simple devices. The ideas is to get you thinking about how things can work. Remember, the car you came to this meeting in, depends on microcontrollers to make it work efficiently. You may never create and R2D2 robot but having a view into the world of microcontrollers, can add fascination to your view of modern technology.
And just for fun here is a series of tutorials on Youtube about how to use the Arduino. Tutorial 01 for Arduino: Getting Acquainted with Arduino. Enjoy.
Written by John F. Moore
Last Revised: Tue Nov 1 18:14:04 EDT 2016