§ Introduction
§ World of microcontrollers
§ Example C/C++ Software
§ Upgraded Embedded
“Arduino”
§ Why Arduino preferable for
hardware?
INTRODUCTION
An embedded system is an electronic
system that contains at least one controlling device, i.e. “the brain”, but in
such a way that it is hidden from the end user. That is, the controller is
embedded so far in the system that usually users don’t realize its presence.
An
embedded system is
a computing device
that does a
specific job. Both the
hardware and software
in an embedded
system are optimized
for that specific
job. Appliances such as the air-conditioner, VCD player, DVD player,
printer, fax machine, mobile phone, etc. Each
of these appliances
will have a
processor and special
hardware to meet
the specific requirement
of the application
along with the
embedded software that
is executed by
the processor for
meeting that specific
requirement. An embedded software is also called ‘’firmware’’.
World of microcontrollers
The situation we find ourselves today in
the field of microcontrollers had its beginnings in the development of
technology of integrated circuits. This development has enabled us to store
hundreds of thousands of transistors into one chip. That was a precondition for
the manufacture of microprocessors. The first computers were made by adding
external peripherals such as memory, input/output lines, timers and others to
it. Further increasing of package density resulted in creating an integrated
circuit which contained both processor and peripherals. That is how the first
chip containing a microcomputer later known as a microcontroller has developed.
Example C/C++ Software
It
is well accepted in industry that creating high-quality software requires
source code to be consistent, modular and self-documenting. Software is unique
in that, often, large teams of engineers will work on the same project over a
long period of time. For example, my first engineering job was with Motorola in
which I joined a team of 30 software engineers that had been working on a
project for over five years. Imagine a fresh-out engineer coming onto a project
containing millions of lines of- code. If it were not for strict coding
guidelines, I would never have been able to overcome the learning curve in a
timely manner. Ever since, I have been an advocate of good software engineering
practice.
Motorola
recognized that the quality of software was directly related to the
maintainability of the source code. In fact, engineers working on my project
were not allowed to check in their work until it underwent a strict peer-review
process. One of the corner-stones of the review involved consistency checks
against a set of software coding rules for the group. One of the most important
aspects to developing high-quality software is consistency among source files
on a large project. Consistent source-code listings allow a higher degree of
maintainability, as engineers are able to analyze software as a whole without
the difficulty of switching from style to style. Unfortunately, the skill of
writing consistent software is grossly neglected within most academic
environments as many don’t recognize its importance.
Upgraded Embedded
“Arduino”
Since being introduced in 2005 as a student
project, the Arduino microcontroller has quickly become a favourite of both
hobbyists and professionals. It’s a popular platform for creating many different
types of automated systems—from monitoring water levels in house plants to
controlling high-level robotic systems. These days you can find an Arduino
behind lots of different electronic systems.
Arduino is
an open-source platform used for building electronics projects. Arduino
consists of both a physical programmable circuit board (often referred to as
a microcontroller) and a piece of software, or IDE (Integrated
Development Environment) that runs on your computer, used to write and upload
computer code to the physical board.
The Arduino platform has become quite
popular with people just starting out with electronics, and for good reason.
Unlike most previous programmable circuit boards, the Arduino does not need a
separate piece of hardware (called a programmer) in order to load new code onto
the board – you can simply use a USB cable. Additionally, the Arduino IDE uses
a simplified version of C++, making it easier to learn to program. Finally,
Arduino provides a standard form factor that breaks out the functions of the
micro-controller into a more accessible package.
Why Arduino preferable for hardware?
There are many other microcontrollers and
microcontroller platforms available for physical computing. Parallax Basic
Stamp, Net media’s BX-24, Phi gets, MIT's Handy board, and many others offer
similar functionality. All of these tools take the messy details of
microcontroller programming and wrap it up in an easy-to-use package. Arduino
also simplifies the process of working with microcontrollers, but it offers
some advantage for teachers, students, and interested amateurs over other
systems:
Inexpensive - Arduino boards are relatively
inexpensive compared to other microcontroller platforms. The least expensive
version of the Arduino module can be assembled by hand, and even the
pre-assembled Arduino modules cost less than $50
Cross-platform - The Arduino software runs
on Windows, Macintosh OSX, and Linux operating systems. Most microcontroller
systems are limited to Windows.
Simple, clear programming environment - The
Arduino programming environment is easy-to-use for beginners, yet flexible
enough for advanced users to take advantage of as well. For teachers, it's
conveniently based on the Processing programming environment, so students
learning to program in that environment will be familiar with the look and feel
of Arduino
Open source and extensible software- The
Arduino software is published as open source tools, available for extension by
experienced programmers. The language can be expanded through C++ libraries,
and people wanting to understand the technical details can make the leap from
Arduino to the AVR C programming language on which it's based. Similarly, you
can add AVR-C code directly into your Arduino programs if you want to.
Open source and extensible hardware - The
Arduino is based on
Atmel's ATMEGA8 and ATMEGA168 microcontrollers. The plans
for the modules are published under a Creative Commons license, so experienced
circuit designers can make their own version of the module, extending it and
improving it. Even relatively inexperienced users can build the breadboard
version of the module in order to understand how it works and save money.
Comments
Post a Comment