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

martes, 18 de julio de 2017

Evita obstáculos - ArduBlock, Bitbloq y mBlock

(Artículo en construcción)

Referencia de programa: 05C

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

  • Utilizando los valores 2000 y 1000 para controlar el avance o retroceso:
  • Utilizando los valores 180 y 0 para controlar el avance y retroceso:


Prepara el montaje:
  • Placa Arduino.
  • Ultrasonido de 4 cables (no siempre es igual con todas las placas y shields):
    Pin digital 4 - Tres primeros cables
    Pin digital 5 - Cuarto cable (a señal, no a ground).
  • Pin digital 9 - Servo de rotación continua.
  • Pin digital 10 - Servo de rotación continua.
Ten en cuenta:
  • En las placas con hileras de tres pines conecta los cables empezando normalmente por "ground".
  • Cuidado. Si conectas mal los cables, podría calentarse el ultrasonido. 
  • Importante. Según cómo coloques los servos en el robot (con los cables que salen del servo mirando hacia adelante o hacia atrás), el robot irá hacia delante o hacia atrás cuando no detecte obstáculo.
  • Distancia. En función del diseño del robot y necesidades, será conveniente aumentar o disminuir la distancia que condiciona avanzar o girar.
Programa:
  • Crea el programa correspondiente a la tarea a realizar.
Prueba:
  1. Pulsa en "Cargar a Arduino".
  2. Acerca la mano u otro objeto al ultrasonido y luego aléjalo.
  3. Describe los pasos y lo que ha ocurrido.
  4. Cambia el pin digital para que suene un zumbido o sonido.
  5. Cambia el pin digital para que se encienda un led de otro color.
  6. Cambia la dirección de los servos.
  7. Cambia a valores mayores.
  8. Cambia los valores de alto y bajo.
  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:
Programa:
 
 
mBlock con mBot (mCore) en MAX 9.0 (MAdrid_linuX) 64 bits ("solo" autónomo)
  
Se necesita un módulo ultrasonido conectado en el puerto 3.

En este caso, hemos procedido de forma contraria. Hemos utilizado signo de comparación <, pero también se pueden intercambiar los bloques entre los bucles condicionales  y utilizar >.

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.

Joystick para control de vehículo con dos servos y 4 luces ArduBlock y Bitbloq)

(Artículo en construcción)

Referencia de programa: 04F

  
Arduino IDE 1.0.6 y ArduBlock 20130607 en MAX 6.5 (MAdrid_linuX)
 
Modificaciones pendientes: añadir zumbador y poner mayor duración de luces.




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 1 - Led. 
  • Pin digital 2 - Led de otro color.
  • PIn digital 3 - Led de otro color.
  • Pin digital 4 - Led de otro color.
  • Pin digital 9 - Servomotor de rotación continua izquierdo.
  • Pin digital 10 - 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. Cambia los leds por otros actuares simples, como zumbadores.
  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:

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.

domingo, 25 de septiembre de 2016

Multiconexiones con Keyestudio Easy Plug Learning Kit (III). Tarjeta de expansión I/O: servomotores, joystick, IR siguelíneas... (ArduBlock)

Referencia de programa: Multi03
 

Easy Plug Learning Kit (wiki Keyestudio)

(Artículo en construcción - Programa beta)

Se recomienda hacer las pruebas en buenas condiciones de luz. Sino es así, el sensor de luz detectará siempre un valor bajo de luz y no se apreciarán ciertos efectos.
 
El objetivo es conectar y aprovechar la placa de expansión adquirida como producto complementario para analizar varias funcionalidades combinadas y realizar pruebas libres intercambiando componentes:
  • Siguelíneas.
  • Evitaobstáculos.
  • Robot dirigible por joystick.
  • Sensor de luz.
  • Secuencias de colores, semáforo y otros.
El kit dispone de una placa de cartón duro que se fija mediante unos pernos como base. Como la longitud de los pernos es sólo un poco menor que el espacio entre placa Arduino y base acartonada, con sólo aflojar un poco los tornillos se pueden insertar los servomotores. Incluso sin retirar los conectores, ha funcionado el robot generado rápidamente así.

Los conectores y componentes utilizados al inicio son los que indicamos a continuación, pero aprovechando la misma programación podemos probar otros muchos y experimentar simplemente intercambiando módulos o conectando otros que tengamos disponibles.

