Controlando placas de IoT desde javascript


Node.js framework  fue  creado por Bocoup para controlar placas de desarrollo en una configuración de host-cliente   aunque   realmente su uso mayoritario sea como plataforma web   siendo    Johnny-Five la plataforma open  source de Robótica e IoT de JavaScript 

En realidad existen diferentes  plataformas donde se puede ejecutar el programa Johnny-Five :

  • En un entorno Linux a bordo: beagleBone Black,Chip,Intel Galileo gen 1,Intel Galileo Gen 2,Intel Edison Arduino,Intel Edison Mini, SparkFun Edison GPIO Block,SparkFun Arduino Block, Intel Joule 570x (Carrier Board),Linino One,pcDuino3 Dev Board,Raspberry Pi 3 Model B, Raspberry Pi 2 Model B. Raspberry Pi Zero,Raspberry Pi Model A Plus,Raspberry Pi Model B Plus, Raspberry Pi Model B Rev 1, Raspberry Pi Model B Rev 2, Tessel 2
  • En una máquina host conectada (a través de Serial USB o Ethernet) a un cliente.: Arduino Uno,SparkFun RedBoard, On a host machine communicating over Bluetooth to the client. Arduino Uno,Arduino Leonardo, Arduino Mega, Arduino Fio,Arduino Micro,Arduino Mini,arduino Nano,Arduino pro Mini,Boatduino,chipKit uno32,Spider robot Controller,DfRobot Romeo,Teensy 3,
  • En una máquina host que se comunica por wifi al cliente: Electric Imp April, pinoccio Scout, Particle Core ( Spark Core) ,Particle Photon, Sparkfun Photon RedBoard
  • En una máquina host que se comunica a través de Bluetooth al cliente :Blend Micro v1.0,LightBlue bean,

Johnny-Five como vemos hacer un énfasis especial en la robótica, pero tambien puede hacer muchas cosas diferentes con el software.De hecho ha existido durante hacer  más tiempo que la mayoría de los marcos de JavaScript para hardware . Ademas iene una API clara  y “fresca” ,ambas cosas ideales para los principiantes de hardware.

Lanzado porBocoup en 2012, Johnny-Five esta mantenido por una comunidad de desarrolladores de software apasionados e ingenieros de hardware. De hecho más de 75 desarrolladores han hecho contribuciones para construir un ecosistema robusto, extensible y muy versatil.

 

Hola Mundo! 

A los microcontroladores y las plataformas SoC nos gusta decir “Hola mundo” con un simple LED parpadeante, así  que veamos en primer lugar un ejemplo como lo hariamos  usando el Ide clásico  de Arduino

Como vemos en la imagen ,conectaremos un led entre el pin 13  y masa , respetando la polaridad (el ánodo al pin13 y el cátodo o pin corto a masa )

Para  hacer destellear el citado led,  estos son los pasos básicos  que tenemos que seguir en nuestro sketch  programandolo desde el IDE de Arduino:

  1. Configurar el pin 13 (con LED incorporado) como una SALIDA
  2. Establecer el pin 13 ALTO para encender el LED
  3. Esperamos 500 ms (medio segundo)
  4. Establecer el pin 13 BAJO para apagar el LED

Y este es el código completo para ejecutar desde el Ide de Arduino:

void setup() {
pinMode(13, OUTPUT);    
}
void loop() {
digitalWrite(13, HIGH);
delay(500);
digitalWrite(13, LOW);  
delay(500);
}

Y ahora vamos a ver el mismo ejemplo , pero ejecutandolo en Javascript por medio de node-js,

Desgraciadamente  si usamos un Arduino o alguno de sus variantes (Arduino Uno,SparkFun RedBoard, On a host machine communicating over Bluetooth to the client. Arduino Uno,Arduino Leonardo, Arduino Mega, Arduino Fio,Arduino Micro,Arduino Mini,arduino Nano,Arduino pro Mini,Boatduino,chipKit uno32,Spider robot Controller,DfRobot Romeo,Teensy 3,)   necesitaremos que el programa JavaScript se ejecute en una máquina host que ejecute Node.js. de modo que el programa transmitirá instrucciones básicas de E / S a la placa a través de una interfaz  serie USB , que actuara como un cliente ligero .

El método host-cliente implica la comunicación a través de una API común entre el host y el cliente. El marco Node.js usado con Arduino y placas similares , Johnny-Five, se comunica (de forma predeterminada) con las placas  utilizando un protocolo llamado Firmata, protocolo que permite que los hosts (computadoras) y los clientes (microcontroladores) intercambien mensajes de ida y vuelta en un formato basado en mensajes MIDI. El protocolo Firmata especifica cómo deben ser esos mensajes de comando y datos. La implementación de Firmata de Arduino proporciona el firmware real que puede poner en su tablero para hacer que “hable” Firmata. Toma la forma de un boceto de Arduino que sube al tablero.

Firmata es lo suficientemente popular como para que los bocetos de Firmata que necesita vengan empaquetados con el IDE de Arduino asi que bastara con subir este a Arduino una única vez  ya que  el código javascript  correra en el host usando node.js.

Puede seguir estos pasos para cargar el interfaz correcto de Firmata en su Arduino  para que se pueda utilizar como cliente en una configuración de host-cliente:

Resumidamente estos son los pasos previos para ejecutar el   mismo  ejemplo del led parpadeante  que hemos visto pero   en  javascript en una placa Arduino;

  • En primer lugar  conectar  su Arduino  mediante USB a  su ordenador
  • Lanzar el IDE de Arduino.
  • Asegurarse que esta configurada la version de su placa,  así como el puerto COM  virtual al que esta conectado
  • Acceda al menú Archivo> Ejemplos> Firmata
  • Seleccione StandardFirmataPlus de la lista y despliegue este sw sobre su Arduino

  • Ahora Instale Node.js   en su pc . Funciona  con ultima version 11.3.0  de  64 bit que incluye  npm 6.4 (no olvidar de chequear que se instalen  otros componentes )Este es el link de descarga https://nodejs.org/en/download/ 
  • En la instalación de Node.js, repetimo  no debemos olvidar de chequear que se instalen  otros componentes  pues  con ellos se   instalara automáticamente
    • Python 2.7.3 (http://www.python.org/getit/releases/2.7.3/)
    • Visual Studio Express 2010 de 32 bits (con  las dependencias de C ++)
    • El comando npm
    • Alternativamente si dispusiésemos de npm podríamos instalar ambos entornos  con  npm --add-python-to-path install --global --production windows-build-tools
  • Este pasos anterior ( instalacion de componentes ) es  innecesario  si chequeamos en la instalación  de node.js  pues se instalaran  esos componentes  automáticamente
  • Ahora instalar node-gyp  medianete  el comando  npm install -g node-gyp (esto instalará node-gyp globalmente)                          
  • Ya puede  crear su primer proyecto Johnny-Five, por lo que en primer lugar cree un directorio para él e instale el paquete framework npm, como se muestra en la siguiente lista:
    • < mkdir hello-world
    • < cd hello-world
    • < npm install johnny-five
  • Ejecute  el comando “npm install johnny-five” desde la carpeta del proyecto
  • Ya por fin podemos crear el fichero javascript  con su editor de texto  que contendrá el código en javascript  . 

Realmente estos son los pasos  que tenemos que seguir:

  1. Requerir el paquete johnny-five
  2. Inicializar un nuevo objeto Board que represente a su placa .
  3. Esperar a que el tablero dispare el evento listo
  4. Crear una instancia de un objeto LED en el pin 13 (el pin LED incorporado de Uno)
  5.  Hacer que el LED parpadee cada 500 ms

Este es el código en js :


const five = require(‘johnny-five’);
const board = new five.Board();
board.on(‘ready’, () => {
 const led = new five.Led(13);
   led.blink(500);
});


Guarde el archivo como hello-world.js  y  conecte su Arduino  a un puerto USB en su ordenador  si aún no está conectado.

En una terminal  de windows  vaya al directorio del proyecto y ejecute este comando:

<node hello-world.js


Verá una salida como la siguiente en su terminal ejecutando hello-world.js en una terminal

 

 

Si el LED incorporado parpadea ,!enhorabuena !  !acaba de controlar una placa Arduino con JavaScript!  ¿a que es realmente sencillo?.

Aunque en el caso de la familia Arduino tiene la innegable penalización de necesitar un host para operar , la ventajas de este  modelo son evidentes pues no tenemos que estar constantemente compilando  y  subiendo el sketch con el ide de Arduino ya que el programa corre en host . Ademas  podemos usar un simple editor de texto para cambiar el código en javascript fácilmente

Asimismo el lenguaje javascript ha ido evolucionando hasta un ritmo que no podemos imaginar   incluyendo muchas características que no son soportadas de forma directa desde Arduino

Por ultimo mencionar la autentica potabilidad del código , pues el código que hemos visto en el ejemplo podremos usarlos  en múltiples plataformas  tan diferentes como Raspberry pi, Intel Edison , etc usando siempre el mismo código fuente aun siendo soportado por placas muy diferentes ¿ a que es interesante?

 

 

Placas soportadas

Johnny-Five ha sido probado con una variedad de tableros compatibles con Arduino . 

Para los proyectos que no están basados ​​en Arduino, los complementos de IO específicos de la plataforma están disponibles. Los complementos IO permiten que el código Johnny-Five se comunique con cualquier hardware en cualquier idioma que la plataforma hable.

Como comentábamos   existen diferentes  formas de   ejecutar  el programa Johnny-Five  segun la placa:

  • En un entorno Linux a bordo: beagleBone Black,Chip,Intel Galileo gen 1,Intel Galileo Gen 2,Intel Edison Arduino,Intel Edison Mini, SparkFun Edison GPIO Block,SparkFun Arduino Block, Intel Joule 570x (Carrier Board),Linino One,pcDuino3 Dev Board,Raspberry Pi 3 Model B, Raspberry Pi 2 Model B. Raspberry Pi Zero,Raspberry Pi Model A Plus,Raspberry Pi Model B Plus, Raspberry Pi Model B Rev 1, Raspberry Pi Model B Rev 2, Tessel 2) ,   Es  facil adivinar qeu este es el mabiente ideal   pues dentro de la placa se oprtan tanto el host como el cliente  por lo qeu no ncesitamos conectarnos con otro dispositivo
  • En una máquina host conectada (a través de Serial USB o Ethernet) a un cliente.: Arduino Uno,SparkFun RedBoard, On a host machine communicating over Bluetooth to the client. Arduino Uno,Arduino Leonardo, Arduino Mega, Arduino Fio,Arduino Micro,Arduino Mini,arduino Nano,Arduino pro Mini,Boatduino,chipKit uno32,Spider robot Controller,DfRobot Romeo,Teensy 3,
  • En una máquina host que se comunica por wifi al cliente.: Electric Imp April, pinoccio Scout, Particle Core ( Spark Core) ,Particle Photon, Sparkfun Photon RedBoard
  • En una máquina host que se comunica a través de Bluetooth al cliente :Blend Micro v1.0,LightBlue bean,

