So the objective of week eight is to learn how to program our previously produced Hello Board in the Fab Lab, using as many different programming languages and programming environments as possible. So mainly there are many different ways that can be followed to program an AVR Microcontroller, having many variables such as the Coding Language, the IDE used, the used programmer, and the Operating System on the computer. However, some of those ways are easier than others and more user-friendly. Thus we will be discovering some of the methods we can follow in this assignment.
The group assginment was to compare the performance and development workflows for other architectures.
Embedded programming is a specific type of programming that supports the creation of consumer facing or business facing devices that don't operate on traditional operating systems the way that full-scale laptop computers and mobile devices do.
Typically an MCU uses on-chip embedded Flash memory in which to store and execute its program. Storing the program this way means the MCU having a shorter start-up period and executing code quickly. The only practical limitation to using embedded memory is that the total available memory space is finite. Most Flash MCU devices available on the market have a maximum of 2 Mbytes of Program memory. This may prove to be a limiting factor, depending on the application. MPUs do not have memory constraints in the same way. They use external memory to provide program and data storage. The program is typically stored in non-volatile memory, such as NAND or serial Flash. At start-up, this is loaded into an external DRAM and execution commences. This means the MPU will not be up and running as quickly as an MCU but the amount of DRAM and NVM you can connect to the processor is in the range of hundreds of Mbytes and even Gbytes for NAND. Another difference is power. By embedding its own power supply, an MCU needs just one single voltage power rail. By comparison, an MPU requires several difference voltage rails for core, DDR etc. The developer needs to cater for this with additional power ICs / converters on- board. Explained below is table for the difference between microprocessor and microcontroller.
ARM, previously Advanced RISC Machine, originally Acorn RISC Machine, is a family of reduced instruction set computing (RISC) architectures for computer processors, configured for various environments.
ARM cores are used in a number of products, particularly PDAs and smartphones. Some computing examples are Microsoft's first generation Surface and Surface 2, Apple's iPads and Asus's Eee Pad Transformer tablet computers, and several Chromebook laptops.
Others include Apple's iPhone smartphone and iPod portable media player, Canon PowerShot digital cameras, Nintendo Switch hybrid and 3DS handheld game consoles, and TomTom turn-by-turn navigation systems.
ARM chips are also used in Raspberry Pi, BeagleBoard, BeagleBone, PandaBoard and other single-board computers, because they are very small, inexpensive and consume very little power.(-Source WIKIPEDIA-)
The Raspberry Pi is a low cost, credit-card sized computer that plugs into a computer monitor or TV, and uses a standard keyboard and mouse. It is a capable little device that enables people of all ages to explore computing, and to learn how to program in languages like Scratch and Python. It’s capable of doing everything you’d expect a desktop computer to do, from browsing the internet and playing high-definition video, to making spreadsheets, word-processing, and playing games.
The Arduino is programmed using either Arduino code or C/C++. The Arduino code is the easyiest way to program because it can be uploaded using Arduino Ide and the pins are defined by simple numbers and it has a library with a lot of examples as for the C-code it is more complicated it should be uploaded using a terminal and each pin is defined by using hex and binary numbers depending on the Port location.The advantage of the c-code is that it takes less memory on the microcontroller.
The Raspberry Pi is a general-purpose computer, usually with a Linux operating system, and the ability to run multiple programs. It is more complicated to use than an Arduino. It can be programmed using a variety of languages and Python is one of the primary programming languages hosted on the Raspberry.
The advantages of Python is that you can run the code directly through the Raspberry and see the results. Some of it's features are : It is excellent for beginners and superb for expert , suitable for large projects and as well as small ones , embeddable , simple , stable and it has a powerful standard library(pre-built code, sub-routines ...)