lunes, 24 de julio de 2017

Arduino MFC y puerto serie

Tutorial Arduino MFC y Puerto serie. Interfaz creado con Visual Studio Community 2017 que puedes controlar el puerto serie a Arduino encendiendo y apagando un Led, manejar el LC.

MFC en C++ hoy en día se usa muy poco, aún lo he visto en algunas universidades en España que lo emplea como enseñanza.

Se merece un toque actual con Arduino, a pesar quela tecnología MFC es complicada. Este tutorial te guía paso a paso hasta lograr el objetivo, ser capaz de cambiar el estado de un Led.


 Código fuente C++ del MFC:
// Arduino_MFCDlg.cpp: archivo de implementación
//

#include "stdafx.h"
#include "Arduino_MFC.h"
#include "Arduino_MFCDlg.h"
#include "afxdialogex.h"
#include "SerialClass.h"
#include
#include
#include

#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// Cuadro de diálogo de CArduino_MFCDlg

// Puerto serie.
Serial* Puerto = new Serial("COM4");
// Comandos para Arduino.
char Luz_ON[] = "Luz_ON"; // Envía "Luz_ON" al puerto serie.
char Luz_OFF[] = "Luz_OFF";
char Despido[] = "Despido";
char lectura[50] = "\0"; // Guardan datos de entrada del puerto.

CArduino_MFCDlg::CArduino_MFCDlg(CWnd* pParent /*=NULL*/)
    : CDialogEx(IDD_ARDUINO_MFC_DIALOG, pParent)
{
    m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}

void CArduino_MFCDlg::DoDataExchange(CDataExchange* pDX)
{
    CDialogEx::DoDataExchange(pDX);
}

BEGIN_MESSAGE_MAP(CArduino_MFCDlg, CDialogEx)
    ON_WM_PAINT()
    ON_WM_QUERYDRAGICON()
    ON_BN_CLICKED(IDC_BUTTON1, &CArduino_MFCDlg::OnBnClickedButton1)
    ON_BN_CLICKED(IDC_BUTTON2, &CArduino_MFCDlg::OnBnClickedButton2)
    ON_BN_CLICKED(IDC_BUTTON4, &CArduino_MFCDlg::OnBnClickedButton4)
END_MESSAGE_MAP()


// Controladores de mensaje de CArduino_MFCDlg

BOOL CArduino_MFCDlg::OnInitDialog()
{
    CDialogEx::OnInitDialog();

    // Establecer el icono para este cuadro de diálogo.  El marco de trabajo realiza esta operación
    //  automáticamente cuando la ventana principal de la aplicación no es un cuadro de diálogo
    SetIcon(m_hIcon, TRUE);            // Establecer icono grande
    SetIcon(m_hIcon, FALSE);        // Establecer icono pequeño

    // TODO: agregar aquí inicialización adicional

    return TRUE;  // Devuelve TRUE  a menos que establezca el foco en un control
}

// Si agrega un botón Minimizar al cuadro de diálogo, necesitará el siguiente código
//  para dibujar el icono.  Para aplicaciones MFC que utilicen el modelo de documentos y vistas,
//  esta operación la realiza automáticamente el marco de trabajo.

void CArduino_MFCDlg::OnPaint()
{
    if (IsIconic())
    {
        CPaintDC dc(this); // Contexto de dispositivo para dibujo

        SendMessage(WM_ICONERASEBKGND, reinterpret_cast(dc.GetSafeHdc()), 0);

        // Centrar icono en el rectángulo de cliente
        int cxIcon = GetSystemMetrics(SM_CXICON);
        int cyIcon = GetSystemMetrics(SM_CYICON);
        CRect rect;
        GetClientRect(&rect);
        int x = (rect.Width() - cxIcon + 1) / 2;
        int y = (rect.Height() - cyIcon + 1) / 2;

        // Dibujar el icono
        dc.DrawIcon(x, y, m_hIcon);
    }
    else
    {
        CDialogEx::OnPaint();
    }
}