Veamos  ahora cada  caso en concreto;

Arduino Uno 

Ambiente 

  • Firmware / Runtime: : StandardFirmataPlus (additional instructions)
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART
Dac no
Ping

SparkFun RedBoard 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus (additional instructions)
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

ping

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART
Dac no
Ping

 

Arduino leonardo 

Ambiente 

  • Firmware / Runtime:  StandardFirmataPlus (additional instructions)
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART
Dac no
Ping

Arduino Mega 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus (additional instructions)
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART
Dac no
ping

Arduino Fio 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus (additional instructions)
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART
Dac no
Ping

Arduino Micro 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus (additional instructions)
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

  • Admite la extensión PING_READ , cuando se usa con PingFirmata .
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
One wire no
Paso a paso no
Serial / UART
Dac no
Ping

Arduino Mini 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus (additional instructions)
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

  • Admite la extensión PING_READ , cuando se usa con PingFirmata .
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
One wire no
Paso a paso no
Serial / UART
Dac no
Ping

Arduino Nano 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus (additional instructions)
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

  • Admite la extensión PING_READ , cuando se usa con PingFirmata .
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART
Dac no
Ping

Arduino Pro Mini 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus ( instrucciones adicionales )
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

  • Admite la extensión PING_READ , cuando se usa con PingFirmata .
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
One wire no
Paso a paso no
Serial / UART
Dac no
ping

BotBoarduino 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus ( instrucciones adicionales )
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere amarre.

Plataforma específica 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART
Dac no
ping

chipkit uno32 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus ( instrucciones adicionales )
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere tethering.

Plataforma específica 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
One wire
Paso a paso
Serial / UART
Dac no
ping

Spider Robot Controller 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus ( instrucciones adicionales )
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere  tetehering.

Plataforma específica 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART
Dac no
ping

DFRobot Romeo 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus ( instrucciones adicionales )
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere amarre.

Plataforma específica 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART
Dac no
Ping

Teensy 3 

Ambiente 

  • Firmware / Runtime: StandardFirmataPlus ( instrucciones adicionales )
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a la placa a través de una serie USB , que actúa como un cliente ligero .Requiere amarre.
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART no
Dac no
ping

BeagleBone Black 

Ambiente 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping no

CHIP 

Ambiente 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo no
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
Ping no

Blend Micro v1.0 

Ambiente 

  • Complemento IO: BlendMicro-IO ( instrucciones adicionales )
  • Firmware / Runtime: BLEFirmata
  • El programa JavaScript se ejecuta en una máquina host que ejecuta Node.js. El programa transmite instrucciones básicas de E / S a través de Bluetooth a la placa, que actúa como un cliente ligero .
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
Ping no

 Electric Imp  April 

Ambiente 

Plataforma específica 

  • Requiere una conexión WiFi conectada a Internet y está sujeto a la limitación de la tasa de solicitud por parte del servidor de Electric Imp API.
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C no
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping no

Intel Galileo Gen 1 

Ambiente 

Plataforma específica 

  • Las compilaciones que no son IoTKit ya no son compatibles.
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping no

Intel Galileo Gen 2 

Ambiente 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
Silbido no

Intel Edison Arduino 

Ambiente 

Plataforma específica 

  • El hardware es capaz de soportar solo 4 salidas PWM. Como resultado, los enlaces nativos no admiten PWM en los pines 10 y 11.
  • Aunque Galileo-io / Edison-io / Joule-io todavía no admite comunicaciones en serie, puede enlazar a / dev / ttyFMD1 en la placa Edison Arduino usando el módulo serialport .
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
Silbido no

Intel Edison Mini 

Ambiente 

Plataforma específica 

  • analogRead componentes analogRead pueden analogRead a través de instancias de Expander . Ver Expander API para ejemplos.
Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
Silbido no

SparkFun Edison GPIO Block 

Ambiente 

Plataforma específica 

  • analogRead componentes analogRead pueden analogRead a través de instancias de Expander . Ver Expander API para ejemplos.
Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping no

SparkFun Arduino Block

Ambiente 

Plataforma específica 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable
Paso a paso
Serial / UART no
Dac no
ping no

Intel Joule 570x (Carrier Board) 

Ambiente 

Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping no

LightBlue Bean

Ambiente 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping no

Linino uno 

Ambiente 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping no

pcDuino3 Dev Board 

Ambiente 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo no
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping no

Pinoccio Scout 

Ambiente 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C no
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping no

Raspberry Pi 3 Modelo B 

Ambiente 

Plataforma específica 

  • analogRead componentes analogRead pueden analogRead a través de instancias de Expander . Ver Expander API para ejemplos.
Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART
Dac no
ping no

Raspberry Pi 2 Modelo B 

Ambiente 

Plataforma específica 

  • analogRead componentes analogRead pueden analogRead a través de instancias de Expander . Ver Expander API para ejemplos.
Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART
Dac no
Silbido no

Raspberry Pi Zero 

Ambiente 

Plataforma específica 

  • analogRead componentes analogRead pueden analogRead a través de instancias de Expander . Ver Expander API para ejemplos.
Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART
Dac no
ping no

Raspberry Pi Model A Plus 

Ambiente 

Plataforma específica 

  • analogRead componentes analogRead pueden analogRead a través de instancias de Expander . Ver Expander API para ejemplos.
Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART
Dac no
ping no

