Mostrando entradas con la etiqueta | mBlock. Mostrar todas las entradas
Mostrando entradas con la etiqueta | mBlock. Mostrar todas las entradas

miércoles, 3 de mayo de 2017

Potenciómetro con variación de luces y zumbador pasivo - ArduBlock, Bitbloq y mBlock

(Artículo en construcción) 

Referencia de programa: 03N

Arduino IDE 1.0.6 y ArduBlock 20130607 en MAX 6.5 (MAdrid_linuX)
 
Inicialmente previsto para placa multifunción i/o con 5 luces.

Aviso. Existe una redundancia en el pin 11. Se puede mantener así y sólo funcionaría con 5 luces (teniendo en cuenta que el pin 11 duraría más) o configurarlo para que se encienda un led en un pin diferente, por ejemplo, D8 u otro.



Prepara el montaje:

  • Placa Arduino.
  • Pin analógico 0 - Potenciómetro.
  • Pin digital 5 - Zumbador pasivo.
  • Pines digitales 9, 10, 11, 12 y 13 - Leds de diversos colores.
  • Opciones: Sensor analógico de temperatura. Más leds, zumbadores o actuadores en otros pines digitales.
Ten en cuenta:
  • En las placas con hileras de tres pines conecta los cables empezando normalmente por "ground".
  • Prueba otro tipo de sensores analógico en vez del potenciómetro. Cambia los valores o los operadores en función de las características del sensor analógico (luz, sonido...). Algunos módulos responden a valores diferentes. En algunos sensores LDR los valores altos son para falta de luz y en otros para mucha luminosidad. Lo mismo ocurre con otros módulos.
  • Puedes cambiar los valores a partir de los cuales se encienden las luces. En el ejemplo inicial, se deja un margen hasta 150 sin encender ningún led, pero puede modificarse para que un led se encienda más al inicio marcando el primer valor a  -1, 0 u otro valor próximo.
Bitbloq 2 online

Aviso. La versión offline en el momento de la prueba no disponía del bloque para escribir en un pin digital un valor analógico. Se ha utilizado la versión en línea.

Montaje:

Programa:



 
La versión offline no incorpora el bloque avanzado de "Escribir en el pin digital _ el valor analógico _", por lo que hemos utilizado la versión online de Bitbloq 2.

En este caso, no hemos utilizado variables; mostramos un ejemplo de programación con una sola linea de bloque.

Además, al ejecutar el sonido en el zumbador pasivo, se ha preferido dividir  el valor de lectura del potenciómetro por 12 para así tener un aumento de sonido más acorde con lo que correspondería a una posible alarma con sonido y luces.

También podría conseguirse un efecto similar utilizando el mapeado.

mBlock con mBot (mCore) en MAX 9.0 (MAdrid_linuX) 64 bits ("solo" autónomo)
    
En este ejemplo, debemos utilizar el módulo externo potenciómetro conectado en el puerto 4.
Además, tengamos en cuenta que para que no se oiga ningún ruido al rotar el potenciómetro a 0, se ha fijado tanto la nota a 0.

Ofrecemos varias posiblidades, con uso o no de variables para cambio más directo o progresivo, según se desee.

  • Sin cambio progresivo a colores concretos.
  • Con cambio progresivo de uno de los colores:
  • Cambio progresivo de varios colores (dos posibilidades):

Sensor de luz con 8 leds y zumbador - ArduBlock, Bitbloq y mBlock

(Artículo en construcción)

Referencia de programa: 03M

Arduino IDE 1.0.6 y ArduBlock 20130607 en MAX 6.5 (MAdrid_linuX)

Inicialmente previsto para placa multifunción i/o.
 


Prepara el montaje:
  • Placa Arduino.
  • Pin analógico 3 - Sensor de luz LDR, de sonido u otro sensor analógico.
  • Pin digital 3 - Zumbador activo.
  • Pines digitales 2, 4, 5, 6, 7, 9, 10 y 11 - Leds de diversos colores.
  • Opciones: Sensor analógico de temperatura. Más leds, zumbadores o actuadores en otros pines digitales.
