Creación de Hardware con Arduino

En este artículo tratamos los puntos principales de la utilización de Arduino y como crear hardware con este, empezando por leer datos de software.

Introducción

Cuando hablamos de Arduino creo que no cabe duda alguna, ha acercado la tecnología y la electrónica a todos los públicos.

Gracias a estas placas podemos crear cualquier tipo de aparato electrónico, simple o complejo que queramos, solo necesitamos conectar pines con la ayuda de una placa microperforada.

Si además añadimos un toque de impresora 3D, podemos tener hardware personalizado con una buena estética y funcionalidad.

El artículo de hoy supone una prueba de concepto simple, que involucra utilizar Arduino para conectar un software externo y el mundo real.

Algo que nos acerca a los gadgets que tantas novelas cyberpunk nos habían advertido de su existencia, y que nos entrega el poder de interactuar con el mundo real.

Es decir, nos permite pasar nuestras habilidades de software a interactuar con el mundo físico.

¿Qué es Arduino?

Arduino es una plataforma de hardware libre que ha abierto las puertas a la electrónica y prototipación de proyectos DIY.

Se trata de una sencilla placa equipada con un microcontrolador y un entorno de desarrollo (IDE) que permite escribir, cargar y ejecutar código fácilmente, interactuando con pines donde podemos conectar cualquier tipo de hardware.

Esta accesibilidad ha permitido que personas sin formación técnica avanzada puedan adentrarse en el mundo de la electrónica y la programación.

En el ámbito Maker, Arduino tiene un rol fundamental.

La posibilidad de integrar fácilmente sensores, actuadores y otros componentes electrónicos ha permitido la creación de proyectos innovadores, desde simples circuitos LED hasta complejos sistemas automatizados.

Los Makers encuentran en Arduino una herramienta versátil para prototipar sus ideas, experimentar y aprender de manera práctica.

Usos e ideas de proyectos con Arduino

Este apartado daría para un artículo completo como ya hice con impresión 3D, pero existen proyectos para todo tipo de niveles.

Arduino nos permite acercar los conocimientos de programación y tecnología a interactuar con el mundo que nos rodea.

De antaño, un programador debía quedar confinado al mundo del software salvo que estuviese dispuesto a sacrificar muchos años de estudio de ingeniería electrónica.

Sin embargo, ahora tenemos la opción de crear todo tipo de aparatos electrónicos de todo tipo de complejidad de manera muy sencilla, solamente encajando módulos y escribiendo código en C++.

Esto nos abre una barrera que hasta hace poco estaba confinada para el común de los mortales, la electrónica.

El mismo secreto bien guardado de los fabricantes automotrices, de teléfonos moviles, de cámaras fotográficas, de industriales que han cambiando el mundo. Ahora está en tu mano.

En mi opinión, la clave de la creación de hardware no es la complejidad de este en sí, si no el uso o aplicación que tenga en el mundo real.

Es decir, la clave de crear algo físico no es que sea extremadamente complicado, si no que sea funcional.

Un ejemplo de algo sencillo, es la creación de una botonera DIY para sim racing, como ha hecho mi amigo manos duras, es algo simple en forma y lógica, pero con un gran uso si es algo que te apasiona.

Pasando a conceptos más complejos o tediosos, podemos hablar de ropa Cyberpunk juntando en este caso una Raspberry (en vez de Arduino, aunque el uso es el mismo en este caso) e impresión 3D:

Maker crea ropa Cyberpunk

Y finalmente, uno de mis favoritos, sigue siendo simple a nivel de electrónica, aunque más complejo a nivel de instalación, es el hecho de crear hardware de automoción y mejorar la conducción e incluso el look and feel de un coche.

Es el caso de OpenTop, un maker Francés que ha creado hardware para mejorar su Nissan 350z de una forma poco común.

Y es que en vez de añadir relojes analógicos, como harían la mayoría de entusiastas de la automoción, ha decidido utilizar Arduino para crear algo mucho más orgánico, con una apariencia OEM de un coche de altísima gama.

Guía: Creación de Hardware para trading

Dentro de la infinidad de proyectos que se pueden crear en Arduino y que me gustaría llegar a cubrir algún día, empezaremos por uno sencillo a nivel de componentes y lógica.

Mi enfoque principal siempre ha sido el software, desde hace muchos años y por supuesto antes de empezar en el mundo maker.

Así que el primer proyecto que voy a explicarte, está fuertemente basado en software, donde además apenas he encontrado información.

He visto muchísimos tutoriales que cubren los aspectos más básicos de Arduino pero no su comunicación con otras plataformas ni su forma de interactuar con inputs basados en software.

Te presento mi prueba de concepto, un pequeño aparato que se conecta a una terminal bursátil como es Metatrader 5, y en caso de tener posiciones abiertas nos lo hace saber con una luz.

Prueba de concepto: Hardware para trading

Como tal, es una prueba de concepto de lo que puede hacer Arduino recibiendo información de un PC, y concretamente, como conectar Arduino a una plataforma de trading para procesar información.

Para un trader manual esto puede tener mucho valor ya que mediante varios componentes te puede dar muchísima información de una manera muy visual.