Frambuesa Pi Modelo B Plus 

Ambiente 

Plataforma específica 

  • analogRead componentes analogRead pueden analogRead a través de instancias de Expander . Ver Expander API para ejemplos.
Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART
Dac no
Silbido no

Raspberry Pi Modelo B Rev 1 

Ambiente 

Plataforma específica 

  • analogRead componentes analogRead pueden analogRead a través de instancias de Expander . Ver Expander API para ejemplos.
Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART
Dac no
Ping no

Raspberry Pi Modelo B Rev 2 

Ambiente 

Plataforma específica 

  • analogRead componentes analogRead pueden analogRead a través de instancias de Expander . Ver Expander API para ejemplos.
Lectura analógica no
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART
Dac no
ping no


Particle Core (Spark Core)

Ambiente 

Plataforma específica 

  • Los temporizadores se comparten en grupos: Temporizador 2: A0 , A1 , Temporizador 3: A4 , A5 , A6 , A7 , Temporizador 4: D0 , D1
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping


Particle Photon

Ambiente 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
ping no
Silbido

Sparkfun Photon RedBoard 

Ambiente 

Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART no
Dac no
ping

Tessel 2 

Ambiente 

Plataforma específica 

  • El soporte de servo se proporciona a través de componentes I2C (por ejemplo, PCA9685 )
  • DAC está limitado a Puerto B, Pin 7
Lectura analógica
Lectura digital
Escritura digital
PWM
Servo
I2C
Un cable no
Paso a paso no
Serial / UART
Dac
ping no

Mas información en  http://johnny-five.io/platform-support/

Error splicing file:file too large


En efecto en un ordenador con sistema operativo Linux  en cualquier de sus variantes como Ubuntu, Lubuntu ,Fedora, etc.  puede  que copiando archivos  grandes hacia una unidad extraible USB termine dando error con el típico mensaje   “Error splicing file:file too large“.

Afortunadamente entender el motivo  del error es sencillo ,pues generalmente el problema se debe a que el disco de destino (es decir en la unidad extraible en el que desea copiar el archivo) está formateado con el sistema de fichero FAT32 , el cual  tiene un límite de tamaño de archivo de aproximadamente 4GB, por lo que efectivamente Linux cuando intenta copiar sobre una unidad destino formateada en fat32 el so. empieza copiando hasta que llega  aproximadamente a los 4GB , momento en el cual no puede continuar, pues el sistema de ficheros no lo permite, terminando dando error y abortándose la copia.

Curiosamente según el tipo de fichero que sea ,es posible que incluso abortando la copia con el mensaje Error splicing file:file too large , en caso de copias de ficheros de vídeo ( por ejemplo en formato mkv) , a pesar de esto, incluso con el error puedan ser reproducibles parcialmente ( es decir, sin poder reproducirse hasta su totalidad).

Afortunadamente para resolver este problema, la solución es bien sencilla pues bastara en volver a  formatear su disco de destino a EXT3, EXT4 o NTFS.

Mientras que FAT, FAT32 y exFAT se utilizan en memorias USB y tarjetas SD , NTFS es   utilizado sobre todo por discos duros, lo cual no significa  que ntfs no  deba usarse también en unidades extraibles USB: todo lo contrario ,pues por las razones que vamos a ver , ntfs tambien deberia ser  la mejor opción para unidades  extraibles usb.

NTFS (New Technology File System) es el sistema de archivos que Windows utiliza por defecto,  (de hecho windows sólo puede ser instalado en una unidad con este sistema),Su adaptación no es casual pues , ntfs  conlleva  múltiples ventajas:

  • Como hemos comentado su límite de tamaño de archivos es de 16 TB,  ( los volúmenes pueden llegar a tener 264 TB cada uno)
  • Se pueden configurar los permisos de acceso a un archivo (vital para un sistema operativo).
  • Permite cifrar archivos.
  • Permite nombres de archivos largos.
  • Se recupera más fácilmente de errores si el ordenador se cuelga

Vemos pues para soslayar el problema “Error splicing file:file too large”  y la unidad destino esta formateada en otro formato ,  tendremos  que  formatear en NTFS  pues así no habrá problemas  a  la hora de copiar estos ficheros.

 

FORMATEO DESDE WINDOWS