Ten en cuenta:
  • En las placas con hileras de tres pines conecta los cables empezando normalmente por "ground".
  • Cambia los valores o los operadores en función de las características del sensor analógico (luz, sonido...). Algunos módulos responden a valores diferentes. En algunos sensores LDR los valores altos son para falta de luz y en otros para mucha luminosidad. Lo mismo ocurre con otros módulos.
Bitbloq Offline v1.0.3 en MAX 8.0 (MAdrid_linuX)


Montaje:

Aviso. En este caso, usaremos un zumbador activo (no el pasivo con el que se usa el bloque nota), por lo que, como ya hemos hecho en ocasiones anteriores, lo consideramos como un led que se enciende y se apaga. También podemos optar por no añadir este icono y, dentro de Componentes, pulsar en Avanzados y acceder a los bloques que permiten leer pines digitales directamente, pero hemos preferido este método para así reflejar de una forma más gráfica las conexiones.



Programa:


  
Como ya hemos indicado, podemos utilizar el bloque de Leer pin digital en Componentes > Avanzados. Lo proponemos como práctica:
 
mBlock con mBot (mCore) en MAX 9.0 (MAdrid_linuX) 64 bits ("solo" autónomo)
   
En este ejemplo, debemos utilizar el módulo externo de 4 leds conectado en el puerto 1 y no es necesario usar variables.
  • Modúlo de 4 leds con luces iguales.
  • Módulo de 4 leds con luces diferentes.

miércoles, 26 de abril de 2017

Luces en diversos estados con servomotor de 180º - ArduBlock, Bitbloq y mBlock

(Artículo en construcción)

Referencia de programa: 01K
 
Arduino IDE 1.0.6 y ArduBlock 20130607 en MAX 6.5 (MAdrid_linuX)

 
Prepara el montaje:
  • Placa Arduino.
  • Pin digital 4 - Led.
  • Pin digital 8 - Led de otro color..
  • Pin digital 13 - Led de otro color (siempre está encendido).
  • Pin digital 11 - Servomotor (probaremos con rotación 180º y rotación 360º cambiando los ángulos).
Ten en cuenta:
  • En las placas con hileras de tres pines conecta los cables empezando normalmente por "ground".
Programa:
  • Crea el programa que se muestra en la imagen.
Prueba:
  1. Observa dónde hay bloques y pines digitales repetidos.
  2. Pulsa en "Cargar a Arduino".
  3. Describe los pasos y lo que ha ocurrido.
  4. Repite el mismo proceso cambiando los números de pin digital por parejas.
  5. Describe lo que ha ocurrido tras los cambios.
  6. Prueba a intercambiar servos de 180º y servos de 360º grados de rotación continua.
  7. Describe lo que crees que hace cada bloque paso a paso.
  8. Describe 3 posibles usos de este montaje en la vida real.
Investiga:
  • Investiga nuevas posibilidades cambiando valores y bloques.
 
Bitbloq Offline v1.0.3 en MAX 8.0 (MAdrid_linuX)

Montaje:

Programa:
  

mBlock con mBot (mCore) en MAX 9.0 (MAdrid_linuX) 64 bits (conectado y autónomo)

Conecta el cable que va al módulo adaptador en el puerto 1 y el servomotor en el slot 1 de ese mismo módulo adaptador.
 


Pendiente:
  1. Se ha observado que con el servo conectado a la placa esta perdía fácilmente la conexión USB. Para evitarlo, ha sido necesario tener conectada la alimentación procedente de las pilas.
  2. Cuando el servomotor se encuentra en posición 0, los engranajes interiores intentan seguir funcionando y pueden llegar a calentar el servo e incluso hacer que deje de responder. Es por ello que se añadido una posición de 90º para que dichos engranajes se paren antes de la acción de los leds y así evitar que se caliente en exceso al estar mucho tiempo forzado en la posición 9.

martes, 28 de junio de 2016

Siguelíneas - ArduBlock, Bitbloq y mBlock

(Artículo en construcción)

