Recién desempacado y recién conectado :-D
lunes, 28 de octubre de 2013
sábado, 26 de octubre de 2013
Wii Classic Controller
Hace rato que debí postear este mensaje (la fecha del programa fuente indica 9 de junio del 2013) así que voy a aprovechar mientras se actualiza Pidora.
Echar a andar un control Wii Nunchuck en la Raspberry Pi no tiene ningún chiste, tal como dice Resident Bull. Echar a andar un Control Clásico Wii tampoco debe tener mucho chiste :-P. De eso trata este post.
Materiales:
- 1 Raspberry Pi (y todo que lleva alrededor, por supuesto)
- 1 Control Clásico Wii
- 1 Adaptador WiiChuck
- 4 cables jumper F-F
Conexiones:
De la Raspberry Pi al Adaptador WiiChuck:
- Pin 1 a "+".
- Pin 6 a "-".
- Pin 3 a "d".
- Pin 5 a "c".
Al igual que el Wii Nunchuck, el Control Clásico envía un paquete de datos I2C de 48 bits. Pero el formato es totalmente diferente:
Bit | ||||||||
Byte | 7 | 6 | 5 | 4 | 3 | 2 | 1 | 0 |
0 | RX<4:3> | LX<5:0> | ||||||
1 | RX<2:1> | LY<5:0> | ||||||
2 | RX<0> | LT<4:3> | RY<4:0> | |||||
3 | LT<2:0> | RT<4:0> | ||||||
4 | BDR | BDD | BLT | B- | BH | B+ | BRT | 1 |
5 | BZL | BB | BY | BA | BX | BZR | BDL | BDU |
Allí caben: los joysticks analógicos izquierdo (LX,LY) y derecho (RX,RY); dos disparadores LT, LR; el D-Pad: arriba, abajo, izquierda, derecha; y un titipuchal de botones: A, B, X, Y, ZL, ZR, +, -, HOME, LT y LR (sí, los disparadores también tienen botones).
Decodificar semejante estructura de datos requiere de unas de las tres virtudes del programador: lazziness. En lugar de andar aplicando máscaras y corrimientos cada vez que tienes que utilizar un dato, lo mejor es dejar que el compilador de encargue de todo eso:
struct wii_classic { unsigned lx:6; unsigned rx43:2; unsigned ly:6; unsigned rx21:2; unsigned ry:5; unsigned lt43:2; unsigned rx0:1; unsigned rt:5; unsigned lt20:3; unsigned padding:1; unsigned brt:1; unsigned bplus:1; unsigned bhome:1; unsigned bminus:1; unsigned blt:1; unsigned bdd:1; unsigned bdr:1; unsigned bdu:1; unsigned bdl:1; unsigned bzr:1; unsigned bx:1; unsigned ba:1; unsigned by:1; unsigned bb:1; unsigned bzl:1; };
En http://xml.cie.unam.mx/~hdcg/pub/wiiclassic.c se puede bajar un pequeño programa de prueba (basado en el de Ressident Bull. La salida del programa se verá más o menos como lo siguiente:
./wiiclassic 0x00 0x00 0xa4 0x20 0x01 0x01 33/30:15/16: 2/ 3; du dd dl dr a b x y lt zl zr rt minus home plus
Las primeros tres pares de números son los valores LX/LY:RX/RY:LT/LR. En seguida los valores del D-Pad: arriba (du), abajo (dd), izquierda (dl), derecha (dr). Y para terminar todos los botones. Cuando presiones un botón, se escribirá con MAYÚSCULAS.
Me quedan otros posts pendientes con la Pi y con el Arduino, pero por lo pronto es todo. ¡Felices códigos!
miércoles, 21 de agosto de 2013
¿Dónde te agarró el temblor?
Yo sabía que sólo era cuestión de tiempo para escribir en este olvidado blog el registro de un sismo M>6:
M6.1 - 18km NW of Ayutla de los Libres, Mexico
Event Time
2013-08-21 12:38:33 UTC 2013-08-21 05:38:33 UTC-07:00 at epicenter 2013-08-21 07:38:33 UTC-05:00 system time
Location
17.008°N 99.355°W depth=34.8km (21.6mi)
Nearby Cities
18km (11mi) NW of Ayutla de los Libres, Mexico 23km (14mi) N of San Marcos, Mexico 30km (19mi) SE of Tierra Colorada, Mexico 59km (37mi) ENE of Acapulco de Juarez, Mexico 268km (167mi) S of Mexico City, Mexico
Más información en http://earthquake.usgs.gov/earthquakes/eventpage/usb000j83t
Lo nuevo de este registro es la solicitud a mis escasos lectores para que llenen el cuestionario.
lunes, 8 de julio de 2013
Fedora 19
Por fin he terminado de actualizar los equipos a Fedora 19 (Schrödinger's Cat). Todos maullan muy bonito :-) Excepto, claro, los gatos que están muertos- o al menos apagados :-P
De entrada no parece haber nada revolucionario. Si acaso para los equipos de bajo nivel el regreso del entorno de escritorio clásico GNOME-2 bajo el nombre de MATE (*che boludo).
Ahora a desahogarse. Sigo sin entender el «nuevo» concepto del Anaconda. En particular para realizar una instalación cuando ya tienes Fedora. Más aún: cuando Fedora son tus únicos sistemas operativos. Sí, tengo instalados dos Fedora: la versión más nueva, y una versión anterior. Totalmente libre de Windows. Y lo vengo haciendo desde Fedora Core 1.
Si bien es cierto que desde la versión 18 Anaconda perdió la habilidad de actualizar una instalación previa, es una habilidad que siempre dejó mucho que desear y por lo tanto una habilidad despreciada a favor de una instalación nueva en un volumen lógico preexistente para tal propósito. Un volumen lógico para el sistema de archivos /home aseguraba una transición dócil entre versión y versión. Si algo no funcionaba bien en la nueva versión (como cuando dejaba de funcionar quake3) bastaba con reiniciar el equipo solicitando al GRUB arrancar la versión anterior.
Pero el nuevo Anaconda insiste en destruir la configuración anterior. De entrada pretende reclamar el volumen físico. ¡De ninguna manera! Luego, en el menú avanzado uno trata de realizar la configuración deseada y los quehaceres gráficos se cuatrapean. Al menos eso funcionaba en el Fedora 18, aunque era igual de incomprensible (RTFM).
Para no hacer el cuento largo, terminé instalando una máquina virtual. Luego, como si se tratara de una Raspberry Pi, copié el sistema de archivos raíz en el volumen lógico predestinado. Un par de órdenes en el entorno de rescate para recuperar las cuentas de usuario y la capacidad de arranque y ¡Listo!
Casi estoy seguro que será imposible instalar Fedora 19 en la computadora que el IER-UNAM me presta para trabajar. Al menos con Anaconda. 4 discos duros, 5 dispositivos RAID-1, 3 volúmenes físicos, 1 grupo de volúmenes, 3 volúmenes lógicos, y 1 sistema de archivos cifrado con LUKS. Tal vez FedUp sea capaz de actualizar F17, mientras conservo F18. Por si acaso.
sábado, 20 de abril de 2013
2013 VEX Robotics Middle School World Championship - Rankings
Al terminar las rondas de clasificación del 2013 VEX Robotics Middle School World Championship, después de diez juegos jugados, los equipos Mexicanos tienen los siguientes resultados:
En el grupo Spirit:
Rank Num Equipo (G-E-P) Puntos 9 6966A GONBOTZ - A (8-0-2) 817 22 4359A SECUNDARIA TÉCNICA NO. 22 (6-0-4) 1110 55 4402A Cuitlabots (3-1-6) 838 57 5918A Secundaria 13 (3-0-7) 905 65 6395B Tecnobots (3-0-7) 719 69 6637 Sec. Tec. 67 (3-0-7) 633 80 7351C Sec. Tec. 56-C (0-0-10) 713
En el grupo Oportunity:
Rank Num Equipo (G-E-P) Puntos 12 7313D SEED-AS 4 (7-0-3) 868 54 5918B Secundaria 13 B (4-0-6) 409 56 6395 Robotics Verein (3-1-6) 725 70 5381B Tenovex (2-1-7) 798 78 7351A Sec. Tec. 56-A (1-0-9) 694 79 5324A Discovery IV (0-0-10) 733
viernes, 19 de abril de 2013
Segundo día de competencias
Al terminar el segundo día de las rondas de clasificación del 2013 VEX Robotics Middle School World Championship, después de ocho juegos jugados, los equipos Mexicanos tienen los siguientes resultados:
En el grupo Spirit:
Rank Num Equipo (G-E-P) Puntos 13 6966A GONBOTZ - A (6-0-2) 597 19 4359A SECUNDARIA TÉCNICA NO. 22 (5-0-3) 779 57 6637 Sec. Tec. 67 (3-0-5) 539 62 5918A Secundaria 13 (2-0-6) 640 67 6395B Tecnobots (2-0-6) 613 72 4402A Cuitlabots (1-1-6) 663 79 7351C Sec. Tec. 56-C (0-0-8) 550
En el grupo Oportunity:
Rank Num Equipo (G-E-P) Puntos 17 7313D SEED-AS 4 (5-0-3) 753 44 5918B Secundaria 13 B (4-0-4) 320 64 5381B Tenovex (2-1-5) 608 71 6395 Robotics Verein (1-1-6) 554 73 7351A Sec. Tec. 56-A (1-0-7) 584 79 5324A Discovery IV (0-0-8) 668
El día de mañana se jugarán los dos últimos juegos. ¡Suerte para todos!
jueves, 18 de abril de 2013
2013 VEX Robotics Middle School World Championship (First Day)
Al terminar el primer día de las rondas de clasificación del 2013 VEX Robotics Middle School World Championship, después de tres juegos, los equipos Mexicanos tienen los siguientes resultados:
En el grupo Spirit:
Rank Num Equipo (G-E-P) Puntos #3: (6966A) GONBOTZ - A (3-0-0) (6-260) #35: (6637) Sec. Tec. 67 (2-0-1) (4-161) #40: (4402A) Cuitlabots (1-1-1) (3-199) #41: (4359A) SECUNDARIA TÉCNICA NO. 22 (1-0-2) (2-341) #55: (5918A) Secundaria 13 (1-0-2) (2-209) #56: (6395B) Tecnobots (1-0-2) (2-201) #72: (7351C) Sec. Tec. 56-C (0-0-3) (0-256)
En el grupo Oportunity:
Rank Num Equipo (G-E-P) Puntos #9: (7313D) SEED-AS 4 (3-0-0) (6-212) #12: (5918B) Secundaria 13 B (3-0-0) (6-120) #65: (5381B) Tenovex (0-1-2) (1-241) #66: (6395) Robotics Verein (0-1-2) (1-171) #77: (5324A) Discovery IV (0-0-3) (0-190) #80: (7351A) Sec. Tec. 56-A (0-0-3) (0-130)
El día de mañana se jugarán 5 rondas. ¡Suerte para todos!
Nuevo centro de trabajo
Lo único constante en el universo es que todo cambia - autor desconocido
Contrariamente a lo que suele suceder, no he cambiado mi centro de trabajo. El centro de trabajo ha cambiado. Ahora trabajo en el Instituto de Energías Renovables antes Centro de Investigación en Energía
Con la designación del Dr. Antonio del Río como Director, el cambio no podría ser mejor. Cuando Antonio estuvo al frente de la Unidad de Cómputo se dio impulso a Linux y al Software Libre. Y al frente de la Secretaría Académica el desarrollo de Sistemas de Información así como Scientometría y Minería de Datos.
Hay muchas cosas que hacer, muchas cosas que cambiar, otras que reparar. Me reporto listo para la faena. Espero que mis habilidades sean útiles al nuevo IER como lo fueron para el CIE.
miércoles, 3 de abril de 2013
Corrigiendo problemas SELINUX
# audit2allow -aPara ver los problemas desde el último arranque:
# audit2allow -bPara un problema nuevo context_t
# fgrep context_t /var/log/audit.log | audit2allow -M local.context_t # semodule -i local.context_tPara un problema adicional de un context_t previo:
# fgrep context_t /var/log/audit.log | audit2allow -m context_t >> local.context_t.teEditar en número de versión de context_t.te como se necesite y luego:
# checkmodule -M -m -o local.context_t.mod local.context_t.te # semodule_package -o local.context_t.pp -m local.context_t.mod # semodule -u local.context_t.pp