Hello there!
At the university I was trying to develop a little version of the lighthack box 1. My idea was to have at first just one button, which can have any use i could need. I have been trying to get arduino to connect to the nomad but I can't really figure out what am I doing wrong.
I have OSC RX enabled on the etc and also Log UDP on, whic I don´t really know what this does. The IP Adress and the port is also correct i think.
I cannot make the connection between a simple pulsator on my protoboard, to fire a "go to cue 1" through an "if" conditional.
If someone could help me that would be amazing!
Thanks so much,
KY
#include <Ethernet.h> // Incluimos la librería Ethernet
#include <EthernetUdp.h> // Incluimos la librería UDP
#include <OSCMessage.h> // Incluimos la librería OSC
//#include <Keypad.h> //incluir libreria para manejar el teclado del ordenador
//asignar botón al pin 5 del arduino
const int botonpin = 2;
//el estado del boton lo añado luego
// Definimos la dirección IP y el puerto de la consola Nomad
IPAddress nomadIP(192, 168, 0, 17); // Dirección de loopback en el mismo Mac
const unsigned int nomadPort = 8000; // Puerto OSC predeterminado de la consola Nomad
// Definimos el objeto UDP
EthernetUDP Udp;
void setup() {
//configurar pin como salida
pinMode(botonpin, INPUT);
// Inicializamos el puerto serie para mensajes de depuración
Serial.begin(9600);
// Inicializamos la conexión Ethernet y el objeto UDP
byte mac[] = {0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED};
Ethernet.begin(mac,nomadPort); // Reemplaza 'mac' con la dirección MAC de tu placa Arduino
//Udp.begin(nomadPort);??
//ver cual es el puerto y el ip
Serial.println("Nomad IP: " + String(nomadIP));
Serial.println("Nomad Port: " + String(nomadPort));
//pinMode(botonpin, INPUT);
}
void loop() {
// 1) el boton 1 es el que escribe go to cue 1.
//INICIAR LECTURA ESTADO BOTON para detectar el estado del boton
//Leer estado boton
int estadoBoton = digitalRead(botonpin);
//inicio if
if(estadoBoton == HIGH){
// Creamos un mensaje OSC. seleccionar un canal concreto
OSCMessage selectChannel("/eos/outgoing/goToCue/1");
//selectChannel.add("1"); // Puedes agregar diferentes tipos de datos (int, float, etc.) al mensaje según sea necesario
//Hay qeu agregar el contenido del mensaje osc al paquete utilizado
selectChannel.send(Udp);
// Enviamos el paquete con mensaje OSC a la consola Nomad
//Udp.beginPacket(nomadIP, nomadPort);
Udp.endPacket();
// Borramos el contenido del mensaje para reutilizarlo en la siguiente iteración del bucle
selectChannel.empty();
Serial.println("Nomad IP: " + String(nomadIP));
}
// Esperamos un tiempo antes de enviar el siguiente mensaje (opcional)
delay(1000); // Espera 1 segundo antes de enviar el siguiente mensaje, ajusta según sea necesario
/*
// 2) El botón 2 esta para poner el canal 34+35+36
//Mensaje OSC para decirle a la nomad de poner el canal anterior a full
OSCMessage setIntensity("/eos/user/1/Intensity/Full");
Udp.beginPacket(nomadIP, nomadPort);
//setIntensity.beginPacket(nomadIP,nomadPort);
setIntensity.send(Udp);
Udp.endPacket();
setIntensity.empty(); //este funciona como un clear
*/
//correccion chat gpt
/*Udp.beginPacket(nomadIP, nomadPort);
setIntensity.send(Udp);
Udp.endPacket();*/
}