Referencia de programa: 05A, 05B
  
Arduino IDE 1.0.6 y ArduBlock 20130607 en MAX 6.5 (MAdrid_linuX)

Aviso. Mostramos algún ejemplo con los sensores infrarrojos en los pines analógicos, aunque lo más recomendable es usar los pines digitales, ya que el objetivo es detectar negro.

Usaremos dos sensores infrarrojos con receptor y emisor o, en el caso de mBot, un módulo siguelíneas (que en realidad incluye dos sensores infrarrojos ligeramente separados).

Este tipo de sensores, se utilizan para detectar blanco y negro o claro y oscuro.
  • Infrarrojos en pines digitales:

  • Infrarrojos en pines analógicos:

Prepara el montaje:
  • Placa Arduino.
  • Siguelíneas con infrarrojos IR (emisor y receptor):
     Pin "digital" 4 o pin analógico 4 (según ejemplo elegido) - Infrarrojo derecho.
     Pin "digital" 5 o pin analógico 5 (según ejemplo elegido) - Infrarrojo izquierdo.
     Pin digital 9 - Servomotor derecho (parte plana hacia delante).
     Pin digital 10 - Servomotor izquierdo (parte plana hacia adelante).
  • Tablero: superficie blanca con línea negra (no pegada al borde para así facilitar giros).
Ten en cuenta:
  • Para obtener los mejores resultados, es mejor que la línea a seguir sea negra sobre fondo blanco.
  • En este caso, orienta ambos servomotores de tal forma que los cables que salen miren hacia la parte delantera del robot.
  • En las placas con hileras de tres pines conecta los cables empezando normalmente por "ground". Cuidado. En algunas placas los pines están invertidos.
  • Comprueba si tus servomotores están bien calibrados.  
  • Comprueba que los módulos infrarrojos se encuentran a una altura adecuada.
  • Datos de sensores infrarrojos:
    Situados a una altura de unos  2, 3 ó 4 cm y rectos, pero puede ser otra en función de las características técnicas del módulo IR.
    Con líneas negras estrechas, deben estar muy pegados unos a otros. Prueba con anchos de línea y distancias entre infrarrojos mayores o menores para comprobar estos efectos.
  • No todos los sensores utilizan el mismo rango de valores, incluso algunos aparecen invertidos:
    Con medidas analógicas y según sensores y condiciones de iluminación, valor aproximado de negro: 150 o, si es al contrario, 800.
    Con medidas analógicas y según sensores y condiciones de iluminación, valor aproximado de blanco: 800 o, si es al contrario, 150.
  • Cuidado. La escasa iluminación y, según como esté diseñado, las sombras que pueda proyectar el propio siguelíneas  podrían influir en el funcionamiento.
  • También influye la inclinación de los sensores infrarrojos en el montaje o que las líneas tengan un reborde discontinuo o no.
  • En algunos casos por defecto o fallo, el robot podría salirse completamente de la línea; la programación del final haría que volviera a la línea. Se puede cambiar para que gire en uno sentido diferente intercambiando el servo que se mueve y el que se para, ya que ello afectará a que siga en la misma dirección o cambie de dirección.
Programa:
  • Crea el programa que se muestra en la imagen.
Prueba:
  1. Pulsa en "Cargar a Arduino".
  2. Observa los cambios y describe lo que ha ocurrido.
  3. ¿Qué función tienen las variables "IRderecho" e "IRizquierdo"?
  4. Localiza el resto de variables e indica su función.
  5. ¿Influye la posición del servo?
  6. Cambia el nombre de las variables. 
  7. Cambia los valores y los operadores. 
  8. Cambia los pines. 
  9. Describe lo que ha ocurrido tras los cambios.
  10. Describe lo que crees que hace cada bloque paso a paso.
  11. Describe 3 posibles usos de este montaje en la vida real.
Investiga:
  • Investiga nuevas posibilidades cambiando valores y bloques.
Bitbloq Offline v1.0.3 en MAX 8.0 (MAdrid_linuX)

Montaje 1:

Similar al anterior de Ardublock pero con infrarrojos en pines digitales 4 y 5. El valor 0 corresponde a negro y el valor 1 a blanco.

Pin digital 9: servomotor continuo derecho (saliendo los cables hacia delante).
Pin digital 10: servomotor continuo izquierdo (saliendo los cables hacia delante).
Pin digital 4: sensor infrarrojos derecho.
Pin digital 5: sensor infrarrojos izquierdo.

Para comprobar el sentido de giro horario o antihorario de un servo, suele hacerse observándolo desde  abajo del mismo.

Programa:




Montaje 2:

Pin digital 9: servomotor continuo izquierdo (saliendo los cables hacia delante).
Pin digital 10: servomotor continuo derecho (saliendo los cables hacia delante).
Pin digital 4: sensor infrarrojos izquierdo.
Pin digital 5: sensor infrarrojos derecho.

 Programa:
 
mBlock con mBot (mCore) en MAX 9.0 (MAdrid_linuX) 64 bits ("solo" autónomo)
   
En este ejemplo simple, ofrecemos dos posibilidades:
 

Joystick para control de un vehículo con servos de rotación continua - ArduBlock, Bitbloq y mBlock

(Artículo en construcción)

Referencia de programas: 04B, 04C, 04D, 04E (varias pruebas en direcciones diferentes)
 
Arduino IDE 1.0.6 y ArduBlock 20130607 en MAX 6.5 (MAdrid_linuX)



Prepara el montaje:
  • Placa Arduino.
  • JoyStick de 5 cables.
    Tres primeros cables a pin "analógico" 4 (cuidado, en algunas placas están invertidos).
    Cuarto cable a pin analógico 5 señal - Eje y.
    Quinto cable a pin "digital" 7 señal - Apagar leds o parar motores.
  • Pin digital 8 - Servomotor de rotación continua izquierdo.
  • Pin digital 9 - Servomotor de rotación continua derecho.
Ten en cuenta:
  • En las placas con hileras de tres pines conecta los cables empezando normalmente por "ground". Cuidado. En algunas placas los pines están invertidos.
  • No todos los "joystick" tienen el mismo diseño ni reconocen el mismo rango valores; prueba a modificar los valores en el programa si es necesario.
  • Comprueba si tus servomotores están bien calibrados. 
Programa:
  • Crea el programa que se muestra en la imagen.
Prueba:
  1. Pulsa en "Cargar a Arduino".
  2. Acciona el mando en varias direcciones y prueba también a pulsarlo. A veces es necesario pulsar en la posición exacta.
  3. Observa los cambios y describe lo que ha ocurrido.
  4. ¿Qué función tienen las variables "xeje" e "yeje"?
  5. Cambia el nombre de las variables. 
  6. Cambia los valores y los operadores. 
  7. Cambia los pines.
  8. Describe lo que ha ocurrido tras los cambios.
  9. Describe lo que crees que hace cada bloque paso a paso.
  10. Describe 3 posibles usos de este montaje en la vida real.
Investiga:
  • Investiga nuevas posibilidades cambiando valores y bloques.
Bitbloq Offline v1.0.3 en MAX 8.0 (MAdrid_linuX)

Montaje:

Aviso.En este caso, se ha utilizado el joystick que comercializa bq. La  configuración por defecto, rango de valores y orientación de ejes con respecto a los cables de conexión pueden ser diferentes al de otros joysticks del mercado.

De hecho, se ha probado esta misma programación con un joystick diferente y el comportamiento de los servos cambia. Se comentan los motivos al final del programa.
 

Programas:

Hay una diferencia importante con respecto al proyecto anterior. Vamos a hacer que se puedan realizar curvas más cerradas. Para ello, al girar a la derecha e izquierda, en vez de parar uno de los servos, haremos que gire en dirección contraria al otro.
  • Con joystick comercializado por bq (3 x 3 cables):
  • Con joystick diferente procedente del mercado (5 cables): 
Como se hizo en el ejemplo de Ardublock, ha sido necesario inicializar a 1 el valor del pulsador del joystick (pin digital 7), pues no viene configurado así por defecto.
 

