¿Qué es NETMF?


NETMF es una plataforma de código abierto, que se convirtió en un proyecto de colaboración de código abierto allá  por  el año 2009, cuya principal virtud es  ampliar  el potencial y la capacidad de adaptación de .NET para el mundo de los dispositivos integrados de modo que programadores de escritorio , también pueden crear aplicaciones que se ejecuten en una amplia gama de sistemas de pequeños dispositivos, como mandos a distancia,  PCs ,servidores en la nube ,etc    todos ellos usando el mismo modelo de programación y herramientas comunes. Así de  este modo ,desarrolladores de sistemas integrados pueden aprovechar las ventajas  de lenguajes de productividad masiva orientados a escritorio y reducir su tiempo de comercialización.

.NET Micro Framework  pues esta diseñado  pues para dispositivos pequeños y por tanto de recursos limitados ofreciendo un entorno completo e innovador de desarrollo y ejecución que trae la productividad de las herramientas informáticas modernas a esta clase de dispositivos,pudiendo utilizarse para construir dispositivos integrados en dispositivos limitados recursos en un microcontrolador con pocos cientos kilobytes de memoria RAM y almacenamiento  como por ejemplo Netduino del que tantas veces hemos tratado en este blog.

Uno de los punto fuertes  respecto a otras plataformas  Open Hardware como Arduino o Raspberry Pi es que los desarrolladores pueden utilizar sus conocimiento de Visual Studio, C# y .net   para escribir rápidamente aplicaciones integradas sin tener que preocuparse por las complejidades de cada microcontrolador, asi que cualquier desarrollador puede comprarse  una placa  compatible con .net, conectar la placa a su equipo de desarrollo con Visual Studio y comenzar a escribir aplicaciones para dispositivos físicos  no  necesitando por tanto amplios conocimientos de diseño de hardware  para empezar a escribir código para dispositivos físicos.