En realidad formatear en NTFS un unidad USB con Windows 10 es muy fácil:

  • Pinche con el botón DERECHO del ratón en el menú Inicio de Windows y elige Explorador de archivos.
  • En la ventana que se abre haga clic a la izquierda en Este equipo.
  • A la derecha verá las unidades de disco duro, particiones, discos o pendrives USB o CD/DVD que tenga tu PC. Seleccione la unidad que quiere formatear pinchando en ella con el botón izquierdo. Luego haz clic encima con el botón DERECHO y elige Formatear. (!IMPORTANTE !: -Es obvio que debe elegir con mucho cuidado la unidad pues formatearla borrará por completo todo lo que haya en ella.
  • Al elegir la opción de formateo se abre su ventana de propiedades.Defina así las opciones siguientes que incluye:
      • Sistema de archivos:Pincha en la lista desplegable de abajo y elija  NTFS.
      • Tamaño de unidad de asignación. Lo normal es que deba mantener el tamaño que te indique por defecto la ventana de formateo.
      • Etiqueta del volumen :Escriba un nombre que describa lo que hay o habrá en ese disco o USB. No es una opción obligatoria pero sí recomendable.
      • Opciones de formato:Desactive la casilla de Formato rápido haciendo clic en ella. Así obligara a que Windows chequee el disco o USB e intente reparar de forma automática posibles errores que tenga por lo que puede ahorrarle problemas futuros o hasta pérdidas de datos. Por cierto mantener el formato rápido acelera el proceso pero se salta la comprobación del disco o USB.
  • Finalmente pulse Iniciar cuando acabes de configurar esas opciones. Confirme con Aceptar el aviso de que se borrará todo lo que haya en esa unidad.
  • El formateo tardara más o menos dependiendo del tamaño de la unidad seleccionada, la velocidad de su PC y si ha elegido o no la opción rápida. Acepte y cierra la ventana cuando termine.

 

FORMATEO DESDE LINUX

Ahora veremos como  soslayar el problema ” Error splicing file:file too large”  y la unidad destino esta formateada en otro formato ,   formateando  en NTFS  desde el propio Linux  para que no haya problemas  a  la hora de copiar ficheros de mas de 4GB

Lo primero que tenemos que tener claro a la hora de formatear una unidad es la ruta en la que se encuentra en el sistema.

Para ver que dispositivo es el que vamos a usar escribimos en Terminal (Abrir Terminal presionando Ctrl + Alt + T) :

Para eso, solo tendremos que escribir en el Terminal el comando:

df

Este comando nos mostrará todos las particiones y discos que tiene actualmente el ordenador conectados al sistema. Como podremos observar, los sistemas basados en Ubuntu 16.04 asignan cómo nombre de partición de la siguiente forma sdaX donde la X es un número de partición, por lo que si tenemos una unidad USB  conectado , el nombre será muy similar a sdaX ( por e ejemplo sdb3).

Una vez hayamos encontrado la memoria USB desde el terminal, tenemos que desmontarlo del sistema para que podamos formatearlo. Para realizar esta tarea tendremos que ejecutar el siguiente comando:

sudo umount /dev/sdb3

Ahora ya lo tenemos preparado para formatear. Por lo que tendremos que escribir la siguiente línea de código en el terminal.

sudo mkfs.vfat -F 32 -n "Nombre_pendrive" /dev/sdb3

Quizá no entiendas nada de lo que hemos puesto en esa parte de código, pero aquí estamos para resolver estas dudas:

  • mkfs.vfat: Es el programa de ejecución de la herramienta del terminal para formatear unidades del sistema.

  • -F 32: Esto le indica al sistema que el formato ha de realizarse con el sistema de archivos de Fat32.

  • -n “Nombre_pendrive”: Este será el nombre que aparecerá cada vez que conectemos el USB al ordenador.

  • /dev/sdb3: Esta tiene que ser la ruta completa donde se sitúa la memoria USB que queremos formatear.

 

Es posible formatear   en diferentes formatos:

  • Formatear USB con Extended File System (Ext) :Este es el sistema de archivos preferido por Linux.

<pre “>

sudo mkfs.ext4 /dev/sdb3

  • Formatear USB con FAT (File Allocation Table) 
 sudo mkfs.vfat /dev/sdb3 
  • Formato de formato USB con NTFS (Sistema de archivos de nueva tecnología)
 sudo mkfs.ntfs /dev/sdb3 

Por ultimo, salimos de Terminal con:

exit

Esta es la salida de la ejecución de estos comandos:

[email protected]:~$ df
Filesystem 1K-blocks Used Available Use% Mounted on
udev 214372 0 214372 0% /dev
tmpfs 47028 2948 44080 7% /run
/dev/sda1 38192692 11567744 24655132 32% /
tmpfs 235132 0 235132 0% /dev/shm
tmpfs 5120 4 5116 1% /run/lock
tmpfs 235132 0 235132 0% /sys/fs/cgroup
tmpfs 47024 12 47012 1% /run/user/1000
/dev/sdb1 15108880 41156 15067724 1% /media/carlos/KINGSTON16G

[email protected]:~$ sudo umount /dev/sdb1
[sudo] password for carlos:

[email protected]:~$ sudo mkfs.ntfs /dev/sdb1
Cluster size has been automatically set to 4096 bytes.
Initializing device with zeroes: 41%100% – Done.
Creating NTFS volume structures.
mkntfs completed successfully. Have a nice day.
[email protected]:~$

 

No esta de mas recordar que debe cambiar la identificación del dispositivo USB en los comandos anteriores o desde el interfaz grafico ,En el  ejemplo en un viejo portatil hp con Lubuntu se ha usado sdb3 , pero no necesariamente sera el mismo identificador que tengan sus unidades.

Como puedes observar, es un proceso muy sencillo pero tiene las complicaciones de saber que es lo que hace cada cosa y cual es la dirección correcta que queremos formatear, ya que si nos equivocamos puede ser fatal para nuestro sistema operativo.

 

 

 

Nueva protección antimalware de Windows


Windows Defender   en su características contra amenazas  avanzadas , como novedad , ofrece una característica muy interesante de protección antimalware : Bloqueo a primera vista ,característica  que ofrece una nueva  manera de detectar y bloquear nuevo malware en segundos.

Desgraciadamente no hay ninguna configuración individual específica en System Center Configuration Manager para habilitar o deshabilitar el bloqueo a primera vista. Se habilita de manera predeterminada cuando la configuración de requisitos previos está definida correctamente  (donde es  de destacar que el antivirus windows defender este activo y que la licencia del  sistema operativo este vigente).

En la mayoría de los casos, esta configuración de requisitos previos se habilita de manera predeterminada así que esta característica se ejecutara sin necesidad de intervención alguna ( de hecho se puede usar la configuración de Directiva de grupo para confirmar que la característica está habilitada ), pero si no esta seguro, es muy sencillo confirmar que el bloqueo a primera vista está habilitado con la aplicación de seguridad de Windows  como vamos a ver a continuación.

Bloqueo a primera vista está habilitada automáticamente siempre y cuando la protección basada en la nube y el envío automático de muestras estén activados.Obviamente también suponemos que Windows Defender esta activo para lo cual debe tener el equipo con licencia del sistema operativo  activa y disponer de conectividad: 

En efecto, se puede confirmar que el bloqueo a primera vista está habilitado en la configuración de Windows , Para confirmar que el bloqueo a primera vista está habilitado en clientes individuales basados en windows 10, puede seguir estos pasos:

  1. Abra la aplicación de seguridad de Windows, y haga clic en el icono de escudo en la barra de tareas.

  2. Haga clic en el icono de protección contra Virus y contra amenazas (o en el icono de escudo en la barra de menús de la izquierda)

  3. A continuación, haga clic en configuración de protección contra Virus y amenazas:                                       

  4. Confirme que la Protección basada en la nube y el Envío de muestras automático se han establecido en Activado.(en la imagen del ejemplo se ve en un pequeño circulito en verde con la “v” de verificado

 

Por cierto ,en Windows 10, versión 1803, bloqueo a primera vista puede bloquear ahora no portátiles archivos ejecutables (por ejemplo, JS, VBS o macros), así como los archivos ejecutables.

 

Funcionamiento

Cuando el Antivirus de Windows Defender encuentra un archivo sospechoso pero no detectado, consulta en la nube de Azure el servicio  de protección de la nube. El back-end de nube aplica heurísticas, aprendizaje automático y análisis automatizado del archivo para determinar si los archivos son malintencionados o limpios.

Bloqueo a primera vista solo usa el back-end de protección en la nube para los archivos ejecutables y portátiles que no son los archivos ejecutables que se descargan de Internet o que se originan desde la zona de Internet. Se comprueba un valor de hash del archivo .exe a través del back-end de la nube, para determinar si se trata de un archivo no detectado anteriormente.

Si el back-end de nube no puede determinarlo, Antivirus de Windows Defender bloqueará el archivo y se cargará una copia en la nube. La nube realizara un análisis adicional para llegar a una determinación antes de que permita la ejecución del archivo o lo bloqueará en todos los encuentros futuras, dependiendo de si se determina que el archivo es malintencionado o seguro.

En muchos casos, este proceso puede reducir el tiempo de respuesta de  nuevo malware de horas a segundos.

 

Validar las conexiones entre la red y la nube

Existe una  serie de url’s asocidos a este  servicio de Windows Deefender a los que debe asegurarse el acceso desde el equipo  ( es decir es una especie de lista blanca las direcciones URL) ,

En la tabla siguiente se  pueden ver  los serviciosa, las descripciones   y por supuesto sus direcciones URL asociadas a los que la red tiene que poder conectarse. 

Servicio Descripción Dirección URL
Servicio de protección entregada en la nube del Antivirus de Windows Defender, también conocido como Microsoft Active Protection Service (MAPS) Usado por el Antivirus de Windows Defender para proporcionar protección entregada en la nube *. wdcp.microsoft.com
*. wdcpalt.microsoft.com
*. wd.microsoft.com
Servicio Microsoft Update (MU) Inteligencia de seguridad y las actualizaciones de productos *.update.microsoft.com
Inteligencia de seguridad de las actualizaciones de ubicación de descarga alternativa (ADL) Ubicación alternativa para las actualizaciones de inteligencia de seguridad de Antivirus de Windows Defender si la inteligencia de seguridad instalada desactualizadas (7 días o más) encuentra detrás de *.download.microsoft.com
Almacenamiento de envío de malware Cargar la ubicación de los archivos enviados a Microsoft a través del envío del formulario o el envío de muestra automático *.blob.core.windows.net
Lista de revocación de certificados (CRL) Usado por Windows al crear la conexión SSL a MAPS para actualizar la CRL http://www.microsoft.com/pkiops/crl/
http://www.microsoft.com/pkiops/certs
http://crl.microsoft.com/pki/crl/products
http://www.microsoft.com/pki/certs
Almacén de símbolos Usado por el Antivirus de Windows Defender para restaurar ciertos archivos críticos durante los flujos de corrección https://msdl.microsoft.com/download/symbols
Cliente de telemetría universal Usado por Windows para enviar datos de diagnóstico de cliente; Antivirus de Windows Defender lo usa para fines de supervisión de calidad de productos Esta actualización usa SSL (puerto TCP 443) para descargar manifiestos y cargar datos de diagnóstico en Microsoft, usando los siguientes puntos de conexión DNS:
  • vortex-win.data.microsoft.com
  • settings-win.data.microsoft.com

Por desgracia no podría usar un archivo de configuración automática de proxy (.pac) para probar las conexiones de red a estas direcciones URL por lo que tendrá que comprobar sus servidores proxy y cualquier filtrado de herramientas manualmente para garantizar la conectividad de red.

Para comprobar  si en ese equipo se llegan a estas url’s ,  Microsft proporciona la utilidad  mpcmdrun.exe que se identifica a sí mismo como el Microsoft Malware Protection Command Line Utility siendo  parte del Windows Defender de Microsoft.  Esta utilidad al conectarse a internet, puede parecer sospechoso, pero usualmente es un programa del propio Microsoft  que solo funcionará en Windows 10, versión 1703 o posterior.

Use el argumento siguiente con la utilidad de línea de comandos (mpcmdrun.exe) de Antivirus de Windows Defender para comprobar que la red puede comunicarse con el servicio de nube de Antivirus de Windows Defender:

<pre class="wp-block-syntaxhighlighter-code brush: plain; notranslate" style="padding-left:80px;"><strong>MpCmdRun -ValidateMapsConnection
</strong></pre>

Para ejecutar esta utilidad , deberá abrir un interfaz de comandos   ( ejecutar comando cmd)   y  ejecutándolo como administrador del símbolo del sistema(hagz clic con el botón secundario en el elemento del menú Inicio, en Ejecutar como administrador y en  en el mensaje sobre permisos.  Por cierto , para ejecutarlo debería situarse en  %ProgramFiles%\Windows Defender\  ( es decir normalmente en  C:\Program Files\Windows Defender\:

 

Si por alguna razón falla, tendrá  que asegurarse de que no existen reglas de filtrado de red o firewall que puedan denegar el acceso a estas direcciones URL, Incluso puede que tenga que crear una regla de permiso específicamente para ellas

Comprobado  que su equipo tiene conectividad con los servidores de Windows Defender,  podemos probar la efectividad del proceso  descargándonos un archivo de prueba: de este modo el Antivirus de Windows Defender detectará y bloqueará si está conectado correctamente a la nube.

Obviamente este archivo no es un fragmento real de malware. Es un archivo falso que está diseñado para probar si está conectado correctamente a la nube y si funcionan adecuadamente los servicios de Windows Defender antimalware

El ejemplo se puede descargar  visitando el siguiente vínculo:

http://aka.ms/ioavtest

Si estás conectado correctamente, verá una advertencia de notificación de Antivirus de Windows Defender:

 

Si usa Microsoft Edge o Internet Explorer  también verá un mensaje de notificación muy similar al anterior

Si le interesa ver el detalle ,también verá una detección de amenazas en cuarentena en la sección de historial de exámenes en la aplicación de seguridad de Windows:

  1. Abra la aplicación de seguridad de Windows haciendo clic en el icono de escudo en la barra de tareas o buscando Defender en el menú Inicio.
  2. Haga clic en el icono Protección contra virus y amenazas (o en el icono de escudo de la barra de menús de la izquierda) y, después, en la etiqueta Scan history:
  3. En la sección Quarantined threats, haga clic en la etiqueta Ver historial completo para ver el malware falso detectado:

 

Asimismo , el registro de eventos de Windows también mostrará el id. de evento 2050 del cliente de Windows Defender.

Para  terminar, windows defender, se encargara de eliminar el propio fichero descargado de prueba pues este contenía el malware que ha sido detectado  , analizado  y puesto en cuarentena  por este nuevo servicio de Windows Defender:

 

Por cierto las versiones de Windows 10 anteriores a la versión 1703 tienen una interfaz de usuario diferente pero en esencia las opciones de estos menús de windows defender son muy similares

 

Mas información en https://docs.microsoft.com/es-es/windows/security/threat-protection/windows-defender-antivirus

 

Cómo convertir cualquier ordenador en tactil


 

En el mundo de los ordenadores portátiles con sistemas operativo de sobremesa basados en Windows , a pesar de los esfuerzos de Microsoft, las interfaces del s.o.  no estában pensadas para ser táctiles y por tanto no funcionaban completamente , asi que el usuario   no le quedaba   otra opción  que usar el interfaz gráfico tradicional   gobernado por el clásico ratón ( o incluso  teclado  con las correspondientes atajos de teclas)

No obstante con el tiempo , a pesar de las limitaciones,  Microsoft  ha ido adaptando el GUI , primero  con su interfaz Metro o Modern UI , despues con  Windows Phone 7 intentando unificarlos,  hasta que finalmente en  Windows 10  se ha separado un poco de ese rumbo pudiendo desde el propio s.o. trabajar de  un modo  ( tradicional ) ,  desde el interfaz tácticl o con ambos.

Actualmente ,de hecho,  siguiendo las líneas de diseño de Microsoft, muchos programadores  desarrollan aplicaciones que podrían usarse cómodamente tocando en vez de hacer  click , pero  muchos ordenadores portátiles o de sobremesa  no incluyen una pantalla táctil   asi que es normal que muchos usuarios nos preguntemos si  se puede solucionar el problema sin cambiar de ordenador.

Pues , en efecto es posible  convertir cualquier tipo de pantalla en táctil   de un modo bastante sencillo sin tener que cambiar de ordenador o de pantalla., tanto es asi que existen numerosas soluciones para conseguirlo, aunque entre estas,   hay dos soluciones que destacan respecto a las demás: IRtouch  y Airbar.

 

IRTOUCH

La solución mas antigua para convertir cualquier pantalla en tactil esta basada en el sistema    IRTOUCH  que cuenta con numerosas patentes y tecnología patentada en el campo de la tecnología táctil infrarroja resultando  un producto  muy  maduro libre  de mantenimiento.

Este accesorio como vemos en la imagen de mas abajo ,  lleva el controlador integrado en la propia carcarsa, siendo completamente transparente  y, segun el modelo , incluso tiene proteccion  contra actos vandalicos  ( por ejemplo para pantallas que tengan que estar a la intemperie).

 

irtouch.PNG

El problema de esta solución es que hay que adquirirla  de las medidas exactas del  LCD   pues se colocá con una especi de  blecro justo encima el lcd  lo que obliga a tener las dimensiones identicas.

Ademas a parte del precio  algo excesivo, en caso de ordenadores portatiles impide su plegado lo cual ha hecho que esta solucion no se haya popularizado entre el usuario domestico

Puede  encontrar mas informacion en el sitio de fabricante (http://www.irtouch.com)

 

Airbar

Para dotar a cualquier portátil de la funcionalidad tactil , Neonode  ( una  compañía que opera desde Estocolmo , Suecia, con oficinas en San Sosé , Detroit , Seúl , Tokio , Taipei  )  hace ya  unos años  lanzó Airbar, una barra con un tamaño y aspecto muy  similar al  sensor de movimiento de las Nintendo Wii  que es completamente remoovible y portatail .

Este accesorio con salida  USB   a diferencia de la Nintendo se coloca justo en la parte inferior de la pantalla LCD  con un sistema magnetico ( para poderlo  desmontar facilmente )   . Obviamente no debemos olvidar conectar esta  a uno de los puertos USB laterales .

Segun sus fabricante no hay apenas impacto sobre el consumo de la batería,  y su  precio contenido ( a partir de 53€ para una pantalla de 13″lo hace especialmente interesante para todos los que quieran experimentar con esa opción y no habían podido hacerlo.

Una vez conectado a un conector usb,   si el equipo  cuenta con W10, el modo de usarlo  es el mismo que se ejecutaría sobre un intrefaz tactil nativo “de serie” como  por ejemplo, la Surface de Microsoft  o incluso una tableta Android, es decir, no sólo dar toques sobre icono, sino hacer gestos desde los laterales, ampliar fotografías haciendo el ya clásico gesto de pinza o simplemente hacer scroll.

Los gestos mas comunes aceptados   son : puntear, deslizar, ampliar y rotar.

 

La tecnología usada por  Airbar  se basa en  una red de haces de luz y se llamó zForce (fuerza cero) : cuando la luz es interrumpida por dedos u objetos, el sistema toma nota de la posición y por lo tanto, es posible utilizar otros objetos además de los dedos, ya que la pantalla responde a cualquier tipo de material  .

Por si fuera poco en  2012, Neonode anunció un nuevo controlador táctil óptico denominado NN1001, desarrollado en cooperación con TI, que rastrea cualquier gesto multitáctil de alta velocidad con cualquier objeto (dedo, dedo enguantado y lápiz pasivo). NN1001 se conecta a cualquier microcontrolador o procesador de aplicaciones con una interfaz SPI de alta velocidad.

 

Esta barra  es plug&play (simplemente conecte la Air Bar con los imanes incluidos a la parte inferior de su pantalla y enchufe el cable USB) y es compatible  con portátiles con Windows 10 con tamaños de pantalla de 13,3 pulgadas, 14 pulgadas y 15,6 pulgadas

 

Una fran  diferencia respecto a  los sensores tactiles usados en los smartphone se puede tocar utilizando cualquier objeto: con un dedo seco o  humedo , guantes, pincel, lápiz,etc   debido a que  el dispositivo  genera un campo de luz invisible que detecta cualquier movimiento de forma activa ( como en IrTouch que emplea  infrarrojos) , lo que  quiere decir que, mientras haya movimiento, será captado y transmitido al sistema sin latencia gracias al procesamiento en tiempo real de las señales y su posterior transmision al pc.

 

Por cierto tambien es compatible con Mac e incluso com Chrome Book ( y por supuesto con windows 10)

Esta disponible para ordenadores con pantallas de las siguintes dimensiones:

Como obtener una licencia válida con W10


Es obvio que en los tiempos que corren,  esta sobrado demostrado que debemos contar con una licencia válida para el sistema operativo.

El problema viene cuando pretendemos  comprar una licencia   para un viejo equipo que no contaba con licencia windows 10 ( o no sé actualizó en su día) ,  pues la más económica que podemos encontrar es la versión OEM (en inglés: Original Equipment Manufacturer,  literalmente «fabricante de equipamiento original») solo esta disponible para equipos nuevos.

Este tipo de licencias OEM  es una licencia completa de Microsoft Windows con una limitación: solo se puede instalar en un equipo pues estas versiones vienen preparadas para registrar el hardware de un ordenador y no poder ser instalado en otro equipo.

La licencia OEM ademas estipula que la persona del sistema es el responsable de proporcionar el soporte ( de ahi que su precio sea bastante inferior)  de modo que cuando se compra un ordenador con la versión OEM de Windows, se supone que la empresa o persona que  lo vendió proporcionará el soporte

Por  otro lado  es factible adquirir una licencia  profesional , pero normalmente  suele ser un precio desorbitado ( unas 300€)  asi que lo ideal seria adquirir  una licencia OEM   aunque el equipo no sea exactamente nuevo .

Afortunadamente han proliferado fabricantes y montadores que están vendiendo licencias perfectamente validas  en formato  digital  ESD  ( Electronic Software Download )   por una fracción del precio comentado   siendo este precio  irrisorio si lo comparamos con   una licencia profesional .

Compra de licencia por ebay

Este tipo de licencias  ESD   están disponibles  en ebay  por muchos vendedores internacionales pudiéndose adquirir esta clave para Windows 10 Pro, muy baratas y fiables pues la mayoría aceptan payPal .

El procedimiento es simple para equipos con w10   sin licencia activa:

  • Mandan un mensaje por eBay y también otro por el correo electrónico asociado a la cuenta de eBay  (suele tardar desde un segundo a un par de horas) .
  • Nos vamos a Configuración > Actualización y Seguridad > Activación y ahi le damos a Cambiar Clave de Producto.
  • Si no se puede activar   hay que  mandar  un mensaje al vendedor, adjuntando una captura del fallo (Botón Windows + Impr. pant)

claves baratas.PNG,

 

Compra de licencia en Amazon

Es cierto  que  se puede comprar este tipo de licencia ESD   en ebay , pero la novedad  es que  también se pueden comprar  en Amazon por menos de 10  € ( por ejemplo  aqui )

Antes de adquirir una licencia  ESD del  tipo OEM  deberíamos tener en cuenta los siguientes puntos:

  •  Vincular una cuenta de Microsoft al PC por seguridad, pues es en esta donde  se guarda la activación de Windows para que nunca tenga que meter la clave, teóricamente, mientras no vuelva  a cambiar  de placa base ( de hecho aunque formatee o reinstale mientras vuelvas a iniciar sesión con esa cuenta se respetara la clave).
  •  Necesitará  una unidad extraible de 8GB o un DVD virgen pues no  envían soporte físico  pues  la imagen del SO   necesitara descargarla directamente desde la pagina de Microsoft
  • Respecto  a los requisitos mínimos   del equipo donde se vaya a instalar w10 , son básicamente los de otras versiones :
    • Espacio mínimo del disco duro: 20 GB
    • Memoria RAM mínima: 2 GB
    • Requisitos mínimos DirectX: 9.0
    • Requisitos mínimos de resolución de pantalla: 800 x 600 Pixeles
    • Soporta sistemas x86: Si
    • Velocidad mínima del procesador: 1 GHz
  •  En principio este tipo de licencias también se deberían poder usar en un negocio, pero algunos  vendedores tienen fijado limites de  compra  por cuentas de eBay o de Amazon ( por tanto si se necesita  para varios ordenadores nos va a tocar hacer multicuentas).
  • La licencias  que se venden del tipo ESD son validas tanto si se va a usar con procesadores de 32 bits o de 64 bits.

 

Los  pasos  para instalar  una licencia adquirida en Amazon   son similares   a las  adquiridas  desde otro medio,pero estas licencias no suelen servir para actualizaciones sino para realizar instalaciones desde cero

Algunos puntos a tener en cuenta:

  • Para cualquier necesidad técnica / comercial, hay que  mandar  un mensaje al vendedor, adjuntando una captura del fallo (Botón Windows + Impr. pant)

 

Windows 10  Pro

Con una licencia Windows 10 Pro( que  es la están vendiendo en formato ESD )  , se tiene un gran SO  en el hogar pero   sobre  todo es muy apto  para  los negocios pues cuenta con todas las funciones de Windows 10 para el Hogar e importantes funcionalidades de negocios para cifrado, inicio de sesión remoto, crear máquinas virtuales y mucho más siendo ideal para empresas.


Cuenta entre otras estas ventajas frente a versiones anteriores de wndows:

  • Fácil  conexión  a su  dominio empresarial  pues se puede conectar al dominio de su empresa o escuela o al Azure Active Directory para usar archivos de red, servidores, impresoras y más cosas.
  • Cifrado mejorado: se puede obtener seguridad adicional con BitLocker que e ayuda a proteger sus datos con administración de cifrado y seguridad.
  • Inicio de sesión remoto: Windows 10 permite iniciar sesión con Escritorio remoto para conectarse y usar su Pro PC mientras estás en casa o en la carretera.
  •  Máquinas virtuales: permite crear y ejecuta máquinas virtuales con Hyper-V para que pueda ejecutar más de un sistema operativo a la vez en el mismo PC.
  • Aplicaciones en la Tienda. Windows 10  permite crear su propia sección privada de aplicaciones en la Tienda Windows para tener un acceso cómodo a las aplicaciones de la empresa.
  • Tecnología InstantGo1 que permiten iniciar y continuar con rapidez.
  • Funciones de seguridad integradas para protegerse del software malintencionado.
  • Continuum:La mejor pantalla es siempre aquella en la que estás porque Windows 10 optimiza tu experiencia para tu actividad y dispositivo. Las características de la pantalla se adaptan para facilitar la navegación y las aplicaciones cambian de escala de manera fluida desde los monitores más pequeños hasta los más grandes.
  • Cortana:Cortana es un auténtico asistente digital personal que funciona en dispositivos con Windows 10 . Como aprende conel suso gracia a la IA , Cortana se vuelve más útil cada día, manteniendo la transparencia y conservando su confianza.

Construcción de un all in one casero. Parte 2


La idea  que hemos implementado en este blog ya desvelada  en  un post anterior  se  basa en aprovechar  la parte trasera de un  viejo monitor   como base para construir un ordenador completamente funcional  al propio estilo “All in One” (AIO).

Obviamente se puede usar un monitor reciente y utilizar  un base de un material aislante ( plástico ,madera, metacrilato , etc )  para fijarlo a la parte de atrás gracias al soporte VESA  , pero  si  el monitor que vamos a usar  es algo antiguo  , y queremos tener simplificar el montaje,   directamente podemos  atornillar  por  atrás a  la propia carcasa del monitor todos los elementos  que componen nuestro  AIO.

IMG_20180712_175957

Obviamente  para fijar  los elementos  a la pantalla deberemos  usar componentes adaptados para que no ocupen demasiado espacio  especialmente en la dimensión de profundidad  así que dado que la placa madre es el elemento que más espacio ocupa se hace vital usar una placa  adecuada  para esto   como puede ser el modelo J3455M  de Asrock   que cuenta integrado   en la misma placa con un procesador Intel® Quad-Core Processor con un radiador pasivo  corriendo a 2.3 GHz

Para recapitular , la lista de componentes  que vamos a  usar para montar nuestro propio AIO son las siguientes:

  • Placa madre;placa J3455M  de Asrock  disponible con Intel® Quad-Core Processor J3455 (up to 2.3 GHz)(for J3455M)
  • 2 x Memorias de 2GB
  • Disco SATA reciclado
  • Fuente ATX recicladoas
  • Monitor LCD /TFT
  • Teclado y ratón usb o PS2
  • 1 xpulsador normalmente abierto
  • 1xled rojo
  • 1x buzzer
  • Soportes metalicos
  • Tornillos  para chapa

Vamos a ver en cuatro sencillos pasos   cómo fijar todos estos elementos  en la parte posterior del monitor para construirnos nuestro propio AIO:

Paso 1 -Instalación de las memorias

La Asrock J3455M   cuenta con tecnología de memoria de Doble Canal DDR3/DDR3L no admitiendo modulos de  2GB DRAM .Es compatible con memoria no-ECC, sin búfer DDR3/DDR3L 1866/1600//1333

Esta placa cuenta con procesador  y gráficos  integrados  pero obviamente no cuenta con memorias    por lo que proporciona dos ranuras DIMM de 240 pines DDR3 (Double Data Rate 3), y es compatible con la tecnología de memoria de doble canal.

La capacidad máxima de la memoria del sistema es de 16GB pero para un uso ofimática,multimedia   y navegación ,  2 módulos de  DDR3 de 2GB son más que suficientes ,la cual es la configuración que probaremos,  de modo que estas debemos insertarlas en la placa madre en primer lugar antes de realizar ningún otro paso.

memorias.PNG

Paso 2: Conexiones hacia la placa madre

Tras  montar las memorias en  la placa madre, es muy importante tener claras a las conexiones a  realizar:

  • El  buzzer
  • El pulsador
  • El led de energia
  • La alimentación

En el siguiente gráfico podemos ver  la ubicación de los conectores  que usaremos  para realizar las conexiones mínimas para tener un AIO funcional:

placa

Conexión del pulsador de encendido

Para  arrancar el ordenador es necesario  conectar un pulsador para activar la fuente , para lo cual usaremos las siguientes conexiones.

Esta es las descripción de los pines:

  • PWRBTN (interruptor de encendido):Conecte  aquí dos cablecillos a un  pulsador normalmente abierto  que luego fijaremos  en un lateral del monitor .
  • PLED (LED de alimentación del sistema):Conecte aqui dos cablecillos a un  led rojo ( no requiere resistencia limitadora )   que luego fijaremos  en un lateral del monitor junto al pulsador de encendido . El LED está encendido cuando el sistema está operando El LED sigue parpadeando cuando el sistema está en estado de suspensión S1 / S3.El LED está apagado cuando el sistema está en estado de suspensión S4 o apagado (S5).

Conexión  del altavoz

Suele ser muy importante para el caso de que no haya video la placa lo notifique con señales audibles. Se conecta un pequeño buzzer  piezoeléctrico ( también sirve un pequeño altavoz reciclado )mediante un conector estándar de 4 pines entre el pin speaker  y +5v

En la imagen de abajo se puede ver como conectar el speaker , que no requiere fijarlo  y  podemos dejar al “aire”  ( en caso de  ser pequeño claro).

IMG_20180717_233627[1].jpg

También se puede  conectar  un pulsador de intrusión del chasis  en la fila de abajo entre los pines SIGNAL   y GND pero tiene poco sentido  en este montaje ( a no ser que cerremos todo con una caja)

Conexión de alimentación

Esta placa base requiere alimentación mediante  un único conector a ATX de 24 pines . Se  puede  usar una fuente con conector de 20 pines de una fuente de alimentación ATX, pero en ese caso mucho cuidado pues debe conectarlos a lo largo de Pin 1 y Pin 13.

Paso 3:Fijación de los elementos    al chasis del monitor

3.1 Fijación de la placa  madre a la carcasa del monitor

Como comentamos al principio de este post se puede fijar la placa base a una base y esta con tornillos al soporte VESA presente en todos los monitores para fijarlos horizontalmente sin peana.

Para simplificar la instalación en el caso de que el monitor para usar como base no sea demasiado moderno, lo más sencillo es primero hacer 4 punciones con un objeto caliente y después atornillar a propia placa madre con 4 tornillos de rosca-chapa al propio monitor .

IMG_20180717_233500[1].jpg

Aprovecharemos una vez montada y fijada la placa madre  para enchufar a la placa madre el conector ATX  de 20 pines pues la   Asrock J3455M  solo requiere esta única conexión de alimentación para funcionar.

3.2  Fijación  del disco

Como elemento de arranque lo más sencillo es instalar un disco SATA .Aunque lo ideal sería que fuese del tipo SSD ya que arrancara mucho más rápido , podemos usar  un  viejo disco convencional  que fijaremos  al chasis del monitor con dos escuadras metalicas .

IMG_20180717_233515[1].jpg

Una vez colocadas las escuadras, lo ideal es al menos fijar un tornillo al disco  y a la escuadra para que no haya peligro de que se suelte si lo inclinamos

IMG_20180717_233621[1].jpg

Finalmente conectaremos un cable sata hasta la placa madre ( al conector SATA1)   y después una conexión de alimentación  de  disco hacia    la fuente  para discos SATA.

3.3 Fijación del pulsador de pulsador  de encendido

Es importante colocar el pulsador de encendido en un sitio fácilmente visible. En nuestro caso se ha fijado con una pieza metálica  con dos tornillos   a  una de las esquinas del monitor. Asimismo se fijado el led  a este mediante pegamento térmico.

IMG_20180717_233525[1].jpg

3.4   Conexiones externas

Solo necesitamos alimentar el equipo  y    realizar las  conexiones externas  para arrancar el equipo  e instalar el sistema operativo por los que al menos realizaremos las siguiente conexiones:

  • Un cable ethernet  al RJ45 de la palca  madre por poder tener conectividad
  • Un cable VGA  del viejo monitor al conector sub d de 15 pines del la placa  ( obviamente si el monitor tiene salida DVI o HDMI la calidad de video sera mejor)
  • El teclado y ratón USB, aunque puede conectar a la   Asrock J3455M  también ratones y teclado del tipo PS2 liberando así dos conectores USB

 

4 Instalación del SO

Una vez  hemos fijado todos los elementos  así como realizadas las conexiones de video , red y teclado/ratón es momento de arrancar el  ordenador pulsando el botón de encendido para ver todo funciona

Obviamente  solo podremos acceder a la BIOS pues aún no hemos instalado el SO

Podemos instalar versiones  gratuitas de LInux   o también Windows si posee alguna licencia válida. Como no hemos instalado un unidad dvd podemos optar por instalar desde un dvd externo o bien desde una unidad usb, lo cual es la opción mas sencilla

En un  post explicabamos  precisamente como obtener una imagen de windows 10  en una uanidad usb de la menos 8GB   con la herramienta MediaCreation Tool  desde un equipo funcional :http://soloelectronicos.com/2017/05/27/recuperar-medios-de-instalacion-de-windows-10/

Una vez tengamos en una unidad usb el  SO entraremos en la BIOS para que arranque desde  la unidad usb   y procederemos con la instalación siguiendo los pasos que nos vaya  mostrando el asistente de instalación de Windows:

IMG_20180715_205649[1]

 

OctoPrint sobre Windows


OctoPrint es un sofware creado por Gina Häußge y es 100% opensource  con un  interfaz amigable que hace de servidor  de impresion 3D  permitiendo controlar en la practica cualquier impresora 3D a distancia.

Gracias a este sw  podríamos dejar nuestra impresora imprimiendo durante horas mientras la controlamos desde cualquier parte del mundo ( se puede empezar, parar y pausar impresiones en tiempo real) o la monitorizamos gracias a que podemos conectarle una webcam y hacer streaming de las impresiones e incluso timelapses.

Otras utilidad  sin duda  interesante es subir o visualizar nuestros GCODES e incluso generarlos !las posibildades son  casi infinitas!.

Este sw esta  en constante desarrollo y mantiene una gran comunidad en Github que comparte e innova en sus nuevas implementaciones de acorde a las necesidade de cada usuario,

La forma más sencilla de instalar OctoPrint es usando un mini PC : orangePi como vimos en este port,  Raspberry Pi, etc   pero también es  posible instalarlo en cualquier ordenador  con windows  como vamos   a ver en este post:

 

 

Instalar Python, Git y OctoPrint

Para instalar OctoPrint desde el origen en Windows, necesitará hacer lo siguiente::

  1. Instalar Python 2.7 de 32bit (seleccione el paquete “Windows x86 MSI Installer “). Asegúrate de incluir PIP en la instalación y también de que el instalador añada Python a tu ruta.)desde aqui  Es importante seleccionar el fichero correspondiente al sistema operativos que tengamos instalado (aunque la arquitectura del pc sea otra.                                       python                                    Ejecutaremos el fichero msi  y como venos nos aseguraremos que se añade al  path ejecutable de Python   Python installation dialog
  2. Instalar Microsoft Visual C++ Compiler para Python 2.7 desde aquisurface pro
  3. Abrir interfaz de comandod  (Win+R   y ejecutar  cmd) e instalar  virtualenv usandopip install virtualenv:
    pip install virtualenv
    

    Verá algo como lo siguiente (prompt y salida  incluida, no copiar-pegar esto!):

    C:\Users\YourUser>pip install virtualenv
    You are using pip version 7.0.1, however version 7.1.2 is available.
    You should consider upgrading via the 'pip install --upgrade pip' command.
    Collecting virtualenv
       Using cached virtualenv-13.1.2-py2.py3-none-any.whl
    Installing collected packages: virtualenv
    Successfully installed virtualenv-13.1.2
    

    Si usted recibe un mensaje sobre PIP de no haber sido encontrado, su path aún no ha sido actualizado para incluirlo. Hágalo manualmente por ahora en el indicador activo redefiniendo  PATH:

    PATH=%PATH%;C:\Python27\Scripts
    

    ¡ No cierre la ventana con el prompt, manténgalo abierto!

  4. Instalar Git for Windows. :Git installation dialog                      Asegúrese de seleccionar “usar git desde el símbolo del sistema de Windows ” cuando le pide que decida cómo desea utilizar git desde la línea de comandos
  5. Abra un interfaz de comandos  (cmd) y cambiar a la ubicación en la que desea que se resida la carpeta de OctoPrint. Para este pot estamos asumiendo que esto sea C:\  Chequear  las fuentes de OctoPrint  Via git clone https://github.com/foosel/OctoPrint . Esto creará una nueva carpeta C:OctoPrint con las fuentes de OctoPrint que residen en él.
  6. cd C:\
    git clone https://github.com/foosel/OctoPrint
    

    Debe  verse como esta  (prompt y salida incluida, no copiar-pegar esto!):

    C:\Users\SomeUser> cd C:\
    C:\> git clone https://github.com/foosel/OctoPrint
    Cloning into 'OctoPrint'...
    [...]
    Checking out files: 100% (563/563), done.
    
    C:\>
    
  7. Aún en el símbolo del sistema, cambie a la carpeta de origen de OctoPrint  (cd C:\OctoPrint) y crear   un nuevo virtualenv: virtualenv venv. Activelos: venv\Scripts\activate.batNota: Si no ha registrado los orígenes de OctoPrint en C:OctoPrint, debe cambiar el comando de CD que se encuentra a continuación, asegúrese de que está en la carpeta correcta antes de ejecutar el virtualenv y activar. bat o no funcionará.
    cd C:\OctoPrint
    virtualenv venv
    venv\Scripts\activate.bat
    

    Debe  verse como esta  (prompt y salida incluida, no copiar-pegar esto!):

    C:\>cd OctoPrint
    C:\OctoPrint>virtualenv venv
    New python executable in venv\Scripts\python.exe
    Installing setuptools, pip, wheel...done.
    
    C:\OctoPrint>venv\Scripts\activate.bat
    (venv) C:\OctoPrint>
    

    Nota: en este punto podría ser una buena idea para asegurarse de que tiene la versión más actualizada de PIP instalado en su venv, así que mejor actualizar que ahora:

    pip install --upgrade pip
    

  8. Realizar   una isntalacion de  python setup.py install (o si tiene intención de hacer cambios,  python setup.py develop):
    python setup.py install
    

    Debe  verse como esta  (prompt y salida incluida, no copiar-pegar esto!):

    (venv) C:\OctoPrint>python setup.py install
    running install
    [...]
    Finished processing dependencies for OctoPrint==1.3.2
    
  9. Inicie OctoPrint simplemente ejecutando octoprint serve:
    (venv) C:\OctoPrint>octoprint serve
    2017-03-20 10:56:22,329 - octoprint.server - INFO - ******************************************************************************
    2017-03-20 10:56:22,332 - octoprint.server - INFO - Starting OctoPrint 1.3.2 (master branch)
    2017-03-20 10:56:22,332 - octoprint.server - INFO - ******************************************************************************
    [...]
    

    Nota: en este punto, Windows probablemente le preguntará si desea permitir que OctoPrint sea accesible desde su red. Las probabilidades son altas que usted desea esto, así que permita el acceso de redes de confianza por lo menos.


  10. Abra una nueva pestaña o ventana en su navegador e ingrese http://localhost:5000. Ahora debería estar mirando su interfaz web OctoPrint. Si desea acceder a él desde otro equipo de la red local, sustituya  localhost por la IP de su  PC  http://192.168.1.3:5000.

Felicitaciones, ahora tiene una configuración de OctoPrint de ejecución!

Para iniciar el servidor OctoPrint, abra un símbolo del sistema y ejecute  C:\OctoPrint\venv\Scripts\octoprint.exe serve.Si desea detener OctoPrint, pulse Ctrl + C en la ventana del símbolo del sistema o simplemente cierre.

Crear un acceso directo

Para facilitar el inicio de su servidor OctoPrint en el futuro, puede que desee crear un acceso directo en su escritorio o en algún otro lugar que pueda encontrar de nuevo, apuntando a C:\OctoPrint\venv\Scripts\octoprint.exe serve:

Creating a shortcut for starting the server

Configurar OctoPrint para poderse actualizar automáticamente

Si desea que OctoPrint pueda actualizarse, necesitará configurar la carpeta que ha retirado OctoPrint en OctoPrint configuración de software, haciendo clic en el icono de la pequeña llave en la esquina superior derecha y estableciendo “OctoPrint Checkout Folder ” a C:\OctoPrint:

Software Update configuration in OctoPrint's settings

Alternativamente, también puede realizar esta configuración mediante el archivo de configuración de OctoPrint  config.yaml en %APPDATA%/OctoPrint:

plugins:
  softwareupdate:
    checks:
      octoprint:
        checkout_folder: C:\OctoPrint

Instalar un servidor de webcam y configurar OctoPrint para ello

Puede usar algo como e YawCAM f para una funcionalidad similar a MJPEG-Streamer bajo Windows. Habilite las salidas “http ” y “Stream “. Si deja los puertos configurados en sus valores predeterminados, su URL de Stream será y su URL de instantánea será.

Puede configurarlos mediante el cuadro de diálogo de configuración de OctoPrint (véase más abajo) o en su config.yaml en %APPDATA%/OctoPrint:

webcam:
  stream: http://:8081/video.mjpg
  snapshot: http://localhost:8888/out.jpg

Si usted también quiere ser capaz de utilizar timelapsing, usted tendrá que obtener una compilación estática de Windows de ffmpeg. Ésos se pueden encontrar aqui. A continuación, configure la ruta de acceso a ffmpeg. exe mediante el cuadro de diálogo Configuración (véase más abajo) o config. yaml:

webcam:
  stream: http://:8081/video.mjpg
  snapshot: http://localhost:8888/out.jpg
  ffmpeg: C:\your\path\to\ffmpeg.exe

Webcam and timelapse configuration in OctoPrint's settings


Nota: la captura de pantalla muestra 192.168.1.3 como la IP del PC en la secuencia configurada-URL. Usted necesitará ajustar eso para emparejar su IP de PCS!

Fuente GitHub.com