jueves, 3 de marzo de 2016

Desbancando a la GoPro


Desbancando a la GoPro

   Cuando pensamos en una cámara deportiva, capaz de grabar vídeos y tomar fotos en alta definición, pudiendo llevar a cabo diferentes técnicas documentarias como time lapse, burst mode o slow motion; lo normal es que a la cabeza nos venga siempre la misma empresa: GoPro. Esto es sin duda debido a la gran experiencia en el pasado de esta firma, y a la exhaustiva campaña de marketing que lleva a cabo en varios países, lo que en ocasiones lleva a preguntarnos sobre el verdadero valor de sus productos, desconocido para una gran parte de los compradores, los cuales se lanzan como perros al hueso a aquello que más anunciado han visto y han oído hablar. ¿Acaso hay cámaras en el mercado cuyas características sean superiores a las que ofrecen las cámaras GoPro? Seguramente muy pocas. Sin embargo, existen infinidad de cámaras que cumplen con las mismas funciones que las GoPro, y muy superiores en cuanto a su relación calidad/precio, muchas veces casi insuperable.

   En esta ocasión hablaré de SJCAM, una empresa china fundada en 2014, cuyo objetivo no era el otro que el de crear la GoPro Killer definitiva, aquella que acaparase el mercado de imitaciones de cámaras a nivel mundial. Lo que no supieron los fundadores era que estaban creando una marca de renombre internacional, que algún día estaría codo con codo con GoPro.

   Es por eso que; de cara a los viajes de fin de curso y al ya cercano verano; me decido a realizar una minuciosa comparación de cámaras de ambas marcas, para ayudar a decidir en la posible duda a la hora de comprar una cámara deportiva. En este caso, las cámaras a comparar serán la GoPro Hero 3+ Black Edition y la SJCAM SJ4000 WiFi, puesto que son las que tengo en este momento. Empecemos pues con la comparación:

Aspecto
   En cuanto a aspecto y hardware, la Gopro es notablemente menos gruesa que la SJ debido a que no cuenta con una pantalla LCD trasera de 1.5”, como lo hace la SJ, la cual permite visualizar una vista previa de la imagen obtenida por el dispositivo, y la reproducción de los contenidos grabados, entre otras funciones, lo cual supone un importante punto a favor. 

   La GoPro pesa unos 78g, mientras que la SJ unos 58g, ambas con batería incluida, y sin contar con la carcasa. 

   La GoPro es de color plateado, mientras que el color de la SJ es seleccionable por el comprador, incluyendo un gran rango de variedades para todos los gustos.

   Un punto a tener en cuenta es el hecho de que la entrada de carga y conexión USB de la cámara es de tipo Micro USB, igual que la mayoría de smartphones de la actualidad, lo que supone que es muy probable que tengamos cables “de repuesto” iguales por casa. Por otro lado, la GoPro se carga mediante una entrada Mini USB, que también es bastante común en dispositivos portátiles, pero sin duda no tanto como lo es el Micro USB. Cabe añadir que evidentemente ambos productos incluyen sus respectivos cargadores en sus cajas de empaquetado. 

   Ambas cámaras poseen una salida Micro HDMI, la cual ofrece la posibilidad de visualizar los contenidos grabados en otro dispositivo; por ejemplo en una televisión. 

   Además, ambas cámaras incorporan una ranura para tarjetas de tipo Micro SD, en la cual se almacenan todos los archivos. He de advertir que es posible que tarjetas que no sean de Clase 10 no sean compatibles en ninguna de las cámaras. No solo eso, sino que la SJ solo soporta tarjetas de hasta 32gb de almacenamiento, mientras que la GoPro admite hasta 64gb de espacio.