¿Estás perdiendo más de X dinero en posiciones abiertas? Luz roja.

¿Existen movimientos muy volátiles en el mercado? Un zumbido.

¿Se ha dado una condición de algo que quieras operar? Pitidos.

Es el mismo concepto que un coche de carreras o el atrezzo de una novela Cyberpunk llevado al mundo real.

Por mi parte, soy trader algoritmico de futuros, y mis modelos basados en Machine Learning son de ejecución automática, por lo que a nivel de hardware y cues visuales no necesito obtener demasiada información.

Sin embargo, como prueba de concepto y aprendizaje me parece algo maravilloso y que no está de más saber.

De hecho, fíjate, hay dos tipos de proyectos, los que obtienen información e instrucciones del mundo real, como los de OpenTop, y los que obtienen instrucciones de software.

Hoy como primer proyecto te voy a enseñar a hacer esta misma prueba de concepto.

Configurando Arduino: Hardware

A nivel de hardware este proyecto es bastante sencillo, solamente necesitaremos un Arduino, en mi caso un Nano, un led, y una resistencia con un valor mínimo de 220 ohmnios.

El lado negativo del led (pata corta) debe ser conectado al pin GND o Ground.

Y el lado positivo tendrá conectada la resistencia, y a través de esta lo conectaremos a uno de los pins digitales.

Yo he elegido el pin D3.

Código Arduino IDE

Con el hardware conectado, necesitaremos dos códigos, por un lado, el código del IDE de Arduino, que está basado en C++, y por otro la interfaz de Python que le mandará información a nuestro hardware.

Empecemos por el primero, lo que vamos a buscar es que nuestra placa sea un receptor de mensajes enviados por Python, para ello usaremos el siguiente código.

const int ledPin = 3;

void setup() {
  pinMode(ledPin, OUTPUT);
  Serial.begin(9600);
}

void loop() {
  if (Serial.available() > 0) {
    char command = Serial.read();
    if (command == '1') {
      digitalWrite(ledPin, HIGH);
    } else if (command == '0') {
      digitalWrite(ledPin, LOW);
    }
  }
}

Empezaremos declarando una constante con el pin donde el led está conectado, en este caso el pin 3.

Así en la función setup, que es ejecutada en el inicio podemos definir que es un output y después iniciar en la siguiente línea el Arduino.

Después en la función loop, la cual se ejecutará en bucle, estaremos buscando de manera activa comunicación al puerto en el que estará conectado (definido por Python).

Si le llega un comando «1», encenderá el LED, si le llega un comando «0» lo apagará.

Subiendo esto a nuestra placa ya estará lista para el siguiente apartado.

Código Python

A través de Python podremos comunicar la plataforma Metatrader 5 con nuestro Arduino aprovechando que existen módulos para ambas cosas.

El primer paso será instalar las librerías necesarias para operar esto:

pip install MetaTrader5 pyserial

Y después instalar la propia plataforma Metatrader, la cual te puedes descargar desde cualquier broker o desde la propia página web oficial.

Finalmente, este será nuestro código Python, el cual he dejado documentado:

import MetaTrader5 as mt5
import serial
import time

# Conectar a MetaTrader 5
if not mt5.initialize():
    print("initialize() failed")
    mt5.shutdown()

# Conexión serie con Arduino
arduino = serial.Serial('COM5', 9600)  # Puerto COM del Arduino (ver en IDE)
time.sleep(2)  # Espera a que se establezca la conexión

def check_trades():
    # Obtiene las operaciones abiertas
    open_trades = mt5.positions_get()
    if open_trades:
        print("Trades abiertos:", len(open_trades))
        arduino.write(b'1')  # Enciende el LED
    else:
        print("No hay trades abiertos")
        arduino.write(b'0')  # Apaga el LED

try:
    while True:
        check_trades()
        time.sleep(1)  # Espera 1 segundo antes de volver a ejecutar
except KeyboardInterrupt:
    print("END")
finally:
    mt5.shutdown()
    arduino.close()

La clave del código será establecer una comunicación Serial la cual nos permitirá en este caso mandar mensajes a través del puerto USB donde está conectado nuestro Arduino.

Partiendo de esa base, durante un bucle infinito, lo que estaremos haciendo es leer el número de posiciones de MT5 y en base a ello mandando a la placa códigos con unos y ceros.

Si existe posición manda un uno, entonces Arduino enciende el LED.

Si fuese cero, lo apaga.

Conclusión

Este artículo ha tratado de ser una introducción a un proyecto que es básico y a una tecnología que considero maravillosa.

Una tecnología que si la fusionamos con Impresión 3D y conocimiento de algún nicho específico nos permite hacer hardware muy capaz sin ser ingenieros electrónicos, sea para crear ropa, mejorar vueltas de sim racing o de coches reales.

O como es en este caso, algo relacionado con el trading y finanzas.

Realmente el nicho no tiene demasiada importancia y no hace falta llegar a una complejidad extremadamente alta para crear cosas con potencial.

Finalmente, si quieres empezar en este mundo, te recomiendo mirar en Aliexpress placas de Arduino, placas microperforadas y componentes, son extremadamente baratos y con envíos relativamente rápidos.

,

1 comment

Comments are closed.