miércoles, 3 de noviembre de 2021

Diseño, construcción y configuración de Drones

 

Documentación curso Drones

Hola a tod@s.

Durante el curso 2018-19 participamos en La Feria Aérea organizada por El Caleidoscopio.


Los documentos de trabajo para realizar los proyectos de diseño, impresión en 3D, montaje y configuración primero de un pequeño minidron y después de un dron de un tamaño más grande y con componentes más potentes, son los siguientes:












RD-1036_2017-de-15dic-BOE-2017-15721  Real Decreto 1036/2017, de 15 de diciembre, por el que se regula la utilización civil de las aeronaves pilotadas por control remoto, y se modifican el Real Decreto 552/2014, de 27 de junio, por el que se desarrolla el Reglamento del aire y disposiciones operativas comunes para los servicios y procedimientos de navegación aérea y el Real Decreto 57/2002, de 18 de enero, por el que se aprueba el Reglamento de Circulación Aérea.


Montaje y configuración minidrone

Hola a tod@s.
En este tema vamos a trabajar con una lista de control o checklist, una herramienta fundamental en los proyectos de ingeniería, que nos ayudará a ir comprobando paso a paso que todas las fases de construcción y configuración de nuestro minidrone se han realizado correctamente y por tanto podemos comenzar la práctica de vuelos.
En la siguiente imagen puede verse una imagen de la lista que hemos creado:




Y en el siguiente enlace puede accederse a una hoja de cálculo con la lista en formato lectura que puede usarse para hacer una copia de la misma y utilizarla para comprobar que cada fase se ha realizado de manera adecuada.


Enlace de Hoja de Cálculo lista de control / checklist


Sobre todo es fundamental que las 13 soldaduras que debe llevar la controladora: 8 para los 4 motores, 2 a la bateria y 3 a la receptora, estén bien realizadas. En este documento pueden verse esos 13 puntos de soldadura en detalle.

  • Montaje y configuración drone grande

    Hola a tod@s.


    En este tema, al igual que hicimos con el drone pequeño, vamos a trabajar con una lista de control o checklist, una herramienta fundamental en los proyectos de ingeniería, que nos ayudará a ir comprobando paso a paso que todas las fases de construcción y configuración de nuestro drone grande se han realizado correctamente y por tanto podemos comenzar la práctica de vuelos.

    En la siguiente imagen puede verse una imagen de la lista que hemos creado:


    Y en el siguiente enlace puede accederse a una hoja de cálculo con la lista en formato lectura que puede usarse para hacer una copia de la misma y utilizarla para comprobar que cada fase se ha realizado de manera adecuada.

    Descarga Lista comprobación drone grande

    El el siguiente enlace pude accederse al manual de conexión y configuración del drone grande:

    Manual drone grande

    Es importante tener en cuenta un par de cosas que pueden cambiar respecto al manual.
    Por un lado que en esta imagen aparece conectada la receptora a UART2 (el de arriba) y la configuración esta hecha para UART1 por lo que el cable amarillo debería estar conectado en el pin de abajo.

    Y mucho más importante: Tenemos dos tipos de controladoras, una que va directamente conectado con el pin de cables de la controladora de motores de manera sencilla como viene en el manual: 

    Y  otra que hay que conectar con la siguiente configuración:


    Las placas controladoras que tienen que ir con esta segunda conexión tienen pines dupond soldados en todas sus conexiones para que sea más sencilla la conexión y no haya que soldar los cables.

    Es muy importante tenerlo en cuenta porque si se confunden las placas y se conectan de manera errónea seguramente se fundirán los componentes y la placa quedaría inservible.

    Un saludo,
    Raúl.

viernes, 3 de septiembre de 2021

Proyecto Coche Robótico con Arduino (5/5)

 

Coche Robot de 4 motores. Modificación de la forma del chasis

 Hola a tod@s.

En las siguientes imágenes se puede ver como he llevado a la práctica una idea "thinking out of the box" de Rodrigo de 1ºbto B que propuso colocar las placas del chasis del coche de una manera diferentes a la de los vídeos de montaje que suele haber en internet. El cambio supone un coche más alto y disponer de más espacio para colocar los componentes. 

Veámoslo en imágenes:

Comenzamos por desmontar todo y dejar solo la placa con los motores y las ruedas. Los motores ahora quedarán por debajo de la placa.



como se puede ver en la siguiente imagen finalmente he optado por quitar las ruedas negras que van por dentro de los motores ya que no las vamos a usar. Como hemos comentado sirven para medir la distancia recorrida pero es necesario usar un sensor infrarrojo que vaya captando su giro.

El siguiente paso importante será conectar los motores a la controladora:


