Resultados de la 4a válida – 2018-11-18
Novatos
Intermedios
Expertos
18f4550 328 adc arduino arm avion bici china code cortex cuenca debian ecuador Electrónica energia facebook fpv gobierno launchpad lcd led linux onboard patolin pi ppm Programacion quad radiocontrol raspberry rc robot robótica servos shield stellaris stewart timer tmart transmisor twitter uno USB video wordpress
Les dejo unos videos de las mangas finales, de la Copa LRP en Cuenca, Ecuador
Novatos
Intermedios
Expertos

Pues un hack rápido.
Quería conectar mi transmisor de RC al computador, para poder usar los simuladores de radio control, especialmente el VRC Pro, usando los componentes que tenía a la mano.
Tenía una placa Digispark, que usa un micro ATTINY85 emulando un dispositivo Joystick HID. Conectándolo al receptor RC podemos usar la pistola del transmisor, como un joystick en el computador (inalámbrico!) y usarlo dentro del simulador.
El código fuente, y el esquema de conexión , se encuentran en mi repositorio de github https://github.com/patolin/rc-receiver-joystick
Según wikipedia, una mascletá (pronunciado en valenciano /maskle’ta/ y, por ello, escrito de manera popular mascletà y normativamente mascletada) es un disparo pirotécnico que conforma una composición muy ruidosa y rítmica que se dispara con motivos festivos en plazas y calles, normalmente durante el día; es típica de la Comunidad Valenciana (España). Recibe su denominación de los masclets (petardos de una gran potencia sonora) ligados mediante una mecha conformando una línea o traca. Éstas suelen sujetarse a mediana altura colgadas con cuerdas o alzados mediante cañones.
Al contrario que los fuegos artificiales que buscan la estimulación visual, las mascletades (pronunciado en valenciano /maskle’taes/ y, por ello, escrito de manera popular mascletaes) tienen como objetivo estimular el cuerpo a través de los fuertes ruidos rítmicos de los masclets; algunos consideran estos ruidos «musicales», si bien no olvidan la parte visual. Lo que distingue una mascletá de una sucesión de explosiones es el ritmo que deben crear los masclets al explosionar, es fundamental que la fuerza de las explosiones vaya de menos a más, con final apoteósico, sin ello una mascletá no puede considerarse como tal.
Les dejo el video de la mascletá del 10 de marzo, donde tuve la suerte de estar casi en primera fila. Conecten sus audífonos, suban el audio a tope, y disfruten de las explosiones 😀
[HTML1]
Quizás algunos de ustedes se hayan encontrado con este «pequeño» problema:

Pues si, inesperadamente, y por causas no planificadas, se llenó el espacio de almacenamiento de nuestro servidor Linux. Ahora la pregunta es: Cómo sabemos que archivos o carpetas son los causantes?
Para esto, podemos usar el siguiente comando desde el terminal
sudo du -sx /* 2>/dev/null | sort -n
Este comando revisará el uso de espacio de cada carpeta (en este caso de la raiz /) y nos irá indicando que carpeta tiene el mayor uso de espacio en nuestro disco duro. Así, navegando por las subcarpetas, podremos ver que archivos son los que se han comido nuestro almacenamiento, y sabremos que medidas tomar.

Quizás se hayan topado con el problemita del paginador, al trabajar con custom types en wordpress. Simplemente el paginador no aparece.
Les dejo este código para arreglar esto. El truco es temporalmente mover la variable $wp_query a un temporal, y cargar $wp_query con el query del custom post type
< ?php
$temp = $wp_query;
$wp_query = null;
$wp_query = new WP_Query();
$wp_query->query('post_type=custom_post_type' . '&paged=' . $paged . '&posts_per_page=10');
?>
< ?php while ( $wp_query->have_posts() ) : $wp_query->the_post(); ?>
< ?php endwhile; ?>
< ?php previous_posts_link(); ?>
< ?php next_posts_link(); ?>
< ?php $wp_query = null; $wp_query = $temp; ?>
Al final, volvemos la variable $wp_query a su lugar, y listo!
Mis amigos en www.tmart.com han sido muy amables en enviarme un nuevo microcóptero. Cuando pensaba que no podían hacer algo más pequeño aún, aparece esto! La miniaturización al máximo nivel!
Este microquad, dentro del paquete contiene:
El microquad vino en una cajita bastante peculiar (dentro de un sobre pequeño, para ahorrar gastos de envío), y al verlo inicialmente, más parece una caja de un juguete pequeño, que de una aeronave RC. El quad viene en la parte superior, y el transmisor en la parte inferior de la caja transparente. El empaque es bastante delicado, pero con suerte no hubo ningún daño durante el envío.

Antes de iniciar el vuelo, recuerden que esto no es un juguete!, a pesar de ser muy pequeño y simpático (el modelo es un clon del DJI phantom, pero a escala 1:16) sus helices giran a muy altas velocidades, y podrían causar alguna herida en caso de tener contacto con la piel cuando estén en movimiento. Vale recalcar que para cualquier tipo de multirotor que se vuele en interiores, debe cuidarse que exista el espacio suficiente y que no existan obstáculos para su vuelo.
Luego de poner a cargarlo por unos 10 mins, y buscar un par de baterías AAA para el transmisor, lo primero que salta a la vista es lo pequeño de todo. El microquad como les mencionaba solo mide 4cm de lado, y el transmisor no mide mas de 6cm de longitud. El transmisor es bastante cómodo, y las palancas se ven bastante resistentes, pero eso no quita el efecto “juguete” que muestra por su pequeño tamaño. El transmisor tiene trims digitales para la palanca derecha, para ajustar el movimiento ya en vuelo.
Una vez que se ha cargado totalmente el microquad (se enciente la luz del conector USB del cargador), procedemos a encenderlo con el microswitch que se encuentra en la parte posterior, y encendemos a la vez en transmisor. Cuando la comunicación entre el transmisor y el microquad esté lista, el transmisor emitirá un bip de aviso, y en el microquad dejarán de parpadear los leds de cada rotor, quedando encendidos permanentemente.
Dado el pequeño tamaño del microquad, han sido muy inteligentes en colocar luces LED que facilitan su ubicación en el espacio. Además, las luces (2 azules adelante y 2 rojas atras) facilitan el control en el aire, indicando para donde se va a mover.
Subimos la palanca de la velocidad y el microquad despega super rápido. Es super sensible a los comandos. los giros son bastante buenos y el cambio de dirección es rápido. Adicionalmente es super estable cuando no recibe ningun control desde el transmisor.
Al ser tan pequeño, el punto débil del microquad son sus hélices. Lastimosamente, éstas, al entrar en contacto con una pared o algun objeto grande, se van a romper. Por suerte dentro del paquete se incluyen 2 hélices (una de cada sentido) para solventar un caso fortuito.
Como multicóptero de oficina funciona excelentemente. Intenté volarlo en exteriores, pero es imposible. Su escaso peso lo hace incontrolable con la brisa más leve 🙁 además, no sería muy optimista en la distancia a la que se perderá de vista volando en un parque o en el patio de la casa.
Como siempre, la curiosidad es mala consejera, y quise ver como es que algo tan complejo como un multirotor puede estar en un empaque tan pequeño, así que manos a la obra, a desarmarlo.
En sí, todo es miniaturizado. El microquad tiene un microcontrolador ST, un acelerómetro y el receptor de 2.4Ghz, todo en un circuito impreso que no mide más de 1cm2. El PCB se extiende hacia los lados y funciona como soporte de los motores, quedando únicamente la batería por debajo. Quizás para aligerar un poco el peso, podríamos deshacernos de la carcasa plástica y dejarlo “al desnudo”

Les dejo un video del vuelo en mi sala… resulta bastante complicado filmarlo por su pequeño tamaño, pero muy divertido de volarlo
[HTML1]
En el post anterior, pudimos comprobar lo facil que nos va a resultar usar al Stellaris Launchpad con el IDE Energía, como reemplazo del Arduino.
En este post vamos a revisar como usar las interrupciones del timer, para poder ejecutar eventos periódicamente. El Launchpad que estamos usando (LM4F120XL) tiene 27 timers que pueden ser activados independientemente.
Para poder utilizar el timer, en este caso el Timer 0 del Launchpad, necesitamos implementar 2 rutinas: 1 de inicialización y otra de interrupción. Para nuestro ejemplo, las rutinas son las siguientes:
Inicialización:
void initTimer(unsigned Hz)
{
SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0);
TimerConfigure(TIMER0_BASE, TIMER_CFG_PERIODIC);
unsigned long ulPeriod = (SysCtlClockGet() / Hz) / 2;
TimerLoadSet(TIMER0_BASE, TIMER_A, ulPeriod -1);
IntEnable(INT_TIMER0A);
TimerIntEnable(TIMER0_BASE, TIMER_TIMA_TIMEOUT);
TimerIntRegister(TIMER0_BASE, TIMER_A, Timer0IntHandler);
TimerEnable(TIMER0_BASE, TIMER_A);
}
Interrupción:
void Timer0IntHandler()
{
TimerIntClear(TIMER0_BASE, TIMER_TIMA_TIMEOUT);
digitalWrite(RED_LED, j&0x01);
j++;
}
Como podemos observar, la rutina de inicialización recibe como parámetro la frecuencia de activación del timer en Hz. Y la rutina de interrupción, simplemente activa o desactiva el led Rojo, para comprobar la funcionalidad del timer.
El sketch completo sería el siguiente:
#include "Energia.h"
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "inc/hw_ints.h"
#include "driverlib/debug.h"
#include "driverlib/interrupt.h"
#include "driverlib/sysctl.h"
#include "driverlib/timer.h"
int j=0;
void setup()
{
pinMode(RED_LED, OUTPUT);
initTimer(1); // timer a 1 hz
}
void loop()
{
// put your main code here, to run repeatedly:
while(1) {}
}
void initTimer(unsigned Hz)
{
SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0);
//TimerConfigure(TIMER0_BASE, TIMER_CFG_32_BIT_PER);
TimerConfigure(TIMER0_BASE, TIMER_CFG_PERIODIC);
unsigned long ulPeriod = (SysCtlClockGet() / Hz) / 2;
TimerLoadSet(TIMER0_BASE, TIMER_A, ulPeriod -1);
IntEnable(INT_TIMER0A);
TimerIntEnable(TIMER0_BASE, TIMER_TIMA_TIMEOUT);
TimerIntRegister(TIMER0_BASE, TIMER_A, Timer0IntHandler);
TimerEnable(TIMER0_BASE, TIMER_A);
}
void Timer0IntHandler()
{
TimerIntClear(TIMER0_BASE, TIMER_TIMA_TIMEOUT);
digitalWrite(RED_LED, j&0x01);
j++;
}
He decidido escribir una serie de posts, acerca del uso del Stellaris Launchpad. Este mini tutorial, vamos a analizar la primera versión del Stellaris Launchpad, que veía con el microcontrolador LM4F120H5QR, pero aplica a las nuevas versiones del board, que tienen el microcontrolador Tiva-C.

Este development board de Texas Instruments, sobresale de otros similares, por que su microcontrolador LM4F120XL tiene las siguientes características:
Si lo comparamos con el cásico y conocido Arduino, vemos que tenemos un procesador mucho más poderoso, con muchos mas pines de Entrada y Salida y mas periféficos, lo que permitirá que podamos diseñar aplicaciones embebidas con mayor facilidad. Además de esto, el Stellaris Launchpad, tiene un precio aproximado de USD.12,00 (en su nueva versión, que lleva un microcontrolador TIVA C) lo que lo coloca al nivel de los clones del Arduino Uno, por lo que vale la pena el intento.
Texas Instruments, con el fin de promover el uso de sus microcontroladores, permite descargar de forma gratuita (luego de un pequeño registro) sus herramientas de desarrollo, y son bastante completas. Pero al ser un entorno de desarrollo basado en Eclipse, es bastante lento y pesado, si no tienes un computador bastante potente.
Es aquí cuando aparece Energia. Este entorno de desarrollo, ha sido pensado para facilitar el desarrollo de aplicaciones usando la linea Stellaris de TI, presentando la posibilidad de usar el IDE de Arduino, para los procesadores de TI. Con este entorno, podemos programar fácil y rápidamente aplicaciones con el Launchpad, de la misma manera que lo hacemos con el Arduino, traduciéndose esto en velocidad de desarrollo, y facilidad de uso. Además, Energía es multiplataforma, existiendo versiones para Windows, MacOS y Linux.
En primer lugar, y si estamos trabajando bajo Windows, debemos descargar los Drivers Stellaris ICDI para USB. esto lo podemos descargar desde este enlace. Si estamos usando Linux o MacOS, podemos saltarnos este paso sin problema.
Una vez descargados los drivers, los descomprimimos en alguna carpeta facil de ubicar, y procedemos a conectar el Launchpad a nuestro puerto USB. Se iniciará el proceso de detección del dispositivo, y deberemos buscar la carpeta donde se descomprimió nuestro Driver, para que windows lo detecte e instale los dispositivos. Si todo sale bien, debemos tener 3 dispositivos nuevos en nuestro computador.
Luego descargamos el IDE Energia desde este enlace, escogiendo la versión que corresponda a nuestro sistema operativo. La descarga es algo grande (alrededor de 200MB) así que tomará algunos minutos. Una vez concluida la descarga, lo descomprimimos en una carpeta (puede ser en Mis Documentos) y listo, podemos empezar.
Al ejecutar Energia, a primera vista, observamos un clon del IDE de Arduino (algo bastante obvio, porque es un fork) pero en color rojo. Además del cambio de color, todas las barras de herramientas y menús, son identicos al IDE de Arduino.
Antes de empezar a programar, debemos cerciorarnos de que estamos utilizando la configuración correcta para nuestro Launchpad. Para esto, debemos seleccionar el puerto serie, y tipo de board correctos en el menu Herramientas. En mi caso estoy usando el puerto COM7 y el board LM4F120, que es de la primera serie de los Launchpad con Cortex M4.

Ahora si tenemos todo listo para empezar a programar, y vamos a empezar con el “Hello World!” de los microcontroladores: El blink. Vamos a crear un pequeño sketch que encienda el led Rojo del Launchpad, espere 1 segundo, lo apague, espere 1 segundo, y lo vuelva a encender. Para esto, pegamos el siguiente código en la ventana del editor Energia.
#define LED RED_LED
void setup() {
pinMode(LED, OUTPUT);
}
void loop() {
digitalWrite(LED, HIGH);
delay(1000);
digitalWrite(LED, LOW);
delay(1000);
}
Una vez copiado el código, presionamos en boton de descarga, y listo! El Led rojo de nuestro Launchpad empieza a parpadear.
Si queremos jugar un poco, podemos cambiar el color del Led. El launchpad incluye un led RGB, que podemos hacerlo parpadear cambiando esta línea:
#define LED GREEN_LED
O por
#define LED BLUE_LED
En los próximos días, continuaré con la serie, explicando como usar los distintos periféricos, y algunas funciones avanzadas del Launchpad.
En este post, y gracias a mis amigos de www.tmart.com, he probado su nuevo Microquad Aviator YK016, que se presenta como una de las mejores opciones de quadcopters, para todos aquellos que quieran iniciarse en el radiocontrol, sin tener que perforar sus bolsillos, o vaciar sus cuentas bancarias.
Este multicóptero viene en un paquete Ready to Fly, es decir, incluye todo lo necesario para su vuelo abrir la caja. Lo único que se deben agregar, son 6 baterías AA para el transmisor.
Como vemos, el multicóptero, además de venir debidamente protegido para el largo viaje desde las bodegas de www.tmart.com en China (o en EEUU en algunos casos) tiene todo lo necesario para iniciar el vuelo. El paquete incluye lo siguiente.
Antes de iniciar el vuelo, es necesario cargar completamente la batería del multicóptero. Esta batería está previamente insertada en el quadrotor, por lo que únicamente debemos conectar el cargador a un puerto USB libre en nuestro computador (o usar un cargador de pared, como muchos tenemos para nuestros teléfonos celulares) y conectar la batería del multicóptero al conector del cargador. La carga de esta batería demora alrededor de 15 minutos.
Mientras la batería se va cargando, podemos observar que la principal ventaja de este multirotor con respecto a otros de este tamaño, es su protector de hélices, integrado en cada uno de los 4 motores.
Este protector resulta realmente útil, cuando estamos aprendiendo a volar en interiores. Protege de muy buena forma contra golpes contra paredes u otros objetos que se puedan atravesar durante el vuelo. Además de los protectores laterales, tiene pequeñas patas bajo los motores, que amortiguarán cualquier caída abrupta del mismo
El transmisor es bastante liviano, y se asemeja a un control de consola (digamos que tiene un aire de control de playstation). Tiene trims digitales, y 2 opciones adicionales: Selección de velocidad de respuesta y selector de modo acrobático.
El selector de velocidad de respuesta, permite cambiar la sensibilidad de las palancas del control remoto, teniendo 3 posiciones: lento, medio y rápido. Inicialmente, el control siempre está en modo lento, y para cambiar el modo, basta con presionar hacia abajo la palanca de la izquierda. Esto resulta un poco incómodo, ya que al presionar, se pierde la posición actual del mando.
Ec modo actobático se activa presionando hacia abajo la palanca de la derecha. Con esto, el multicóptero realizará un giro automático de 360 grados, y regresará a su posición estable automáticamente. Es divertido el giro, pero necesita estar al menos a 1.80m de altura para poder recuperarse del giro, y no golpear contra el piso.
Como mencionamos anteriormente, el transmisor necesita 6 baterías AA para su funcionamiento, y lastimosamente, no incluye un conector USB para cargar el cargador, cuando estemos lejos de una toma de corriente.
Para resumir, la principal ventaja de este multicóptero, es el precio! por $29,99 con envío incluido, se lo puede comprar directamente en www.tmart.com. El paquete, por su peso y volúmen no presenta ningún impedimento para pasar por aduana sin problema, así que es una ganga. Por ese precio, podemos conseguir un controller board para un multicóptero más grande únicamente, así que es una ganga.
Les dejo un video, para que vean cuan estable y resistente es
[HTML1]