martes, 28 de noviembre de 2017

Coche teledirigido con fpv - nRF24L01 - Arduino

Página principal



Coche teledirigido con fpv 
nRF24L01
Arduino

xsetaseta@gmail.com

En este montaje mezclo varios montajes anteriores, Mando a distancia de 4 reles (relay)Arduino-Android-Bluetooth-hc05-Manejando un coche-mediante nRF24 .
Además he incorporado un móvil android a modo de fpv, utilizando la aplicación  .IP Webcam ( Pavel Khlebovich ).
Con todo lo anterior conseguimos un coche con mando a distancia que además podemos ver en fpv en nuestro navegador.
Para el control de los motores utilizamos relés. Tienen pros y contras, la mayor ventaja es poder controlar motores de hasta 220V, y el aislamiento eléctrico. Las contras son varias, la principal es el desgaste del propio relé al utilizarlo muchas veces, además de no poder controlar la velocidad de los motores.


Emisor.


Montaje del emisor




Montaje del receptor



Conexionado de los motores.


Conjunto montado.


Como no tengo ninguna cámara para hacer fpv, una forma fácil de hacer fpv es utilizar un móvil a modo de cámara y ver la imagen en el ordenador.
Existen bastantes programas para transformar un móvil en una webcam IP , el que me ha funcionado mejor es .IP Webcam ( Pavel Khlebovich ).
Tiene bastantes opciones que se pueden configurar, además hasta puede tomar fotos y videos. Existe tambien la versión de pago, pero para lo que hemos hecho nos sirve la versión gratuita.

Visión de la cámara IP.




VIDEO DE FUNCIONAMIENTO

Programa

Como el nRF24  funciona a 2.4GHz y la red Wifi también funciona a esa frecuencia, puede ocurrir que esporádicamente  se puede perder el control.
Ante este problema y para evitar posibles accidente, el coche se queda parado si no recibe señal después de 100mS desde la última orden.
Como se puede ver en la imagen utilizo doble fuente de alimentación, para el arduino y para los motores. Se puede usar una sola, cada uno que pruebe.

Como se puede ver en las imágenes  existen dos diodos, y alguno dirá para que sirven.
El nRF24 puede llegar a consumir hasta 28mA, está dentro del rango que proporciona el arduino en el ping 3.3V, pero si colocamos un nRF24 con antena que proporciona mas alcance, el consumo aumenta y puede provocar el mal funcionamiento del montaje.
Existen dos opciones, utilizar un alimentador externo de 3.3V, o emplear un viejo truco de electrónicos, el utilizar la caída de tensión (0.7V) de los diodos de silicio. He empleado dos diodos en serie que producen una caída de tensión de 1,4V que restados a los 5V del arduino nos proporciona una tensión de 3.6V con la que podemos alimentar el módulo. Normalmente este tipo de módulos tiene una cierta tolerancia en cuanto a la alimentación, el que no se quiera arriesgar que utilice otro diodo en serie, bajando de esta forma la alimentación a 2.9V. He colocado un condensador en los 3.6V para aplanar la alimentación.
Recordar que debéis colocar un condensador de 16uF o mas en el nRF24, en muchos módulos falla por ese motivo.

El circuito emisor se puede alimentar a baterías de 3.6V. Entonces  debéis alimentar directamente el módulo nRF24 a los 3.6V.
El módulo nRF24 funciona con tensiones entre 2V y 3.6V.

Espero que le guste a alguien este montaje, o que pueda proporcionar ideas.

Saludos.
Juan Galaz


Bibliografía:

Mando a distancia de 4 reles (relay)
Arduino-Android-Bluetooth-hc05-Manejando un coche-mediante nRF24


jueves, 9 de noviembre de 2017

Creador de programas para Arduino con interface gráfica hecha con Gambas

Página principal


Creador de programas
para
Arduino
con interface gráfica hecha
con
 Gambas

xsetaseta@gmail.com


En un anterior artículo había descubierto Visualino , una curiosa aplicación para hacer programas de arduino en forma gráfica. En este artículo había realizado un semáforo, y la verdad me gusto hacerlo de esta manera, gráficamente.
Picado por la curiosidad, y preguntándome si yo podía hacer este tipo de programa, me puse manos a la obra.
En un principio pensé hacerlo en C, pero como tenía Gambas una especie de VB para Linux elegí la forma fácil, realizarlo en el Basic de Gambas.
Se realizo mediante Gambas 3.5.4  bajo Debian 8 ,no he probado si funciona en otras versiones.
Fueron días y días de pruebas, de creación de bloques enlazados. Tuve que rehacer completamente el programa por problemas de diseño.
Como conclusión puedo decir que me quedó un programa digno, sin mas ambiciones.
Se podría haber añadido muchas mas funciones y librerías, pero lo he dejado en las funciones básicas.
Si queremos añadir alguna orden mas, podemos emplear el texto literal, que nos dará la posibilidad de hacer lo que queramos.
Como prueba práctica he realizado un semáforo, se puede ver el vídeo de su creación.
Espero que le guste a alguien y que le de ideas para hacer otros programas.
Mi idea es realizar el programa en C con las librerías wxwidgets , pero ahora tengo que recuperarme de este complicado programa.
El programa está limitado a 100 bloques, por lo que se puede quedar un poco corto para algunos programas. El que quiera puede aumentarlo todo lo que quiera cambiando las líneas de FMain.class  donde figuran la creación del numero de bloques:
Public Const MaxBloque As Integer = 99
Public Braiz[100] As Integer
.........
No arrastrar mas de un bloque sobre otro, aún no está implementado y produce errores.


Interface gráfico


Comandos posibles




VIDEO


 En el fichero del programa se encuentra el fichero fuente, la versión binaria ejecutable, y el paquete DEB por si quieres instalarlo.
Programa


Saludos.
Juan Galaz