Si aún no eres usuario, puedes crear una cuenta o entrar
Hola Mundo! Arduino vs MBed

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);
   }
 }
}

Comparte esto con tus amigos!

Si te ha gustado, quizás también te interese...
Robot balanceado con mbed
Publicado el 09/03/2012

Comentarios:


Samuel Martínez
Enviado el 15/12/2009 (21:28)
Buenas, llevo un par de semanas viendo videos y leyendo posts sobre esta pequeña maravilla de mbed, la verdad es que estoy muy interesado en estos aparatillos, ya que tengo un proyecto pendiente con un robotillo de oruga y brazo.

He estado mirando, pero no he encontrado nada sobre la paralelización de las rutinas. Para no liarlo os explico mi preocupación.

El robotillo en cuestión tiene 2 motores continuos para las orugas, y quiero ponerle 3 o 4 servos para el brazo y demás movimientos. El problema lo veo al gestionar mas de un servo, si se esperan los 15 ms para cada uno, la tasa de refresco es insuficiente para que no pierdan fuerza los servos. por ello me gustaría saber si se puede hacer que la señal de actualización del servo corra en paralelo al programa, para que el hilo principal se pueda ocupar de seguir con el programa.

No se si es el sitio más adecuado para preguntarlo. Espero que me podáis ayudar a decidir cual podría comprarme.

Muchas gracias y enhorabuena por los artículos, que cada vez son de más calidad y utilidad. Seguid así.

Un saludo.

Pablo Toimil Pablo Toimil es un colaborador!
Enviado el 15/12/2009 (21:41)
Hola Samuel,
No te preocupes por eso, tanto en Arduino como en mbed podrás manejar varios servos simultáneamente, esto era sólo un simple ejemplo para ver las diferencias a grandes rasgos.
Para lo que quieres necesitarás un driver de servos, echale un ojo al modelo de controlador que tenemos en la tienda en el apartado de servomotores.
Espero haberte ayudado.

Un saludo y gracias.

Oscar Gonzalez Oscar Gonzalez es un colaborador!
Enviado el 15/12/2009 (21:54)
Como bien indica Pablo, hay controladores disponibles en la tienda y asi no tendrás que preocuparte de la gestión de los servos. El Micro-Serial de Pololu va como un tiro, es super pequeño y maneja hasta 8 servos simultáneamente.
Muy pondremos otro controlador más, ésta vez con opción USB :)


Enviar comentario

Debes disponer de una cuenta de usuario para publicar un comentario.

Si aún no dispones de una cuenta, únete a la comunidad de BricoGeek.com y registrate ahora, te llevará tan solo un minuto y es gratis. También puedes identificate si ya dispones de una cuenta de usuario.
rss

Conecta con BricoGeek.com

Canales sociales

Nos gusta mucho estar en contacto con nuestros lectores y saber más acerca de sus proyecto e inventos.


También puedes sugerir una noticia en el blog
Tienda de Electrónica DIY y Arduino

Lo que se cuece...

Comentarios recientes Más comentado Top noticias
Feed de novedades

Tienda BricoGeek.com

Electrónica para tus proyectos!

Estás preparando un proyecto o quieres iniciarte en la electrónica? Encuentra todo lo que necesitas en la tienda.

Visita la tienda BricoGeek!

La familia de BricoGeek.com

Conoce toda la gente que hace que BricoGeek.com sea posible cada día:

Alejandro Mallo
Colaborador
Manuel Jiménez
Colaborador
Pablo Toimil
Colaborador
Puedes hacer click sobre un autor para ver todas sus noticias


Etiquetas más populares:

Descubre todo el contenido de bricogeek.com con las etiquetas más populares:

Páginas amigas:

Aqui tienes una selección de las páginas que más nos gusta visitar


© BricoGeek.com 2005-2012

Demuestra lo que sabes hacer!