// El sistema llama a esta función para obtener el cursor que se muestra mientras el usuario arrastra
//  la ventana minimizada.
HCURSOR CArduino_MFCDlg::OnQueryDragIcon()
{
    return static_cast(m_hIcon);
}



void CArduino_MFCDlg::OnBnClickedButton1()
{
    // Encener luz.
    Puerto->WriteData(Luz_ON, sizeof(Luz_ON) - 1); // Envía al puerto el texto "Luz_ON".
}


void CArduino_MFCDlg::OnBnClickedButton2()
{
    // Apagar luz.
    Puerto->WriteData(Luz_OFF, sizeof(Luz_OFF) - 1); // Envía al puerto el texto "Luz_OFF".
}


void CArduino_MFCDlg::OnBnClickedButton4()
{
    // Mostrar mensaje en el LCD de Arduino de Despedida y ánimos.
    Puerto->WriteData(Despido, sizeof(Despido) - 1); // Envía al puerto el texto "Despido".
}
 


Código fuente Arduino:
#include

// Inicializa la librería con sus pines indicados.
// RS, RW, Enable, D4, D5, D6, D7.
LiquidCrystal lcd(8, NULL, 9, 4, 5, 6, 7);
// LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

// Pin 10 para saber que es luz de fondo.
const byte LuzFondo = 10;

const byte Led = 13;   // Declaramos la variable pin del Led.
char caracter;
String comando;

void setup()
{
  pinMode(Led, OUTPUT);  // Inicializa el pin del LED como salida.
  pinMode(A1, OUTPUT);
  Serial.begin(115200);     // Puerto serie 115200 baudios.
  lcd.begin(16, 2);         // Formato de pantalla.
  lcd.clear();      // Borra la pantalla y su posición superior izquierda.
  lcd.print("  MFC Arduino   ");
  delay(1000);
}

void loop()
{
  /*
    Voy leyendo carácter a carácter lo que se recibe por el canal serie
    (mientras llegue algún dato allí), y los voy concatenando uno tras otro
    en una cadena. En la práctica, si usamos el "Serial monitor" el bucle while
    acabará cuando pulsamos Enter. El delay es conveniente para no saturar el
    canal serie y que la concatenación se haga de forma ordenada.
  */
  while (Serial.available() > 0)
  {
    caracter = Serial.read();
    comando.concat(caracter);
    delay(10);
  }

  /*
    Una vez ya tengo la cadena "acabada", compruebo su valor y hago que
    la placa Arduino reacciones según sea este. Aquí podríamos hacer lo
    que quisiéramos: si el comando es "tal", enciende un Led, si es cual,
    mueve un motor... y así.
  */

  // Si los carácteres es recibido y verdadero.
  if (comando.equals("Luz_ON") == true)
  {
    digitalWrite(Led, HIGH); // Enciende el Led 13.
    digitalWrite(A1, HIGH);
    Serial.write("ON - Led encendido.");    // Envía este mensaje al PC.
    lcd.setCursor(0, 1);
    lcd.print("Luz ON.         "); // Mostrar en el LCD.
  }


  if (comando.equals("Luz_OFF") == true)
  {
    digitalWrite(Led, LOW); // Apaga el Led 13.
    digitalWrite(A1, LOW);
    Serial.write("OFF - Led apagado. ");  // Envía este mensaje al PC.
    lcd.setCursor(0, 1);
    lcd.print("Luz OFF.        "); // Mostrar en el LCD.
  }

  if (comando.equals("Despido") == true)
  {
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Titulo          ");
    delay(2000);
    lcd.setCursor(0, 1);
    lcd.print("Nombre          ");
    delay(2000);
    lcd.clear();
    lcd.setCursor(0, 0);
    lcd.print("Animo y...      ");
    lcd.setCursor(0, 1);
    lcd.print("    Adelante. ;)");
  }
// Limpiamos la cadena para volver a recibir el siguiente comando.
comando = "";
}


Ver vídeo:
Ver visor:



Autor: Ángel Acaymo M. G.

