Tabla de contenido
resumen
La popularidad de la plataforma de programación Arduino ha aumentado hasta el punto en que la mayoría de la gente se familiariza con la arquitectura básica de Arduino y sus diversas redes de soporte. Como resultado, comenzar con los circuitos basados en Arduino es fácil, incluso si no entiende lo que está sucediendo bajo el capó o cómo familiarizarse con conceptos como el análisis de rendimiento. Pero, ¿eres un programador con fluidez en Rust?
Aprender Rust también es un paso importante y complicado para los desarrolladores que están acostumbrados a desarrollar código utilizando otros lenguajes de programación. La experiencia de desarrollo varía considerablemente dependiendo del lenguaje, base Es bastante fácil de entender con solo unos pocos libros y aprendizaje virtual. Los primeros días pueden parecer confusos y frustrantes, pero vale la pena el esfuerzo.
Pero, ¿qué necesita el lenguaje de programación Rust?
Lenguaje de programación Rust
Rust es un lenguaje de programación que ha existido durante aproximadamente 10 años. Sin embargo, no es solo un lenguaje de programación. Es un ecosistema formado por herramientas que tienen el potencial de ofrecer mucho más que antes. Rust tiene varias ventajas sobre otros lenguajes de programación, como la seguridad de la memoria, la alta concurrencia y la paralelización.
También proporciona características orientadas a objetos que no alcanzan los lenguajes de procedimiento regulares como C y C ++.
Además, el sistema integrado de Rust se ha ampliado para incluir algunas bibliotecas interesantes. Al utilizar estas bibliotecas, puede disfrutar enormemente de los sistemas integrados. Estas son algunas de las muchas razones por las que la mayoría de los desarrolladores prefieren adoptar Rust como el lenguaje de programación adecuado.
Casos de uso de Rust
Rust se utiliza en situaciones de programación centradas en la seguridad cuando se trata de gestión de memoria y concurrencia. Es un software esencial en el mundo de la programación actual. Rust es esencial para la programación cuando los recursos son limitados, especialmente cuando se trata de datos sensibles o programas que pueden perjudicarnos si funcionan mal.
mediante la incorporación de Lo más querido En un lenguaje de programadores, Rust, para Arduino, puedes ver tantos beneficios ofrecidos por Rust que beneficiarán tus proyectos de maneras que no sabías que eran posibles, pero primero, obtengamos una comprensión más profunda de Arduino.
Acerca de Arduino
Arduino es una plataforma de hardware de código abierto basada en una placa de microcontrolador simple. Está dirigido a artistas, diseñadores y entusiastas, y varios tableros oficiales ofrecen diferentes características. Si está familiarizado con la plataforma Arduino, es posible que haya pensado que era solo otra herramienta de creación de prototipos electrónicos. Pero no podría estar más lejos de la verdad. La comunidad de Arduino ha crecido hasta convertirse en una gran parte de lo que se conoce como Internet de las cosas (IoT).
El ecosistema de Arduino consiste en algo más que hardware en términos de uso. También es compatible con varios lenguajes de programación, incluyendo C ++ y C. Sin embargo, si recién está comenzando con Arduino, lo más probable es que use el IDE de Arduino para la mayor parte de su trabajo de desarrollo.
En este contexto, tenemos que lidiar con un nuevo lenguaje de programación, Rust. Para comprender qué es Rust y cómo usarlo, debe investigar y familiarizarse con la administración explícita de la memoria y cómo los compiladores infieren información sobre su programa en tiempo de compilación en lugar de tiempo de ejecución (por ejemplo, lenguajes de escritura dinámicos como Python).
Aprende rust para Arduino
En su mayor parte, comenzar con Rust para Arduino es similar a aprender cualquier otro lenguaje de programación. Necesita leer y aprender la sintaxis y los conceptos básicos, por lo que debe tomarse el tiempo para trabajar en ello.
Lo más importante a tener en cuenta es que Rust no proporciona un mecanismo útil para manejar fallas (al menos no de la manera que cabría esperar de lenguajes como Java o Python), y muchos errores se consideran errores del programador. Por lo tanto, aprender Rust requiere más atención cuando se trata de analizar datos, desinfectar la entrada y tareas similares.
Cómo ejecutar código Arduino
Al escribir un programa Arduino, lo primero que debe considerar es cómo desea usar la placa. El proceso de ejecución de código en Arduino es muy diferente de otros lenguajes. Primero, debe crear un boceto usando el IDE de Arduino. Después de eso, coloque el boceto en la pizarra. Este boceto debe tener toda la funcionalidad necesaria para ejecutarse, incluido el código ejecutable, las variables incrustadas y las funciones de configuración a las que se llama durante la ejecución.
Una vez que el código se compila después de t, debe cargarlo en el tablero. El programador debe conectar un cable del pin A al GND (tierra) a través de una serie de resistencias. Si el código se ejecuta como una aplicación en el equipo, compile y cargue el programa primero antes de ejecutarlo.
Escribamos código oxidado para Arduino
Si alguna vez has usado un Arduino, el proceso es más o menos el mismo. Debe hacer un nuevo boceto, conectar el circuito a la placa, compilar y cargar. No me preocuparé por este paso porque no puedo hacer nada con respecto al error. ¡Así que empecemos a escribir código!
Rust para Arduino viene con rust/rustc-serialize que gestiona la serialización de las estructuras de datos de Rust. Por lo tanto, ¡usémoslo!
Extern caja rustc_serialize; ... dejar hello_str = serialize_str!(Hola remitente óxido en el Arduino tabla); Impresión!(“¡Hola {}!”, hello_str); |
¡Puedes usar serialize_str! Una macro que convierte una estructura de datos de Rust en una representación de cadena ASCII que se puede imprimir posteriormente. La biblioteca serde hace esto atravesando la estructura y buscando un tipo especial de marcador llamado etiqueta. Esto es familiar para cualquiera que haya desarrollado código similar usando C ++ o C #.
¿Qué sucede si desea aumentar la flexibilidad al permitir que los usuarios proporcionen estructuras? Si está utilizando un idioma diferente, probablemente lo convertirá en una variable global para que pueda acceder a él desde cualquier lugar. Para ello, debe crear un nuevo archivo denominado rust_program.rs y definir una estructura única que pasará el módulo.
rust_program.rs struct ArduinoStr { } ... dejar hello_str = serialize_str!(ArduinoStr { nombre: “Arduino”}); Impresión!(“¡Hola {}!”, hello_str); // |
Rust en Arduino no es completamente funcional, por lo que necesitamos proporcionar métodos de acceso. Esto no es requerido por otros lenguajes de programación debido a la estricta comprobación de tipos. Rust para Arduino lee las estructuras de datos de Rust de una manera muy poco estándar. Tampoco proporciona herramientas para convertir estructuras de datos de Rust a otros formatos como Prolog o JSON.
En este caso, solo desea imprimir los datos. por consiguiente ¡Imprimir pulmón! En lugar de ¡Imprimir pulmón! (ArduinoStr f).
¡Eso es todo! Creé y ejecuté mi primer programa Rust en mi placa Arduino. Pero, ¿por qué querrías serializar una estructura de Rust en primer lugar? ESTO ES SOLO UNA CONVENIENCIA, AL IGUAL QUE USAR IO.PUTS. (cadena s) para imprimir una cadena desde un archivo.
conclusión
Este artículo Su objetivo es enseñar a los programadores sobre Rust, por qué deberíamos adoptar este lenguaje de programación y los casos de uso de Rust, incluido el proyecto Arduino. También aquí encontrará consejos sobre cómo crear un programa Rust simple que puede compilar y cargar en su placa Arduino.
El proceso de escribir código usando Rust es el mismo que cualquier otro lenguaje de programación en la plataforma Arduino, con ligeras diferencias en el manejo de errores y la estructura de datos. La serialización de las estructuras de datos de Rust es simple e intuitiva porque utiliza etiquetas.
¡Es todo! Al usar Rust en la plataforma Arduino, puede ejecutar con frecuencia sus ideas de proyectos de Rust y mejorar sus habilidades de programación con el tiempo.