leccion-2
OJO

Atención: Este curso pertenece a la primera versión de bitbloq que actualmente ha terminado su desarrollo. Te recomendamos el uso de bitbloq 2 para aprender a programar ya que ofrece muchas más ventajas que su anterior versión. Puedes encontrar el nuevo curso aquí. Si aún así prefieres aprender a programar en bitbloq 1 en este curso encontrarás todos los pasos necesarios aprender a programar tus proyectos y robots. ¡Empezamos!

En este curso aprenderás los fundamentos de la programación usando bitbloq 1 y el kit de electrónica de bq. En cualquier caso, bitbloq 1 es compatible con cualquier placa de la familia Arduino, por lo que, si ya tienes una placa controladora ¡ponte a programar!

Para las ilustraciones de este curso hemos utilizado los bloques ZUM, pero no te preocupes que son totalmente compatibles con los bloques Octopus, pues sólo cambia la forma de los periféricos. Sí tienes “Mi Primer kit de Robótica” debes elegir los bloques Octopus. Sin embargo, si tienes el “ZUM Kit” deberás elegir los ZUM bloqs, por lo demás todo es equivalente y esta introducción vale tanto para un producto como para el otro.

sensor_IR

ir_cursobitbloq

76 comentarios

  1. Hola!!! os voy a dar, si me lo permitís, una sugerencia : deberíais crear un Kit Educativo (con descuento directo para escuelas jejeje) con el que se pudiera seguir este curso al completo y al terminar poder realizar los printbots (con sus piezas especificas incluidas en el kit, menos las que se puedan realizar por impresion 3D). Asi se podría reunir en un mismo Kit, Electrónica – Robótica – Impresión 3D.

    Un saludo.

  2. Espero que este producto siga creciendo porque es realmente atractivo, echo de menos un control para programar una entrada como contador externo y que incluyáis los periféricos que faltan en la tienda.

    Mis felicitaciones y agradecimiento

    Mariano

  3. Seria interesante que se pudiera ver el valor que toman en cada momento los puertos analógicos y digitales (como lo hace S4A) para poder así facilitar la programación. Saludos

    1. Gracias por tus comentarios. Actualmente estamos definiendo cómo será la versión 2 en la que empezaremos a trabajar en breve. Cualquier sugerencia que tengas es bienvenida, puedes escribirlas a diy@bq.com

  4. Hola,

    esta semana hemos adquirido para el Centro uno de vuestros Kits de robótica, con la intención de probarlo y, si la cosa tiene tirada, adquirir más para que puedan usarlos nuestros alumnos.
    A través de un conocido hemos podido construir el printbot renacuajo con un modelo de vuestras impresoras 3D. Cuando hemos montado el renacuajo, dentro de la caja de uno de los servos de rotación continua hemos visto que no estaba la pieza correspondiente al “disco” de la rueda (la parte de plástico negro que permite atornillar la rueda al servo). ¿Como podemos hacernos con una?.
    Por otra parte, al construir nosotros el printbot, no nos ha sido posible encontrar las juntas tóricas de 3mm * 50mm para las ruedas en ninguna tienda ni almacén de Valladolid. ¿Donde podemos adquirirlas?¿Tenéis repuestos de componentes a la venta?

    Muchas gracias por vuestra atención.

    Jordi.

    1. Alberto

      Hola,

      El disco negro debería estar dentro de la caja de los servos. Si no está por favor ponte en contacto para soporte3d@bq.com para que te lo manden, ya que es parte del kit,

      Respecto a las juntas tóricas se venden en tiendas de fontanería, son las mismas juntas que se usan en las tuberías. Nosotros las compramos en Mainate, pero es solo para distribuidores. Podrías preguntarle a ellos si tienen tiendas en tu zona.

      Un saludo

  5. ¿Es posible comprar solo el modelo PrinBot Beetle sin necesidad de comprar la electrónica? Tampoco he encontrado los planos del Beetle para poder imprimirlos. Saludos y buen trabajo!!

  6. Hola, tengo 10 años y me regalaron “Mi primer kit de robotica” y no me funciona bien, a veces si, a veces no.
    Hemos instalado los drivers como decis en las instrucciones, he seguido los tutoriales y algunos me funcionan y otros no… No se por que.
    ¿Que puedo hacer?
    Gracias.

    1. Alberto Valero

      Hola Marcos,

      Bienvenido a la robótica. ¿Nos puedes decir qué ejemplo no te funciona? a ver si podemos ayudarte, seguro que sí… paciencia, el mundo de los robots requiere mucha dedicación… a fin de cuentas, ser científico, robotólo e ingeniero es una pasada y requiere su tiempo.

  7. Hola soy Marcos.
    Los programas que no me funcionan son el de los servos y los miniservos.
    Los montamos bien , porque los monto con mi padre.
    Ademas, la placa controladora en otros programas, aveces admite las instrucciones y otras veces no.
    Gracias.

    1. Alberto Valero

      Hola Marcos,

      prueba a cargar los programas con los servos desenchufados. Después de cargar el programa los enchufas. A veces el ordenador no tiene suficiente potencia cuando los servos están enchufados, y por eso puede estar sucediéndote.

      Prueba a ver y nos dices qué tal.

    1. Alberto Valero

      Hola Alfonso,

      Si el relé se activa/desactiva a 5V puedes usar el bloque digitalWrite() que encuentras en el grupo “funciones de pin”. Habitualmente cuando escribres ALTO el relé se activa y cuando escribes BAJO se desactiva

      Cuéntanos si te funciona

  8. Hola,
    También soy profe y he comprado un kit de robótica para probarlo. Si todo va bien compraré más para usarlos con mis alumnos.
    Tengo el mismo problema que Marcos: cuando se está ejecutando un programa con servos no puedo cargar un nuevo programa, a no ser que desconecte primero los servos. No sé si en bitbloq hay alguna opción para parar las señales sevo (el detach de Arduino), supongo que este es el problema.

    1. Alberto Valero

      Hola Carolina,

      Efectivamente, cuando las baterías están algo gastadas o si solo estás conectada por USB suele ser necesario desconectar los servos. Con la ZUM BT 328 este problema ya está resuelto. Bitbloq no soporta la función detach, es así por simplificar su uso (de igual modo que no hay función attach())

      Alberto.

  9. Hola. Estoy intentando subir a la controladora (Freaduino UNO) un programa y aunque Bitbloq me dice que la ha cargado correctamente no es así (no se encuienden las luces azules de datos) El chrome es la versión 42.0.2311.135 m y trabajo en Windows 7 x86. Ayer conseguí subir un programa y despues de variar alguna cosa ya no me dejó más. He actualizado el IDE Arduino a la versión 1.6.3 y tampoco responde.
    La verdad es que me funcionaba la versión anterior. ¿No os habeis planteado en crear una aplicación independiente (no on-line)? Creo que se solventarían estas frustaciones, pues cada vez que me pongo con mi hijo a hacer algo… hay algo que no funciona. Me estoy planteando instalar otra interface grafica que esea instalable, pero la verdad que la vuestra es la que más me convence… pero, claro, si no funciona…
    Muchas gracias.

  10. Alberto Valero

    Hola Javier,

    siento que no te funcione, por lo que dices (no te funciona ni con bitbloq ni con el IDE de Arduino) podría ser un problema de la placa, y no de bitbloq.

    Puedes escribir a soporte3d@bq.com para explicarles tus problemas con la placa, si es defectuosa te enviarán una nueva. Para el problema de bitbloq (te dice que ha subido correctamente y según nos cuentas no es así) informaré personalmente al equipo de desarrollo de bitbloq.

    Un saludo,

    Alberto.

  11. Me parece super interesante este proyecto, estoy mirándolo con detalle para disfrutar y aprender con mi hijo, creo que nos divertiremos mucho los dos juntos, el video curos es fantástico, no obstante tengo una duda, ¿la programación es propietaria o sirve para otros dispositivos?

    Un saludo

    1. Alberto Valero

      Hola,

      Gracias por tus ánimos. Esparamos que lo disfrutes con tu hijo. bitbloq sirve para cualquier placa de la familia Arduino UNO y Arduino BT 328, independientemente del fabricamte.

      Un saludo

  12. Hola

    Me gustaría usar una tarjeta MD25 o MD21 bajo I2C, sé que programarla en código se puede pero, ¿hay alguna forma de usar los bloques existentes o importar/editar bloques para poder manejarlos como cualquier otro elemento?
    Gracias

    1. Alberto

      Hola Luis,

      Actualmente puedes usar los bloques avanzados que corresponden a digitalWirte, digitalRead y analogRead. Sin embargo no hay bloques en esta versión que permitan trabajar con I2C.

      En la próxima versión de bitbloq será posible crear bloques propios con código propio.

  13. Buenas tardes, estoy intentando instalar la placa base con bitbloq de Mi primer Kit de Robótica y nos da el error siguiente: “No es posible añadir aplicaciones, extensiones ni secuencias de comandos de usuario desde este sitio web”. ¿Sabéis a qué se debe?. Gracias y un saludo

  14. Alberto Valero

    Hola Carmina,

    ¿Qué sistema operativo y navegador usas? ¿puedes indicarnos qué botón estás pulsando cuándo te sale el mensaje? ¿puedes adjuntar una captura de pantalla con el error?

    Muchas gracias

  15. Como ya comenté anteriormente hay veces que no me carga los programas en la placa Freaduino, sin embargo Bitbloq me dice que lo ha subido correctamaente. Es más aunque no tenga conectada la placa me la reconoce en el Com3 y placa UNO y me vuelve a decir que lo ha subido correctamente. ¿A qué puede ser debido ésto? He intentado desintalar, instalar, arduino abierto, cerrado, cargar el uploader desde bitbloq, etc. Alguna sugerencia más
    (Lo he preguntado en soporte3d@bitbloq.com pero no he obtenido respuesta)

    Muchas gracias.

    1. Alberto

      Hola Javier,

      En primer lugar, la dirección soporte3d@bitbloq.com no existe, por lo que es normal no tener respuesta, el soporte técnico de bitbloq es support-bitbloq@bq.com

      Por otro lado, la Freaduino efectivamente es modelo UNO, por lo que es correcto que elija ese modelo. Respecto al problema de que te dice que ha subido el programa y no es asi, ¿podrías decirme qué programa estás intentando cargar y qué sucede una vez que “supuestamente” lo ha subido? ¿Qué sistema operativo usas?

      1. Hola Alberto,

        El caso es que AUNQUE no tenga conectada la placa me sigue diciendo que mi placa es la UNO y que está en el COM3. Dá igual el programa que quiera subir (incluso uno en blanco) Utilizo Windows 7 Pro. Cuando conecto la placa vuelve a decirme que lo ha subido pero no recibe nada (no se encienden las lucecitas azules)
        Curiosamente si bajo windows cambio el puerto del COM a COM5 acepto y vuelvo a cambiarlo a COM3 entonces si que me sube el programa… hasta que apago y vuelvo a encender el ordenador que me vuelve a pasar otra vez lo mismo.
        Si dejo el puerto COM en COM5 (por ejemplo) me sigue reconociendo como COM3, pero no sube nada (aunque siga diciendo que lo ha subido) En fin todo muy extraño.

        1. Alberto Valero

          Qué cosa tan curiosa, es como si tu ordenador tuviera en el COM3 algo que bitbloq confunde con un Arduino. ¿Puedes escribir a soporte de bitbloq? Es un problema técnico que deben ayudarte a resolver ellos, dado que aquí sobre todo damos soporte a cómo programar usando bitbloq y no sabría cómo ayudarte.

  16. Buenas, he programado varias veces la placa zum bt.328 y las primeras veces genial. Desde hace un par de días, genero el programa, y le doy a cargar. En la pantalla de bitbloq aparece como programa cargado con éxito, pero en la placa, no hay ninguna variación. Es como si no cambiase el código de la placa. Por favor, ayúdenme.

    1. Alberto Valero

      Hola Jaime,

      Con la información que nos das es complicado detectar el problema. ¿Has probado a cargar algún programa con el IDE de Arduino? ¿Tienes la placa en on? (recuerda que debes poner el interruptor en la posición correcta, es un descuido habitual)

      1. Buenas, he probado a cargar también con el IDE de Arduino y me dice que hay un problema de comunicación. El problema es que creo que no puede comunicarse la placa con el IDE de arduino o con Bitbloq. Cargó el último código y ya… a partir de ahí, siempre que intentas cargar un nuevo código, en bitbloq aparece el mensaje de correcto, pero no hay cambio en el robot. El problema no es del equipo, he probado a cargar algún programilla con en un Arduino UNO, y lo carga correctamente. ¿Alguna solución?

        1. Alberto Valero

          En el IDE de Arduino debes elegir Atmel 328 con BlueTooth, en lugar de Arduino UNO. Prueba a ver. Lo que describes parece más un error de bitbloq.

          ¿Qué sistema operativo usas?

          1. Buenas de nuevo, ahora con IDE de arduino si pude comunicar la placa con Atmel 328 con BlueTooth, conseguí borrar el código del robot ¡¡por fin!! En cuando a bitbloq, sigue con el mismo problema que te comentaba antes, aparece el mensaje de correcto, pero no hay cambio en el robot. :( ¿Alguna recomendación? Por cierto, utilizo Windows 8 PRO x86

            Gracias.

  17. Hola.
    ¿ Es posible copiar bloques entre proyectos distintos usando bitloq?
    Es que cuando tienes un programa un poco grande y quieres probar las partes poco a poco se agradecería …

  18. Buenos días.

    Ayer montamos el printbot evolution y nos hemos dado cuenta que viene sin el modulo de bluetooth! Como puede ser eso? cuando compramos la placa zum bt-328 por separado venia ya integrado!

        1. Alberto

          Eso es que has tenido la suerte de ser uno de los primeros en recibir la nueva versión de la placa ZUM. El bluetooth está integrado directamente en la placa, por lo que no es necesario añadir la PCB verde (mucho más bonito así).

          Vamos, que tu placa SÍ tiene bluetooth.

  19. Por otro lado nos hemos dado cuenta tambien que el archivo de descarga de la programacion de esquiva obstaculos no cuadra con la guia que dais en el manual del evolution (el pin de un servo es diferente).

    1. Alberto

      Hola Juan, ¿a qué te refieres? Acabo de consultar la guía de montaje del PrintBot Evolution y los servos de rotación continua están en los pines 8 y 9, mientras que el mini-servo está en el pin 11. Tanto en la explicación del esquiva-obstáculos como en el programa de bitbloq están conectados en esos pines.

  20. Tambien no sabemos por que, cuando conectas el printbot y hace la primera barida de busqueda y no encuentra obstaculo, sigue recto, pero a partir de esto se queda constantemente girando hacia un lado, no tendria que seguir recto?

        1. Alberto

          Sí, puedes cambiarla modificando el tiempo de espera después de que mandas la orden de moverse a los servos. Si el tiempo es mayor avanzará más distancia.

          ¡Ánimo!

          1. Perfecto!! En septiembre estaremos ya robotizando a los niños en un nuevo proyecto 😉

            Ya que estoy, por que uno de los servos se mueve muy muy muy lentamente hacia un lado aunque no le mandes ordenenes?

  21. Recientemente he adquirido una placa ZUM la impresión es muy buena, aunque e detectado que los pines 12 y 13 tienen dificultad para controlar servos, sin embargo con programas de arduino funcionan bien, por tanto es probable que sea problema de mi sistema operativo “Windows 8.1 al trabajar con bitbloc.
    También he adquirido la pantalla lcd, he podido intercalarla en muchos programas y va de fabula, pero al ir también la he introducido en programas de arduino y da el siguiente error, la pantalla parece muy avanzada y quizás todavía no disponga de la librería adecuada, si así fuera agradecería si es posible que me indicaseis como conseguirla, para poder añadirla.
    Atentamente.
    Antoni.
    (Espero no haberme pasado con el texto.)
    Adjunto el mensaje de error al verificar este programa que con bitbloc funciona correctamente.
    #include
    #include
    /*** Global variables ***/
    int cuenta=0;
    LiquidCrystal lcd(0);
    /*** Function declaration ***/
    void setup()
    {
    lcd.begin(16, 2);
    lcd.clear();
    }
    void loop()
    {
    lcd.setCursor(0,0);
    lcd.print(“Contem fins a”);
    for (cuenta = 0; cuenta <= 1000; cuenta++) {
    lcd.setCursor(0,1);
    lcd.print(cuenta);
    delay(500);
    }
    delay(1000);
    }
    /*** Function definition ***/

    sketch_jun21a:6: error: no matching function for call to 'LiquidCrystal::LiquidCrystal(int)'
    sketch_jun21a.ino:6:20: note: candidates are:
    In file included from sketch_jun21a.ino:2:0:
    C:\Users\Antonio\Documents\Arduino\libraries\LiquidCrystal\src/LiquidCrystal.h:55:3: note: LiquidCrystal::LiquidCrystal(uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t)
    LiquidCrystal(uint8_t rs, uint8_t enable,
    ^
    C:\Users\Antonio\Documents\Arduino\libraries\LiquidCrystal\src/LiquidCrystal.h:55:3: note: candidate expects 6 arguments, 1 provided
    C:\Users\Antonio\Documents\Arduino\libraries\LiquidCrystal\src/LiquidCrystal.h:53:3: note: LiquidCrystal::LiquidCrystal(uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t)
    LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
    ^
    C:\Users\Antonio\Documents\Arduino\libraries\LiquidCrystal\src/LiquidCrystal.h:53:3: note: candidate expects 7 arguments, 1 provided
    C:\Users\Antonio\Documents\Arduino\libraries\LiquidCrystal\src/LiquidCrystal.h:50:3: note: LiquidCrystal::LiquidCrystal(uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t)
    LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
    ^
    C:\Users\Antonio\Documents\Arduino\libraries\LiquidCrystal\src/LiquidCrystal.h:50:3: note: candidate expects 11 arguments, 1 provided
    C:\Users\Antonio\Documents\Arduino\libraries\LiquidCrystal\src/LiquidCrystal.h:47:3: note: LiquidCrystal::LiquidCrystal(uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, uint8_t)
    LiquidCrystal(uint8_t rs, uint8_t enable,
    ^
    C:\Users\Antonio\Documents\Arduino\libraries\LiquidCrystal\src/LiquidCrystal.h:47:3: note: candidate expects 10 arguments, 1 provided
    C:\Users\Antonio\Documents\Arduino\libraries\LiquidCrystal\src/LiquidCrystal.h:45:7: note: LiquidCrystal::LiquidCrystal(const LiquidCrystal&)
    class LiquidCrystal : public Print {
    ^
    C:\Users\Antonio\Documents\Arduino\libraries\LiquidCrystal\src/LiquidCrystal.h:45:7: note: no known conversion for argument 1 from 'int' to 'const LiquidCrystal&'
    Multiple libraries were found for "LiquidCrystal.h"
    Used: C:\Users\Antonio\Documents\Arduino\libraries\LiquidCrystal
    Not used: C:\Users\Antonio\Documents\Arduino\libraries\LiquidCrystal_I2C
    no matching function for call to 'LiquidCrystal::LiquidCrystal(int)'

  22. Pingback: Introducción al lenguaje de programación Bitbloq | Eltein Lab

    1. He sustituido las librerías y el problema sigue igual bitbloc O.K. arduino, lo máximo que consigue es iluminar muy tenue la primera linea pero sin datos.
      Sigo probando.
      Antoni.

  23. hola,¿como puedo hacer que mi robot pare y siga en el semáforo?una pregunta más¿seria posible que cada vez que mi renacuajo vaya hacia atrás,sonara un sonido como el de un camión(con el zumbador)?

    1. Alberto

      Hola,

      Lo que planteas es una tarea de programación, depende de cómo sea tu sistema, cómo lo has programado, etc. para que se pueda hacer.

      Respecto a sonar cuando de marcha atrás es lo mismo, en tu programa debes decir que al dar marcha atrás suene el zumbador.

  24. Pingback: Programación como herramienta educativa: mi primera experiencia | Profesor Víctor Aroca

  25. Soy completamente novato en programación y robótica, pero el bitbloq me parece una estupenda herramienta para iniciarme,.

    Hoy he visto que cambia el entorno de trabajo a bitbloq beta. Mi pregunta es si van a conservar el bitbloq.

    Sinceramente, para alguien que empieza de cero, los bloques lógicos me parecen muy intuitivos y me ayudan, así que os animo a que mantengáis el entorno de bitbloq original, a pesar de que ofrezcáis entornos de desarrollo más avanzados.

    Un saludo.

  26. Hola.

    Estoy dando los primeros pasos con la robótica y programación y estoy enamorado el bitbloq (me parece muy intuitivo y que ayuda mucho a los novatos). He visto que van a cambiarlo por el bitbloq beta, pero ¿mantenéis el bitbloq original?, Ojala que sí, lo encuentro muy útil.

    Gracias

    1. Pablo Lozano

      Hola Angel,

      Bitbloq 1 seguirá en activo como mínimo hasta el final del curso actual académico. Bitbloq 2, la nueva versión de Bitbloq, estará en beta hasta el día 15 de Octubre. A partir de ese día, esta nueva versión de Bitbloq será la oficial. Debido a esto, no vamos a actualizar más Bitbloq 1, y las nuevas mejoras se implementarán directamente en la nueva versión.

      Nosotros te recomendamos, si pudieras, que empezases a interactuar con Bitbloq 2, ya que va a ser la oficial. Siempre nos podrás preguntar cualquier duda por aquí o por el correo de soporte de Bitbloq.

      No obstante, si te es más cómodo puedes seguir utilizando Bitbloq 1, durante este curso.

      Espero haberte sido de ayuda.

      Un saludo.

  27. ComentarioHola, ya estamos a día 16 y no se si la version 2 de bitbloq a dejado de ser beta, pero en el manejo de texto aun no habeis publicado ningún tutorial. Por cierto he visto una pieza de puzle para concatenar texto, pero curiosamente no tiene color :-X ¿Se puede usar con variables? ¿Y se pueden concatenar mas de 2 cadenas de texto?

  28. Pingback: GuadaTech | Aprendiendo a programar en Arduino con Pachorrin