Además, los ejes X e Y tienen otra orientación respecto a los cables; el joystick debe colocarse con los cables hacia un lado en vez de hacia adelante para que interprete bien las órdenes. Habría que cambiar la programación si queremos manejar el joystick con los cables mirando hacia adelante, que como se hizo en el caso de Ardublock.

mBlock con mBot (mCore) en MAX 9.0 (MAdrid_linuX) 64 bits (conectado y autónomo)
 
En este caso usamos los dos motores DC del kit mBot en los conectores M1 y M2.

Como en el ejemplo del artículo anterior, debemos utilizar el módulo externo joystick conectado en el puerto 4, aunque por lo que se ha probado sólo funciona usando el bloque de ejecución mediante bandera verde.
 
Se ofrecen las alternativas para programarlo de forma autónoma utilizando el mando IR de control a distancia o el módulo de botonera de 4 bototones conectado en el puerto 4).

Aviso:

En este caso, se ha observado que es conveniente tener las pilas conectadas durante la carga del programa para minimizar el número de fallos durante la carga. A veces ha ocurrido también con otros programas, por lo que se recomienda probarlo en caso de observar fallos.

  • Joystick externo:

  • Mando de control a distancia:

  • Botonera (módulo externo de 4 botones):

 

Joystick para control de 4 leds - ArduBlock, Bitblock y mBlock

(Artículo en construcción)

Referencia de programas: 04A, 04B
 
Arduino IDE 1.0.6 y ArduBlock 20130607 en MAX 6.5 (MAdrid_linuX)

El objetivo es encender uno de los cuatro leds y que permanezca encendido aunque se suelte el joystick y vuelva al centro. El led activado se apagará cuando se pulse el botón del joystick.

En caso de desear otro tipo de funcionamiento, como por ejemplo que el led sólo quede encendido cuando el joystick esté dirigido en esa posición y se apague automáticamente al volver al centro, debemos variar la programación con bloques al contrario del tipo "si no entonces".



Prepara el montaje:
  • Placa Arduino.
  • JoyStick de 5 cables.
    Tres primeros cables a pin "analógico" 4 (cuidado, en algunas placas están invertidos).
    Cuarto cable a pin analógico 5 externo - Eje y.
    Quinto cable a pin "digital" 9 externo- Apagar leds o parar motores.
  • Pin digital 10 - Led izquierda.
  • Pin digital 11 - Led arriba.
  • Pin digital 12 - Led derecha.
  • Pin digital 13 - Led abajo.
Ten en cuenta:
  • En las placas con hileras de tres pines conecta los cables empezando normalmente por "ground". Cuidado. En algunas placas los pines están invertidos.
  • No todos los "joystick" tienen el mismo diseño en la orientación de los ejes con respecto a los cables de conexión ni reconocen el mismo rango valores; prueba a modificar los valores en el programa si es necesario.
Programa:
  • Crea el programa que se muestra en la imagen.
Prueba:
  1. Pulsa en "Cargar a Arduino".
  2. Acciona el mando en varias direcciones y prueba también a pulsarlo. A veces es necesario pulsar en la posición exacta.
  3. Observa los cambios y describe lo que ha ocurrido.
  4. ¿Qué función tienen las variables "xeje" e "yeje"?
  5. Cambia el nombre de las variables. 
  6. Cambia los valores y los operadores. 
  7. Cambia los pines.
  8. Describe lo que ha ocurrido tras los cambios.
  9. Describe lo que crees que hace cada bloque paso a paso.
  10. Describe 3 posibles usos de este montaje en la vida real.
Investiga:
  • Investiga nuevas posibilidades cambiando valores y bloques.
Bitbloq Offline v1.0.3 en MAX 8.0 (MAdrid_linuX)

Montaje:

Aviso.En este caso, se ha utilizado el joystick que comercializa bq. La  configuración por defecto, rango de valores y orientación de ejes con respecto a los cables de conexión pueden ser diferentes al de otros joysticks del mercado.