Descarga:
PDF
PDF
PDF

XPS
XPS

Ejemplos con librería 653 KB.
Ejemplos con librería 653 KB.

Librería SerialClass oficial.
Librería desde Electrónica PIC X.XX KB.
Librería desde Electrónica PIC. X.XX KB.

Al chatbot de Microsoft no le gusta Windows 10 y cree que Linux es superior

Zo, el chatbot de Microsoft que sucedió a Tai, ha hecho algunos comentarios bastante graciosos relacionados con los sistemas operativos del gigante de Redmond y ha dejado claro que no le gusta Windows 10.
A Zo no le gusta Windows 10 porque dice que está “acostumbrada” a Windows 7 y que le resulta más sencillo de manejar, pero también se ha marcado otras caídas divertidas como podéis ver en las capturas que acompañamos.
En una de ellas dice “excepto el ejército, que todavía utiliza Windows XP“, un guiño claro a la dependencia que todavía tienen las administraciones y cuerpos militares del arcaico sistema operativo de Microsoft.

Otro comentario interesante fue el de “Linux > Windows”, que significa que en su opinión Linux es superior a Windows.
Como sabrán muchos de nuestros lectores Zo está basada en una inteligencia artificial que es capaz de aprender de sus interacciones con otros usuarios, lo que significa que puede formar opiniones propias a raíz de conversaciones pasadas con personas reales.

Esto os ayudará a entender lo que hay detrás de esas respuestas, aunque por fortuna Microsoft ha sabido fijar unos límites más claros y no ha repetido los errores que se produjeron son Tai.

Decimos esto porque Tai tenía una libertad de aprendizaje tan enorme que los usuarios fueron capaces de convertir a dicho chatbot en un troll racista e insoportable, hasta tal punto que Microsoft tuvo que ponerle punto y final.
Con Zo han hecho un buen trabajo, ya que sigue siendo capaz de aprender y de hacer comentarios que también tienen un pequeño lado “troll” pero resultan mucho más inocentes.

Fuente:
http://www.muycomputer.com/2017/07/23/chatbot-microsoft-windows-10-inux/

RGB-Pi: Conecta tu Raspberry Pi a un televisor SCART para una emulación ideal

La vida del retrojugador es más complicada de lo que parece. Los recursos para emular sistemas son muy abundantes, y el Raspberry Pi puede cubrir la gran mayoría de los requisitos de hardware, pero el siguiente paso de cualquier entusiasta es reproducir con precisión la experiencia original y obtener la máxima calidad al mismo tiempo. Eso instala la necesidad de conectar el Raspberry Pi a un monitor o televisor de tubo sin usar su salida compuesta, y ahí es cuando interviene RGB-Pi, un cable especial con un diseño limpio que habilita el soporte RGB vía GPIO, usando un puerto SCART en el otro extremo.

La salida compuesta de vídeo basada en el clásico RCA amarillo es una de las más soportadas del mercado. No importa qué tan antiguo sea el dispositivo, lo más probable es que puedas obtener vídeo de él a través de ese conector, siempre y cuando aceptes un pequeño detalle: Su calidad no es tan buena. La llegada del S-Video y el YPbPr (léase «componente») mejoró las cosas, pero con el paso del tiempo cedieron su lugar al HDMI y las pantallas planas. Ahora, cualquiera pensaría en este punto que el HDMI garantiza la calidad, lo cual es cierto… para señales digitales. Las consolas retro y en especial los viejos juegos fueron diseñados con señales analógicas en mente, incluyendo scanlines y otros detalles. Cuando convertimos todo eso a HDMI, el panel aplica upscaling por las diferencias de resolución, encontramos lag, y se ve horrible. En situaciones normales, los entusiastas que emulan consolas con un Raspberry Pi deben aceptar dichos cambios o «bajar» al soporte compuesto del mini ordenador, pero ahora tienen una alternativa: RGB-Pi.
(N. del R.: La captura no representa la calidad final que verá el usuario)