Con el espacio que tenemos ahora podremos poner perfectamente el componente sigue líneas con los 4 detectores de líneas por debajo de la placa y la controladora de los detectores por encima. En esta imagen aparece la controladora muy al borde pero finalmente la he colocado más hacia adentro. Al colocarlo es interesante que las rueditas blancas que se ven en la imagen sean accesibles (en mi caso en la colocación que veréis al final lo son mediante los agujeros que hay en la placa de arriba) ya que esas ruedas sirven para ajustar el funcionamiento de los sensores sigue líneas y que funcionen los 4 con la misma sensibilidad. En breve os mandaré información de como conectar y programar el sigue líneas.


Sujetamos bien los sensores sigue líneas con cinta doble cara y cinta aislante:



El siguiente paso será conectar cada sensor sigue líneas a la controladora de sigue líneas. Cada sensor lleva tres cables: OUT (para la señal), Vcc (voltaje) y GND (toma de tierra, ground) que deberán conectarse en los correspondientes de la controladora. Los nombres vienen puestos en el sensor y la controladora.





Para colocar el porta pilas hay muchas opciones. Lo importante es que tiene que ser accesible para poder cambiar las pilas. En mi caso he optado por ponerlo por debajo de coche, en la zona de los motores. Sujeto con cinta doble cara y posteriormente con una goma elástica que rodea toda esa placa de abajo y sujeta el porta pilas y las pilas. Otra opción es llevarlo a la parte superior que pondremos más tarde ya que como veréis hay mucho espacio.


Con el porta pilas colocado el siguiente paso es llevar la corriente a la controladora de motores. Tenemos dos modelos de controladoras y como vimos en este vídeo https://www.youtube.com/watch?v=OVlntLxkjsU&feature=youtu.be cada controladora recibe el voltaje y ground en unos pines, es importante realizar bien estas conexiones para no dañar la controladora.


Trabajando con los coches hemos visto que mejora bastante su funcionamiento si añadimos este cable blanco de la siguiente imagen. En el vídeo de explicación de las conexiones no hablaba de ponerlo porque en principio no haría falta ya que la propia controladora de motores envía 5V de corriente a ese pin, pero como hemos visto a nivel práctico si las pilas van gastándose y el voltaje cae de los 6V (4 pilas AA de 1.5V) es posible que la placa envíe a ese pin algo menos de 5V con lo que puede fallar la señal. Es por eso que con el cable blanco de la siguiente imagen forzamos a ese pin de la placa a recibir el mismo voltaje que viene de las pilas que normalmente será algo superior a 5V aunque haya bajado de los 6V que debe dar cuando las pilas están nuevas. Ese cable blanco de la siguiente imagen que puentea la corriente hacia la controladora de motores debería quitarse si se van a conectar los motores a una fuente de alimentación de mayor voltaje (por encima de 6V) ya que ese mismo voltaje entraría a la controladora y la podría dañar.


En la siguiente imagen conectamos los dos cables de corriente que llevaremos desde la controladora de motores hasta nuestro arduino para darle corriente y los 6 cables (en el otro modelo de controladora son solo 4) que nos permiten controlar los motores desde los pines de señal del arduino. También ponemos las tuercas y tornillos para montar la otra placa encima de esta.


Colocamos la otra placa por encima con el servomotor y el ultrasonido que en realidad no he tenido que cambiarlos de tal y como estaban en la disposición anterior:



Ya solo quedar colocar en la parte superior nuestra controladora de arduino y con el shield de conexiones y terminar de colocar todos los cables en su posición.



Un último apunte es que, como puede verse en la imagen siguiente, si conectamos una pila de 9V para alimentar la controladora de arduino directamente el funcionamiento del coche mejora muchísimo. Con esta versión del coche de 4 motores hemos ido viendo que los 6V que aportan las 4 pilas AA van muy justos para alimentar por un lado a los motores a través de la controladora de motores y por otro para dar corriente a la propia controladora de motores y a la de arduino que a su vez da corriente a los sigue líneas, bluetooth, servomotor, ultrasonido... Esto hace que la corriente en los motores se vea afectada y que giren poco o nada. Lo habíamos resuelto en parte usando pilas recargables y teniéndolas siempre al 100% de carga antes de usarlas, pero otra opción muy interesante es añadir una pila de alimentación para el arduino que permitirá que las pilas AA dediquen todo su voltaje al movimiento de los motores.
Haciendo esto podría quitarse el cable de alimentación que estamos llevando desde la controladora de motores a arduino pero muy importante debe dejarse conectado el cable de conexión de GND entre placas. Esto debe hacerse siempre que se conectan componentes con fuentes de alimentación distintas, las tomas de tierra, GND, de todas ellas deben estar conectadas entre sí.


Espero que os haya resultado interesante esta propuesta de colocación del chasis, como decía hace que los componentes queden más alto pero deja mucho más espacio para todo.

Saludos,

Raúl.

Coche robot con arduino: Sigue líneas de 4 canales (Parte 1 de 2)

 Hola a tod@s.

En este tema vamos a ver como realizar las conexiones de hardware de los diferentes componentes del sigue líneas, la comprobación de que funcionan correctamente y las ideas principales de como programarlo. 

Con el kit de coche robótico tenemos 4 sensores. Cada uno de ellos compuesto por un emisor de LED infrarrojo y un receptor fototransistor. De la web <enlace> : El LED infrarrojo emite luz infrarroja, o sea, de mayor longitud de onda (o menor frecuencia) que la podemos ver los humanos, así que para nosotros es invisible. Si esta luz choca contra una superficie blanca se reflejará y llegará al fototransistor. Si por el contrario golpea en una superficie negra, el material absorberá la mayoría de la luz y no llegará al fotorreceptor. Pero el concepto de la emisión y recepción de señales infrarrojas no es, ni mucho menos trivial, y exige tener nociones de ondas electromagnéticas (energía, frecuencia, longitud, etc...) que sobrepasan nuestro nivel. No obstante para aquellos que querás profundizar más en el tema os recomiendo la excelente descripción de  artículo de Prometec sobre sensores infrarrojos.

Además de los 4 sensores tenemos una placa controladora que permite tres cosas principalmente:

- Reducir los 4x3 = 12 cables que vienen de los 4 sensores a 6 cables, 4 de señal uno de voltaje y otro de ground, ya que unifica todos los voltajes y ground de los sensores.

- Permite regular los sensores utilizando los potenciómetros azules con la rueda blanca que pueden girarse para graduar la sensibilidad de los mismos.

- Permite también comprobar la recepción de señal de cada sensor gracias a los pequeños leds que lleva incorporados la controladora que se encienden o apagan para cada uno de los 4 sensores en función de que mande una señal de 1 o 0.

Y por último el kit viene con el cableado para realizar las conexiones:



Las conexiones son sencillas de realizar simplemente hay que tener cuidado de conectar el pin de OUT, VCC y GND de cada sensor con el correspondiente de IN, VCC y GND en la controladora. En los sensores y en la controladora viene escrito en pequeñito la función de cada PIN.



El siguiente paso será montar la controladora y los sensores en el coche y conectar los 6 pines de la controladora a Arduino. Dos pines para Vcc y GND y los otros 4 para cada una de las señales de los sensores. En mi caso he seguido el siguiente orden:

- Sensor de la derecha exterior PIN 7 de arduino.
- Sensor de la derecha interior PIN 8 de arduino.
- Sensor de la izquierda interior PIN 11 de arduino.
- Sensor de la izquierda exterior PIN 12 de arduino.




En el siguiente vídeo hay más información detallada sobre la controladora de infrarrojos:


Con todo montado en el coche podremos hacer las primeras pruebas utilizando los leds de señal de la controladora sigue líneas. Para ello habría que ir poniendo los sensores encima de una superficie oscura para comprobar que se apagan y encienden las luces de cada sensor. Con el potenciómetro de cada uno de ellos podemos regular los encendidos. Estas comprobaciones también se pueden hacer desde arduino como veremos en el siguiente paso.

Utilizando bitbloq para la programación en la siguiente imagen vemos un programa dedicado solo al sigue líneas por eso no tiene el resto de componentes del coche, aunque al final acabaremos teniendo todos juntos. Lo primero será colocar cada componente de bitbloq en los mismos pines y con un nombre que nos ayude a saber de que sensor se trata. En la siguiente imagen se ve el componente del pin 7 que he llamado: infraref_right_ext.


En la siguiente imagen puede verse un sencillo programa que nos permitirá enviar por puerto serie la información de los sensores previamente guardada en una variable. Como la información de los sensores es numérica y con decimales, previamente la convertimos a entero para que aparezca solo un 0 o un 1 y la convertimos a texto para que en la línea de resultados nos aparezcan 4 dígitos, ceros o unos, indicando el estado de cada sensor. El resultado serán líneas del tipo 0000 si todos los sensores están encima de algo claro o 1111 si están encima de algo oscuro, o 0011 si los dos primeros están sobre algo claro y los dos siguientes sobre algo oscuro.


Una imagen de la línea completa. Haciendo click sobre la imagen puede agrandarse:


Ya por último abriendo el monitor serie podemos comprobar los valores que envían los sensores que coincidirán con el encendido de los leds de la controladora que comentaba antes y que pueden regularse con los potenciómetros de la controladora de sigue líneas.



Una vez comprobado que los sensores funcionan correctamente el siguiente paso será programarlos para que hagan que el coche siga una línea negra. Para ello tendremos que tener en cuenta que tal y como hemos visto en el programa que enviaba los datos al puerto serie, los sensores devuelven un 1 cuando están sobre una línea negra y 0 cuando están sobre algo blanco o más claro.

Teniendo esto en cuenta hay muchas opciones para ir creando el programa y la forma en que el coche sigue la línea y responde a los cambios depende mucho de la eficiencia con la que se programe, de manera que dejo en las siguientes imágenes unas ideas de posibles condicionales a utilizar pero sin mostrar su contenido para que sirvan de idea, pero realmente os invito a ir haciendo vuestras propias pruebas e ir aprendiendo de ellas para ir mejorando el comportamiento del coche a la hora de seguir las líneas. Para ello es muy útil crear un pequeño circuito de pruebas o al menos una recta con un giro para probar el resultado de la programación.




Mucho ánimo con la programación, pruebas y ajustes, según vayamos avanzando en el control sigue líneas nos podremos retos algo más difíciles y circuitos más complejos.

Un saludo,

Raúl.

Coche robot con arduino: Sigue líneas de 4 canales (Parte 2 de 2)

 Hola a tod@s.

En el tema anterior sobre sigue líneas dejaba la siguiente imagen como propuesta de trabajo para programar el sigue líneas. Estaban los diferentes condicionales pero sin desarrollar:



En este tema vamos a ver el código en el interior de cada uno de esos condicionales.

El primero ya lo vimos: Cuando los sensores interiores están devolviendo un 1 (es decir están sobre la línea negra) le damos la orden de avanzar al coche. Realmente nos da igual el valor que tengan los sensores exteriores.

En los dos siguientes condicionales tenemos uno de los dos interiores sobre la línea negra, devolviendo valor 1, y el otro está ya fuera, está sobre algo más claro y por tanto está devolviendo 0. Como en el caso anterior no entramos a valorar lo que están devolviendo los exteriores porque realmente no nos hace falta para la orden que le vamos a dar al coche que es: girar hacia el lado donde está devolviendo 1 ya que se está saliendo por el lado donde está devolviendo 0. Ese giro, para que el coche siga avanzando lo máximo posible, lo hacemos de manera que mantenemos el motor del lado que da 0 encendido (máxima potencia) y el del lado que da 1 le hacemos un encendido de valor analógico 220 (de un máximo de 255) para que vaya algo más lenta esa rueda. Ese valor de 220 hay que ajustarlo para cada coche, incluso puede variar el comportamiento un poco si las pilas están más gastadas.

Importante que cuando hacemos girar al coche guardamos el sentido de giro en una variable que se llama "ultimo_movimiento", que como podéis comprobar es 0 en caso de giro a la derecha y 1 en caso de giro a la izquierda.


Por último entramos en la opción en la que los dos sensores interiores están dando valor 0 porque se han salido de la línea negra. Aquí si consultamos el estado de los sensores exteriores para ver por que lado nos estamos saliendo y procedemos de manera similar a como hemos hecho antes, ralentizando la velocidad de la rueda del lado que de 1 en el sensor exterior. Al igual que antes guardamos en la variable "ultimo_movimiento" el sentido hacia el que le hemos dicho que gire.


La última opción es aquella en la que todos los sensores dan 0, es decir el coche esta por completo fuera de la línea negra, en ese momento es cuando usaremos el valor de la variable "ultimo_movimiento" para indicar al coche hacia donde tiene que girar, que es en el sentido del movimiento que le estábamos indicando ya que lo que ha ocurrido es que aunque se lo hemos indicado no le ha dado tiempo a hacerlo o bien por ir muy rápido o porque el giro era muy brusco. Aquí ya si hacemos un giro total del coche encendiendo una rueda hacia atrás y otra hacia adelante para que no avance mientras no esté de nuevo sobre la línea.


Es muy divertido programar el sigue líneas y comprobaréis que la respuesta del coche depende mucho de como se programe. Las ideas de condicionales que he puesto son solo una de las muchas posibilidades para programarlo, seguro que podréis ir creando las vuestras propias.

Por último recordar que es muy importante que comprobéis que los sensores funcionan bien antes de probar la programación del sigue líneas y así podéis trabajar con más tranquilidad y confianza la programación.

Un saludo,

Raúl.

Solución del "Callejón sin salida" en el modo MAZE, laberinto

 Hola a tod@s.

En este tema vamos a ver una posible solución al problema del callejón sin salida cuando nuestro coche robot está intentando salir de un laberinto.

Hemos llamado callejón sin salida a una situación en la que el coche robot encuentra una pared de frente (ultrasonido detecta algo a menos de 20cm) y al mirar a los lados las dos paredes, derecha e izquierda, están también a menos de 20cm. En ese caso el planteamiento ha sido hacer retroceder al coche para salir del callejón parando cada cierta distancia para ver si ya hay salida hacia alguno de los lados.

Para poder programarlo primero he creado una función que realiza toda la acción de obtener la distancia de las paredes a la izquierda y a la derecha "comparar_distancias". Esta función empieza conectando el servo (en mi caso el componente servomotor se llama así en la programación "servo" y está conectado al pin 2 de arduino), mirando hacia los lados y guardando el valor en las respectivas variables para finalmente desconectar el servo.

Trabajar con esta funciona simplificará bastante la programación después:


Entrando ya en la programación la primera orden (mediante otra función) será que el coche avance y si encuentra un obstáculo delante (distancia <= 20) pare y ejecute la función "comparar_distancias" mediante la cual obtendremos un valor para las variables dist_der y dist_izq. Si ambas distancias son < que 20 entramos en un mientras del que no saldremos hasta que alguna de las dos sea igual o mayor que 20. En ese mientras iremos haciendo retroceder al coche (500ms) y ejecutando la función comparar_distancias para ir obteniendo nuevos valor de dist_der y dist_izq.

Una vez el coche sale del callejón y alguno de los dos valores dist_der y dist_izq es > = que 20 el programa continua con la programación clásica del modo MAZE, laberinto, en el que comprobamos que lado tiene un valor mayor para que el coche gire en esa dirección.





Como siempre en programación, existen más formas de programar la solución al callejón sin salida incluso los bloques del ejemplo son adaptables y mejorables. Os animo a probar vuestras propias ideas.

Un saludo,
Raúl.

Coche robot arduino. Estudio sobre componentes y materiales utilizados

Hola a tod@s.

En este tema vamos a proponer un trabajo de investigación sobre los diferentes componentes y materiales de los coches robot.

El trabajo va a consistir en elegir 2 componentes y 2 materiales del coche y realizar una investigación que dé respuesta a las preguntas que aparecen en la parte derecha.

COMPONENTES (Elegir 2 de los x componentes)

Apartados a investigar sobre los componentes

Motores eléctricos


Sensor sigue líneas


Controladora de motores L298N


Ultrasonido


Servo motor de giro


Bluetooth


Receptor infrarrojo / Mando a distancia


Fuentes de alimentación del coche

Esquema de conexión.

Funcionamiento.

Partes que lo componen a nivel interno.

Diferentes opciones y alternativas al componente elegido.


MATERIALES (Elegir 2 de los x componentes)

Apartados a investigar sobre los materiales

Acrílico


Acero


Estaño


Cobre


PVC


Caucho (neumáticos)


Materiales de las PCB (placas de circuito impreso): PRFV (plástico o poliéster reforzado con fibra de vidrio), resina epoxi


Material de las baterías


Materiales de los infrarrojos (estudiar esta opción cuenta cómo hacer dos elementos)


Componentes internos de un circuito electrónico (estudiar esta opción cuenta cómo hacer dos elementos)


Cualquier otro material que forme parte de los componentes del coche robot

Características del material.

¿Por qué es un material idóneo para usarse en ese componente?

Proceso de obtención y/o fabricación ¿Es posible reciclarlo?

Mecanizado o como se trata el material original para construir el componente del coche robot.

¿Qué otras alternativas a este material existen para la misma función?

¿Qué otros usos pueden dársele a este material?


En el siguiente enlace tenéis las tablas en un documento de texto que puede servit de base para comenzar a trabajar las opciones que elijáis.

https://docs.google.com/document/d/14t-DUWKWEeLX8a3KlNWxDQRFUXT7r3vv7AHwQcchE8E/edit?usp=sharing

La entrega se realizará mediante un documento de texto o presentación y una breve exposición en clase, por grupos, de los resultados de las diferentes investigaciones.

La evaluación se realizará mediante una rúbrica para el escrito y otra para la presentación que pondré en classroom en el momento del envío de la actividad.

Un saludo,

Raúl.

P.D. A continuación tenéis los enlaces necesarios para obtener algo de información sobre los kits y que hemos comprado y sus componentes:

Diferentes propuestas de compra que planteamos:

OPCIÓN 1: Coche robot con 3 ruedas (dos con motor y una giratoria) + módulo bluetooth. 13,79€ + 3,02€ de bluetooth

Coche Robot:
Módulo Bluetooth:

OPCIÓN 2: Coche robot con 4 ruedas (que además lleva infrarrojos de sigue líneas) + módulo bluetooth.  19.12€ + 3,02€  de bluetooth

Coche Robot. Seleccionado la opción de 4 ruedas, que lleva también infrarrojos de sigue líneas:

OPCIÓN 3: Coche robot con 3 ruedas (dos con motor y una giratoria) con mando a distancia por infrarrojos. 18,15€


OPCIÓN 4: Coche robot con 4 ruedas (que además lleva infrarrojos de sigue líneas) con mando a distancia por infrarrojos. 24,44€



Litados de materiales que componen cada opción:


OPCIONES 1 Y 2:

Crisol de grafito mini horno de oro de la antorcha de fusión del metal:
. 4 x motorreductor
. 4 x neumático
4 x Motor de fijación
2 x Chasis de coche (material acrílico)
1 x L298N controlador de motor
. 1 x placa controladora UNO328
. 1 x para la placa del sensor
1 x kit
. 1 x engranaje de dirección
. 1 x módulo ultrasónico
. 1 x módulo de seguimiento
1 x cable USB
. 1 x dibujos de montaje en 3D
Tuerca de tornillo de varios pilares




OPCIONES 3 Y 4:

Lista de componentes: 
1 Uds R3 Junta
1 Uds cable de USB
1 Uds V5.0 Placa de extensión 
1 Uds L298N tarjeta de control para motor 
1 Uds Sensor ultrasónico
1 Uds ultrasónico titular
1 Uds Servo motor
Placa fija de servomotor 1 Uds
2 uds Motor

2 uds rueda
1 Uds remoto

1 Uds Módulo receptor de infrarrojos

1 Uds celular caja
1 Uds placas de acrílico

2 tornillos y tuercas para cada pieza
1 Uds 20pin F-F dupont de alambre
1 Uds destornillador

2 uds Bunding cinturón

1 Uds CD con el tutorial


 Imagen OPCIÓN 3:



 Imagen OPCIÓN 4:




A todos estos componentes habría que sumarle los que hemos aportado nosotros: Cableado, estaño para las soldaduras y baterías para alimentar a los motores y componentes electrónicos.



Sobre el módulo bluetooth:


Nota: Es HC-06 módulo Bluetooth

 

Permite que tu dispositivo envíe o reciba los datos TTL a través de la tecnología Bluetooth sin conectar un cable serial a tu ordenador.
  • Funciona con cualquier adaptador USB Bluetooth.
  • Tasa de baudios predeterminada: 9600,8,1,n.
  • Antena integrada.
  • Cobertura de hasta 30 pies.
  • Versión Bluetooth: V2.0 + EDR
  • Voltaje de funcionamiento: 3,3 V
  • Tasa de baudios predeterminada: 9600,8,1,n.
  • Cobertura de la señal: 30 pies
  • Tamaño del artículo: 4,3*1,6*0,7 cm
  • Peso del artículo: 3g
  • Tamaño del paquete: 9*3*1cm
  • Peso del paquete: 8g
  • Serie comercial: serie de módulos Bluetooth
  • Con luz indicadora de LED, utiliza un chip de regulación de 150mA y 3,3 V.
  • Con pie VCC.GND.TXD.RXD para el Bluetooth
  • Con el botón "Re-seach" (ON/OFF/WAKE pie para él, MCU externo outinput "High level" puede controlar el módulo para volver a coser)
  • Compatible con módulo maestro bluetooth ". Módulo esclavo" o módulo maestro-esclavo (todo).
  • Voltaje de entrada: 3,3 ~ 6V
  • Tamaño: 1,55 cm * 3,98 cm

Nota:

Fuente de alimentación de entrada 3,3 ~ 6V, prohibido más de 7V
No "evita automáticamente que la fuente de alimentación peversing func", así que conecta la fuente de alimentación correctamente 
Recomendamos instalar "Módulo maestro Bluetooth" 
El "estado" es el pie de salida para el estado del LED, Cuando bluetooth "no está conectado", salida "Pulse"; Cuando bluetooth "conectado", salida "alto nivel", podemos determinar los estados de "MCU" 
Si solo es la placa, No hay ninguna "función Bluetooth"




Control por voz del coche robot

 Hola a tod@s.

En este tema vamos a ver como controlar mediante la voz el coche robot. Una función que es realmente espectacular y que gracias a la tecnología existente es bastante sencilla de programar.

El control lo implementaremos mediante AppInventor y sus funciones de reconocimiento de voz.

Recordar que si no tenéis ya iniciada la aplicación de control del coche mediante bluetooth podéis usar este archivo .aia como base. En él encontrareis ya incluido el componente bluetooth y el selector de lista de conectar y botón de desconectar: 

Archivo .aia base de conexión bluetooth: https://drive.google.com/file/d/1oqlpDn9KrgrQOGGfGlU5ku2eHjoRjf1L/view?usp=sharing

Por un lado en la parte de diseño, dentro del apartado de Medios, tendremos que añadir la función "ReconocimientoDeVoz". Añadiremos también un botón que servirá para activar la captura de voz. Esta es la opción más sencilla pero también podría programarse para que se active al agitar el dispositivo o al acercarlo al oido.



En la parte de bloques la programación es muy sencilla. Por un lado al pulsar el botón llamamos a ObtenerTexto del reconocimiento de voz. Esta funciona está dentro de la herramienta de reconocimiento de voz al igual que el bloque de "DepuésDeObtenerTexto" que usaremos también.



Un ejemplo de como podrían ser los bloques de programación pueden verse en la siguiente imagen. En función de las palabras que haya captado el dispositivo enviará por bluetooth las letras de control del coche a arduino.


El siguiente paso que daremos será el control del coche por voz mediante Inteligencia Artificial, de manera que no será necesario decir exactamente las palabras que tenga prefijadas App Inventor para controlar el coche. Crearemos etiquetas con diferentes acciones, que alimentaremos con un modelo de IA generado en Machine Learning for Kids, de manera que el dispositivo será capaz de asociar la información recibida por voz a una etiqueta/acción aunque el mensaje recibido no coincida con los valores de ejemplo.

En caso de que la acción realizada no sea la que esperábamos podremos realimentar el modelo desde la propia App para que pueda ir aprendiendo y mejorando sus respuestas.

Saludos,

Raúl.


Aplicación de detección de sentimientos mediante Inteligencia Artificial (parte 1/2)

Hola a tod@s.

En este tema dejaré los vídeos del curso de Inteligencia Artificial en AppInventor mediante Machine Learning for Kids (ML4K).

Por un lado un vídeo introductorio: La inteligencia artificial creará 58 millones de puestos de trabajo.
https://www.youtube.com/watch?v=ZgKAII5UIxg&t=2s

Y los 12 enlaces a vídeos cortos explicando cada una de las partes del primer proyecto que vamos a hacer: una sencilla aplicación que utilizará la IA para detectar si las frases que escribimos o decimos trasmiten sentimientos positivos o negativos.


Los 5 primeros vídeos que explican la programación de la aplicación de manera clásica, usando listas.

Desarrollo de app: EPCIA19 - App Inventor - detector sentimientos.

Vídeo 1: https://www.youtube.com/watch?v=Qp3VYEq1Acs&t=1s

Enlace a los recursos con las imágenes para la aplicación. (solo accesible desde las cuentas de gsuite) https://drive.google.com/drive/folders/1TWL7Tv4l7dUfSNt8ylmWUa9ckG1PIXi7?usp=sharing

Vídeo 2: https://www.youtube.com/watch?v=sL01f4lfmVI

Vídeo 3: https://www.youtube.com/watch?v=cyX439RR6s4

Vídeo 4: https://www.youtube.com/watch?v=HFqNOdpXvqE

Vídeo 5: https://www.youtube.com/watch?v=1DJIEi4nzAU


Los vídeos 6 a 9 que explican como realizar el modelo en ML4K:

Vídeo 6: https://www.youtube.com/watch?v=VNe-QMBsY4o&t=1s

Vídeo 7: https://www.youtube.com/watch?v=tKMwpWMg8tM

Vídeo 8: https://www.youtube.com/watch?v=X_hg-7CRrnI&t=1s

Vídeo 9: https://www.youtube.com/watch?v=bvSPcqLOmnE&t=2s


Los tres últimos vídeos que explican como añadir la extensión de ML4K en AppInventor y utilizar sus bloques para incorporar la IA.

Vídeo 10: https://www.youtube.com/watch?v=qhL7rqGejSM

Vídeo 11: https://www.youtube.com/watch?v=KzC6n3Yu4ks

Vídeo 12: https://www.youtube.com/watch?v=qoY-fhNGXHY&t=1s


Para poder trabajar con https://machinelearningforkids.co.uk/ crearemos cuentas de alumnos que compartiremos entre varios alumnos. Los nombres de usuario y las contraseñas de acceso estarán en la hoja de cálculo de notas que usamos para las evaluaciones.

También usaremos una cuenta de App Inventor https://appinventor.mit.edu/ que como sabéis requiere usar una cuenta de google para registrarse. En este caso el registro será individual.

Para compartir los trabajos crearemos más adelante otras tareas asociadas a esta actividad.

Espero que os resulte interesante y que aprendáis mucho con este proyecto.

Saludos,
Raúl.

P.D. Pongo aquí como ejemplo el enlace al vídeo de como me quedó la aplicación una vez terminada: https://drive.google.com/file/d/13-CpCQMwr2kJnwxyYE83HkxuJFZ8yTL6/view?usp=sharing

Otros enlaces:
Este vídeo que hace un repaso general a algunas de las herramientas que vamos a utilizar: La generalización en la Inteligencia Artificial - EPCIA.
https://www.youtube.com/watch?v=_hYGRBkQWsQ&t=4s

Dejo también aquí el enlace al documento para quien quiera profundizar algo más: Envisioning AI for K-12: What Should Every Child Know about AI?
https://ojs.aaai.org//index.php/AAAI/article/view/5053
Web: https://ai4k12.org/

Aplicación de detección de sentimientos mediante Inteligencia Artificial (parte 2/2)

 Hola a tod@s.


En este tema vamos a ver como añadir la posibilidad de introducir el texto mediante voz en nuestra aplicación y también como poder realimentar el modelo de Machine Learning for Kids (ML4K) enviando información desde App Inventor a ML4K para que las incorpore a las etiquetas.

Lo primero que tendremos que hacer en la parte de Diseño de AppInventor es añadir el componente "ReconocimientoDeVoz" que se encuentra en el apartado de Medios. También añadiremos tres nuevos botones. Uno para poder generar "TEXTO MEDIANTE VOZ" y otros dos para "AÑADIR A POSITIVAS" y "AÑADIR A NEGATIVAS".


En el apartado de bloques programaremos tanto la entrada de texto por voz como la realimentación del modelo de manera sencilla usando bloques de los componentes "ReconocimientoDeVoz" y "ML4KComponent".

En la siguiente imagen pueden verse en la parte superior los dos bloques correspondientes al reconocimiento de voz, el primero para lanzar el reconocimiento al pulsar el botón y el segundo para poner el texto en la etiqueta una vez que lo ha obtenido.

Los otros dos bloques son los que realizan la función de realimentar el modelo en la etiqueta de positivos o negativos en función del botón que se haya pulsado.


Con esto ya tendríamos completada esta primera parte de aprender a utilizar ML4K en AppInventor y utilizar la función de reconocimiento de voz para enviar la información que después trataremos con la IA.

Un saludo,

Raúl.

Control por voz del coche robot mediante IA

Hola a tod@s.

En este tema vamos a ver todos los pasos a seguir para añadir la Inteligencia Artificial al control de VOZ del coche robot.

Antes de hacer esta tarea es conveniente haber hecho las tareas de creación de una app de detección de sentimientos con IA. Entradas:

https://iespalti.blogspot.com/2021/04/aplicacion-de-deteccion-de-sentimientos_8.html

https://iespalti.blogspot.com/2021/04/aplicacion-de-deteccion-de-sentimientos.html

Y haber añadido el control de voz con programación clásica, sin IA:

https://iespalti.blogspot.com/2021/02/control-por-voz-del-coche-robot.html

Con todo lo anterior bien trabajado no tendremos problema en añadir el control por voz añadiendo la opción de que las frases sean analizadas mediante la IA de Machine Learning for Kids, ML4K, para detectar la instrucción que el usuario quiere mandar al coche.

Lo primero que haremos es entrar a ML4K https://machinelearningforkids.co.uk/ y crear un nuevo modelo o utilizar el modelo compartido (puede verse que es compartido por el pequeño icono de la parte derecha) de la imagen siguiente. 

Este modelo tiene 2 etiquetas: "adelante" y "parar" que permitirán a ML4K averiguar cuál de estas dos instrucciones se le ha dado al coche en base a las palabras con las que alimentemos el modelo. Por ejemplo:


Tal y como hacíamos con el detector de sentimientos, el siguiente paso será conseguir la URL del modelo para después añadirla una extensión en App Inventor:


El app inventor he optado por añadir un nuevo botón "VOZ con IA" manteniendo el anterior botón de VOZ que no usará IA y así poder comprobar la diferencia de comportamiento del coche con una opción u otra:


Añadimos la extensión de ML4K utilizando la URL que hemos copiado antes:


Y algo importante es que, como vamos a usar dos formas diferentes de reconocer la voz, añadimos otro elemento de reconocimiento de voz "ReconocimientoDeVoz2".


En la parte de bloques añadiremos estos tres bloques, para crearlos podremos utilizar bastantes de los bloques ya existentes para el reconocimiento de voz sin IA. En la siguiente imagen vemos todos los bloques juntos y después entraremos en detalle de cada uno en imágenes ampliadas.


El primer bloque "cuando VOZ_CON_IA.Clic" ejecuta dos acciones: Lanzar el reconocimiento de voz, en este caso "ReconocimientoDeVoz2" y por otro lado Entrenar el modelo por si el modelo se ha borrado de ML4K.

El siguiente bloque son las acciones a realizar tras el obtener el texto por voz. Como vemos esta primera parte es similar a la ya vista de control por voz del coche. Simplemente comprobamos si el resultado coincide exactamente con algunas palabras y "si no, si" coincide con otras. 
Un par de detalles es que solo hace esto si el bluetooth está conectado ya que si no lo está y enviamos algún mensaje tendremos un mensaje de error. Y por otro lado pasamos la variable resultado a minúsculas antes de compararla y luego ponemos todas las palabras en minúsculas para evitar que por algún motivo la función de reconocimiento de voz añada alguna mayúscula que evita que coincida el resultado.


Como decía, hasta aquí la programación clásica, es en la parte final donde entrará la parte de IA. Como podemos ver en el bloque "DespuésDeObtenerTexto", si los comparadores han llegado al final sin haber encontrado ninguna coincidencia exacta con las palabras anteriores llegamos a un "sino" que envía el resultado del reconocimiento de voz a clasificar por parte de la ML4K.

Y un último bloque de ML4K "GotClassification" en el que si la confianza es mayor del 20% en base a la clasificación envía por bluetooth una letra A si es "adelante" la etiqueta o una letra B si es "parar".



Como veis no es muy difícil de programar y el resultado es realmente espectacular, ya que con esos sencillos bloques habremos incorporado el trabajo de la red neuronal creada en ML4K a la programación de nuestra aplicación. Añadiendo nuevas palabras a las etiquetas o incluso diferentes etiquetas podremos incorporar más instrucciones al coche robot que sumadas a los otros modos de control: botones, sigue líneas... dan como resultado una aplicación realmente completa de control.

Un saludo,

Raúl.