archive-es.com » ES » S » SISTEMASORP.ES

Total: 315

Choose link from "Titles, links and description words view":

Or switch to "Titles and links view".
  • SISTEMAS O.R.P » Blog Archive » Por fin me llegó el galileoscopio
    18 04 Aquí tengo uno que pone para entregar el 1 de Diciembre Leave a comment Name Mail will not be published Website Your comment You can use these tags a href title abbr title acronym title b blockquote cite cite code del datetime em i q cite strike strong Please note Comment moderation is enabled and may delay your comment There is no need to resubmit your comment Categories Electrónica Informática Proyectos Reseñas Sin categoría Uncategorized Calendar diciembre 2009 L M X J V S D nov ene 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Recent posts Televigilancia con un coche RC arduino y la raspberry pi L I O S El robot de 10 Otro año más se celebra la OSHWCon Los vagos 2 0 Explorer exe en Windows Probando el marco digital Parrot DF3120 parte 3 y final Recuperar una cámara Zaapa CIP RW después de un fallo de actualización Probando el marco digital Parrot DF3120 parte 2 Probando el marco digital Parrot DF3120 parte 1 Por fin se puede programar la cámara

    Original URL path: http://www.sistemasorp.es/2009/12/07/por-fin-me-llego-el-galileoscopio/ (2013-05-07)
    Open archived version from archive

  • SISTEMAS O.R.P » Blog Archive » El galileoscopio que no llega
    del mundo toma idea del negocio segundo van pidiendo remesas cada cierto tiempo en vez de haber pedido todo de una sola vez y haberlos distribuido a medida que van entrando los pedidos y tercero ya van desfasados de fechas primero dicen que tardan de 4 a 6 semanas luego que a mediados de octubre y finalmente dicen que a finales de Noviembre No sabían cuantos galileoscopios iban a vender es que no se pueden haber asesorado minimamente o hacer un estudio de mercado En fin a aguantarse tocan hasta finales de Noviembre Buena iniciativa mala planificación Una respuesta Caramon Fecha 16 octubre 2009 15 03 Ya me froto las manos pensando en el artículo en el que lo conectarás con el WiFi y la cámara Leave a comment Name Mail will not be published Website Your comment You can use these tags a href title abbr title acronym title b blockquote cite cite code del datetime em i q cite strike strong Please note Comment moderation is enabled and may delay your comment There is no need to resubmit your comment Categories Electrónica Informática Proyectos Reseñas Sin categoría Uncategorized Calendar octubre 2009 L M X J V S D sep nov 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Recent posts Televigilancia con un coche RC arduino y la raspberry pi L I O S El robot de 10 Otro año más se celebra la OSHWCon Los vagos 2 0 Explorer exe en Windows Probando el marco digital Parrot DF3120 parte 3 y final Recuperar una cámara Zaapa CIP RW después de un fallo de actualización Probando el marco digital Parrot DF3120 parte 2 Probando el

    Original URL path: http://www.sistemasorp.es/2009/10/16/el-galileoscopio-que-no-llega/ (2013-05-07)
    Open archived version from archive

  • SISTEMAS O.R.P » Sin categoría
    desastre Primero al repartirlo dan más prioridad a los estadounidenses que al resto del mundo toma idea del negocio segundo van pidiendo remesas cada cierto tiempo en vez de haber pedido todo de una sola vez y haberlos distribuido a medida que van entrando los pedidos y tercero ya van desfasados de fechas primero dicen que tardan de 4 a 6 semanas luego que a mediados de octubre y finalmente dicen que a finales de Noviembre No sabían cuantos galileoscopios iban a vender es que no se pueden haber asesorado minimamente o hacer un estudio de mercado En fin a aguantarse tocan hasta finales de Noviembre Buena iniciativa mala planificación Por qué escribo tan poco 15 septiembre 2009 Sin categoría 3 Comentarios Parece que el blog está dedicado a artículos que la gente encuentra por Internet cuando busca algo en vez de artículos que se lean asiduamente Culpa mía Un blog es un sistema de comunicación que tiene más o menos éxito dependiendo del caso que su autor le haga Hace tiempo que solía escribir más a menudo pero dada la naturaleza del blog en el cual salvo excepciones sólo escribo artículos de cosecha propia nada de enlazar a otros artículos ni copiar y pegar más de un 25 prefiero escribir cada cierto tiempo para no agobiarme ni dejar a los posibles lectores colgados Mi blog nunca será de éxito porque no estoy navegando por Internet continuamente para ver las cosas más curiosas y publicarlas tampoco saldrá en los rankings de los más visitados puesto que los artículos que aparecen no están orientados para la mayoría de la audiencia En definitiva no es un blog para las masas Es un blog para usuarios de distinta índole cuyos intereses a veces coinciden con lo que publico Pero tranquilos seguiré escribiendo artículos a mi ritmo y de la forma que he hecho hasta ahora Error de arquitectura 15 octubre 2008 Sin categoría 3 Comentarios Hace tiempo que se sabía que la web de openbank no va fina Dicen por ahí que es culpa de la plataforma BankSphere que también esta implementada en Banesto Pues bien hace cosa de 4 años un servidor se le ocurrió meterse en por aquél entonces Patagon para hacer una cuenta de ahorro Pasó el tiempo y Patagon se convirtío en Openbank como al principio de los tiempos y un servidor recibió una oferta de que si domiciliaba mi nómina y un par de recibos me regalaban un ipod cosa que hice Pero desde el año pasado hasta hoy estoy sufriendo la CHAPUZA de web que tiene la gente de Openbank sólo funciona bien en internet explorer estoy hasta las narices de que no se seleccione por defecto la pestaña Operativa cuando voy a hacer cualquier tarea de que hay opciones que no funcionen como deben de que cuando me quejo siempre me dicen que lo sienten y que están mejorando Y hoy van y cuando intento entrar para ver mi cuenta me sale esto y cuando pulso

    Original URL path: http://www.sistemasorp.es/category/sin-categoria/page/2/ (2013-05-07)
    Open archived version from archive

  • SISTEMAS O.R.P » 2012 » febrero
    para ocultar el puntero del ratón en la pantalla La función IMG Load se llama con la ruta de una imagen como parámetro para cargar la imagen Esta función nos devuelve la estructura SDL Surface de la imagen La función signal se llama con el parámetro SIGINT y un puntero a una función para que se capture la pulsación de las teclas CTRL y C Cuando se pulsen se llamará a la función salida que simplemente cambiará el valor de la variable salir Esto se usa para poder salir del bucle principal y terminar el programa de una forma limpia La función SDL BlitSurface se llama con una imagen un valor nulo el buffer de la pantalla y una estructura SDL Rect como parámetros Esto copia la imagen en el buffer de la pantalla en el lugar indicado por la estructura SDL Rect La función SDL SetAlpha se llama con una imagen con los valores SDL SRCALPHA y SDL RLEACCEL y un número como parámetros Esto modifica la transparencia de una imagen valor 0 para transparente y valor 255 para opaca No funciona bien con los PNG por eso la imagen del sol es un GIF La función SDL Flip se llama con el parámetro del buffer de pantalla para traspasar todos los pixels del buffer de pantalla a la tarjeta de vídeo y así mostrarlos La función SDL Delay se llama con un número como parámetro para parar la ejecución del programa durante un tiempo especificado en milisegundos La función SDL FillRect se llama con el buffer de pantalla una estructura SDL Rect y un color como parámetros para que dibuje en la zona determinada por la estructura SDL Rect un rectángulo con el color especificado En las animaciones se usa para eliminar el dibujo anterior al que se va a pintar y así dar un efecto de movimiento La función SDL MapRGB se llama con el formato del buffer de la pantalla y 3 números como parámetros Sirve para mapear un color RGB al formato del buffer de la pantalla y así adaptarlo a su profundidad de color La función SDL FreeSurface se llama con una estructura SDL Rect como parámetro para liberar todos los recursos utilizados por esta Con todo esto hemos logrado dibujar en la pantalla imágenes png y gif además de animar dos de ellas en un bucle una haciendo círculos gracias a las funciones trigonométricas de seno y coseno y la otra a fundirse mediante transparencia a la espera de que el usuario pulse la combinación de teclas CTRL C para salir del programa 2 Entradas de información Al igual que antes pongo un vídeo después el código fuente a continuación cómo compilarlo ejecutarlo y finalmente explicar su funcionamiento VÍDEO CÓDIGO include stdio h include stdlib h include math h include signal h include sys mman h include fcntl h include SDL SDL h include SDL SDL image h define BASE PUERTOS 0x56000000 define BASE ADC 0x58000000 define PUERTO F CONFIGURACION 0x50 define PUERTO G CONFIGURACION 0x60 define PUERTO F DATOS PUERTO F CONFIGURACION 4 define PUERTO G DATOS PUERTO G CONFIGURACION 4 define ADC 0 0x0C define BOTON I 3 define BOTON C 4 define BOTON D 2 define INCLINOMETRO 1 9 define INCLINOMETRO 2 10 define CONFIGURA F 0xFC0F define CONFIGURA G 0xFFC3FFFF define CONFIGURA ADC 0x7FC2 typedef struct char boton izquierdo char boton central char boton derecho char inclinacion unsigned char luminosidad ENTRADAS volatile char salir 0 static volatile void memoria puertos static volatile void memoria adc void salida int sig salir 1 void inicializa entradas int fd open dev mem O RDWR if fd 0 perror dev mem exit 1 memoria puertos mmap NULL getpagesize PROT READ PROT WRITE MAP SHARED fd BASE PUERTOS if memoria puertos MAP FAILED perror mmap puertos exit 1 memoria adc mmap NULL getpagesize PROT READ PROT WRITE MAP SHARED fd BASE ADC if memoria adc MAP FAILED perror mmap adc exit 1 uint32 t configuracion uint32 t memoria puertos PUERTO F CONFIGURACION configuracion CONFIGURA F uint32 t memoria puertos PUERTO F CONFIGURACION configuracion configuracion uint32 t memoria puertos PUERTO G CONFIGURACION configuracion CONFIGURA G uint32 t memoria puertos PUERTO G CONFIGURACION configuracion uint32 t memoria adc CONFIGURA ADC configuracion uint32 t memoria adc ADC 0 void lee entradas ENTRADAS entradas uint32 t datos uint32 t memoria puertos PUERTO F DATOS entradas boton derecho datos int pow 2 BOTON D BOTON D entradas boton izquierdo datos int pow 2 BOTON I BOTON I entradas boton central datos int pow 2 BOTON C BOTON C datos uint32 t memoria puertos PUERTO G DATOS entradas inclinacion datos int pow 2 INCLINOMETRO 2 datos int pow 2 INCLINOMETRO 1 INCLINOMETRO 1 datos uint32 t memoria adc if datos 0x8000 datos uint32 t memoria adc ADC 0 entradas luminosidad datos 0x3FF 255 1023 int main void SDL Surface izquierda SDL Surface derecha SDL Surface ok SDL Surface diamante SDL Surface sol SDL Surface pantalla SDL Rect destino float radianes 0 float destino radianes float suma radianes ENTRADAS entradas inicializa entradas if SDL Init SDL INIT VIDEO 0 printf No se pudo iniciar SDL s n SDL GetError exit 1 atexit SDL Quit pantalla SDL SetVideoMode 320 240 16 SDL HWSURFACE SDL DOUBLEBUF if pantalla NULL printf No se puede inicializar el modo gráfico s n SDL GetError exit 1 SDL ShowCursor SDL DISABLE izquierda IMG Load izquierda png if izquierda NULL printf No pude cargar gráfico s n SDL GetError exit 1 derecha IMG Load derecha png if derecha NULL printf No pude cargar gráfico s n SDL GetError exit 1 ok IMG Load ok png if ok NULL printf No pude cargar gráfico s n SDL GetError exit 1 diamante IMG Load diamante png if diamante NULL printf No pude cargar gráfico s n SDL GetError exit 1 sol IMG Load sol gif if sol NULL printf No pude cargar gráfico s n SDL GetError exit 1 signal SIGINT salida while salir lee entradas entradas dibujamos el boton izquierdo destino x 0 destino y pantalla h 2 izquierda h 2 destino w izquierda w destino h izquierda h if entradas boton izquierdo SDL BlitSurface izquierda NULL pantalla destino else SDL FillRect pantalla destino SDL MapRGB pantalla format 0 0 0 dibujamos el boton central destino x pantalla w 2 ok w 2 if entradas boton central SDL BlitSurface ok NULL pantalla destino else SDL FillRect pantalla destino SDL MapRGB pantalla format 0 0 0 dibujamos el boton derecho destino x pantalla w derecha w if entradas boton derecho SDL BlitSurface derecha NULL pantalla destino else SDL FillRect pantalla destino SDL MapRGB pantalla format 0 0 0 dibujamos el sol de luminosidad destino x 0 destino y pantalla h sol h SDL SetAlpha sol SDL SRCALPHA SDL RLEACCEL entradas luminosidad SDL BlitSurface sol NULL pantalla destino dibujamos el diamante de inclinación switch entradas inclinacion case 1 izquierda destino radianes 3 M PI 2 suma radianes 0 10 break case 2 derecha destino radianes M PI 2 suma radianes 0 10 break case 3 abajo if radianes M PI destino radianes 2 M PI suma radianes 0 10 else destino radianes 0 suma radianes 0 10 break if radianes destino radianes 0 10 radianes destino radianes 0 10 radianes suma radianes if radianes 0 radianes 2 M PI else if radianes 2 M PI radianes 0 destino x pantalla w 2 sin radianes diamante w diamante w 2 destino y pantalla h 2 cos radianes diamante h diamante h 2 SDL BlitSurface diamante NULL pantalla destino SDL Flip pantalla SDL Delay 1 SDL FillRect pantalla destino SDL MapRGB pantalla format 0 0 0 destino x 0 destino y pantalla h sol h SDL FillRect pantalla destino SDL MapRGB pantalla format 0 0 0 SDL FreeSurface izquierda SDL FreeSurface derecha SDL FreeSurface ok SDL FreeSurface diamante SDL FreeSurface sol SDL FreeSurface pantalla printf n Fin del programa n return 0 COMPILACIÓN Hay que hacer lo mismo que en la COMPILACIÓN del apartado Librería SDL Sólo que esta vez el fichero de salida se llama pruebaentradas y el del código fuente pruebaentradas c EJECUCIÓN Hay que hacer lo mismo que en la EJECUCIÓN del apartado Librería SDL incluidas las imágenes si no las tenéis ya Sólo que esta vez el fichero se llama pruebaentradas EXPLICACIÓN En esta ocasión he aprovechado el código del anterior apartado y le he modificado para que responda a eventos Ahora cada vez que se pulse un botón saldrá en la pantalla el icono correspondiente se mostrará hacia que lado del marco está la gravedad y cuanta luz llega al sensor trasero Me centraré en explicar cómo he recuperado la información de las entradas de las que dispone el marco botones inclinómetro y fotoresistencia Si os acordáis en el primer artículo explicaba cómo acceder a la memoria del vídeo para escribir los píxeles de la imagen directamente en ella Aquí lo que vamos a hacer es abrir el fichero dev mem ya que desde él podemos acceder a los registros del microprocesador que contienen la información de las entradas y poder configurarlas Si queréis saber a fondo cómo funciona el microprocesador s3c2412 que gobierna el marco os podéis bajar su datasheet Las entradas de los botones se pueden leer desde los pines 2 3 y 4 del puerto F y las del inclinómetro desde los pines 9 y 10 del puerto G en ambos casos son GPIO y los leeremos mediante polling El valor de la fotoresistencia se puede leer del pin ADC0 y como indica el nombre es un ADC que leeremos igualmente mediante polling En la función inicializa entradas inicializaremos los registros Con la función open abrimos el fichero dev mem como lectura y escritura Con la función mmap abrimos las posición de memoria 0 56000000 para poder acceder desde el espacio de usuario a los registros de configuración y de datos de los puertos GPIO y la posición de memoria 0 58000000 para leer los canales ADC Estos números se pueden encontrar en las páginas 68 y 69 del datasheet que he puesto antes Para leer los puertos F y G debemos configurarlos antes Para esto debemos acceder a las direcciones de memoria de configuración del puerto F GPFCON 0 56000050 y del puerto G GPGCON 0 56000060 e indicar qué bits serán de lectura En el puerto F serán los bits 2 3 y 4 por lo que el valor de configuración para este registro según las página 275 del datasheet será xxxxxx000000xxxx o lo que es lo mismo para dejar el resto de bits a su valor original y sólo cambiar los 6 bits de los botones hay que hacer una operación AND del valor 0xFC0F En el puerto G serán los bits 9 y 10 por lo que el valor de configuración para este registro según la página 276 del datasheet será xxxxxxxxxx0000xxxxxxxxxxxxxxxxxx o lo que es lo mismo para dejar el resto de bits a su valor original y sólo cambiar los 4 bits del inclinómetro hay que hacer una operación AND del valor 0xFFC3FFFF Para leer continuamente el valor del canal 0 del ADC donde se encuentra conectada la fotoresistencia debemos configurar el registro ADCCON situado en la dirección de memoria 0 58000000 Lo inicializaremos asignándole el valor 0x7FC2 según la página 420 del datasheet Finalmente leemos el valor del ADC para activarlo En la función lee entradas leeremos el valor de las entradas y los guardaremos en una estructura llamada ENTRADAS Accedemos a las direcciones de memoria de datos del puerto F GPFDAT 0 56000054 y G GPGDAT 0 56000064 extraemos uno por uno los valores de los pines con una operación AND desplazamos esos valores mediante shifting hasta dejarlos en el primer bit y los vamos guardando en la variable correspondiente de la estructura Los botones cuando están libres tienen un valor de 1 pero cuando están pulsados tienen un valor de 0 El botón izquierdo corresponde al pin 3 el botón central corresponde al pin 4 y el botón derecho al pin 2 El inclinómetro tiene un valor de 3 cuando el marco reposa sobre su base un valor de 2 si reposa sobre el lado derecho y un valor de 1 si reposa sobre el lado izquierdo No detecta cuando el marco reposa por el lado contrario a la base que sería un valor de 0 Para el ADC0 accedemos a su dirección de memoria de configuración ADCCON 0 58000000 leemos su valor y comprobamos que el último bit está a 1 para saber si podemos leer el resultado de la conversión o todavía la está haciendo si está a 1 leemos la dirección de memoria de datos ADCDAT0 0x5800000C nos quedamos con los primeros 10 bits y hacemos una conversión a 8 bits para que se pueda usar directamente en la función SDL SetAlpha Con todo esto hemos modificado el programa del apartado Librería SDL para que ahora sólo represente las imágenes dependiendo del estado de las distintas entradas que componen el marco digital 3 Comunicaciones Como en los casos anteriores pongo un vídeo después el código fuente a continuación cómo compilarlo ejecutarlo y finalmente explicar su funcionamiento VÍDEO CÓDIGO include stdio h include stdlib h include math h include signal h include fcntl h include netinet in h include sys socket h include netdb h include SDL SDL h include SDL SDL image h volatile char salir 0 void salida int sig salir 1 void carga imagen char cadena int conexion recibidos reales char cabecera 0 char puntero char buffer 1024 struct addrinfo parametros servidores coincidencia int rv FILE fichero if fichero fopen texto png wb NULL perror fichero texto png return memset parametros 0 sizeof parametros parametros ai family AF UNSPEC parametros ai socktype SOCK STREAM if rv getaddrinfo sistemasorp es 80 parametros servidores 0 fprintf stderr getaddrinfo s n gai strerror rv return for coincidencia servidores coincidencia NULL coincidencia coincidencia ai next if conexion socket coincidencia ai family coincidencia ai socktype coincidencia ai protocol 1 perror socket continue if connect conexion coincidencia ai addr coincidencia ai addrlen 1 close conexion perror connect continue break if coincidencia NULL fprintf stderr No se puedo conectar n freeaddrinfo servidores sprintf buffer GET blog imagen php cadena s HTTP 1 0 r n Host www sistemasorp es r n r n cadena send conexion buffer strlen buffer 0 while recibidos recv conexion buffer sizeof buffer 0 0 puntero buffer if cabecera puntero strstr buffer r n r n puntero 4 reales recibidos puntero buffer recibidos reales cabecera 1 fwrite puntero 1 recibidos fichero close conexion fclose fichero int main void char caracter char cadena 100 char puntero cadena FILE fichero fd set lista struct timeval tv SDL Surface texto SDL Surface pantalla SDL Rect destino if SDL Init SDL INIT VIDEO 0 printf No se pudo iniciar SDL s n SDL GetError exit 1 atexit SDL Quit pantalla SDL SetVideoMode 320 240 16 SDL HWSURFACE SDL DOUBLEBUF if pantalla NULL printf No se puede inicializar el modo gráfico s n SDL GetError exit 1 SDL ShowCursor SDL DISABLE fichero fopen dev rfcomm0 r if fichero NULL perror NO se pudo abrir dev rfcomm0 exit 1 signal SIGINT salida destino x 0 destino y 0 destino w pantalla w destino h pantalla h SDL FillRect pantalla destino SDL MapRGB pantalla format 255 255 255 SDL Flip pantalla destino x 0 destino y pantalla h 2 15 destino w pantalla w destino h 30 memset cadena 0 sizeof cadena while salir fread caracter 1 1 fichero putchar caracter if caracter caracter if caracter n salir 1 else puntero caracter puntero 0 carga imagen cadena texto IMG Load texto png if texto NULL SDL BlitSurface texto NULL pantalla destino SDL Flip pantalla fclose fichero SDL FreeSurface pantalla printf n Fin del programa n return 0 COMPILACIÓN Hay que hacer lo mismo que en la COMPILACIÓN del apartado Librería SDL Sólo que esta vez el fichero de salida se llama pruebacomunicaciones y el del código fuente pruebacomunicaciones c EJECUCIÓN En el ordenador debéis tener bluetooth ya sea incorporado o mediante un usb y conexión a internet En el ordenador activar el ruteo de paquetes tcp ip para la interfaz de red del marco ejecutarlo todo como usuario root en ubuntu con sudo s iptables table nat append POSTROUTING out interface eth0 j MASQUERADE iptables append FORWARD in interface usb0 j ACCEPT echo 1 proc sys net ipv4 ip forward En el marco activar la ruta por defecto de los paquetes tcp ip route add default gw 172 16 61 2 En el marco dejar visible a todos el bluetooth y permitir conexiones al marco hciconfig hci0 piscan En el marco mostrar la MAC ADDRESS del bluetooth para saber a donde se debe conectar el ordenador por rfcomm hciconfig hci0 En el marco dejar en modo de escucha para rfcomm rfcomm listen dev rfcomm0 En el ordenador conectarse al marco mediante rfcomm sudo rfcomm connect dev rfcomm0 MAC ADDRESS En el ordenador descargarse el programa screen si no se tenía antes sudo apt get install screen En el ordenador conectarse al dispositivo rfcomm0 con el programa screen sudo screen dev rfcomm0 En el marco ejecutar el programa pruebacomunicaciones En el ordenador desde el programa screen escribir caracteres ENTER para hacer salir el programa del marco Anotaciones Tendreis que abrir una consola nueva tanto en el ordenador como en el marco después de ejecutar el comando rfcomm puesto que se queda permanentemente conectado hasta que se pulse CTRL C Para salir del programa screen simplemente pulsad CTRL y A a la vez y después de soltarlos pulsad la tecla K EXPLICACIÓN Por un lado se pretende conectar mediante bluetooth al marco usando las utilidades BlueZ mediante RFCOMM Así conseguimos que desde nuestro ordenador podamos enviarle datos al marco Por otro lado pretendemos conectarnos a una página de Internet para recuperar una imagen y mostrarla en el marco La unión de ambas cosas es lo que habéis visto en el vídeo Mientras escribo

    Original URL path: http://www.sistemasorp.es/2012/02/ (2013-05-07)
    Open archived version from archive

  • SISTEMAS O.R.P » 2012 » mayo » 24
    dedicar algo de tiempo a las dudas que tengan como también podéis leer en los comentarios pero la otra persona tiene que demostrar un mínimo de interés en hacer las cosas y motivación para hacerlas el sólo Y es que parece que los que queremos divulgar algo por Internet tenemos todo el tiempo libre del mundo y ganas de hacer por amor al arte los que los demás nos pidan Esta clase de gente ha existido siempre y seguirá existiendo Pero desde luego por mi parte siempre van a chocar contra un muro si lo que pretenden es que yo les haga su trabajo ya se este por afición o por obligación Categories Electrónica Informática Proyectos Reseñas Sin categoría Uncategorized Calendar mayo 2012 L M X J V S D feb ago 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 Recent posts Televigilancia con un coche RC arduino y la raspberry pi L I O S El robot de 10 Otro año más se celebra la OSHWCon Los vagos 2 0 Explorer exe en Windows Probando el

    Original URL path: http://www.sistemasorp.es/2012/05/24/ (2013-05-07)
    Open archived version from archive

  • SISTEMAS O.R.P » 2012 » enero
    1 short int buffer short int inicializa cuantos short int ventana short int malloc cuantos if ventana NULL printf No se puede crear el doble buffer n exit 1 fondo negro for indice 0 indice cuantos 2 indice buffer indice 0 for usleep 10000 cuadro x y ventana 0 x suma x y suma y if x 269 x 0 suma x 1 x suma x if y 189 y 0 suma y 1 y suma y cuadro x y ventana 0x7E0 memcpy buffer ventana cuantos Que ejecutándolo quedaría así En un próximo artículo explicaré como acceder a la interfaz con SDL comunicarse con bluetooth mediante RFCOMM y obtener los valores de los botones traseros y del inclinómetro Edición 12 02 2012 1º artículo 3º artículo Probando el marco digital Parrot DF3120 parte 1 19 enero 2012 Electrónica Proyectos Reseñas 24 Comentarios He adquirido el marco digital de fotos Parrot DF3120 Es un marco que por menos de 20 puede representar fotografías en una pantalla de 320 240 3 5 Sus puntos fuertes es que tiene bluetooth para poder subir las imagenes desde por ejemplo un móvil y una entrada para tarjetas SD con la misma función Este marco ha sido hackeado y se le puede instalar un linux con las ventajas que ello representa El objetivo de este primer artículo es mostrar el proceso de instalación de linux y cómo acceder a este de una forma sencilla Lo primero es hacer un duplicado de disco del siguiente fichero minifs full ext img Esto en linux siendo root se consigue con el siguiente comando disco SD es el nombre que le haya asignado el sistema dd if minifs full ext img of dev disco SD Lo siguiente es actualizar el firmware del marco Para ello hay que encender el marco sin ninguna tarjeta SD insertada y enchufar el cable usb Cuando podamos acceder al contenido del disco crear una carpeta llamada update y dentro de esta copiar el fichero parrotDF3120 plf Después sacar el usb de forma segura y veremos que aparecen 4 cuadros en la pantalla uno azul y el resto verde momento en el cual ya se ha actualizado el firmware Ahora tenemos un modo de arranque dual Por un lado si encendemos el marco sin más veremos su funcionalidad de siempre es decir se visualizarán las imágenes que tengamos almacenadas una detrás de otra Pero si metemos la tarjeta SD y antes de encenderlo pulsamos los botones izquierdo y central de la parte de atrás y sin soltarlos encendemos el marco se arrancará linux y busybox Finalmente para acceder a la consola en el modo linux podemos hacerlo de dos formas la dificil y la fácil La dificil es sacar todos los tornillos para quedarnos con la placa y la pantalla A continuación soldamos en los agujeros del J4 la consola serie los tres pines 1 GND 2 RX 3 TX y nos buscamos un conversor TTL a puerto serie o a usb para poder comunicarnos con el dispositivo usando los siguientes parámetros de conexión 115200 8 N 1 recomiendo screen en linux o mac y putty en windows Esta es la consola serie donde se ven los mensajes de estado del arranque y luego se obtiene una shell donde interactuar con linux La fácil es simplemente conectar el cable usb al marco y a nuestro ordenador lo que nos configurará una conexión ethernet por usb llamada Ethernet Gadget la cual será una tarjeta de red que debemos configurar con la IP 172 16 61 2 y la máscara de red 255 255 255 0 Si todo ha ido bien y hacemos un ping a la dirección 172 16 61 1 el marco nos debería responder Finalmente para acceder a una shell sólo hay que hacer un telnet a la IP comentada Edición 22 01 2011 En el marco vienen unos programas para probar la pantalla gráfica Podeis ejecutar cualquiera de ellos usr bin plasma Una bonita demo sobre el efecto plasma usr bin newvox Un paisaje que si tuvieramos teclado podríamos recorrerlo Edición 12 02 2011 2º artículo 3º artículo Por fin se puede programar la cámara IP Zaapa CIPRW ZA CIPRW fácilmente 17 enero 2012 Informática Proyectos Reseñas 11 Comentarios Hacía tiempo que no volvía a escribir sobre la cámara ip Zaapa CIPRW Escribí dos artículos Uno sobre la descripción de la cámara en septiembre de 2008 y otro sobre cómo programarla en NET en Agosto de 2009 Lo cierto es que desde entonces dejé abandonado el tema y por necesidades he tenido que retomarlo para poder interactuar con ella Poco tiempo después de escribir el último artículo se publicó en la página de Gadget Victims información sobre un nuevo firmware para las cámaras Foscam FI908W La de Zaapa es la FI8901W en septiembre de 2009 donde entre otras cosas se habla de la documentación oficial de FOSCAM para sus cámaras IP Lo mejor de esto es que en esta documentación hay dos textos que pueden servirnos a los programadores para interactuar definitivamente con la cámara Zaapa y a los usuarios para poder ver sus cámaras en navegadores como Firefox Chrome Safari etc Se trata del IPCAM CGI SDK 2 1 y del IPCAM Protocol El primero es un documento PDF donde se explica cómo haciendo peticiones HTTP se puede descargar la imagen de la cámara y enviar ordenes a esta El segundo es un documento de Word donde se explica el protocolo de la cámara para comunicarse con ella mediante socket En este artículo me centraré en el primero por su facilidad de uso En el primer documento se explica qué peticiones hay que hacer para interactuar con la cámara Se trata de acceder a páginas web CGI pasándole normalmente los parámetros mediante el método GET que es como en realidad nosotros hacemos las llamadas desde un navegador web normalmente Antes de empezar a probar hay que cerciorarse de que la cámara Zaapa tiene el último firmware y el último Embeded Web UI Si

    Original URL path: http://www.sistemasorp.es/2012/01/ (2013-05-07)
    Open archived version from archive

  • SISTEMAS O.R.P » 2012 » febrero » 02
    Hi Sorry for my mistake We have stopped produce this product for a long time We do not have the firmware now Sorry for this Vamos que no querían ayudarme en nada David que suerte tuviste Buscando por Internet unos ficheros de recupercación para la zaapa o para la FOSCAM FI8901W no encontré nada Pero por suerte encontré esto otro Una forma de extraer de una cámara que funcionase su firmware a través de la consola serie oculta El proceso fue pesado me tuve que bajar el kermit 95 y buscar cómo demonios abrir una consola serie después esperé un rato largo a que se ejecutara el script convertir con el jedit una salida en otro fichero y finalmente pasar el convertidor de hexadecimal a binario el cual tuve que compilar modificar y compilar de nuevo para que funcionase Todo esto para que al final no se hubiera decargado correctamente el firmware linux bin y romfs img necesarios para reprogramar la cámara estropeada dando esta errores nada más arrancar Parecía que no iba a dar con la solución pero encontré un programa que te descargaba automáticamente los ficheros necesarios del firmware Lo ejecuté y parecía que había hecho bien su trabajo pero pasó lo mismo que en el anterior párrafo aunque esta vez sólo con el fichero linux bin Sin embargo gracias a esta otra página descubro que el fichero linux bin es en realidad un archivo zip y que lo que había hecho está aplicación es comerse los últimos 168 bytes asi que leyendo la memoria de la cámara que funcionaba recuperé esos 168 bytes Finalmente seguí paso por paso el proceso de nuevo pero cambiando los comandos fx por estos fx 6 romfs img 0x7F0D0000 0x7F0D0000 a fx 7 linux bin 0x7F020000 0x00008000 acxz Para Windows 7 como

    Original URL path: http://www.sistemasorp.es/2012/02/02/ (2013-05-07)
    Open archived version from archive

  • SISTEMAS O.R.P » 2012 » febrero » 12
    izquierda SDL Surface derecha SDL Surface ok SDL Surface diamante SDL Surface sol SDL Surface pantalla SDL Rect destino float radianes 0 float destino radianes float suma radianes ENTRADAS entradas inicializa entradas if SDL Init SDL INIT VIDEO 0 printf No se pudo iniciar SDL s n SDL GetError exit 1 atexit SDL Quit pantalla SDL SetVideoMode 320 240 16 SDL HWSURFACE SDL DOUBLEBUF if pantalla NULL printf No se puede inicializar el modo gráfico s n SDL GetError exit 1 SDL ShowCursor SDL DISABLE izquierda IMG Load izquierda png if izquierda NULL printf No pude cargar gráfico s n SDL GetError exit 1 derecha IMG Load derecha png if derecha NULL printf No pude cargar gráfico s n SDL GetError exit 1 ok IMG Load ok png if ok NULL printf No pude cargar gráfico s n SDL GetError exit 1 diamante IMG Load diamante png if diamante NULL printf No pude cargar gráfico s n SDL GetError exit 1 sol IMG Load sol gif if sol NULL printf No pude cargar gráfico s n SDL GetError exit 1 signal SIGINT salida while salir lee entradas entradas dibujamos el boton izquierdo destino x 0 destino y pantalla h 2 izquierda h 2 destino w izquierda w destino h izquierda h if entradas boton izquierdo SDL BlitSurface izquierda NULL pantalla destino else SDL FillRect pantalla destino SDL MapRGB pantalla format 0 0 0 dibujamos el boton central destino x pantalla w 2 ok w 2 if entradas boton central SDL BlitSurface ok NULL pantalla destino else SDL FillRect pantalla destino SDL MapRGB pantalla format 0 0 0 dibujamos el boton derecho destino x pantalla w derecha w if entradas boton derecho SDL BlitSurface derecha NULL pantalla destino else SDL FillRect pantalla destino SDL MapRGB pantalla format 0 0 0 dibujamos el sol de luminosidad destino x 0 destino y pantalla h sol h SDL SetAlpha sol SDL SRCALPHA SDL RLEACCEL entradas luminosidad SDL BlitSurface sol NULL pantalla destino dibujamos el diamante de inclinación switch entradas inclinacion case 1 izquierda destino radianes 3 M PI 2 suma radianes 0 10 break case 2 derecha destino radianes M PI 2 suma radianes 0 10 break case 3 abajo if radianes M PI destino radianes 2 M PI suma radianes 0 10 else destino radianes 0 suma radianes 0 10 break if radianes destino radianes 0 10 radianes destino radianes 0 10 radianes suma radianes if radianes 0 radianes 2 M PI else if radianes 2 M PI radianes 0 destino x pantalla w 2 sin radianes diamante w diamante w 2 destino y pantalla h 2 cos radianes diamante h diamante h 2 SDL BlitSurface diamante NULL pantalla destino SDL Flip pantalla SDL Delay 1 SDL FillRect pantalla destino SDL MapRGB pantalla format 0 0 0 destino x 0 destino y pantalla h sol h SDL FillRect pantalla destino SDL MapRGB pantalla format 0 0 0 SDL FreeSurface izquierda SDL FreeSurface derecha SDL FreeSurface ok SDL FreeSurface diamante SDL FreeSurface sol SDL FreeSurface pantalla printf n Fin del programa n return 0 COMPILACIÓN Hay que hacer lo mismo que en la COMPILACIÓN del apartado Librería SDL Sólo que esta vez el fichero de salida se llama pruebaentradas y el del código fuente pruebaentradas c EJECUCIÓN Hay que hacer lo mismo que en la EJECUCIÓN del apartado Librería SDL incluidas las imágenes si no las tenéis ya Sólo que esta vez el fichero se llama pruebaentradas EXPLICACIÓN En esta ocasión he aprovechado el código del anterior apartado y le he modificado para que responda a eventos Ahora cada vez que se pulse un botón saldrá en la pantalla el icono correspondiente se mostrará hacia que lado del marco está la gravedad y cuanta luz llega al sensor trasero Me centraré en explicar cómo he recuperado la información de las entradas de las que dispone el marco botones inclinómetro y fotoresistencia Si os acordáis en el primer artículo explicaba cómo acceder a la memoria del vídeo para escribir los píxeles de la imagen directamente en ella Aquí lo que vamos a hacer es abrir el fichero dev mem ya que desde él podemos acceder a los registros del microprocesador que contienen la información de las entradas y poder configurarlas Si queréis saber a fondo cómo funciona el microprocesador s3c2412 que gobierna el marco os podéis bajar su datasheet Las entradas de los botones se pueden leer desde los pines 2 3 y 4 del puerto F y las del inclinómetro desde los pines 9 y 10 del puerto G en ambos casos son GPIO y los leeremos mediante polling El valor de la fotoresistencia se puede leer del pin ADC0 y como indica el nombre es un ADC que leeremos igualmente mediante polling En la función inicializa entradas inicializaremos los registros Con la función open abrimos el fichero dev mem como lectura y escritura Con la función mmap abrimos las posición de memoria 0 56000000 para poder acceder desde el espacio de usuario a los registros de configuración y de datos de los puertos GPIO y la posición de memoria 0 58000000 para leer los canales ADC Estos números se pueden encontrar en las páginas 68 y 69 del datasheet que he puesto antes Para leer los puertos F y G debemos configurarlos antes Para esto debemos acceder a las direcciones de memoria de configuración del puerto F GPFCON 0 56000050 y del puerto G GPGCON 0 56000060 e indicar qué bits serán de lectura En el puerto F serán los bits 2 3 y 4 por lo que el valor de configuración para este registro según las página 275 del datasheet será xxxxxx000000xxxx o lo que es lo mismo para dejar el resto de bits a su valor original y sólo cambiar los 6 bits de los botones hay que hacer una operación AND del valor 0xFC0F En el puerto G serán los bits 9 y 10 por lo que el valor de configuración para este registro según la página 276 del datasheet

    Original URL path: http://www.sistemasorp.es/2012/02/12/ (2013-05-07)
    Open archived version from archive



  •