Siguiendo con el trabajo de previo de Oscar Andres Bedoya, Yerson Andres Diaz y Eduar Alirio Gil se realizo mantenimiento a la maquina, así como la instalación permanente en un computador de CncLinux también se grabaron vídeos instructivos para futuros trabajos o de consulta en caso de necesitar configurarla nuevamente.
La maquina opera con al tarjeta TB6560 el siguiente vídeo explica la configuración básica sin tener en cuenta los fines de carrera, también se muestra las relaciones empleadas en los ejes de esta maquina.
LINUX CNC EMC2
El software empleado es una distribución GNU/Linux basada en Ubuntu, tiene de especial que también es Real Time Linux para garantizar que los procesos de operación de los motores se ejecuten simultáneamente y sin latencias.
Enlaces de interés:
Cables Adaptadores USB a RS232
En los computadores actuales ya no se encuentra el antes común puerto serial con conector DB9, sin embargo este puerto es muy utilizado para la realización de interfaz entre el computador aplicaciones electrónicas microcontraladas.
Como solución en el mercado se disponen de adaptadores de USB a RS232 de bajo consto, pero con el inconveniente de que el CD de los controladores esta en idioma chino o simplemente se tiene el adaptador pero no los controladores. También hay que tener en cuenta que estos cables adaptadores tienen diferentes chips y que de acuerdo a esto se instala el controlador en el caso del sistema operativo windows xp y 7.
(En windows 8 hasta ahora las pruebas de instalación realizadas son negativas ) Cable Adaptador USB a RS232 HL-340
Este cable adaptador es común de conseguir y se puede identificar en su mayoría por ser de color verde, tal como se muestra en la foto de arriba.
Para estar seguros de que el cable corresponde al HL-340 se puede utilizar la consola de Linux y ejecutar el comando lsusb.
lsusb hl-340
Identificado el chip del cable adaptador se procede a buscar el controlador, para este adaptador se encontró que corresponde al CH341SER.ZIP que se pude descargar de los siguientes enlaces.
Encontré que para las recomendaciones de instalación en windows 7 es que una vez descomprimido el archivo CH341SER.ZIP, es que se use el propio asistente de instalación de controladores de windows 7 y no el ejecutable que hay dentro de la carpeta.
Cable Adaptador USB a RS232 Prolific PL-2303
Este cable adaptador es uno de los mas populares, según el fabricante están siendo falsificados sus adaptadores y que estos productos pueden tener problemas en windows.
También el fabricante confirma que no todas las referencias de este chip es compatible para windows 8
Para estar seguros de que el cable corresponde al ProlificPL-2303 se puede utilizar la consola de Linux y ejecutar el comando lsusb.
Identificado el chip del cable adaptador se procede a buscar el controlador, que se pude descargar de los siguientes enlaces.
La prueba realizada para su instalación en windows 7 se procedió a actualizar el controlador y de forma manual se selecciona la carpeta, luego la instalación la realizo el propio sistema.
PINGUINO RS232
Uno de los modos de comunicación con pinguino es la comunicación serial asíncrona con el protocolo RS232, aunque ya es poco frecuente encontrar computadores con el conector DB9 de comunicación serial se puede utilizar un adaptador USB - RS232.
Existen muchos aparatos electrónicos sobre todo de uso industrial o de laboratorio que operan con este protocolo.
También la gran mayoría de lenguajes de programación cuentan con librerías para la realización de aplicaciones con comunicación serial asíncrona.
Una de las partes de un portátil que sido desechado y se puede reutilizar es la cámara web.
Las cámaras de portátiles son pequeñas y pueden utilizarse para proyectos de estereografía o en robótica por ejemplo en un brazo para inspección de objetos.
Listado de dispositivos USB
En los portátiles las cámaras web son detectadas como dispositivos USB, por lo tanto se pueden reutilizar soldando un cable de conexión USB.
Microdia web cam de portatil
Cuando se desarma la pantalla del portátil se pude ver la cámara y un conector con 4 cables, en el caso de esta cámara los cables no están en el orden de un conector USB, asi que con un multimetro se proce a indentificar las conexiones
La conexion de tierra se encontro empleando como guia un circuito integrado (25L512) y los bordes de los agujeros de los tornillos que aseguran la tarjeta al chasis.
El integrado 25L512 y como muchos otros circuitos integrados se alimentan a 3.3V por lo tanto para encontrar el terminal de 5V de conector USB se procedió a inspeccionar el terminal de alimentación del integrado hallando que esta conectado a un regulador de voltaje y de allí probando continuidad con el multimetro se encontró el terminal de 5 Voltios.
Los terminales D+ y D- se determinan a prueba y error.
Cámara Microdia reconectada
La cámara fue probada en Ubuntu con Guvcview con los controladores de video for linux.
En windows xp no es problemática la instalación del controlador solo se necesita el archivo mchpcdc.inf que proporciona microchip.
Esto servira en realidad no solo para pinguino, sino también en general para cualquier PIC que tenga este soporte y este programado de esta manera.
Instalación en windows xp
Comunicación CDC windows 7
Aquí empiezan los problemas, de hecho busque bastante en la web y no encontré una solución satisfactoria. Lo que encontré que más se parecía fue para windows 8 de como instalaban un dispositivo con chip ft232, así que con la ayuda del profesor Alexis Ramirez procedimos a lograr hacer la instalación.
Lo que encontramos en resumidas cuentas es que windows hace mal la asignación del dispositivo asociado al controlador, por lo que lo desinstalamos y manualmente le asignamos el dispositivo. En el vídeo esta mas claro el procedimiento.
En windows 8 no he probado, pero recientemente la instalación de un adapatador usb serial con chip prolific dio problemas y quedo mal instalado el controlador, pero en windows 7 el mismo dispositivo quedo instalado correctamente. Por lo anterior y mi experiencia previa instalando otros controladores me temo que en windows 8 se encontraran dificultades o la imposibilidad de instalación.
Estos son los pasos para instalar el controlador de pinguino para programarlo en windows
y los pasos para instalar el controlador para comunicación serial usb cdc del pinguino en windows
1. programar por aparte en el pinguino un programa que no use la comunicación cdc.
2. conectar el pinguino al pc.
3. ejecutar el inf-wizard.exe (se debe dar un nombre al controlador que va a crear y seleccionar el botón instalar ahora
.
nota: después de esto ya debería quedar listo el pinguino para programarlo por usb.
4. programar en el pinguino un ejemplo de comunicación serial cdc.
5. reiniciar el pinguino y esperar que empiece a funcionar el programa de comunicación cdc.
6. ir al administrador de dispositivos de windows y desinstalar el controlador (software y hardware) que aparece al empezar a funcionar el pinguino con el programa de cdc. muy seguramente aparecerá que se ha reconocido como un dispositivo libusb y que funciona bien.
7. desconectar y conectar de nuevo el pinguino y esperar que el programa cdc funcione.
8. en el administrador de dispositivos instalarle el controlador mchpcdc.inf al dispositivo nuevo que aparece.
9. verificar que aparezca un nuevo puerto serial con un com# asignado.
listo....
CDC en Processing y Lazarus
En GNU/Linux y en mi caso que utilizo la distribución Ubuntu no he tenido problemas, ni de instalación, ni de comunicación.
Pero en el caso de windows la comunicación con Processing no la he logrado, la aplicación se bloquea. Probando con Lazarus no tuve inconveniente alguno y fue exitosa, tampoco con el hyperterminal tuve problemas en hacer las pruebas de comunicación.
Este dispositivo permite conectar seriamente un sistema microcontrolado sin la utilización de cables. La conexión se hace inalambricamente por medio del protocolo bluetooth 2.0
Una de sus ventajas es que no hay que instalar controladores adicionales solo se debe seleccionar el dispositivo que aparece con el nombre de BOLUTEK y luego introducir el código 1234.
El computador lo detectara como un puerto serial virtual.
Con este modulo también es posible la comunicación con un dispositivo móvil con sistema operativo Android.
Terminales para configuración en modo serial
Diagrama esquemático BLK MD BC04
El módulo puede ser reconfigurado por medio de comandos AT, la guía de comandos puede ser consultado en:
COMUNICACIÓN POR RADIOFRECUENCIA CON LOS MÓDULOS RWS434 Y TWS434
Transmisor TWS 434
Receptor RWS 434
Estos módulos el receptor RWS y el transmisor TWS son económicos y fáciles de emplear.
La prueba que se hizo con estos módulos consistió en comunicar dos sistemas microcontrolados Pinguino. La configuración empleada fue la siguiente.
Comunicación serial asíncrona a 1200 baudios
Configuración 8N1, 8 bits de datos ninguno de paridad y un bit de parada.
La configuración propuesta es soportada casi por la mayoría de sistemas microcontrolados.
Estos módulos de comunicación son buenos en sitios abiertos y sin mucho ruido eléctrico pero es frecuente que algunos datos lleguen con errores ya sea por desfase en la frecuencia de transmisión o por ruido eléctrico que afecte la recepción de datos.
En la búsqueda que hice sobre el tema encontré que en arduino se desarrollo una librería de nombre virtualwire para resolver los inconvenientes con este tipo de transmisores y receptores. Sin embargo para aplicaciones que no necesiten ser muy robustas puede ser empleado logrando buenos resultados en cualquier tipo de sistema microcontrolado.
PROBLEMAS
Opera bien a 1200 baudios, pero al incrementar la tasa de transmisión por ejemplo a 9600 baudios se observa distorsión de la señal recibida.
Las antenas emisora y receptora deben estar casi paralelas una a la otra para un buena recepción si las antenas están inclinadas o acostadas la comunicación es inestable.
En sitios ruidosos electricamente se ve afectada la señal de recepción y esto ocasiona errores en los datos recibidos.
Si el emisor tiene el terminal de datos flotante es decir si no esta conectado, el receptor recibirá ruido.
En algunas publicaciones encontré que la señal de recepción la adecuaban con un comparador por que esta no era digital, sin embargo en el modulo probado la señal de salida es completamente digital y no se necesito de adecuación.
PRUEBA CON OSCILOSCOPIO
Para realizar la prueba con un osciloscopio se empleo la siguiente configuración:
Tarjeta Pinguino conectada al módulo transmisor TWS
Punta de osciloscopio conectada a la salida del modulo receptor RWS
Base de tiempo del osciloscopio 1 ms
Canal A señal DC a 5 voltios por división
Envío del carácter U mayúscula
En la realización de esta prueba se envió la letra U mayúscula por que su código ASCII en formato binario es fácil de identificar. También pueden enviarse otros caracteres como los numéricos, en particular el 3 que tiene un patrón binario fácil de reconocer en el osciloscopio.
U en ASCII decimal corresponde a 85 por lo tanto su valor binario es 01010101.
3 en ASCII decimal corresponde a 51 por lo tanto su valor binario es 00110011.
PROGRAMA EN PINGUINO PARA EL ENVÍO DE LA U
Este programa corresponde al envío del carácter U en formato ASCII
void setup(){
Serial.begin(1200);
}
void loop(){
Serial.print("U");
}
MONTAJE EN PINGUINO
Montaje pinguino con el transmisor TWS
Montaje Pinguino del receptor RWS 434
PROGRAMA EN PINGUINO PARA EMISIÓN RECEPCIÓN
Este programa corresponde al envío de los caracteres numéricos 0 y 1
void setup(){
Serial.begin(1200);
}
void loop(){
Serial.print("0"); delay(1000);
Serial.print("1"); delay(1000);
}
Este programa corresponde al recepción de los caracteres numéricos 0 y 1.
int caracter; void setup(){
Serial.begin(1200); pinMode(0,OUTPUT);
}
void loop(){
if (Serial.available()){ caracter = Serial.read(); if (caracter = ='0'){ digitalWrite(0,LOW); } if (caracter = ='1'){ digitalWrite(0,HIGH); }
}
}
LAZARUS Lazarus es una herramienta de programación tipo RAD (Desarrollo rápido de aplicaciones) que emplea el lenguaje de programación orientado a objetos Object Pascal.
Lazarus permite realizar aplicaciones para múltiples plataformas Windows, GNU/Linux, Mac OS X y recientemente Android.
Vídeo Tutoriales Vídeos de programación en Pascal con Lazarus, estos vídeos se enfatizan el el lenguaje mas que en el IDE.
Comunicación serial Para realizar la comunicación serial, se empleara un componente para lazarus llamados 5DPO. Este componente hay que descargarlo e instalarlo.
Descomprimir sdpo-0.2.0.zip preferiblemente C:\lazarus\components que la ruta donde estan los componentes de lazarus. Si se descomprimio correctamete se tendra una carpeta con el nombre de Sdpo
En lazarus vamos a Paquete > Abrir archivo de paquete(.lpk)...
En el formulario seleccionamos el componente y en las propiedades>device colocamos el nombre del puerto
Para los usuarios de windows colocar en propiedades>device com1, com2, com10 etc. Según donde este su puerto serial.
Finalmente ejecutarla aplicación.
Administrador de dispositivos
Selección de COM10
Trabajo Sobre Lazarus Grupo 801b ( 1 puntos del parcial ) Simular el vaciado de un tanque.
Formulario
El tanque tendrá un valor inicial de nivel configurable por medio de un scrollbar
Cuando se le de click al botón iniciar, el tanque empezara a vaciarse.
Utilizar el Timmer para realizar la animación correspondiente al vaciado del tanque.
Se utilizara un TShape para simular el tanque, el color sera verde para indicar que el tanque esta lleno mas allá de la mitad y rojo para indicar que el tanque es menor o igual a la mitad de nivel.
Cuando el tanque este completamente vació debe parar la simulación y mostrar un mensaje que indique el tanque esta vacío.
Cuestionario:
¿ Cual es el lenguaje de programación empleado en lazarus ?
¿ Que significa RAD ?
¿ Es posible hacer aplicaciones para dispositivos android empleando lazarus ?
¿ Que es un componente en lazarus ?
¿ Como se declara una variable tipo entero en pascal ?
¿ Como se declara una variable tipo real en pascal ?
¿ Como se declara una variable tipo cadena de caracteres en pascal ?
¿ Como se convierte una variable cadena de caracteres a entero ?
¿ Como se convierte una variable tipo cadena de caracteres a real ?
¿ Como se convierte una variable tipo entero a cadena de caracteres ?
¿ Como se convierte una variable tipo real a cadena de caracteres ?
¿ Que es la programación orientada a objetos ?
¿ Cual es la diferencia entre una clase y un objeto ?
¿ Que son las propiedades de un objeto ?
¿ Que son eventos en un objeto ?
Para el objeto Button1 diga que hacen las siguientes propiedades: Caption, Enabled, Font, Height, Width.
¿ Que son los eventos asociados a un objeto ?
Para el objeto Button1, que hacen los eventos OnClick, OnMouseMove, OnMouseLeave.
Para el objeto Timer1 para que sirven las propiedades Enabled e Interval.
Para el objeto Timer1 para que sirve el evento OnTimer
Impress.js es una herramienta para hacer presentaciones similar a Prezi, el cual se base en las versatilidades de CSS3 y los navegadores modernos como Firefox o Chrome.
Impress.js permite hacer presentaciones con características de traslación, rotación y más, incluyendo efectos 3D. A diferencia de Prezi que cuenta con plantillas, Impress necesita ser programado pero es suficiente con lo que se puede aprender en un curso básico de programación.
También en la actualidad este proyecto de software libres ha crecido y muchos colaboradores han desarrollado plantillas que pueden ser descargadas, así como también herramientas de edición online.
El uso predominante de este lenguaje es el de elaboración de paginas WEB y se utiliza para describir la estructura e información de la pagina en forma de texto.
Para editar un contenido HTML solo se necesita un editor de texto sin formato como el Gedit de Linux o el bloc de notas de windows, y para la visualización se necesita un navegador como Firefox o Chrome.
Videos Tutoriales de (HTML)
Como insertar una imagen
Cascading Styles Sheets (CSS)
Las hojas de estilo en cascada es una manera de aplicar estilos a una pagina web como el tipo de letra, el color, el fondo, etc. Este permite dar formato a un documento HTML, en términos web en HTML se realiza el contenido, pero CSS le da la presentación y diseño a ese contenido en un documento externo.
La ventaja de CSS esta en que se puede tener diferenciado el contenido de la apariencia y que si solo queremos cambiar la apariencia sin afectar el contenido modificamos el archivo CSS.
Tiene una sintaxis similar al lenguaje C, pero los nombres y convenciones son adoptados del lenguaje Java, hay que aclarar que Java y JavaScript son dos lenguajes de programación diferentes con propósitos también diferentes.
La utilización mas común del JavaScript es de tener funciones embebidas en paginas HTML que puedan ser ejecutadas desde el lado del usuario por medio de un navegador como los actuales que pueden interpretar el código JavaScript.
Processing Js
Las versiones actuales de Processing cuentan con la opción de llevar el código realizado en Processing a código de JavaScript de manera que pueda utilizar y ejecutar este código en una pagina web. Esto ofrece a los programadores web disponer de la facilidad de realización de aplicaciones gráficas con Processig.
Trabajo Sobre Impress Js Grupo 801b ( 2 puntos del parcial )
Siguiendo los tutoriales realice su propia presentación, el tema a elegir para su presentación es libre puede ser sobre deportes, música, historia, una enseñanza, un trabajo de curso etc.
Descomprima la carpeta impress.js-master.zip y abra el archivo index.html en un navegador
Observe y siga la presentación utilice la barra espaciadora y las flechas del teclado.
Abra en un editor de texto index.html y cambie la linea <q>Aren't you just <b>bored</b> with all those slides-based presentations?</q> con una traducción en español mas adecuada y verifique que el cambio se realiza en la diapositiva.
Modifique la primer diapositiva de manera que la letra sea mas grande
Por que la primer diapositiva tiene los valores en data x -1000 y en data y -1500, que pasa si son cambiados ?
Para que sirve el "step side" ?
Para que sirve data-rotate y como se utiliza ?
Para que sirve el data-scale y como se utiliza ?
Realice modificaciones en la presentación modificando el data-rotate y el data-scale
Como funciona la opción 3D ?
Modifique la presentación de manera que se vea un efecto 3D diferente al que viene por defecto.
Cuestionario:
Que es computación en la nube ?
Que significa HTML ?
Que es HTML y para que sirve ?
Cual es la versión mas actual de HTML ?
En HTML para que sirve el head ?
En HTML para que sirve el body ?
En HTML para que sirve la instrucción script ?
En HTML para que se emplean los símbolos < >
Es posible en en navegador ver el código HTML de una pagina ?
Como se editar el código HTML ?
Que significa CSS ?
Para que sirve el CSS?
CSS es un lenguaje de programación ?
Cual es la versión mas actual de CSS ?
Que relación hay entre CSS y HTML ?
Que es JavaScript ?
Para que sirve JavaScript ?
Que relación hay entre Java y JavaScript ?
Que relación hay entre JavaScript y HTML ?
Que es processing js ?
Que es impress js ?
Que herramienta web permite hacer la presentación online utilizando Impress ?
MEDICIÓN DE DISTANCIA POR ULTRASONIDO CON EL HC-SR04
El HC-SR04 es modulo sensor de distancia por ultrasonido que trae 4 terminales, dos de alimentación y dos para envío y recepción.
Uno de los terminales se llama trigger o disparador, es el encargado de indicarle al dispositivo que envíe la señal ultrasonica este terminal por lo menos debe estar 10 microsegundos en alto para que envíe una señal ultrasonica.
El otro terminal se llama echo o terminal de detección de eco, este terminal se coloca en alto cuando se hace el envío de la señal ultrasonica, y se coloca en bajo cuando hace recepción por medio de eco o rebote de esta sobre un objeto.
Para determinar la distancia recorrida en centímetros, se cuenta el tiempo que trascurre desde que se coloca en alto el terminal de eco y este regresa a bajo, se puede contar cada 58 microsegundos para obtener una relación en centímetros.
Calculo De La Velocidad Del Sonido
En este ejemplo se trabajara con la velocidad a 20 grados centigrados que es V=343 m/s.
Se aplica el siguiente procedimiento para hallar el tiempo en microsegundos equivalente a un centímetro.
Pasamos la velocidad a centímetros por segundo, esto da V=34300 cm/s
Calculamos el tiempo con la ecuación distancia = velocidad/tiempo, despejamos tiempo y tenemos la ecuación t=d/v, reemplazando por los valores t=1cm/(34300cm/s) luego t = 0,000029155s
Como la señal va y vuelve hace el doble de la distancia que se desea medir, por lo tanto tomara el doble de tiempo, así que mediremos el doble de tiempo luego t=0,000058309s, finalmente pasamos este valor a microsegundos t=58,309us que para efecto practico lo aproximaremos a t=58us en el programa.
Tener en cuenta que la velocidad del sonido es mayor cuando aumenta la temperatura, aproximadamente 0.6m/s por cada gradocentigrado.
CÓDIGODE PRUEBA //Codigo probado en Pinguino 9-05 //Julio Fabio De La Cruz 28-05-2013 #define Trig 8//Defino el terminal 8 como trigger o disparador #define Echo 9//Defino el 9 como el de recepcion del eco int Dato;//Dato sin procesar equivalente a la distancia a medir en centimetros void setup(){ pinMode(Trig, OUTPUT);//Disparador como salida pinMode(Echo, INPUT);//Eco como entrada Dato=0;//Inicio dato en 0 TRISB=0;//Configuro puerto B como salida } voidloop() { while (digitalRead(Echo) == LOW) {//Pin del eco en bajo digitalWrite(Trig, HIGH);//Activa el disparador delayMicroseconds(50);//Espera 50 microsegundos (minimo 10) digitalWrite(Trig, LOW);//Desactiva el disparador } while (digitalRead(Echo) == HIGH) {//Pin de eco en alto hasta que llegue el eco Dato++;//El contador se incrementa hasta llegar el eco delayMicroseconds(58);//Tiempo en recorrer dos centimetros 1 de ida 1 de vuelta } PORTB=Dato;//Muestro dato por el puerto B delay(1000);//Espera un segundo para visualizar el dato Dato=0;//Reinicio dato a 0 } CÓDIGODE PRUEBA EN GREAT COW BASIC
También dejo el código de prueba en basic empleando great cow basic con el fin de que pueda ser
llevado a otro microcontrolador como por ejemplo el 16F877A
'**************************************************************** ' Generated by Prithvi Development Studio 0.0.1 (Build: 560) ' ' Description : Porgrama basico para el HC-SR04 ' Author : Julio Fabio De La Cruz Gomez ' Date : 30/05/2013 10:32:05 a.m. ' '**************************************************************** #chip 16F877A, 4 #define trig PORTC.6 #define echo PORTC.7 TRISB = 0 'Configuro puerto B como salida dir trig out 'terminal para menejar el disparardo trigger dir echo in 'terminal para detectar el eco echo PORTB = 0 'Limpio el puerto B colocandolo en cero trig = OFF 'Terminal del disparador trigger en cero dato = 0 'Variable para guardar dato de la medicion Inicio: dowhile echo = OFF trig = ON 'Activa el disparador wait 50 us 'Espera 50 microsegundos trig = OFF 'Desactiva el disparador loop dowhile echo = ON dato = dato+1 'Contador se incrementa hasta llegar el eco wait 58 us 'Tiempo en recorres dos centimetros 1 de ida 1 de vuelta loop PORTB=dato 'Muestro dato por el puerto B wait 1 s 'Espera un segundo para visualizar el dato dato=0 'Reinicio dato a 0 goto inicio