Mucho se está hablando últimamente sobre MBed, y en concreto sobre si será capaz de desbancar o no a la todopoderosa plataforma Arduino en un futuro.
Por ello, y debido a que creo que va a ser el juguete de estas navidades de todo geek que se precie, vamos a ver las principales diferencias que nos encontraríamos si hoy mismo dejáramos en un cajón a nuestro Arduino y enchufáramos el MBed. Vamos a dejar de un lado por una vez las características hardware de los cacharros y vamos a centrarnos en el software y nada mejor para este caso que comparar los "Hola Mundo!" de uno y del otro. También compararemos el clásico control de un servomotor, que quizás nos dé una idea más clara de los cambios. Por supuesto podéis comentarnos todo lo que se os ocurra respecto al tema.
Todo ello lo tenéis a continuación...
Hola Mundo con Arduino y mBed
Arduino:
int ledPin = 13; // Al pin 13 porque internamente ya cuenta con un LED conectado a una resistencia de 1kΩ void setup() { pinMode(ledPin, OUTPUT); // asigna el pin digital pin como output (salida) } void loop() { digitalWrite(ledPin, HIGH); // enciende el LED (on) delay(1000); // espera por un segundo digitalWrite(ledPin, LOW); // apaga el LED (off) delay(1000); // espera por un segundo }
mBed
#include "mbed.h" DigitalOut myled(LED1); //Asignación del Pin como salida. LED1 es el equivalente al famoso pin 13 de Arduino en MBed int main(){ while(1) { myled = 1; //Pone la patilla a nivel alto, recordad aquí son 3.3V! wait(1); // Espera durante 1 segundo myled = 0; wait(1); } }
Controlando Servos:
Arduino
#include <Servo.h> Servo miservo; int posicion = 0; // variable que almacena la posición del servo void setup() { miservo.attach(9); // asigna el objeto servo al pin 9 } void loop() { for(pos = 0; pos < 180; pos += 1) // El sero camina desde la posción de 0º hasta 180º en pasos de unidad { miservo.write(pos); delay(15); // espera 15ms para que el servo alcanze esa posición } for(pos = 180; pos>1; pos-=1) // Ahora desde 180º a 0º { miservo.write(pos); delay(15); } }
mBed
#include "mbed.h" #include "servo.h" Servo myservo (p21); int main() { int i; while(1) { for(i=0 ; i<180 ; i++) { myservo = i; wait(0.15); } for(i=180 ; i > 0; i--) { myservo = i; wait(0.15); } } }