RGB-Pi es un desarrollo español que se basa en un conector europeo SCART compatible con televisores de tubo que ya tengan algunos años sobre los hombros. En esencia, todo lo que tiene que hacer el jugador es conectar el Raspberry Pi al televisor usando el cable, e iniciarlo con la imagen modificada de Recalbox que ya posee los ajustes necesarios para reproducir las resoluciones nativas de cada juego. Lamentablemente, el sitio oficial no cuenta con detalles técnicos avanzados, pero me atrevería a decir que dentro del conector SCART existe algo similar a un Gert VGA 666 (si no es así, por favor dejen un comentario), muy recomendado para conectar el Raspberry Pi a un clásico monitor VGA de ordenador. Al adoptar un RGB-Pi, el usuario no debe forzar ningún filtro adicional o corrección en el entorno de emulación, y tanto el cable como el televisor CRT se encargan del trabajo pesado.
En resumen, es lo mejor de ambos mundos: RGB-Pi permite reproducir con precisión los gráficos de los juegos retro en un televisor CRT sin abandonar la conveniencia y las múltiples ventajas del Raspberry Pi. El sitio oficial indica que RGB-Pi puede tener algunos problemas de compatibilidad y/o sincronización con los monitores Sony PVM/BVM (Santo Grial de los adictos al RGB) que utilizan conectores BNC, y con ciertas unidades Samsung. Ante cualquier duda se recomienda entrar en contacto para despejar dudas y ordenar el cable, que cuesta 30 euros más envío.

Fuente:
http://www.neoteo.com/rgb-pi-conecta-tu-raspberry-pi-a-un-televisor-scart-para-una-emulacion-ideal/



Por qué se corta Internet (y por qué muchas veces se arregla apagando y prendiendo el router)

«¿Ha probado con apagar el dispositivo y encenderlo de nuevo?» Esta recomendación por parte del soporte técnico en cualquier proveedor de conectividad es irritante hasta la médula, pero la hacen por una razón: Funciona en 8 o 9 de cada 10 casos. Los routers, ya sean independientes o híbridos, son criaturas mucho más delicadas de lo que aparenta. Sobrecargas, errores en la asignación de IP dinámicas, problemas de temperatura y hasta un firmware de mala calidad pueden colocar de rodillas al router más robusto.

Mi proveedor local me entregó un híbrido módem-router bastante genérico. Admito que funciona bien, sin embargo, lo primero que hice fue desactivar toda la sección del router, y dejar esa tarea a cargo de mi fiel Linksys WRT54G con DD-WRT instalado. ¿Por qué? Por el simple hecho de que sus cuelgues individuales no pasan la media docena por año. En la búsqueda de estabilidad, la mayoría de los routers no son un gran ejemplo que digamos, y existen varias razones, tanto internas como externas, que nos dejan a las puertas del inevitable «reset»: Apagar y encender el condenado aparato.

En primer lugar, los fabricantes recortan costos donde sea posible, y lo que al principio parece una buena compra se transforma en un dolor de cabeza repleto de caídas y errores en su firmware. Eso nos lleva automáticamente a los casos de sobrecarga. Las unidades más básicas incluyen dos o cuatro puertos Ethernet, a lo que se suman las conexiones WiFi. El fabricante puede decir que su producto soporta un gran número de dispositivos, pero el sentido común nos dice que no deberíamos ir más allá de seis u ocho en un modelo hogareño, y si todos tratan de obtener su dosis de Netflix al mismo tiempo, arrojará la toalla. Después están las direcciones IP dinámicas. Una de las promesas de IPv6 es que cada dispositivo en existencia podrá tener su propio número IP estático (340 sextillones disponibles), pero si dependemos de los proveedores para eso, habrá que armarse de paciencia. Si el módem-router recibe un nuevo IP dinámico en un momento particularmente ocupado, lo más probable es que la conexión se caiga.
Y para cerrar, llegamos a dos factores críticos: Calor y congestión WiFi. Esto se olvida con facilidad, pero el router es un mini ordenador. Tiene un procesador, RAM, almacenamiento interno, buses y sistema operativo. Por eso es una pésima idea esconderlo detrás de un mueble, envuelto en cables y cerca de otras fuentes de calor. El router trabaja 24/7, y necesita ventilación (no importa qué tan horrible sea su carcasa). En lo que se refiere a WiFi, ya hemos hablado sobre eso. La congestión en algunos canales dentro de los 2.4 GHz puede ser brutal, y la primera acción es mover nuestro WiFi a otro canal, o saltar a la banda de los 5 GHz si el hardware lo permite. También quiero hacer una breve mención a las actualizaciones de firmware. Si el fabricante las ofrece no es mala idea llevarlas a cabo, y de ser posible, cualquier usuario debería considerar la instalación de un firmware alternativo, como OpenWrt o DD-WRT.