De hecho, se ha probado esta misma programación con un joystick diferente y el comportamiento de los leds cambia. Se comenta el motivo al final del programa.
 
Programas:

  • Con joystick comercializado por bq (3x3 cables).
  • Con joystick diferente procedente del mercado (5 cables): 
Como se hizo en el ejemplo de Ardublock, ha sido necesario inicializar a 1 el valor del pulsador del joystick (pin digital 9), pues no viene configurado así por defecto.



Además, los ejes X e Y tienen otra orientación respecto a los cables; el joystick debe colocarse con los cables hacia un lado en vez de hacia adelante para que interprete bien las órdenes. Habría que cambiar la programación si queremos manejar el joystick con los cables mirando hacia adelante, que como se hizo en el caso de Ardublock.

mBlock con mBot (mCore) en MAX 9.0 (MAdrid_linuX) 64 bits
    
En este ejemplo, debemos utilizar el módulo externo joystick conectado en el puerto 4, aunque por lo que se ha probado sólo funciona usando el bloque de ejecución mediante bandera verde.
 
Se ofrecen las alternativas para programarlo de forma autónoma utilizando el mando IR de control a distancia o el módulo de botonera de 4 bototones conectado en el puerto 4).

Aviso:

En este caso, se ha observado que es conveniente tener las pilas conectadas durante la carga del programa para minimizar el número de fallos durante la carga. A veces ha ocurrido también con otros programas, por lo que se recomienda probarlo en caso de observar fallos.
  • Joystick:
  •  Mando de control a distancia:
  • Botonera (modulo externo de 4 botones): 

Led RGB con cambio progresivo a múltiples colores - Ardublock, Bitbloq y mBlock

(Artículo en construcción)

Referencia de programas: 03K, 03L
 
Arduino IDE 1.0.6 y ArduBlock 20130607 en MAX 6.5 (MAdrid_linuX)
  •  Cambio con corte.  
  •  Cambio sin corte.
 

Prepara el montaje:
  • Placa Arduino.
  • Un led RGB de 4 patillas (cables):
    Pin "ground" o "Voltaje" (según tipo de led): Primer cable.
    Pin digital 9: Segundo cable.
    Pin digital 10: Tercer cable.
    Pin Digital 11: Cuarto cable.
Ten en cuenta:
  • En las placas con hileras de tres pines conecta los cables empezando normalmente por "ground".
Programa:
  • Crea el programa que se muestra en la imagen.
Prueba:
  1. Pulsa en "Cargar a Arduino".
  2. Observa los cambios y describe lo que ha ocurrido.
  3. ¿Qué función tiene la variable "x"?
  4. ¿Qué diferencias observas entre el primer y segundo ejemplo?
  5. Cambia el nombre de la variable. 
  6. Cambia los valores y los operadores. 
  7. Cambia los pines.
  8. Describe lo que ha ocurrido tras los cambios.
  9. Describe lo que crees que hace cada bloque paso a paso.
  10. Describe 3 posibles usos de este montaje en la vida real.
Investiga:
  • Investiga nuevas posibilidades cambiando valores y bloques.
Bitbloq 2 online


Aviso. En el momento de esta prueba, la versión offline de Bitbloq no disponía del bloque que permite escribir un valor analógico en un pin digital. Se ha utilizado la versión en línea.

  • Cambio con corte.
Montaje:
Programa:
 

  •  Cambio sin corte.  

mBlock con mBot (mCore) en MAX 9.0 (MAdrid_linuX) 64 bits ("solo" autónomo)
  
Utilizando Programa de mBot es necesario indicar una pausa de 0.01 segundos antes del cambio, o no se precia. En el caso de utilizar bandera verde, no es imprescindible indicar esa pausa, pues el propio Scratch ya la realiza por defecto una pequeña espera antes de ejecutar una nueva instrucción.
  •  Cambio con corte (dos posibilidades):
  •  Cambio sin corte, incluyendo luz azul. Se ofrecen dos posibilidades:

  • Cambio sin corte, con colores similares a los de un semáforo. Se ofrecen dos posibilidades: