En este blog hablaremos de proyectos relacionados con la electrónica, electricidad, impresoras 3d, CNC, y en general todo lo que tenga que ver con arduino y otros mictrocontroladores.
Email de contacto : ivan.wmp1@gmail.com
En esta ocasión vamos a aprender como empezar a realizar nuestros programas, para ello cuando abrimos nuestro ide de arduino podemos observar que ya tenemos unas lineas escritas, veamos el ejemplo:
Void setup(){
}
Void loop{
}
Que nos quieren decir estas lineas de código?
Lo primero que debemos saber es que cuando nos encontramos doble barra "//" delante de algo escrito quiere decir que es un comentario y esto no afectara a nuestro código.
Antes del "void setup()" declaramos todas las variables que usaremos en nuestro programa, veamos como se declararía una variable que usaremos para declarar el pin 3 de arruinó:
//declara remos una variable entera a la cual le daremos el nombre de "pin3"
//le asignamos el valor 3
Int pin3 =3;
setup()
La función setup() se invoca una sola vez cuando el programa empieza. Se utiliza para inicializar los modos de trabajo de los pins (si son entradas o salidas), o el puerto serie. Debe ser incluido en un programa aunque no haya declaración que ejecutar. Así mismo se puede utilizar para establecer el estado inicial de las salidas de la placa.
void setup()
{
pinMode(pin, OUTPUT); // configura el 'pin' como salida
digitalWrite(pin, HIGH); // pone el ‘pin’ en estado HIGH
}
loop()
Después de llamar a setup(), la función loop() hace precisamente lo que sugiere su nombre, se ejecuta de forma cíclica, lo que posibilita que el programa esté respondiendo continuamente ante los eventos que se produzcan en la placa.
void loop()
{
digitalWrite(pin, HIGH); // pone en uno (on, 5v) el 'pin'
delay(1000); // espera un segundo (1000 ms)
digitalWrite(pin, LOW); // pone en cero (off, 0v.) el 'pin'
delay(1000);
}
Hablemos de conexiones de entradas(normalmente pulsadores):
A la hora de hacer una conexión de una entrada a aduino tenemos tres posibilidades.
Las dos primeras es a nivel de cableado de los pulsadores (pull-up y pull-down) con estas dos opciones nos indica como afecta la pulsación, es decir con la opción pull-down siempre nos llegara un nivel bajo al pin de arruinó asta el momento que pulsemos el pulsador, en ese momento tendremos nivel alto en el pin (5v), veamos los esquemas de conexiones:
Hola en esta ocasión vamos a hablar de proyectos en el automóvil. Este es un proyecto que hice hace tiempo y quería compartir.
Se trata de poder abrir y cerrar las ventanillas de nuestro vehículo desde cualquier sitio gracias al mando del cierre centralizado. Este no es un proyecto que pueda servir para todo el mundo ya que cada coche es un mundo pero puede servir de idea para poder adaptarlo a cualquier vehículo.
En este caso el proyecto se realizara en un Peugeot 106, por tanto para la mayoría de los modelos antiguos de Peugeot y Citroen se puede realizar (siempre que este tenga ventanillas automáticas).
El peugeot 106 tiene cierre centralizado pero no tenia el mando para abrir las puertas a distancia asi que aproveche para ponerle también el mando para abrir y cerrar las puertas.
La siguiente imagen es el modulo que he usado para este proyecto. Con el botón "A" abriremos y cerraremos las puertas, y con el botón "B" abriremos y cerraremos las ventanillas. Este es el enlace de compra del modulo.
En mi caso uso este modulo porque en mi vehículo hay dos cables los cuales al unirlos una vez abren las cerraduras y si lo volvemos a unir cierran las cerraduras, por lo cual usaremos el rele del canal "A" para unir estos dos cables (para otros modelos tendríamos que investigar que cables son los que hay que unir, este ejemplo funciona tanto para Peugeot 106 como para Citroen Saxo)
En esta imagen muestro los dos cables que se deben unir para abrir y cerrar:
Estos cables se encuentran en la puerta del conductor debajo de la moqueta justo donde se abre el capo. Debemos localizar los cables azul con número 6851 y el gris con numero 6561. Lo que debemos hacer es pelarlos un poco ambos y probar a unirlos ambos y veremos como las puertas abren y cierran. Una vez comprobado esto haremos un empalme a ambos cables y llevaremos estos dos cables asta el modulo del cierre centralizado
Esquema de conexiones para modulo de cierre centalizado:
Una vez hecha esta instalación podemos comprobar como al presionar el boton "A" en el mando, abrirán y cerrarán las cerraduras. Asta aquí ya tenemos una de las partes del proyecto realizadas.
Control de ventanillas:
Ahora nos meteremos con el apartado de las ventanillas para las cuales usaremos Arduino y un modulo de cuatro Reles.
Lo primero decir que estas dos partes son independientes, se puede perfectamente prescindir de la parte del cierre centralizado y dejar solo la opción del botón "B" para abrir y cerrar ventanillas, dicho esto comenzamos con los materiales .
Listado de materiales:
-Cualquier arduino: En mi caso yo usare un Arduino Nano por su menor tamaño. No usare el arduino Mini porque en un futuro quiero añadirle al proyecto un display lcd táctil para controlar otros aspectos del vehículo, así como poder visualizar diferentes temperaturas etc..(pero eso lo dejaremos para próximos proyectos :))
Lo primero que vemos a la hora de desmontar los pulsadores de las ventanillas, son dos interruptores con dos posiciones cada uno, con ellos originalmente se puede subir y bajar cada ventanilla por separado.
Investiguemos un poco como funcionan estos interruptores:
Nos encontramos con unos interruptores los cuales tienen por su parte posterior 5 pines, pero ¿como funciona esto internamente y a nivel externo para poder elevar y bajar las ventanillas?.
Pues simplemente en su interior se encuentra un inversor de giro de un motor DC:
Nos damos cuenta que internamente cada pulsador tiene dos conmutadores dentro. Esto nos hace pensar que podemos sustituir cada interruptor por dos reles, precisamente esto es lo que haremos para ello nos servirá el modulo de 4 reles.
Para esto cogeremos los conectores que van a los interruptores y conectaremos al modulo de reles de la siguiente forma:
Estos reles irán comandados directamente desde arduino para ello os dejo el esquema general de como serian todas las conexiones hacia arduino:
En este esquema podemos comprobar como ademas de usar la apertura por control remoto también usaremos los botones originales para bajar y subir de forma manual. Estos botones activaran directamente las entradas de los reles.
NOTA: LOS DIODOS SIRVEN CUALQUIERA Y EN EL ESQUEMA ESTÁN PUESTOS DEL REVÉS (DAR LA VUELTA)
VAMOS A VER COMO SE PROGRAMA :)
Lo único que debemos de tener en cuenta para modificar el código es contar el tiempo en milisegundos que tarda nuestras ventanillas tanto en bajar como en subir y apuntarlo para posteriormente codificarlo en nuestro programa.
Buenas señores/as, en este proyecto os voy a explicar como seguir el procedimiento para conseguir controlar una CNC sin necesidad de tener un ordenador a mano y poder así realizar cortes por medio del fichero previamente guardado en una tarjeta sd. Este no es un tutorial para explicar como montar una CNC casera, eso lo dejaremos para otro proyecto, simplemente aquí aprenderemos a crear un control para esta.
Lo primero que necesitamos es tener una máquina CNC ya terminada controlada por medio de un controlador Arduino con el firmware GRBL. Usaremos los pines 0 y 1 de comunicación serial para conectarlo con otro arduino el cual controlara tanto el display LCD como el lector de tarjetas y el mando a distancia.
Lista de materiales:
A continuación expondré una lista de los diferentes materiales que usaremos para poder realizar nuestro proyecto ademas de un enlace de compra y como se conecta a nuestro arduino.
-Arduino, en este caso podemos elegir el modelo que más nos guste siempre que cuente con un puerto de comunicación serie. Los mejores para utilizar en nuestro proyecto son tanto el arduino UNO como el Nano. Enlace de compra amazon Enlace de compra aliexpress
-Mando a distancia con sensor:
Os dejo un enlace de un mando igual al mio ya que si usáis un mando diferente los códigos que usa el mando serán diferentes por tanto si cambiáis de mando se deberá modificar el código de arduino. Os dejo un enlace con el mando igual al mio y un enlace del sensor infrarrojo. Enlace Mando a distancia (enlace nuevo) Enlace sensor infrarrojo arduino
Por ahora no he encontrado este producto con un mando igual en Amazon pero os dejo un enlace que incluye mando y sensor Enlace de otra tienda (enlace renovado) (La salida esta conectada al pin 3 de arduino, vcc=5v )
-Pantalla lcd I2c:(Se debe conocer la dirección de nuestro LCD para la hora de cargar el programa)
Se conectan los pines de SDA y SCL a los pines respectivos de arduino. Enlace de Aliexpress Enlace de amazon
¿Que funciones le daremos a las teclas de nuestro mando a distancia?
Programas necesarios para compilar:
Lo primero que necesitamos tener el IDE de arduino para poder compilar el programa. En este caso yo estoy usando la versión (1.6.5-r5) la cual podéis descargar aquí. Con otras versiones posteriores me da errores por eso es mejor utilizar esta versión.
Librerías que debemos incluir:
En este programa necesitamos incluir una serie de librerias para que compile perfectamente, para ello deberemos descargar estas librerias e incluirlas dentro de la siguiente ruta:
\Documents\Arduino\libraries
Programa para arduino:
En el siguiente enlace dejare el programa que deberemos introducir en el arduino el cual controlara la pantalla el lector SD y el mando a distancia (versión beta).
Es recomendable sacar un botón de reset de arduino fuera de la caja por si alguna vez necesitamos reiniciar por que se quede trabado (por ahora no me a pasad, solo cuando acaba de fresar un archivo se necesita hacer reset para volver a cortar otro archivo)
El programa se puede cargar a arduino tal cual esta siempre que la dirección de nuestro display lcd (pantalla) sea igual que la que yo e usado, en este caso mi dirección es "0x27".
Para cambiar esto abrimos el archivo y nos vamos a la siguiente linea:
En caso de que en nuestro display no se vea nada deberemos averiguar la dirección del nuestro y cambiar "0x27" por el vuestro.
Todo lo demás se puede quedar tal cual esta en el programa.
Este programa esta funcional tal cual se encuentra en este momento sin embargo tiene algunas fallas sin importancia las cuales iré solucionando en posteriores versiones.
Importante: hay que tener en cuenta que a la hora de transferir el programa a Arduino debemos desconectar los pines de transmisión y recepción de arduino sino nos dará un error de conexión.
Esquema del conexionado completo:
A continuación os mostrare un esquema completo de todo el cableado que debemos realizar.
lo que debemos de tener en cuenta es que para enlazar nuestro arduino con el display y el lector al arduino con el GRBL cargado debemos cruzar los cables de transmisión y recepción, ademas de unir ambos pines de gnd y alimentar los dos arduinos con la misma fuente de alimentación.
En mi caso he fabricado una caja donde alojar el arduino con nuestro programa el display lcd, el lector de tarjetas y el sensor infrarrojos que mas abajo mostrare.
Esquemático realizado con Fritzing:
Aquí os dejo un enlace del fichero de fritzing por si queréis analizarlo al detalle.
Resultado del montaje:
En esta imagen podemos observar el resultado final montando todos los elementos en una caja de las típicas de electricidad. Además he provisto dos botones para pausar y reanudar el fresado. Estos botones irán conectados directamente a los pines dde Hold y Resumen de la shield CNC.
En esta imagen se puede observar el menú principal de movimiento manual de la máquina, en el cual se muestra en el display las coordenadas donde se encuentra la CNC. El "X1" que hay delante de las coordenadas significa que la máquina avanza de 1 en 1 milimetros su posición cuando pulsamos las teclas de movimientos ( esto se puede modificar pulsando las teclas 1-"1mm" 4-"10mm" 7-"100mm")
En esta imagen podemos observar el menú de búsqueda de ficheros a través de nuestra tarjeta SD pulsando la tecla menú del mando y desplazándonos entre los ficheros con las teclas de dirección del mando.
Aquí OS dejo una imagen de la shield CNC de mi máquina la cual en este caso funciona con un arruinó nano:
Este es un vídeo demostrativo del funcionamiento, no tiene muy buena calidad pero eran las primeras pruebas.
Mas adelante subiré mas vídeos.
Vídeo de segunda prueba autónoma con archivo (sin cortar)
ACTUALIZACIÓN 26/03/2018
¿Como cambiamos entre modo manual SD o modo PC?
Antes de empezar tengo que decir que en las nuevas versiones del programa quiero integrar el cambio mediante el mando a distancia para poder elegir el modo..
Dicho lo anterior la forma mas sencilla es mediante un interruptor doble el cual cortara los cables de transmisión y recepción que comunica ambos arduinos..
Subiré un esquema para que podáis verlo graficamente.
ACTUALIZACIÓN 15 DE MAYO
ACTUALMENTE DE ESTA TRABAJANDO PARA PODER CONTROLAR DESDE UN LCD FULL GRAPHIC COMO USAN LASPARA INPRESORAS 3D