Categorías: Circuitos microcontroladores
Cantidad de vistas: 6809
Comentarios sobre el artículo: 0

Microcontroladores programables en JavaScript: cuál elegir, características y capacidades

 

Después de 2010, en nuestro país, el pasatiempo de la radioafición tuvo un segundo impulso con la llegada de la capacidad de programar microcontroladores en lenguajes de programación de alto nivel, muy alejados del hierro. El primer proyecto masivo fue Familia de la Junta Arduino. Hemos examinado repetidamente estos microcontroladores en artículos, pero hoy hablaremos sobre microcontroladores que están programados en javascript. Si! El mismo lenguaje que se usaba principalmente al escribir páginas WEB.

Microcontrolador programable en javascript

¿Alcance o se necesitan tales microcontroladores?

Si consideramos desde el punto de vista de la electrónica en esos dispositivos que consideraremos a continuación, se utilizan microcontroladores estándar. La diferencia con los productos del fabricante es solo que tienen un programa de cargador preinstalado, aunque lo llaman lo que desee, lo que le permite ejecutar el código del programa descargado y, en algunos casos, comunicarse con la computadora a través de USB, si no está implementado en el hardware.

¿Para qué sirven los microcontroladores para javascript y otros lenguajes no tradicionales? Hay debates entre aficionados y profesionales en el desarrollo de la electrónica en foros especializados, donde algunos elogian proyectos como "Arduino", mientras que otros los humillan y ridiculizan de todas las formas posibles por la simplicidad y la abstracción del desarrollador de la mayoría de los problemas con el hierro.

Importante: En esta parte del artículo decimos: "Arduino", porque se ha convertido en el punto de partida para que la mayoría de los fanáticos diseñen dispositivos electrónicos.

Las arduinas se pueden programar en C. ¿Pero es esto necesario? Veamos por qué en la mayoría de los casos no se necesita la velocidad de reacción de los microcontroladores. A los trabajadores de Arduino a menudo les gusta ensamblar controladores para el riego automático y la inclusión de iluminación para "iluminar" las plantas. Tal dispositivo combinado será una excelente ayuda para aquellos que les gusta cultivar algo en apartamentos o invernaderos.

Pero, ¿qué velocidad de dispositivo de control se necesita aquí? Hace 15-20 años nadie lo usaría aquí microcontrolador - un diseñador aficionado habría manejado exitosamente un par de amplificadores operacionales o elementos lógicos. Pero si hablamos de la idoneidad de los microcontroladores discutidos para estos proyectos, entonces aquí es completamente indiferente después de cuántos milisegundos se enciende la luz de fondo o la tierra comienza a regar el agua.

Sistema de riego automático

El próximo proyecto popular es la estación meteorológica doméstica, y resulta que para tales propósitos las capacidades básicas de los arduins son suficientes para leer la información de los sensores y mostrarlos en una pantalla de síntesis de caracteres.

En ejemplos de gestión Tira de LED RGB Los LED normales o inteligentes con control "píxel por píxel" (un ejemplo de una cinta SMART de este tipo y su marca que se ve en la figura a continuación) también tienen suficientes recursos.

Cinta inteligente

Pero, ¿dónde necesita velocidad y no es adecuado para usar lenguajes de programación simplificados como Scratch o javascript? Todo es muy simple:

  • En circuitos de precisión;

  • En alarmas y sistemas de seguridad;

  • En instrumentos de medición de alta precisión con la necesidad de tomar rápidamente datos del ADC, incluso para osciloscopios normales;

  • En dispositivos con un requisito para el trabajo autónomo a largo plazo en modo de suspensión;

  • En los casos en que necesite "introducir" tantas funciones y códigos como sea posible en el microcontrolador, pero esto no se ha convertido en una tarea muy urgente recientemente en relación con la reducción del costo de la mayoría de los dispositivos en el mercado.

En la mayoría de estas tareas, el obstáculo es la velocidad y la memoria.Para obtener resultados óptimos, en este caso es más razonable usar ni siquiera C / C ++, sino Assembler (ASM). De hecho, si está apuntando a tales proyectos, significa que tiene una cierta cantidad de conocimiento, lo que significa que no hay necesidad.


La conclusión?

Se necesitan microcontroladores con lenguajes simples donde no existen requisitos estrictos como la velocidad o la precisión de la medición, pero incluso en algunas situaciones proporcionarán precisión para dispositivos no especializados destinados al uso de aficionados.



Espruino: un potente microcontrolador y un lenguaje javascript simple