Especificaciones

   En cuanto a resolución de vídeo, es donde mayoritariamente se puede apreciar la diferencia de precios, por la gran variedad de diferentes resoluciones que ofrece la GoPro. Esta da la posibilidad de grabar desde resoluciones como WVGA a 240 fps hasta 4k a 15 fps, lo que ya es una una muy elevada resolución para un uso cotidiano. La SJ ofrece resoluciones desde WVGA a 60 fps hasta 1080p a 30 fps; Full HD; usado en la mayoría de televisores actuales.

   Hablando de la resolución de imagen, ambas cámaras toman imágenes desde 3MP hasta 12MP de resolución, una gran calidad teniendo en cuenta el gran angular que ambas cámaras poseen.Ambas cámaras incluyen modos de imagen como time lapse y burst mode, completamente configurables, obteniendo unos resultados óptimos.

   Referente a su autonomía, la GoPro cuenta con una batería de ión-litio de 1180 mAh, superior a la de la SJ, que se queda en 900 mAh, lo que le da a la última una vida aproximada de 80 minutos grabando a 1080p entre carga y carga.

   Ambas cámaras emiten señal Wifi, con la cual podemos controlarlas desde un smartphone, como si de una pantalla se tratase. Además; algo obvio, ambas son sumergibles hasta los 30 metros de profundidad la SJ, 40 metros la GoPro, de forma efectiva en la mayoría de casos.

   A partir de aquí, la SJ cuenta con varias opciones y funciones configurables más: pantalla LCD de 1.5”, configuración de balance de blancos, ISO, color, exposición, tono, detección de movimiento,modo dash cam, modo subacuático, función de webcam para el ordenador, zoom digital de hasta 4 aumentos…

Accesorios incluidos
   En el paquete básico de ambos productos se incluyen varios accesorios y complementos para empezar a sacarle partido a las cámaras desde el momento en el que las abrimos.

   La GoPro incluye un mando con recepción de las señales de la GoPro, que cumple con las mismas funciones que el smartphone, a excepción de que no posee pantalla, y de que también es sumergible en el agua. Al igual que la SJ, incluye dos soportes tipo GoPro, varios adaptadores de dirección, algunas pegatinas con soporte incluído y una muy útil carcasa igual que la acuática, pero con huecos que dejan pasar gran parte del sonido, pensada para llevar a cabo deportes de acción en los que se quiera grabar un buen audio.

   Aparte de lo mencionado previamente, el paquete básico SJ4000 está provisto de un soporte para tubo o manillar, un soporte de rosca para trípodes, un soporte de pinza para el cinturón, un soporte de muñeca y otro de brazo, todos ellos totalmente compatibles con soportes tipo GoPro.

Toma de contacto
   En este vídeo realizado, se puede observar la diferencia de ambas cámaras en cuanto a las resoluciones de vídeo comunes a ellas más relevantes (720p y 1080p) y en cuanto a audio con la carcasa especial de audio.


   Se puede apreciar objetivamente que la GoPro emplea unos filtros tonales un poco más cálidos que la SJ, lo que crea buenos efectos en algunos planos determinados. En cuanto a la lente, se aprecia que el gran angular de la GoPro es notablemente más abierto que el de la SJ. Sin embargo, puesto que la SJ no incorpora tantos filtros de corrección, resulta más fácil editar las tomas grabadas con ella. Además sus macros son relativamente más precisos y detallados, como se puede apreciar en el plano del asfalto. Con baja luminosidad, es obvio que la GoPro gana ampliamente la batalla; su corrección de low light hace que casi en la noche se aprecie la misma luz que por el día, es impresionante. Cosas como esta son las que “justifican” de alguna manera el enorme abismo de presupuesto entre ambas cámaras.