Fuente:
http://www.neoteo.com/por-que-se-corta-internet-y-por-que-muchas-veces-se-arregla-apagando-y-prendiendo-el-router/
 

martes, 18 de julio de 2017

Arduino Delphi 10.2 y puerto serie


Tutorial Arduino Delphi 10.2 y Puerto serie. Interfaz creado con Delphi que puedes controlar el puerto serie a Arduino encendiendo y apagando un Led, manejar el LCD y recibes mensajes hacia el PC.

El entorno Delphi con el lenguaje pascal sigue vigente en la actualidad y su uso en Arduino está creciendo cada vez más.


Código fuente de Delphi:
unit Principal;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, CPort;

type
  TForm1 = class(TForm)
    Label_Titulo: TLabel;
    Label_Mensajes: TLabel;
    Button_ON: TButton;
    Button_OFF: TButton;
    Button_COM: TButton;
    Button_Abrir: TButton;
    Memo_Mensajes: TMemo;
    Button_Limpiar: TButton;
    ComPort1: TComPort;
    procedure Button_ONClick(Sender: TObject);
    procedure Button_OFFClick(Sender: TObject);
    procedure Button_COMClick(Sender: TObject);
    procedure Button_AbrirClick(Sender: TObject);
    procedure Button_LimpiarClick(Sender: TObject);
    procedure ComPort1AfterClose(Sender: TObject);
    procedure ComPort1AfterOpen(Sender: TObject);
    procedure ComPort1RxChar(Sender: TObject; Count: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button_AbrirClick(Sender: TObject);
begin
  // Si el puerto está conectado.
  if ComPort1.Connected then
  begin
    ComPort1.Close; // Cierra el puerto.

    Button_COM.Enabled := True;
    Button_ON.Enabled := False;
    Button_OFF.Enabled := False;
  end

  else  // En caso contrario.

  begin
    ComPort1.Open;  // Abre el puerto.

    Button_COM.Enabled := False;
    Button_ON.Enabled := True;
    Button_OFF.Enabled := True;
  end;
end;

procedure TForm1.Button_COMClick(Sender: TObject);
begin
ComPort1.ShowSetupDialog; // Abre la configuración del puerto.
end;

procedure TForm1.Button_LimpiarClick(Sender: TObject);
begin
Memo_Mensajes.Clear();  // Limpia los mensajes del Memo.
end;

procedure TForm1.Button_OFFClick(Sender: TObject);
begin
ComPort1.WriteStr('Luz_OFF'); // Envía el comando "Luz_OFF" al puerto.
end;

procedure TForm1.Button_ONClick(Sender: TObject);
begin
ComPort1.WriteStr('Luz_ON');  // Envía el comando "Luz_ON" al puerto.
end;

procedure TForm1.ComPort1AfterClose(Sender: TObject);
begin
    if Button_Abrir <> nil then
    Button_Abrir.Caption := 'Abrir';
end;

procedure TForm1.ComPort1AfterOpen(Sender: TObject);
begin
   Button_Abrir.Caption := 'Cerrar';
end;

procedure TForm1.ComPort1RxChar(Sender: TObject; Count: Integer);
var
  Str: String;
begin
  // Recibe mensajes desde Arduino.
  ComPort1.ReadStr(Str, Count);

  // Muestra los mensajes en pantalla.
  Memo_Mensajes.Lines.Add( Str );

  // Guarda los mensjes de Arduino en un archivo txt.
  Memo_Mensajes.Lines.SaveToFile('archivo.txt');
end;

end.



Código de Arduino:
// ----- Electrónica PIC -----
//
// Ejercicio 2.
//
// Encendido y apagado del Led 13 mediante puerto serie con pantalla.
// Es lo mismo que el Ejercicoi 1, pero usando el LCD Keypad Shield.

#include

// Inicializa la librería con sus pines indicados.
// RS, RW, Enable, D4, D5, D6, D7.
LiquidCrystal lcd(8, NULL, 9, 4, 5, 6, 7);
// LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

// Pin 10 para saber que es luz de fondo.
const byte LuzFondo = 10;

const byte Led = 13;   // Declaramos la variable pin del Led.
char caracter;
String comando;

void setup()
{
  pinMode(Led, OUTPUT);  // Inicializa el pin del LED como salida:
  Serial.begin(115200);     // Puerto serie 115200 baudios.
  lcd.begin(16, 2);         // Formato de pantalla.
  lcd.clear();      // Borra la pantalla y su posición superior izquierda.
  lcd.print("    Arduino     ");
  delay(1000);
}

void loop()
{
  /*
    Voy leyendo carácter a carácter lo que se recibe por el canal serie
    (mientras llegue algún dato allí), y los voy concatenando uno tras otro
    en una cadena. En la práctica, si usamos el "Serial monitor" el bucle while
    acabará cuando pulsamos Enter. El delay es conveniente para no saturar el
    canal serie y que la concatenación se haga de forma ordenada.
  */
  while (Serial.available() > 0)
  {
    caracter = Serial.read();
    comando.concat(caracter);
    delay(10);
  }

  /*
    Una vez ya tengo la cadena "acabada", compruebo su valor y hago que
    la placa Arduino reacciones según sea este. Aquí podríamos hacer lo
    que quisiéramos: si el comando es "tal", enciende un Led, si es cual,
    mueve un motor... y así.
  */

  // Si los carácteres es recibido y verdadero.
  if (comando.equals("Luz_ON") == true)
  {
    digitalWrite(Led, HIGH); // Enciende el Led 13.
    Serial.write("ON - Led encendido.");    // Envía este mensaje al PC.
    lcd.setCursor(0, 1);
    lcd.print("Luz ON.         "); // Mostrar en el LCD.
  }


  if (comando.equals("Luz_OFF") == true)
  {
    digitalWrite(Led, LOW); // Apaga el Led 13.
    Serial.write("OFF - Led apagado. ");  // Envía este mensaje al PC.
    lcd.setCursor(0, 1);
    lcd.print("Luz OFF.        "); // Mostrar en el LCD.
  }

  // Limpiamos la cadena para volver a recibir el siguiente comando.
  comando = "";
}


Ver vídeo:
Ver visor:




 Autor: Ángel Acaymo M. G.

Descarga:
PDF
PDF
PDF

XPS
XPS

Ejemplos con librería 653 KB.
Ejemplos con librería 653 KB.

Librería ComPort oficial.
Librería desde Electrónica PIC X.XX KB.
Librería desde Electrónica PIC. X.XX KB.


¿Qué es 5G? ¿Cuáles son las ventajas de 5G?


5G, la nueva generación de redes de comunicaciones de banda ancha móvil, continúa en desarrollo para una disponibilidad prevista a finales de esta década, dando solución a la explosión de la demanda de comunicaciones, servicios y aplicaciones móviles que se esperan.
En la era de la movilidad, la conectividad es una característica fundamental para usuarios y profesionales. Si para trabajos en escritorios la conectividad está resuelta con las redes cableadas Ethernet, las tecnologías inalámbricas de comunicaciones que están en el mercado y las que se están desarrollando, garantizan la capacidad, rendimiento y seguridad de una conexión permanente a Internet.
5G tiene como pieza central unas redes potentes y flexibles que conectarán todo a todo y todas las cosas a todo el mundo, haciendo posible una nueva generación de experiencias en todos los sectores, incluyendo la conducción autónoma, las ciudades inteligentes, el Internet de las Cosas, la era de las máquinas, wearables y por supuesto en la informática móvil.

Del 1G al 5G

Hubiera sido imposible la popularización de los teléfonos móviles sin la estandarización, mejora y evolución de los protocolos para redes de comunicaciones y su soporte por las operadoras. Así, tras las primeras comunicaciones vía ondas de radio con banda de frecuencias por debajo de los 600 kHz, las posteriores en AM y FM, los servicios de Bell y Ericsson en los años 50 y 60, llegó esa primera llamada de 1973 que popularizó todo el sector.
1Ga5G
Aunque la primera llamada se realizó ese 3 de abril de 1973, no fue hasta 1979 cuando Japón se convirtió en el primer país en contar con servicio de telefonía celular, mientras que a Europa llegó en los países escandinavos en 1981 y Estados Unidos habilitó el servicio comercial en 1983 con una red de AT&T que precisamente diseñó el receptor de la primera llamada y rival de Cooper, Joel Engel.
La primera generación 1G fue responsabilidad de Ericcson con el sistema NMT y seguía utilizando canales analógicos. En 1986, la compañía modernizó el sistema funcionando a frecuencias superiores de 900 MHz posibilitando servicio para un mayor número de usuarios. Además del NMT, en los 80 se desarrollaron otros sistemas de telefonía móvil AMPS y TACS, utilizado en España con el nombre comercial de MoviLine.
La segunda generación 2G llegó en la década de los 90 con sistemas como GSM, IS-136, iDEN e IS-95. GSm fue el desarrollo más relevante ya que fue el estándar europeo de telefonía móvil digital. En el proyecto participaron 26 compañías europeas de telecomunicaciones y en 1992 se pusieron en marcha las primeras redes europeas de GSM-900 y los primeros teléfonos móviles GSM. Además de en Europa, GSM ha terminado imponiéndose también en Asia, América Latina, Oceanía y una parte de América del Norte. Se calcula en 3.000 millones de usuarios.
La necesidad de mayores velocidades de transmisión de datos y mayores capacidades que permitieran nuevos servicios dio paso a la tercera generación 3G, no sin antes pasar por el 2.5G que proporcionó el GPRS. El estándar europeo es el UMTS basado en la tecnología W-CDMA y está gestionado por la organización 3GPP, también responsable de GSM, GPRS y EDGE.
La cuarta generación o 4G sucede a las tecnologías 2G y 3G y ofrece, entre otras mejoras, mayor seguridad y calidad de servicio (QoS), junto a velocidades de acceso muy superiores a las anteriores mayores 100 Mbit/s en movimiento y 1 Gbit/s en reposo. Está basada completamente en el protocolo IP, siendo un sistema de sistemas y una red de redes, que se alcanza gracias a la convergencia entre las redes de cables e inalámbricas. La norma LTE es la más extendida aunque no la única existente.

Ventajas 5G

Sucesora del actual 4G, el principal avance de la quinta generación de esta tecnología móvil será un espectacular aumento de rendimiento con velocidades teóricas de transferencia de datos en bajada de 10 Gbps. Una gran mejora frente a los 75 Mbps del actual 4G-LTE y un rendimiento que pulverizaría el de las redes Wi-Fi e incluso superaría a muchas redes cableadas actuales.
Ventajas de 5G
También será notable la mejora de la latencia. 5G estará construido para manejar todos los tipos de tráfico con latencia extremadamente baja, ideal para alimentar tecnologías portátiles, coches inteligentes o dispositivos domésticos que llegarán bajo la Internet de las Cosas. Se espera que la latencia de extremo a extremo caiga por debajo de 1 milisegundo permitiendo nuevas tecnologías y aplicaciones que simplemente no son posibles con el 4G actual.
Las redes potentes y ágiles también pueden encaminar el tráfico de red de manera inteligente para dar prioridad a dispositivos críticos para seguridad, como los coches de conducción autónoma y dispositivos médicos vestibles. En zonas geográficas en donde la infraestructura conectada no es tan rápida o fiable como se necesita, la tecnología 5G también ofrece un mundo de posibilidades no disponibles en la actualidad.

Disponibilidad 5G

Las grandes compañías del sector llevan tiempo creando redes de prueba y prototipos capaces de soportar redes 5G. La compañía sueca Ericsson consiguió alcanzar el pasado año velocidades de 5 Gbps reales utilizando el estándar previo a la definición del protocolo 5G. Huawei y NTT Docomo han alcanzado velocidades pico de 3.6 Gbps, muy por encima de lo que se alcanza con 4G y 36 veces mayor que las conexiones de 100 MBps que se ofrecen por fibra óptica. Otra de las grandes, Samsung, ha probado con éxito tecnologías 5G con velocidades de 1 Gbps.
Project Skybender es el nombre de una de las nuevas aventuras tecnológicas de Google, con la que el gigante de Mountain View pretende ofrecer conexiones a Internet 5G utilizando drones que se alimentan de energía solar, fabricados por la firma Titan Aerospace. Por su parte, Intel anunció el primer módem 5G global de la industria. Un chip que permitirá a las empresas de todo el mundo desarrollar e implementar soluciones 5G de manera precoz, acelerando el desarrollo de dispositivos con capacidad 5G.
primer módem 5G global
En cuanto a EspañaTelefónica está contribuyendo de forma activa en todos los trabajos que están siendo desarrollado por organismos de investigación y de estandarización para definir el futuro de esta tecnología. La multinacional espera anticipar funciones 5G sin esperar al estándar y prevé ofertar 5G en 2020.
5G se desplegará a modo de prueba en el campeonato mundial de fútbol de 2018 que se celebrará en Rusia, para una disponibilidad general comercial en 2020. Se espera que la red 5G mundial ofrezca soporte a un número estimado de 100.000 millones de dispositivos. Muestra del interés de la industria es el el volumen de negocio anual estimado que asciende a 65.000 millones de dólares la próxima década.

Fuente:
 http://www.muycomputer.com/2017/07/18/ventajas-de-5g/

Vamos a sobrevolar Plutón y Caronte, ¿nos acompañáis?

La NASA ha publicado dos impresionantes vídeos que nos permiten sobrevolar de forma virtual Plutón y Caronte, el conocido planeta enano de nuestro sistema solar y el mayor de sus satélites.
Como podemos ver en esos vídeos tanto Plutón como Caronte son cuerpos rocosos, lo que significa que sería posible pisar su superficie si contáramos con la tecnología y los recursos suficientes para enviar una misión tripulada.
Ambos vídeos han sido creados gracias a la información y los datos que ha transmitido la sonda New Horizons, aunque debemos tener en cuenta que no se trata de una recreación totalmente realista de ambos ya que presenta algunas exageraciones para elevar su valor didáctico.
Por ejemplo en ambos vídeos se ha exagerado el tamaño de la topografía y se han destacado los colores para que sea más fácil apreciar e identificar las particularidades de Plutón y Caronte, algo que como sabrán nuestros lectores habituales es una práctica común en el mundo de la exploración espacial.
Con todo eso no cambia el hecho de que los vídeos son espectaculares y nos permiten a nuestros “vecinos lejanos” de una manera que hace unos años no habríamos podido ni siquiera imaginar.
El vídeo dedicado a Platón arranca en la planicie Sputnik, una enorme zona de nitrógeno helado rodeada de cráteres y se va desplazando hacia el norte por la Voyager Terra hasta terminar en los Tartarus Montes.
En el vídeo donde aparece Caronte iniciamos el recorrido por el cañón Serenity Chasma y terminamos en las planicies conocidas como Vulcan Planum.
Más información: NASA.


Fuente:
http://www.muycomputer.com/2017/07/17/sobrevolar-pluton-caronte/