Microprocessors have been around since the 1980's when the Z80 and the 6502 first made their appearance. They had different internal processor architectures leading to advantages/disadvantages in code execution speed and ease of programming. These first generation processors needed several external logic chips; RAM, ROM, Address decoder logic and I/O port devices making up what we called the 'Mother Board'.
A category of modern processors are referred to as 'Micro Controllers' mainly because they are designed to be used in Modern Instrumentation and Control Applications like robotics. These processors are effectively single chip computers equivalent to the earlier mentioned Mother board built into the chip. The Micro Controller requires just a few external components for it to perform its tasks. The older microprocessors were often programmed in 'Machine Code (Hex)' or 'Assembly Language' making for lengthy development and debugging times. Modern high level programming languages have cut down the software development time by a considerable margin.
After investigating several development platforms the Arduino based on the ATmega 328 processor chip was chosen as the best option for the learning process. The Arduino environment introduces some unique development techniques which separate itself from the large array of development and application platforms that are already in existence. The choice of the Arduino Platform means that there is an abundance of cheap, pre-built peripheral boards which continuing to evolve. This means no time has to be spent designing electronic circuits and etching circuit boards also there is a plentiful supply of software resource modules taking the hard graft out of the coding, thereby reducing project development time significantly. Debugging of the micro controller code is very easy with direct serial communication to a host PC or laptop allowing almost 'real time' displays of internal processor tasks reducing the need for simulators. The microcontroller has no operating system and uses flash memory to store the program making it immune to corruption during a power outage.
Other development platforms considered were;
- The PIC and ARM microcontroller development platform
- Programmable Logic Controllers (PLC)
- The Raspberry Pi system