Precio y conclusión
   Ahora bien, pasemos a evaluar sus precios según los resultados obtenidos:

   El precio de la GoPro Hero3+ Black Edition se sitúa en torno a los 400€, lo que podría ser de alguna forma comprensible por algunos forofos de la prestigiosa empresa, debido a que es seguramente una de las mejores cámaras del mercado. Sin embargo, este precio puede parecer desorbitado si se tiene en cuenta las miles de diferentes ofertas alternativas que se ofrecen en el amplio mercado internacional.

   Aquí es donde entra la SJ. La SJ4000 Wifi vale un precio en torno a los 75€, dependiendo del mercado o el vendedor. Esto hace reflexionar sobre la “verdad” que llevan los cientos de anuncios de GoPro que vemos todos los años y sobre si realmente las cámaras GoPro realmente valen lo que piden por ellas, sabiendo que sólo los accesorios incluidos en el paquete de la SJ; si estos fueran oficiales; costarían más que el precio establecido para las SJ.

   Como conclusión, el propósito de esta comparación no es otro que el de proponer una alternativa a las conocidas GoPro; como explicaba al principio; de cara a los viajes de fin de curso o al verano, para lo cual podría suponer una muy buena opción. Existen muchas cámaras oficiales en el mercado como las SJ, pero esta es quizás la más conocida, y por ello una de las más fiables. Es por eso que recomiendo esta cámara.

   Para finalizar, en caso de querer adquirir una, recomiendo mirar en el portal Banggood; teniendo cuidado con las falsificaciones, las cuales no incorporan el logo oficial de SJCAM, o en Amazon, más fiable y con mayor garantía.


jueves, 17 de diciembre de 2015

New video on the Youtube channel: Automatic Fish Feeder with Arduino!!! Go see it! (Robopro Youtube Channel)
New Video just uploaded!!! Don't miss it! RoboPro Youtube Channel

miércoles, 25 de noviembre de 2015

Stairway to Heaven played on Arduino with buzzer


SKETCH




CODE
#define NB0  31
#define NC1  33
#define NCS1 35
#define ND1  37
#define NDS1 39
#define NE1  41
#define NF1  44
#define NFS1 46
#define NG1  49
#define NGS1 52
#define NA1  55
#define NAS1 58
#define NB1  62
#define NC2  65
#define NCS2 69
#define ND2  73
#define NDS2 78
#define NE2  82
#define NF2  87
#define NFS2 93
#define NG2  98
#define NGS2 104
#define NA2  110
#define NAS2 117
#define NB2  123
#define NC3  131
#define NCS3 139
#define ND3  147
#define NDS3 156
#define NE3  165
#define NF3  175
#define NFS3 185
#define NG3  196
#define NGS3 208
#define NA3  220
#define NAS3 233
#define NB3  247
#define NC4  262
#define NCS4 277
#define ND4  294
#define NDS4 311
#define NE4  330
#define NF4  349
#define NFS4 370
#define NG4  392
#define NGS4 415
#define NA4  440
#define NAS4 466
#define NB4  494
#define NC5  523
#define NCS5 554
#define ND5  587
#define NDS5 622
#define NE5  659
#define NF5  698
#define NFS5 740
#define NG5  784
#define NGS5 831
#define NA5  880
#define NAS5 932
#define NB5  988
#define NC6  1047
#define NCS6 1109
#define ND6  1175
#define NDS6 1245
#define NE6  1319
#define NF6  1397
#define NFS6 1480
#define NG6  1568
#define NGS6 1661
#define NA6  1760
#define NAS6 1865
#define NB6  1976
#define NC7  2093
#define NCS7 2217
#define ND7  2349
#define NDS7 2489
#define NE7  2637
#define NF7  2794
#define NFS7 2960
#define NG7  3136
#define NGS7 3322
#define NA7  3520
#define NAS7 3729
#define NB7  3951
#define NC8  4186
#define NCS8 4435
#define ND8  4699
#define NDS8 4978

#define melodyPin 3