La plataforma Espruino es un conjunto de software y hardware para programar microcontroladores en el lenguaje javascript, incluye tres elementos:

1. Firmware para un microcontrolador con un intérprete de lenguaje JS.

2. Entorno de desarrollo para el IDE web de Espruino.

3. Una placa con un microcontrolador con el firmware para trabajar directamente con Espruino.

Espruino

La idea fue desarrollada e implementada por Gordon Williams en 2013, y recaudó fondos para ella utilizando la plataforma de crowdfunding (Kickstarter). De hecho, la esencia del desarrollo fue desarrollar el firmware Espruino (motor) para cargarlo en microcontroladores. Se utiliza principalmente en microcontroladores de la familia STM32, con arquitectura ARM-cortex. Dispositivos más convenientes para la operación, consideraremos a continuación.

Microcontrolador Espruino

Para escribir programas para el microcontrolador en javascript, debe instalar el IDE web de Espruino. Este es un programa o extensión para el popular navegador de Internet Google Chrome que se instala con solo un clic.

Después de hacer clic en el botón "Instalar" en el menú "servicios", aparecerá una aplicación, y puede ingresar a este menú escribiendo en la barra de direcciones: chrome: // apps /

Cuando hace clic en el icono con una taza de café, se abre el entorno de desarrollo, que es notable no en el navegador, sino en una ventana separada.

Este entorno es interesante tanto para niños como para usuarios principiantes, porque puede ingresar el código manualmente o usar un editor gráfico basado en el lenguaje de programación Scratch. Para hacer esto, haga clic en el icono al que apunta la flecha.

Espruino Web IDE

Después de eso, el lado derecho de la pantalla, que con el código, cambiará a su otra representación:

Editor gráfico

La interfaz es intuitiva, en el panel central de arriba a abajo: abra un nuevo archivo, guarde el boceto y cárguelo en el microcontrolador.


Conclusión

Las placas Espruino y similares son una placa de circuito impreso con los accesorios necesarios y un microcontrolador, con un intérprete de JavaScript, que procesa el código y traduce sus comandos al lenguaje de unos y ceros directamente en tiempo de ejecución. Mientras está en la forma clásica, el programa para microcontroladores se carga en este último ya en forma de código de máquina.

Este enfoque proporciona rendimiento en muchas tareas, como Arduino.


Revisión de la línea oficial de Espruino

Espruino original

Especificaciones de este dispositivo:

  • 54x41 mm (media tarjeta de crédito);

  • STM32F103RCT6 CPU ARM Cortex M3 de 32 bits y 72 MHz

  • 256KB Flash, 48KB de RAM;

  • Puerto micro USB

  • Rango de voltaje de entrada de 3.6 a 15V;

  • Conector de batería (JST PHR-2 2 Pin);

  • Ranura para tarjeta SD incorporada;

  • Tres LED (rojo, verde y azul);

  • Plataformas para instalar el módulo Bluetooth HC-05;

  • La distancia entre las minas - 0.1 "(2.54 mm);

  • 44 pines GPIO, de los cuales 26 PWM (PWM), 16 ADC (ADC), 3 USART, 2 SPI, 2 I2C y 2 DAC (DAC);

  • El área de la placa se puede usar para conectar una serie de dispositivos, como módulos Wi-Fi, servos, ampliables a 14 salidas con una corriente de hasta 500 mA.

Tablero microcontrolador espruino

La apariencia del tablero y la división condicional de sus nodos en zonas.

Para muchos, el tablero puede parecer poco atractivo e incompleto, pero esta fue solo su primera opción, luego se ven más familiares y progresivos. Puck.JS es una placa en miniatura en el estuche, tiene Bluetooth incorporado y un transmisor de infrarrojos.

Puck.js

Según la información del sitio oficial, sus especificaciones técnicas y características son las siguientes:

  • Bluetooth de baja energía;

  • Intérprete de JavaScript Espruino preinstalado;

  • El corazón de la placa es nRF52832 SoC - 64MHz ARM Cortex M4, 64kB RAM, 512kB Flash;

  • 8 puertos GPIO de 0.1 "(incluyendo PWM (PWM), SPI, I2C, UART, entrada analógica);

  • 9 x puertos SMD GPIO (incluidos PWM, SPI, I2C, UART);

  • Arandela de carcasa de plástico ABS;

  • Funda de silicona con llave;

  • MAG3110 Magnetómetro - medidor de campo magnético de tres ejes;

  • Transmisor IR

  • Termómetro, sensor de luz y nivel de batería;

  • Tres LED (rojo, verde y azul);

  • Programable mediante etiqueta JS NFC.

  • Los pines pueden percibir el tacto por capacidad (el principio de funcionamiento de las pantallas táctiles de los teléfonos inteligentes);

  • Peso 14 g;

  • Tamaños de la caja de plástico: diámetro 36 mm, espesor - 12,5 mm;

  • Dimensiones del tablero: diámetro 29 mm, grosor 9 mm.

