Paso 4: Recibir mensajes de OSC en el Mac
Antes de empezar a trabajar sobre la funcionalidad del receptor, asegúrese de que cargar el ejemplo de una estándar firmado a tu placa de Arduino. Una vez tu Arduino está preparado y listo para usar, copiar la carpeta llamada oscReceiverExample dentro de la carpeta of_v0.8.1_osx_release/examples/addons a la carpeta myApps dentro de of_v0.8.1_osx_release/apps. Abra el archivo de proyecto de Xcode llamado "oscReceiverExample.xcodeproj" dentro de la carpeta copiada. Una vez abierto, ver el navegador de proyecto de la izquierda y haz clic en el archivo llamado "ofApp.cpp". Una vez allí, abrir otro archivo de proyecto de ejemplo en of_v0.8.1_osx_release/examples/communication/firmataExample llamado firmataExample.xcodeproj. Tomando parte del código de este archivo y poner dentro del archivo ofApp.cpp en la oscReceiverExample.
El primer bit del código vamos a necesitar son estas tres líneas:
ARD.Connect ("/dev/tty.usbmodem1421", 57600);
ofAddListener (ard. EInitialized, este, & ofApp::setupArduino);
bSetupArduino = false;
Reemplazar "/ dev/tty.usbmodem1421" con su puerto de Arduino y seguir con cualquiera de los dos 57600, como arriba, o 9600 dependiendo de la configuración de Arduino.
Después de esto, copiar las funciones setupArduino, updateArduino, digitalPinChanged y analogPinChanged en el archivo ofApp.cpp dentro del proyecto de oscReceiverExample sobre la función de actualización.
Crear números 2 enteros. Uno para la velocidad del ventilador y otro para el dedo de entrada que se recibe desde el iPhone.
Dentro de la carpeta de setupArduino reemplazar ard.sendDigitalPinMode con "ard.sendDigitalPinMode (9, ARD_PWM);"
Coloque la línea "updateArduino();" dentro de la función de actualización. Dentro de actualización, encontrar la función condicional que los Estados "if(m.getAddress() ==" / mouse/posición) "y" entrada = m.getArgAsInt32(0); "dentro de ella. Esto nos permite guardar el dedo Y posición en la variable de entrada.
Por último, escribir estas tres líneas en el bucle de empate utilizar nuestra función de aceleración a medida para especificar el rango y volver a mapa de la gama de la entrada enviada desde la posición del dedo de iPhone:
velocidad del ventilador = (int) aceleración (velocidad del ventilador, ofMap (entrada, 60, 500, 255, 0), 0.08);
Si (velocidad de ventilador > = 255) velocidad del ventilador = 255;
Si (fanSpeed < = 0) velocidad del ventilador = 0;
Y eso es todo! Las imágenes de arriba proporcionan una mirada más profunda al código.