What is an Arduino?
For any novice readers into Electronics, let us first quickly understand what is a Microcontroller and why do you use a Microcontroller based kit?
A microcontroller is basically like a small computer on a single semiconductor chip commonly referred as Integrated Circuit (IC). It can contain a CPU (may be more CPUS also) along with Random Access Memory (RAM), a Read-Only Memory (ROM) and a few input/output device controllers. These type of chips are good for embedded applications like a mobile, a games controller, a remote control or even a machine controller. Some projects which are already made using this board include robots, thermostats, and motion detectors. You can find freelancers working in Electronics and have combined projects in this space.
Hardware, Company and Project:
The Arduino is a common name used for the Computer Hardware, the Company, and this Project. They design and manufacture the microcontroller based kits which can have numerous applications from education institutes to commercial and research establishments. The products are distributed as open source hardware, so you can play with it the way you want and can create multiple innovative projects on your own.
The commonly referred product Arduino has a simple microcontroller board and a development environment so that you can explore your skills in Electronics, Automation, and Software using this kit. There are some popular platforms for Electronics DIY projects, and this is one of them. You can also check for another platform known as Raspberry Pi, which also produces single board computers for experiments by the UK-based Raspberry Pi Foundation. There are hundreds of such products available in the market, but very few have converted into large community-based projects.
Arduino product uses various microprocessors and controllers on their boards. You get analog and digital input/output ports on the boards to connect different devices. You can also connect the main board to other expansion boards (shields) when your project starts growing. Have you heard of serial and parallel interfaces? You get both on these boards including standard USB ports. You can write programs on your desktop/laptop and can feed them to the board through the USB port.
Software for Arduino and the C or C++ Debate:
The most important point related to our discussion here is that you can use both C and C++ to program the microcontrollers. The Arduino project also provides an Integrated Development Environment (IDE) based on the Processing language project. In fact, you can code an Arduino program in any language for a compiler that produces binary machine code for the target processor. When this compatibility is there, there should not be any issues.
The Arduino IDE is a cross-platform program written in Java. It originated from the IDE for the languages Processing and Wiring. It includes a code editor and provides simple one-click mechanisms to compile and upload programs to an Arduino board. It also contains a message area, a text console and a toolbar with buttons.
The program developed using this IDE are known as a sketch. Sketches are saved on the development computer as text files with the file extension ‘in.’ The C and C++ language support are using specific rules of code structuring. Good for freelance web developers to experiment with this with known skills!
You have access to a code library from the Wiring project, which provides many common input and output procedures. Your code requires only two main functions for starting the sketch and the main program. It is then compiled and linked with a program stub into an executable program. Along with that, the IDE also provides a program known as ‘air dude,’ which converts the executable code to a simple text file in hexadecimal encoding.
As the CPU understands only this binary language, you can load this code to the board’s firmware from where the board will get the instructions. Very different than regular programming, right? But that’s the way it is with all such electronics processor based kits. If you can write directly in the Assembly language, it’s great, but everything at the end needs to be converted to machine code for uploading to the experiment board.
The ever-growing Arduino community has everyone from hobbyists and students to designers and engineers across the world. The original Arduino uses its IDE which supports a basic C version with additional support for C++. Arduino applications differ from regular C because of the two methods setup and loop. If you use C, you just have only a main method.
The Wiring and Arduino both use C/C++ as programming languages and Arduino uses a simplified version. Processing used Java as a programming language but served as the basis for Wiring, which was the basis for Arduino. As you can see the community working on these projects will have engineers and developers from C, C++, Java, Assemble and various other programming skills.
More about this Project:
The Arduino project started originally for students at the Interaction Design Institute Ivrea in Ivrea, Italy. It was started in 2005 with the intention of providing a low-cost and easy way for novices and professionals to create interactive devices. The name Arduino comes from a bar in Ivrea, Italy, where some of the founders of the project used to meet.
Open Source Hardware:
You must have heard about many open source software projects. Similarly, Arduino is an open-source hardware project. The hardware designs are distributed and shared under a free license and are available on the Arduino website. The source code for the IDE development is also available.
With the start of these kits in Italy, the original Arduino hardware was from an Italian company Smart Projects. You can use both C and C++ for developing software for these boards. Some boards were there from the American companies SparkFun Electronics and Adafruit Industries. As of last year, 17 versions of the Arduino hardware were available. Look for freelance tips on this kind of projects to develop niche skills. This project is a great advantage and base for all innovative hardware and software professions.