Demostración de trabajo:

La siguiente placa es Espruino Wi-Fi, como su nombre lo indica, su característica es un módulo inalámbrico incorporado para Wi-Fi.

Wi-Fi Espruino

Sus características técnicas:

  • Dimensiones del tablero: 30x23 mm;

  • La placa tiene un conector Micro USB;

  • 21 GPIO: 8 entradas analógicas, 20 PWM, 1 puerto serie, 3 SPI, 3 I2C;

  • La placa tiene 3 LED, 2 de ellos son programables por el usuario y 1 muestra actividad de Wi-Fi;

  • Los puertos son compatibles con Arduino en términos de voltaje y admiten una señal de 5 voltios;

  • 1 botón;

  • Construido en un microcontrolador STM32F411CEU6 CPU ARM Cortex M4 de 32 bits a 100MHz;

  • Memoria: 512 kb flash, 128 kb RAM;

  • Comunicación Wi-Fi con ESP8266 (802.11 b / g / n);

  • RTC (reloj en tiempo real con un generador externo).

  • Se instala un estabilizador de 3.3V con una corriente de hasta 250 mA en la placa, se admite un voltaje de alimentación de 3.5 a 5 V.

  • El consumo actual en el modo de suspensión es de hasta 0.05 mA, lo que le permite trabajar 2.5 años con una batería de 2500mAh (aunque esto es más comercial, pero es más probable que la batería se descargue más rápido).

Wi-Fi Espruino

Demostración de la junta:


Espruino Pico - microcontrolador para javascript en formato de memoria USB

Lo consideraremos en una sección separada, ya que es más común en Rusia y en el extranjero, quizás muchas gracias a la compañía Amperka. La placa es conveniente para entrenar e implementar proyectos terminados, una placa en miniatura que se inserta directamente en el puerto USB de su computadora para la programación.

Espruino Pico

Especificaciones:

  • Dimensiones: 33x15 - teniendo en cuenta el enchufe USB;

  • 22 puertos GPIO, que incluyen: 9 entradas analógicas, 21 PWM, 2 serie (puertos serie), 3 SPI, 3 I2C;

  • Los pines GPIO admiten niveles de señal de 5 V, lo que le permite combinar la placa con escudos y dispositivos para arduino;

  • El conector USB tipo A es parte de la placa.

  • Dos LED y un botón programable.

  • Construido en un microcontrolador de CPU STM32F401CDU6 32 bits 84MHz ARM Cortex M4

  • Memoria: 384 kb flash, 96 kb RAM

  • Un regulador de voltaje de 3.3 V 250mA está soldado en la placa y le permite ser alimentado de 3.5 a 16 V.

  • En modo de reposo, consume corriente de hasta 0.05 mA, y el fabricante aquí afirma 2.5 años de operación con 1 batería a 2500mAh;

  • Transistor de efecto de campo incorporado para controlar circuitos de alta corriente.

Este es el tablero más pequeño de la línea. A lo largo de sus bordes hay puertos de E / S. En este caso, la capa de metalización está presente tanto en los agujeros como a lo largo del extremo de la placa de circuito impreso.

Espruino Pico

El paso de contacto es estándar, esto le permite soldar líneas PLS estándar (este es el nombre que llevan).

Línea de PLS

Revisión detallada de este foro:


La tienda en línea de Amperka y su línea de tableros con Javascript

Nos guste o no, pero el mayor divulgador de programación no tradicional de microcontroladores, en particular en JavaScript, es el sitio de Amperka. Tienen un canal en YouTube donde enseñan cómo usar y programar sus productos, y también muestran la implementación de proyectos usando su propia línea de tableros de microcontroladores.

