Seguimos con las tarjetas.
Ya hemos hablado alguna vez del estándar PCI pero no teníamos muchos datos sobre Europa. En Survey: Just 1 in 3 Euro biz slackers meets card security standards se habla de un informe de Verizon sobre el tema y Europa no sale bien parada. Como dicel titular sólo un tercio de los negocios europeos examinados cumplen el 80 por ciento o más de los requisitos de PCI Data Security Standard (DSS).
Se le echa la culpa a las diferentes regulaciones locales y también a las diferencias culturales.
En Why the US Doesn’t have Chip-and-PIN Credit Cards Yet nos recordaban que la seguridad no sólo se basa en tecnología o en recursos disponibles, sino que muchas veces se trata de una cuestión relacionada con los incentivos, amenazas, riesgos, costes…
Se habla del caso de la utilización de tarjetas con banda magnética en EEUU en lugar de las más modernas (y seguras) tarjetas con chip.
Y también los usos y costumbres de la gente. El ejemplo es Europa (territorios pequeños, con dificultades para perseguir a los defraudadores cuando cruzan la frontera) vs EEUU (un país grande, con ciudadanos que no salen tanto fuera) y las costumbres (y necesidades) de sus ciudadanos, las características de movimientos y viajes…
Esta entrada es más una ‘nota para mi mismo’ (note to self) que algo de valor real. Pero me encuentro con algunos pequeños avances, unas cuantas pestañas abiertas en el navegador y creo que es mejor compartirlo aquí para futura referencia que esperar a una (eventual) finalización de algo más avanzado.
Quién sabe si puede servirle a alguien para algo.
Mi único problema con ese diseño eran las habilidades y herramientas necesarias: corte de madera, mecanizado… Estuve dándole vueltas a las alternativas realizables y pensé en tubos de madera. Con la idea de que sólo sería necesario cortarlos a la medida adecuada, perforarlos y montar el armazón adecuado.
También descubrí otros proyectos interesantes como A spider called “Chopsticks” que utilizaba palillos orientales para las patas y Popsicle Stick Hexapod R.I.P. que utiliza palos de helado, lo que iba más en la línea de lo que estaba pensando y me animó bastante. También había visto Build a 12-Servo Hexapod que tiene menos posibilidades pero que también es muy interesante.
Buscando en la red hay un montón de proyectos más, como Hexpider que sigue otro tipo de diseño (y es capaz hasta de escribir) y este otro 6-legged robot project que me han servido para tener algunas ideas sobre movimiento y configuración de las articulaciones (a nivel básico, todavía no he estado pensando demasiado en esa parte).
Con estas ideas me fui a la tienda de bricolaje más cercana a ver qué tenían. Aunque llevaba en la cabeza la idea de los tubos de madera allí encontré un tubo de plástico que me pareció muy adecuado: pensé allí mismo que sería más fácil de cortar y más ligero. También tenían tubos de aluminio que quedarían mucho más impactantes a la vista, pero de momento ese no es el objetivo.
A photo posted by Fernando Tricas García (@ftricas) on
Como suponía, el tubo de plástico es fácil de trabajar y podemos hacerle un agujero y poner un tornillo para sujetar un servo sin complicarnos mucho la vida, como puede verse en esta foto:
A photo posted by Fernando Tricas García (@ftricas) on
La fotografía no es muy buena, pero creo que es suficiente para hacerse una idea de cómo se pueden unir las partes, es lo que más he agradecido ver en los proyectos de otra gente para copiar/inspirarme. Como puede verse, he elegido un diseño con tres servos
También podemos poner bridas de plástico para fijar una articulación con otra, aunque imagino que hará falta una sujección más sólida cuando llegue el momento de que todo esto se mueva. Pero nuevamente parece sencillo hacer rebajes y pegar unas piezas con otras cuando tengamos una idea más clara del proyecto.
Ha sido sorprendente para mi ver lo rápido que he podido llegar a tener esta configuración, ya veremos si después sigo avanzando tan rápido (con el inconveniente de que no tengo suficientes motores, así que hacen falta algunas compras y esas cosas).
Para el movimiento de las articulaciones ya teníamos la experiencia de Añadiendo movimiento: servos , si bien es cierto es que re-escribí casi todo el código siguiendo las ideas de PiCam; al fijar mejor la cámara (que es algo que no conté por aquí), el movimiento suave ya no era tan necesario.
A video posted by Fernando Tricas García (@ftricas) on
En la parte de los programas, por ahora, he hecho un par de programitas que están en servo.
El primero sirve para mover cada articulación de manera independiente desde la línea de órdenes (para poder establecer los puntos de referencia fácilmente): legOneMove.py.
Tenemos las tres articulaciones en los puertos GPIO correspondientes:
servoGPIO=[17,23,15]
y utilizamos una función para transformar un ángulo en el pulso necesario para mover el servo:
Para mi vergüenza, notar sólo recientemente descubrí la necesidad del temporizador final, porque si no el programa no da tiempo a que el movimiento se complete.
Finalmente, en
Directamente pasamos el primer argumento de la llamada como articulación que hay que mover (que se corresponderá, recordemos, con el GPIO adecuado) y el segundo es el ángulo de movimiento. No lo hagáis así, amiguitos: no os olvidéis nunca añadir en proyectos ‘reales’ los límites y comprobaciones adecuadas para no llevarnos más tarde sorpresas desagradables.
El segundo programa sería legServo.py que no es más que una simulación de lo que podrían ser los movimientos necesarios para que el hipotético robot ande: levantar un poco la pata, moverla hacia adelante, bajar la pata, moverla hacia atrás, … Y así sucesivamente. Seguro que hay que hacer ajustes después pero nos da una cierta idea de que hemos llegado a algún sitio.
A continuación podemos ver un vídeo de estos movimientos repetidos varias veces, que he grabado con ayuda de mi hijo
A video posted by Fernando Tricas García (@ftricas) on
También podemos ver en el siguiente vídeo algunas pruebas previas, aprovechando el sensacional editor de vídeos de YouTube, con dos articulaciones y con tres:
Los siguientes pasos deberían ser hacer el resto de las patas (como mínimo cuatro, aunque creo que quedará mejor con seis) y ver si será necesario algún hardware adicional (para controlar los 18 motores y, tal vez, algo más las salidas dela Raspberry podrían ser insuficientes) y alguna idea adicional para el ‘cuerpo’ del robot.
Seguiremos informando.
Es difícil estar al día de todos los cambios que van añadiendo los diferentes sistemas con los que interactúan las aplicaciones (en este caso web). Por eso vienen bien recordatorios como el de 4 HTTP Security headers you should always be using donde se habla justamente de eso, de algunas cabeceras de seguridad que deberíamos añadir:
Content-Security-Policy
X-Frame-Options
X-Content-Type-Options
Strict-Transport-Security
Naturalmente, también conscientes de que es posible que el navegador de nuestro usuario no los conozca/use/respete/tenga en cuenta.
En Every Bug Has a Sad, Sad Song un comentario interesante sobre la relación entre bugs (fallos de programación) y fallos de seguridad.
Suele decirse que cuando un programa tiene bugs es posible que estos den lugar a vulnerabilidades, y a problemas de seguridad.
Pero el autor se queja del abuso que se hace de este ‘deslizamiento’ y que los que señalan esos fallos deberían ayudar a los desarrolladores a aprender sobre seguridad y no criticarlos sin más.