int melody[] = {
  NA4, NC5, NE5, NA5, NB5, NE5, NC5, NB5, 
  NC6, NE5, NC5, NC6, NFS5, ND5, NA4, NFS5, 
  NE5, NC5, NA4, NC5, 0, NE5, NC5, NA4, 
  NG4, NA4, NA4, 0, 0, NA4, NF5, NE5,

  NA4, NA4, NC5, NE5, NB5, NE5, NC5, NB5, 
  NC6, NE5, NC5, NC6, NFS5, ND5, NA4, NFS5, 
  NE5, NC5, NA4, NC5, 0, NE5, NC5, NA4, 
  NG4, NA4, NA4, 0, 0, 0, NA4, NB4,

  NC5, NE5, NG5, NC5, NB4, ND5, NG5, NB4, 
  NB4, NC5, NA4, NA4, NC5, NE5, NA5, NA4, 
  NB4, NC5, NG4, NC4, NC5, NG5, ND5, NG4, 
  NG5, NG5, NFS5, ND5, ND5, 0, 0, NA4, NB4, 

  NC5, NE5, NG5, NC5, NB4, ND5, NG5, NB4, 
  NB4, NC5, NA4, NA4, NC5, NE5, NA5, NA4, NB4, 
  NC5, NE5, NG5, NC6, ND5, NFS5, NA5, 
  ND6, NE5, NE5, NE5, 0, 0,
};

int tempo[] = {
8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 4, 12, 8, 8, 8,
8, 8, 8, 8, 4, 8, 8, 8,

8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 8, 8, 8, 8, 8,
8, 8, 8, 4, 12, 8, 8, 8,
8, 8, 8, 8, 4, 8, 8, 8,

8, 8, 8, 8, 8, 8, 8, 8,
16, 16, 8, 8, 8, 8, 8, 8, 8, 
8, 8, 8, 8, 8, 8, 8, 8,
16, 16, 8, 4, 12, 8, 8, 8,

8, 8, 8, 8, 8, 8, 8, 8,
16, 16, 8, 8, 8, 8, 8, 8, 8, 
8, 8, 8, 8, 8, 8, 8, 
8, 8, 8, 8, 2, 4, 4,
};


void setup(void)
{
  pinMode(3, OUTPUT);
  pinMode(13, OUTPUT);
}
void loop()
{
  sing(1);
}
int song = 0;

void sing(int s) 
{
  song = s;
  if (song == 1) {
    Serial.println(" 'Stairway to Heaven'");
    int size = sizeof(melody) / sizeof(int);
    for (int thisNote = 0; thisNote < size; thisNote++) {

      int noteDuration = 1200 / tempo[thisNote];

      buzz(melodyPin, melody[thisNote], noteDuration);

      int pauseBetweenNotes = noteDuration * 1.30;
      delay(pauseBetweenNotes);

      buzz(melodyPin, 0, noteDuration);

    }

  } 
  }


void buzz(int targetPin, long frequency, long length) {
  digitalWrite(13, HIGH);

  long delayValue = 1000000 / frequency / 2;
  long numCycles = frequency * length / 1000; 
  for (long i = 0; i < numCycles; i++) { 
    digitalWrite(targetPin, HIGH);
    delayMicroseconds(delayValue);
    digitalWrite(targetPin, LOW); 
    delayMicroseconds(delayValue);
  }
  digitalWrite(13, LOW);
}

martes, 24 de noviembre de 2015

Sweet Child O' Mine played on Arduino with buzzer



SKETCH




CODE

