Arduino vs Raspberry Pi-- Electronics Engineering FINAL YEAR PROJECT

in #technology7 years ago

WHAT SHOULD I START WITH?

When the Raspberry was announced some were quick to excitedly herald it an Arduino killer, and simple comparisons are frequently made which fail to take into account the broader benefits of each platform. More often than not these are based on headline specifications such as processor clock speed and RAM alone, and so a good place to start is with a hardware comparison.

Arduino vs Raspberry Pi

Microcontroller vs. Microprocessor

The Arduino employs an 8-bit ATmega series microcontroller whereas the Raspberry Pi is based around a 32-bit ARM processor, and the Arduino is typically clocked at between 8-16MHz and with 2-8kB of RAM available, and in contrast the Raspberry Pi can be clocked at up to 1GHz and may have up to 512MB of RAM. On top of which the Pi has a GPU and video outputs, Ethernet as standard and USB host ports. So the Raspberry Pi wins? Well, it depends upon the application.

Raspberry Pi
Raspberry Pi ports (Source: http://elinux.org, CC BY-SA 3.0)

  • The Pi has a clear advantage for complex networked and high performance embedded applications, and those which involve driving a video display or USB peripherals. But when power consumption is of paramount importance the Arduino has the edge, as it will only consume microwatts when in sleep mode compared to the watts drawn by an idle Raspberry Pi running Linux. Due to the much simpler nature of a microcontroller-based approach the Arduino may also have an advantage over the Pi in applications which demand a very high degree of reliability.

Raspberry Pi
An battery powered Arduino-based wireless sensor node

Developing Software

-The Arduino comes supplied with an IDE and libraries which have been designed for ease of use and to support non-programmers, and within minutes of installing these you can be blinking LEDs and reading temperature sensors. The Raspberry Pi doesn't come with an official IDE but the “educational language of choice” is Python and libraries exist to enable much of what is possible from within the Arduino IDE. Alternatively C/C++ or just about any other language could be used and there are even libraries which attempt to recreate the Arduino system.

Arduino IDE

The Arduino IDE

Arduino software is written in a language similar to C++, this is compiled on a PC running the IDE and then downloaded over USB, with debugging made possible via print statements that direct their output to the IDE. Whereas the Raspberry Pi runs Linux and can host its own compilers etc. and development can be carried out using a directly attached monitor, keyboard and mouse, or via a remote SSH or VNC session. In addition to which more advanced debugging tools are available and with interpreted languages such as Python commands can be entered interactively.

Thanks to Linux the Raspberry Pi benefits from a far more flexible and powerful development environment. However, the Linux kernel alone comprises millions of lines of code and for applications where simplicity is key the operating system-less Arduino holds certain appeal.

Ecosystems

To say that the Linux ecosystem is extensive would be a serious understatement and thanks to the Debian project and via it Raspbian, those developing for Raspberry Pi can install thousands of libraries, tools and applications with just a single command. The Arduino software ecosystem is much younger and more modest, and also reflects the fact that the Arduino is based around a micro-controller and designed for smaller and what could be described as classic embedded applications.

An Arduino prototyping shield
An Arduino prototyping shield (Source:, Public Domain)

When it comes to hardware ecosystems the Arduino wins as there are a great many derivatives and hundreds of shields exist. However, the Raspberry Pi is doing a great job at catching up.

Prototyping and learning

Arduino is a prototyping platform, hardware designs are open source, and the ATmega micro-controllers used can be secured in low volumes and are available in packages that are easy to work with. In contrast the Raspberry Pi is, at the time of writing, not an open source hardware design, its system-on-chip is only available in high volumes and it employs package-on-package technology which requires specialist tooling.

The Raspberry Pi was designed from the outset as an aid to teaching computer science and this is where it really shines, and it can be used with a great many languages and frameworks and to learn everything from simple scripting up to network and graphics programming. The Arduino is just as approachable a platform and while much more constrained in terms of supported languages and applications, it provides a gentle introduction to embedded systems and “bare metal” development.

My Conclusion

As is so frequently the case it's a question of the right tool for the job and, all other things being equal, each will appeal to different sensibilities. It's wise to avoid making a hasty judgement and worthwhile taking the time to better ascertain which may be better suited to a particular application, and it's probably safe to say that there is space for both in most workshops!

I hope you learn something from this article, never forget to choose your comfort zone when making project and don't be hesitant in chasing your goals!

HAPPY STEEMING! :)

--ApexZachMarie

Sort:  

Awesome, great article, I'll follow you.

I am very glad you appreciate my article ^_^
Stay tune! and HAPPY STEEMING!

--ApexZachMarie

Informative.

Thanks @garlic114 I appreciate that.
HAPPY STEEMING

Congratulations @dwaeji-aizelle! You have completed some achievement on Steemit and have been rewarded with new badge(s) :

Award for the number of comments
Award for the number of comments received

Click on any badge to view your own Board of Honnor on SteemitBoard.
For more information about SteemitBoard, click here

If you no longer want to receive notifications, reply to this comment with the word STOP

By upvoting this notification, you can help all Steemit users. Learn how here!

Coin Marketplace

STEEM 0.17
TRX 0.15
JST 0.028
BTC 62264.03
ETH 2431.11
USDT 1.00
SBD 2.50