OK. (manual at the bottom of this post)
Thank you for your patience. I’ve been collecting names over a few weeks now and I’m finally ready to begin
planning for the sessions now. I am surprised, and actually very happy, at how many students wanted to participate.
I plan to start on 20th October 2014 at about 8:00pm in CL4 (this time may need to change)
This is what I plan to do.
Introduce you to using the Atmel AT89C2051 (sometimes called AT89C51) microcontroller. (uC is an abbreviation for microcontroller)
This is essentially a very small computer, and as such it can do many of the things ordinary computers can do, but of course has much more limitations than an actual computer – for example you won’t be able to do word processing on it or surf the web etc. Having said that it is still extremely useful and applicable to thousands of needs.
diagram of the 2051
It is possible to take a “black box” approach to what we plan to do, meaning we don’t absolutely have to deeply understand how all the circuits work in order b. But of course, if we DID learn how it works then we will be much better at being able to use it well. So at first we will use the ‘black box’ approach and then begin to deepen our understanding.
To start off with, the participants will be given a box of electronic components with a ‘breadboard’ which can be used to assemble circuits.
We will also have a programmer (the PG302) with which we can load instructions (or more accurately, whole ‘control programs’) into the 2051 chip, which will utilize the electronic circuitry, respond to inputs and give outputs and so forth.
microcontroller programmer. The IC in the green part is a microcontroller waiting to be programmed. You can see the connection at the bottom which recieves the program from a computer and the other IC’s and electronic components help load the data from the computer into the IC.
We will learn some ASSEMBLY LANGUAGE. This is just one step above the actual code which ALL ‘computer chips’ use. They use machine code, large lists of 1’s and 0’s which is very hard for humans to read so we translate those sets of 1’s and 0’s into ‘English style words’ (called nmenonics) which we can understand much more easily.
You can also use a high level language like C or C++ (which unlike assembly language being only one step above machine code, is many steps above the actual code that the uC understands), to control these chips if you like, but when the C or C++ is translated into machine code using a compiler, it often becomes very big in size and is poorly efficient. – but it still often works. However in the beginning we will use assembly language and it will result in very efficient use of the uC’s limited capabilities.
You may have heard of Arduino’s, e.g. the Arduino uno – these also use an 8 bit microcontroller. These have more memory than the 2051 and so it’s much more common to see people using C++ to program them compared to Assembly. language. IF we get time later we can explore C or C++ programming.
I will give you a learning manual originally designed by the respected James Atwell who formerly ran an electronics components and training company called IguanaLabs in Colorado, US. Sadly James closed his business but his legacy of educating people in the field of electronics lives on. You can see an archive of James’s original site using the wayback machine. http://tinyurl.com/qfts2k2. See the microcontrollers beginner kit and the tutorials. Note: if you click a link and the page isn’t displayed, try a different ‘site capture’ time, e.g. http://web.archive.org/web/20050818081048/http://www.iguanalabs.com/ You can select these by clicking on what looks like a city-scape view at the top of the page. Try a few dates. Usually it works pretty soon.
I have assembled a library of electronic components and parts to allow us climb the great foothold that IguanaLabs will give us and then to go beyond that. Hopefully to helicopters that can relate TV pictures back to a laptop.