#define NB0  31
#define NC1  33
#define NCS1 35
#define ND1  37
#define NDS1 39
#define NE1  41
#define NF1  44
#define NFS1 46
#define NG1  49
#define NGS1 52
#define NA1  55
#define NAS1 58
#define NB1  62
#define NC2  65
#define NCS2 69
#define ND2  73
#define NDS2 78
#define NE2  82
#define NF2  87
#define NFS2 93
#define NG2  98
#define NGS2 104
#define NA2  110
#define NAS2 117
#define NB2  123
#define NC3  131
#define NCS3 139
#define ND3  147
#define NDS3 156
#define NE3  165
#define NF3  175
#define NFS3 185
#define NG3  196
#define NGS3 208
#define NA3  220
#define NAS3 233
#define NB3  247
#define NC4  262
#define NCS4 277
#define ND4  294
#define NDS4 311
#define NE4  330
#define NF4  349
#define NFS4 370
#define NG4  392
#define NGS4 415
#define NA4  440
#define NAS4 466
#define NB4  494
#define NC5  523
#define NCS5 554
#define ND5  587
#define NDS5 622
#define NE5  659
#define NF5  698
#define NFS5 740
#define NG5  784
#define NGS5 831
#define NA5  880
#define NAS5 932
#define NB5  988
#define NC6  1047
#define NCS6 1109
#define ND6  1175
#define NDS6 1245
#define NE6  1319
#define NF6  1397
#define NFS6 1480
#define NG6  1568
#define NGS6 1661
#define NA6  1760
#define NAS6 1865
#define NB6  1976
#define NC7  2093
#define NCS7 2217
#define ND7  2349
#define NDS7 2489
#define NE7  2637
#define NF7  2794
#define NFS7 2960
#define NG7  3136
#define NGS7 3322
#define NA7  3520
#define NAS7 3729
#define NB7  3951
#define NC8  4186
#define NCS8 4435
#define ND8  4699
#define NDS8 4978

#define melodyPin 3


int melody[] = {
 NCS5, NCS6, NGS5, NFS5, NFS6, NGS5, NF6, NGS5,
 NCS5, NCS6, NGS5, NFS5, NFS6, NGS5, NF6, NGS5,

 NDS5, NCS6, NGS5, NFS5, NFS6, NGS5, NF6, NGS5,
 NDS5, NCS6, NGS5, NFS5, NFS6, NGS5, NF6, NGS5,

 NFS5, NCS6, NGS5, NFS5, NFS6, NGS5, NF6, NGS5,
 NFS5, NCS6, NGS5, NFS5, NFS6, NGS5, NF6, NGS5,

 NCS5, NCS6, NGS5, NFS5, NFS6, NGS5, NF6, NGS5,
 NCS5, NCS6, NGS5, NFS5, NFS6, NGS5, NF6, NGS5,
};

int tempo[] = {
 10, 10, 10, 10, 10, 10, 10, 10,
 10, 10, 10, 10, 10, 10, 10, 10,

 10, 10, 10, 10, 10, 10, 10, 10,
 10, 10, 10, 10, 10, 10, 10, 10,

 10, 10, 10, 10, 10, 10, 10, 10,
 10, 10, 10, 10, 10, 10, 10, 10,

 10, 10, 10, 10, 10, 10, 10, 10,
 10, 10, 10, 10, 10, 10, 10, 10,
};


void setup(void)
{
  pinMode(3, OUTPUT);//buzzer
  pinMode(13, OUTPUT);//led
}
void loop()
{
  sing(1);
}
int song = 0;

void sing(int s)
{
  song = s;
  if (song == 1) {
    Serial.println(" 'Stairway to Heaven'");
    int size = sizeof(melody) / sizeof(int);
    for (int thisNote = 0; thisNote < size; thisNote++) {
   
      int noteDuration = 950 / tempo[thisNote];

      buzz(melodyPin, melody[thisNote], noteDuration);

      int pauseBetweenNotes = noteDuration * 1.30;
      delay(pauseBetweenNotes);

      buzz(melodyPin, 0, noteDuration);
    }

  }
  }


void buzz(int targetPin, long frequency, long length) {
  digitalWrite(13, HIGH);
  long delayValue = 1000000 / frequency / 2;
  long numCycles = frequency * length / 1000;
  for (long i = 0; i < numCycles; i++) {
    digitalWrite(targetPin, HIGH);
    delayMicroseconds(delayValue);
    digitalWrite(targetPin, LOW);
    delayMicroseconds(delayValue);
  }
  digitalWrite(13, LOW);
}