I have only a passing familiarity with Ardunio so apologies for any errors below, I'm sure others will correct any significant mistakes.
1) Ardunio is a standard software wrapper and environment for a number of ARM, AVR and a couple of other types of microcontroller. It uses it's own c-like programming language to abstract the hardware and make it more beginner friendly.
Mbed is ARM only and uses standard c++ although user programs can effectively be plain c. There is a standard library which abstracts the hardware to give a common interface across a number of different ARM CPUs.
While there is some overlap in CPU performance the parts supported by mbed are generally faster and with larger memory.
In many ways they are very similar, they both offer a simple way to avoid all of the low level board specific CPU and hardware initialization that has always been the really steep part of the learning curve in embedded software.
All serious real world embedded software is written in c/c++ and that alone seems like a good reason why a computer science student should use it over ardunio.
2) To be honest there is nothing ARM specific in mbed. All of the ARM specific stuff is handled either by the mbed library or the compiler. It's basically just c programming. If you want to you can pick up the CPU user manual and start playing with the underlying CPU registers but the whole point of mbed is that unless you need every ounce of performance or hit a weird problem you don't need to worry about that sort of thing. Nothing puts off a learner more than a 300 page document full of acronyms.
That said embedded programming is very different to desktop applications, you have to be a lot more performance and memory aware and a basic understanding of what the underlying hardware is doing is a big plus.
3) It depends. If you want to learn something that you could use in a job in the computer industry use mbed. If you want to learn something used in hobbyist projects use Arduino.
4) Yes. There is a larger Arduino community. That is mainly because it has been around longer and is far more widely used for home projects. However there is a reasonable lever of support for most things for mbed too.
The cure functionality is there for both, depending on your project you shouldn't need much more. It's not much of a project if all you do is bolt together a load of libraries that other people have written.
Hello guys and gals,
First of all, it is important I mention that I am currently studying Computer Systems Eng Tech. Hopefully, I will be graduating on Fall 2017. I was told I should start to talk to my adviser or tutor about my Senior Project which will be presenting by Fall 2017 or Spring 2018. For my senior project I was thinking to use an ARM system. However, one of the classes I am taking this semester requires me to make a project based on any ARM. My experience with ARM is zero.
A lot of friends have used Arduino, and they recommend I use the same. However, the professor who assigned the project recommended I research more about mbed and read "Fast and Effective Embedded System Design: Applying the ARM Mbed." I am stressed because time is passing, and I am not being able to decide which ARM I should use.
P.S.: I have some experience using C/C++ languages. However, not a professional levels.
The questions I have are the following:
1. What is the difference between Arduino and mbed?
2. Is the book I was recommended to read useful for a beginner to the ARM world? If not, is there any other book you guys and gals recommend?
3. What would you recommend I choose, if I tell you I want to create something right now (the project is due December) that can be useful for my Senior Project?\
4. I have heard that the community of Arduino is bigger than mbed when it comes to find projects and libraries. Is it going to be hard to find libraries and templates with mbed? Is that rumor true?
I will really appreciate any kind of help you guys and gals can give me!! I am struggling a lot.
Thank you very much.