Hello guys,I want to know the difference between arduino and pi.Please dont start off by telling pi is a processor and uno is a microcontroller.I am a computer science student,and I have been studying about operating systems for a while now, and I came to know about few things like multitasking,multithreading(my fav by the way),scheduling algorithms for processes,System calls and pi needs an OS to function.So I made few assumptions based on what I studied in class about operating systems and I tried to understand the difference between these two.Pi treates every program as a process,and can execute multiple programs,by context switching,or by scheduling with priority.Where as arduino can execute a single program.
Pi has mutithreading,means if there is problem with one block of code,the next block is executed,if and only if both the blocks are independent of each other.In arduino there is no mulithreading,I guess?.Resources can be utilized in pi through system calls, and there are no system calls for arduino.All of the functionalities could be only achieved if we hava a good OS,and pi uses linux.
So if my assumptions are misconceptions,I want you to correct me please !.
Summary: OS (with safety nets) vs. bare metal (you're on your own, kid).
Or:
Speed vs. not so much speed.
If you want to make your way in academia, start formatting your text.
I can understand you asking questions in here about how an Arduino runs programs\ processes etc.
But to undestand the differences ask the questions on how the Pi operates in a Pi forum.
I am a computer science student
Just to accurate calculate the angle the reverence we should make before answering your brainy post: where are you doctoring?: MIT?, Cambridge perhaps?
Best regards
As this seems to be a loaded and open-ended question, please don't flame me if I haven't answered it to your liking.
Pi is:
a family of complete embedded systems, processor, audio, video, networking etc.
ARM CPU, (64-bit or 32-bit) quad core.
Targeted to applications and use as a finished product.
Arduino is:
a family of microcontrollers, AVR (8-bit) and SAM(32-bit ARM).
a microcontroller integrated developer's environment,.
Targeted to electronics product developers.
The only things I would develop on a Pi are software applications that run on an OS.
On an Arduino, I have developed many electronic products. Think of the controller inside your microwave, toaster oven, alarm clock, television, soldering iron, car stereo, car dash, car lights etc.
Lucifer032290:
and pi uses linux.
... though other OS are available.
The Pi can also be done as bare metal (someday I need to try it).
http://www.valvers.com/open-software/raspberry-pi/step01-bare-metal-programming-in-cpt1/
Interesting stuff, but also somewhat painful, perhaps someone could take those ideas and craft a bare metal Arduino core for the Pi hardware.
Another option that is gaining traction is MicroPython. It is sort of halfway between bare metal and an OS. I have been following a fork call CircuitPython. When you modify and compile MicroPython that is done at the bare metal level, but when it is running Python programs it is somewhat more like an OS, or perhaps it could be seen as a patchwork of bare metal functions that give the illusion of being an OS.
So if my assumptions are misconceptions,I want you to correct me please !.
Your assumptions are reasonably correct, but I'm not sure you understand some of the deeper implications.
The Pi not only run a Multi-Tasking Operating System, but what I'd call a "High Level" operation system (Linux!) It makes no pretenses about doing anything in "real time", and it's got LOTS of stuff that it's doing at the same time it is executing your program. The Arduino can pretty easily bit-bang a pin with a waveform accurate to sub-microsecond timing. A Pi ... not so much.
Of course, you CAN put a multi-tasking OS on an Arduino (especially the larger ARM-based boards), and you CAN program a Pi in bare-metal fashion (most of it, anyway. Some parts are not publicly documented.)
Another important difference is that Pi is all RAM-based; you load programs into RAM and then both the data and the code sit in RAM while it's running. An AVR Arduino has all the program code in Flash (and has very little RAM.)
you are a computer scientist and obviously you are viewing it from a software-focussed point-of-view.
i have no idea of most of what you mentioned about the architecture, etc.
what i can tell you, as a "common-sense n00b" - is that the Pi uses 'brains', while the Uno uses 'brawn'.
the Pi has processing power and can perform intense calculations say for video graphics but run any currents beyond (5-10 mA ?? -cmiiw-) and it'll get fried.
the Uno has "electrical control" and can switch circuits on and off - even mains electricity via relays or transistors, but it certainly can't do much image processing, beyond some lesser resolution images, say 320p ?
Your question is;
I want to know the difference between arduino and pi.
and then say;
Please dont start off by telling pi is a processor and uno is a microcontroller
and yet - that is infact THE DIFFERENCE !
you should specify what exactly your parameters of comparisons are if you want a response beyond the obvious.
what i can tell you, as a "common-sense n00b" - is that the Pi uses 'brains', while the Uno uses 'brawn'.
Quite the opposite, in fact.
To get the best out of a slow, memory-limited microcontroller, you have to use your brain, but with a much faster microprocessor with RAM beyond the dreams of Bill Gates, you can get away with being much lazier.
TolpuddleSartre:
Quite the opposite, in fact.
To get the best out of a slow, memory-limited microcontroller, you have to use your brain, but with a much faster microprocessor with RAM beyond the dreams of Bill Gates, you can get away with being much lazier.
ah yes, i get your point - i meant more like, with it's inherent capabilities.
i agree, given the "limited brain" - it (the UNO) has to be (handled) more effiicient in it's processing, rather than lazily letting the brute (calculating) force handle things. (bloatware anyone ?)
Sorry for the late reply,wow,that was something,now I know where to start.So "development board",is an appropriate term for arduino,why cant I use the same term for pi?.And can we really run an os on arduino?,how is that possible?.Are there any particular functionalities,where pi beats arduino?.Too many questions :-\
Lucifer032290:
Are there any particular functionalities,where pi beats arduino?.
you're not reading my post are you ?
Pi beats Arduino in computational power.
it can do video graphics, the Arduino can NOT.