Las  ventajas de NETMF pues son las siguientes:

  • Mejores herramientas  y experiencia para los desarrolladores : al utilizar  tecnologías existentes (c#.net )  y entornos de desarrollo profesionales es evidente que  la experiencia de uso es mucho  mejor que en otros entornos de  desarrollo para crear micro dispositivos inteligentes de depuración.
  • Prototipado rápido :dar vida a sus ideas en horas es fácil (en lugar de días o semanas con otras plataformas) usando por ejemplo los módulos de . net Gadgeteer. Por tanto es una vía rápida y fácil de desarrollar sus invenciones para mostrar a la gente sus diseños creativos.
  • Aprovechamiento de . net y C# : puede usar su  base de conocimientos que ya tenga de C# y. net para hacer dispositivos frescos e innovadoras.

 

Desde el punto de vista del desarrollador ,  trabajar con NETMF tiene dos caras : portarlo al hardware  o  utilizarlo para controlar su hardware . Portarlo  requiere costo considerable , mucho tiempo y mucha experiencia . Una vez hecho esto , podrá usar  NETMF  casi sin esfuerzo .

Usando criterios de calidad y fiabilidad como  directrices principales, otras empresas  como Secrets Labs o GHI  han  enriquecido aún más NETMF con características de valor añadido tales como WiFi, USB servidor y base de datos, lo cual se traduce en soluciones  de bajo riesgo de abandono a un costo mínimo.

benefits

En cuanto al hardware  existen  dos partners de  .NET Micro como son  GHI Electronics y  Secret Labs.

placas

Características fundamentales

NETMF está lleno de características propias de  cualquier lenguaje  moderno,como el soporte de  las siguientes estructuras  y facilidades como son :

  • Arrays
  • Classes
  • Collections — ArrayList, Dictionary, Stack, Queue
  • Cryptography — Encrypting/decrypting, hashing, SSL
  • Displays
  • Dynamic memory management with GC
  • Exceptions
  • File I/O — Files, directories and various storage types.
  • Globalization
  • Graphics — Bitmap, GIF, JPEG, Windows Presentation Foundation (WPF), fonts, touch and gestures.
  • Numerics
  • Power Management
  • Reflection
  • Hardware — Analog Input/Output, Digital Input/Output, I2C, Interrupts, OneWire, PWM, SPI, UART (Serial Port)
  • Math helpers
  • Namespaces
  • Networking — DHCP. DNS. HTTP. Sockets. TCP. UDP. Wireless
  • Runtime Debugging
  • Serialization
  • Strings
  • Text Encoding/Decoding
  • Threading, Events, Delegates, and Timers
  • Time keeping
  • USB Client
  • XML
  • Resources

Hay empresas  como GHI , que ademas construyen sobre las características principales del NETMF anteriormente citadas , extensiones adicionales de valor añadido como pueden ser las siguientes:

  • Configuración de la pantalla y el logotipo de la puesta en marcha
  • E / S – CAN, captura de la señal, generador de señales, I2C Software, USB de almacenamiento masivo
  • En-Campo de actualización
  • PPP
  • Reloj en tiempo real
  • Registro Acceso
  • RLP para cargar código nativo (c / montaje) para los propósitos de velocidad y en tiempo real.
  • Base de datos SQLite
  • USB Client – joystick, teclado, almacenamiento masivo, Ratón
  • USB Host – joystick, teclado, almacenamiento masivo, ratón, USB-Serial, Webcam
  • Perro guardián

.NET Gadgeteer se construye en la parte superior de NETMF para proporcionar una plataforma de desarrollo rápido utilizando placas base y módulos plug-and-play  como sensores .

Supongamos que queremos por ejemplo  hacer una aplicación de registrador de temperatura,  esto requiere una placa base, módulo de tarjeta SD y un  módulo de temperatura. En cuanto al software, ademas también se necesitan  controladores necesarios .

Si contamos  con el hardware ya  preconstruido  y los controladores para estos se incluyen, en el desarrollo de  la nueva aplicación  se reducen significativamente el tiempo de desarrollo.

.NET Gadgeteer es un estándar mantenido por Microsoft para la normalización de las conexiones entre las placas base y módulos. GHI fue  elegido para ser el primer proveedor en ofrecer una tarjeta de .NET Gadgeteer, el FEZ araña. El ecosistema continúa creciendo con más placas base y módulos.

 

Diseñador

Usando el diseñador de .NET Gadgeteer es simple y acelera su diseño.En la pantalla de diseño, se abre la caja de herramientas, arrastrado y soltando los componentes deseados.Haciendo clic y seleccionando “Conectar todos los módulos”  habrá terminado la configuración inicial.

Este proceso  incluye automáticamente todos los archivos DLL necesarios y genera una variable para alcance de cada componente  que le permite centrarse en la escritura de la funcionalidad principal de su diseño sin tener que escribir todo desde el principio ahorrándole tiempo y recursos valiosos.

IntelliSense

Visual Studio de Microsoft incluye una característica denominada IntelliSense. A medida que escribe  su código , IntelliSense entiende lo que podría estar tratando de escribir y muestra cuadros con sugerencias. Es por eso que se envian productos .NET Gadgeteer sin ningún tipo de manuales de programación.

Imaginemos  que esta utilizando un módulo de la cámara:todo lo que necesita hacer es escribir la palabra “rfidReader” y  golpe  el teclado para ver una lista de los métodos admitidos disponibles en los controladores incluidos.

Gadgeteer vs  Arduino Phidgets

¿Cómo se compara Gadgeteer contra otras plataformas de desarrollo?,Si esta interesado puede echar un vistazo  al siguiente vídeo que compara parpadear un LED, el control de un servo con un potenciómetro y un podómetro que muestra los pasos en una matriz de LED todo ello comparando varias plataformas.

 

Fuente   aqui

Anuncios

Sobre el DTMF


 

Generando tonos DTMF  usando la tarajeta de sonido

 

¿Que son los tonos DTMF ?

Los tonos DTMF son sumas de dos tonos de onda sinusoidal en frecuencias que sigue:

                 1209 Hz 1336 Hz 1477 Hz 1633 Hz

ABC DEF
697 Hz 1 2 3 A

GHI JKL MNO
770 Hz 4 5 6 B

PRS TUV WXY
852 Hz 7 8 9 C

oper
941 Hz * 0 # D

 

Metodos para generar  tonos DTMF

  • Usando especial ICpara generacion de tonosDTMF . Modems y telefonos usan este metodo.
  • Generar DTMF tonos usando el chip sintetizado de al tarjeta de sonido
  • Cargar una muestra de  onda senoiuda en la tabla de ondas de la tarjeta de sonido.Ejecutar esa muestra usando dos canales a diferentes frecuencias.
  • Muestrear todos las combinacione de  tonos DTMF  y ejecutar las que convengaa. 8 kHz a 8 bit de resolucion es suficinte para esto.
  • Generar la muestra usando software:
Generar una onda senoidal es facilmente calculable usando la siguiente formula:
sample=sin(n*2*pi*f/samplerate)
donde:
  • n es el valor de la muestra(empezando desde0)
  • f es la frecuencia que se quiere generar
  • samplerate es el ranago ques ejecuta las muestras a traves del DAC de la tarjeta de sonido

Generar tonos DTMF usando este método es muy fácil por justamente sumar dos de esta ondas sinusoidales . Para los tonos DTMF 8 que usan tasa de muestra de 8kHzó la resolución es bastante buena, pero no hay problemas usando resoluciones de 16 bits o más altos (usted justamente tiene que generar más datos para eso). Calculando muestras para 8 kHz y 8 bit (unsigned) data, usaremos las siguinte funcion: sample(n) = 128 + 63*sin(n*2*pi*f1/8000) + 63*sin(n*2*pi*f2/8000) Dónde el f1 y f2 son las frecuencias de las ondas sinusoidales en el tono DTMF.

 

Como optimizar los calculos

Usando la funcion seno consume bastante tiempo. Si su aplicación tiene limitada la capacidad de procesamiento, entonces debería optimizar la rutina de algún modo. La optimización en el cálculo de seno puede ser fácilmente hecha calculando una tabla de valores y luego leyendo los valores del seno de esa tabla en lugar de la función calculadora de seno actual todo el tiempo. Otra opción es usar un algoritmo para eficazmente realizar una serie de seno y / o cálculos de coseno de un ángulo que repetidamente aumenta (o decreciendo) por una cantidad fija. Otros métodos son evitar haciendo multiplicaciones innecesarias para cada prueba. Usted puede calcular 2 * f1 de * pi y 2 * f2 de * pi una vez al principio del calculo de tono DTMF y puede usar ese ato despues almacenado el valor en lugar de hacerlo en todas partes para cada prueba.