A0 - IR siguelíneas en la placa principal (o en la placa de expansión).
A1 - IR siguelíneas en la placa principal (o en la placa de expansión.
A2 - Sensor de luz en la placa principal (activa D13).

JoyStick de 5 cables conectado en la placa de expansión:
     A4 - Tres primeros cables agrupados.
     A5 - Cuarto cable a pin externo.
     D7 - Quinto cable a pin externo para controlar la parada.
     Cuidado. Según la placa, los pines a veces están en orden distinto.

Sensor de ultrasonido en placa de expansión (activa D8).
     D0 - Cables agrupados.
     D1 - Cuarto cable.

D2 - Potenciómetro (placa principal).
D3 - Botón pulsador (placa principal).
D4 - Sensor táctil (activa el D12).
D8 - Zumbador activo en placa principal. Led en  placa de expansión.
D9 - Servomotor continuo de 360 grados en placa de expansión.
D10 - Servomotor continuo de 360 grados en placa de expansión.
D11 - Led en placa de expansión .
D12 - Led en la placa de expansión.
D13 - Led en la placa de expansión y otro led en la principal.

Cuidado:
  • No fuerces los componentes.
  • Si las pilas no tienen suficiente potencia, no funcionarán algunos componentes o lo harán de forma poco previsible.
  • Si alguno de los leds o componente se estropea, puede afectar al funcionamiento de las pruebas que vamos a hacer. Sería necesario retirarlo o sustituirlo por uno que funcione apropiadamente. De hecho, un simple led defectuoso puede hacer que las conexiones no sean apropiadas y provocar efectos no esperados.
  • Pide ayuda cuando tengas dudas.
Efectos extraños o no esperados:
  • Se recomienda hacer las pruebas en buenas condiciones de luz, o no se apreciará el funcionamiento del sensor de luz o afectará a otras pruebas.
  • Para activar adecuadamente un modo u otro en los servomotores, es necesario girar completamente el potenciómetro a un lado u otro.
  • Se han encontrado problemas al conectar miniservos de 180 grados de rotación y ciertos motores-hélice que provocaban vibraciones en las luces o afectaban a las conexiones causando parpadeos y efectos no esperados, por lo que se realizarán nuevas pruebas en un futuro para poder incluirlos.
Pruebas:
  1. Colocar el ultrasonido "orientado hacia el techo" y sin ningún obstáculo delante para  evitar que el zumbador suene continuamente. Podemos desconectar el zumbador D8 de la placa principal y dejar sólo el led en la placa de expansión para al menos ver que funciona.  
  2. Probar el ultrasonido acercando o alejando objetos, con y sin el zumbador conectado.
  3. Comprobar que el potenciómetro está en la posición que permite que el joystick controle los servomotores. Para parar los servomotores pulsamos el joystick hacia abajo. 
  4. Una vez parados los servomotores, movemos la palanca del joystick para comprobar en qué casos se mueven uno o los dos motores y en qué direcciones. 
  5. De forma provisional, podemos añadir nuevos leds 0 en la placa principal y comprobar los efectos que se producen, pero es recomendable no dejarlos conectados.
  6. Tapar el sensor de luz para comprobar que se enciende el led D13. Si no hay condiciones de luz adecuadas, puede que no funcione apropiadamente e influya en el funcionamiento de la siguiente prueba de cambio de luces.
  7. Pulsar el botón D3 para comprobar que se produce el cambio de luces en D11, D12 y D13. Conviene que sean de distinto color tanto en la placa principal como en la placa de expansión para así poder simular un semáforo durante ese instante.
  8. Pulsar el sensor táctil D4 para comprobar que se produce cambio en D12.
  9. Cambiar el sensor táctil por un sensor de choque para comprobar nuevos efectos.
  10. Colocar el potenciómetro en posición de avance autónomo de los servomotores. Deberán de ponerse en marcha solos. 
  11. En posición de avance autónomo, comprobamos lo que ocurre al tapar los sensores IR (infrarrojos) siguelíneas.
  12. Seguimos probando los IR (infrarrojos) siguelíneas acercando objetos de color negro probando que tapen uno, los dos o ninguno de los IR. 
  13. Realizar la misma operación anterior cambiando con un folio blanco debajo y cambiando de blanco a negro.
  14. Cambiar los componentes por otros. Por ejemplo, leds por zumbadores,  sensores de luz por potenciómetros o botones pulsadores por otros (sensores magnéticos, sonido...).
  15. Volver a conectar todo como al inicio e insertar los servomotores entre la placa principal y la placa de soporte para simular un robot con ruedas.
  16. En modo de robot con ruedas, probar el funcionamiento del potenciómetro y el joystick.
  17. En modo de robot con rueda, probar a poner el ultrasonido en una posición que detecte obstáculos y le permita girar antes de chocar.
  18. Intentar crear un robot siguelíneas. Nos podemos ayudar de cinta adhesiva transparente, gomas u otros objetos que no dañen la placa para fijarlos de forma provisional.
  19. Realizar otras pruebas con cuidado y preguntando si es necesario.





Multiconexiones con Keyestudio Easy Plug Learning Kit (II). Uso de conectores digitales y analógicos (ArduBlock)

Referencia de programa: Multi02
 
 Easy Plug Learning Kit (búsqueda de imágenes)

(Artículo en construcción)

En esta ocasión, el objetivo es conectar tanto componentes digitales como analógicos en una misma placa principal de Easy Plug Learning Kit para fácilmente introducir sus diversos tipos y funcionalidades.

Los conectores y componentes utilizados al inicio son los que indicamos a continuación, pero aprovechando la misma programación podemos probar otros muchos y experimentar simplemente intercambiando módulos o conectando otros que tengamos disponibles.

D2 - Botón.
D3 - Led.
D4 - Sensor táctil.
D5 - Led.
D6 - Led.
D7 - Led.
D8 - Zumbador activo.
D9 - Zumbador pasivo.
D10 - Sensor de vibración (si no se tiene, conectar el sensor de inclinación u otro).
D11 - Led.
D12 - Led.
D13 - Led.
A0 - Potenciómetro (varía los tonos del zumbador pasivo).
A1 - Sensor de sonido.
A2 - Sensor de luz.
A3 - Sendor de agua/lluvia.
A4 - Libre.
A5 - Libre.
IIC - Pantalla LCD aquirido de forma complementaria. Precisa incluir la librería SaintSmart New Liquid Crystal dentro de la carpeta libraries de Arduino IDE, siendo preciso mover la librería de Liquid Crystal propia de Arduino IDE para que no se interfieran..

Cuidado:
  • No fuerces los componentes.
  • Si las pilas no tienen suficiente potencia, no funcionarán algunos componentes o lo harán de forma poco previsible.
  • Si alguno de los leds o componente se estropea, puede afectar al funcionamiento de las pruebas que vamos a hacer. Sería necesario retirarlo o sustituirlo por uno que funcione apropiadamente. De hecho, un simple led puede hacer que las conexiones no sean apropiadas y provocar efectos no esperados.
  • Pide ayuda cuando tengas dudas.
Pruebas: 
  1. Girar el potenciómetro en A0 para producir una composición musical simple audible con el zumbador pasivo. 
  2. Colocar el potenciómetro en una posición en la que no se escuche el sonido del zumbador pasivo. 
  3. Pulsar el botón D2 para hacer que se encienda el led D3. 
  4. Pulsar el sensor tátil D3 para poner en marcha el semáforo con sonido de paso (zumbador activo) y mensajes escritos de espera y paso (pantalla LCD).
  5. Agitar el sensor de vibración y comprobar el efecto de cambio en el led D10. Se puede probar con el sensor de inclinación y otros además.
  6. Soplar con intensidad variable sobre el sensor de sonido en A1 y observar los valores cambiantes en la pantalla LCD.
  7. Tapar el sensor de luz para encender un led.
  8. Humedecerse el dedo en agua y tocar el sensor de agua/lluvia para encender un led.
  9. Cambiar los componentes por otros. Por ejemplo, leds por zumbadores,  sensores de luz por potenciómetros o botones pulsadores por botones táctiles u otros sensores (magnéticos, sonido....).
  10. Solicitar ayuda para conectar la placa de expansión (hay que conectarla con mucho cuidado) con leds en los pines digitales 5, 6 y 7. Comprobar que al pulsar el sensor táctil pueden activarse los 3 pares de pines de forma que simulen el semáforo de coches y el de un peatón a la vez. Será necesario colocar los colores invertidos, si en la placa principal D5 es verde, en la placa de expansión el pin 5 debe ser rojo, por ejemplo. En este caso, D7 sería rojo y el pin digital 7 de la placa de expansión sería verde (si no lo hay, conecta uno blanco por ejemplo). El D5 y pin digital 5 serían naranjas o amarillos.