La línea de marca del fabricante nacional es ISKRA JS, cuyo nombre lee el nombre del idioma que se está discutiendo. Sus características técnicas:

  • Microcontrolador: STM32F405RG (ARM Cortex M4 de 32 bits);

  • Frecuencia de reloj: 168 MHz;

  • Memoria flash: 1024 kB;

  • SRAM: 192 kB;

  • Voltaje operacional clasificado: 3.3V;

  • Tensión de entrada recomendada: 7–15 V o 3.6–12 V;

  • Corriente máxima del bus de 5V: 1000 mA;

  • Corriente máxima del bus de 3.3V: 300 mA (incluida la fuente de alimentación del microcontrolador);

  • Corriente máxima de pin o pin: 25 mA;

  • Corriente total máxima de pines o pines: 240 mA;

  • Puertos de E / S de uso general: 26;

  • Puertos con soporte PWM: 22;

  • Puertos ADC: 12 (12 bit);

  • Puertos con DAC: 2 (12 bits);

  • Interfaces de hardware disponibles: 4 × UART / Serie, 3 × I²C / TWI, 2 × SPI;

  • Dimensiones: 69 × 53 mm.

ISKRA JS

Estructuralmente, la placa está muy cerca del Arduino Uno R3, lo que significa que puede usar las tarjetas de expansión para ello.¿Qué cosas interesantes vemos en las especificaciones técnicas? Vamos a compararlos con todos tus arduino favoritos.

Comparación de Iskra JS y Arduino UNO r3

Son diferentes en términos de memoria y capacidades, y cada uno encontrará su aplicación. Aunque el arduino en la mayoría de los casos es preferible, porque se puede comprar por un par de cientos de rublos, pero una chispa no lo es.

Amperka también vende microcontroladores y microcomputadoras como Raspberry Pi, así como kits de capacitación para trabajar con ellos. También hay una línea de tarjetas de expansión para microcontroladores, estos son los llamados módulos Troyka. Están fabricados en el mismo color blanco que el resto de los productos de esta empresa.

Como cualquier otro escudo, los productos de Amperka contienen placas de circuito impreso como la unidad funcional principal: un sensor, un dispositivo de conmutación, un maestro o actuador y los accesorios necesarios. Ya hemos hecho una revisión aproximada de los módulos típicos para Arduino: Los escudos más populares para ArduinoAquí todo es por analogía. En el sitio web o en la comunidad de Amperka, puede encontrar bibliotecas para usar con módulos con Iskra JS o Arduino.

Entre los tres módulos hay:

  • Joystick

  • Codificador

  • Módulo con relé;

  • Tarjetas de expansión de puertos (Troyka-shield);

  • Acelerómetros y otros sensores de posición;

  • Sensores de luz, proximidad, corriente, temperatura, Hall, ruido, gas, alcohol y otras cosas;

  • Receptores para leer etiquetas NFC;

  • Equipo para la gestión del motor (puentes H, conductores) y más.

A la venta hay un kit interesante para principiantes "IODO".

Una palabra separada sobre un solo elemento en la configuración es # el constructor. Estas son piezas para ensamblar cajas y piezas de apoyo de sus estructuras, están conectadas como el diseñador de un niño y le permiten hacer un diseño normalmente estable con la capacidad de transportar de forma segura y una solución llave en mano para el uso diario.

Constructor

Por cierto, puede armar su kit de capacitación, y el folleto de capacitación del kit está disponible en el sitio web oficial en formato electrónico y está disponible de forma gratuita.


Conclusión

Para programar microcontroladores en javascript, solo necesita instalar el shell apropiado en su muestra. Sin embargo, no todas las copias tienen un firmware correspondiente, sin embargo, para dispositivos populares se pueden encontrar en foros temáticos. Por ejemplo, en la microcomputadora BBC Micro: bit, el proceso de trabajar con el entorno se muestra en el siguiente video, y la instalación se realiza en unos pocos pasos.

¿Se necesita JavaScript en los microcontroladores? Absolutamente si! Para la mayoría de las tareas de aficionados, los aficionados al bricolaje no necesitan precisión ni velocidad de respuesta, y para una serie de tareas profesionales, las capacidades de dichas plataformas son suficientes. Tal enfoque a la programación hace posible comenzar a desarrollar dispositivos prácticamente sin estudiar la estructura y los comandos del microcontrolador. Pero en el método clásico de programación, era necesario tener en cuenta una serie de cosas, como varios tipos de variables, direcciones de memoria, etc.

Ver también en bgv.electricianexp.com:

  • Microcontroladores PIC para principiantes
  • Tipos y disposición de microcontroladores AVR
  • Qué placa Arduino elegir
  • ¿Qué son las pantallas Nextion y cómo trabajar con ellas?
  • Conectando y programando Arduino para principiantes

  •