Paso 3: OpenFrameworks: la frontera Final
Ahora tienes el código cargado en el Arduino ahora tenemos que preparar el otro lado, en este caso, openFrameworks.
Seguir adelante y generar un nuevo espacio en blanco del proyecto. Descargar y pegar el código en las páginas pertinentes de su aplicación, main.cpp a main.cpp. Copiar y pegar siempre son más fácil al poder poco problemático si intenta moverse archivos.
El código está comentado línea por línea para que usted pueda entender exactamente lo que está sucediendo. Pero por ahora la más importante es "serial.setup ("COM3", 9600);". Esta línea forma parte de la biblioteca de ofSerial y se conecta a un puerto específico en como tasa de baudio particular. En este caso el puerto en el puerto COM3 como estoy en Windows, Mac y Linux y está más cerca "/ dev/cu. USA19H181P1.1 ". La velocidad en baudios es a que velocidad se transfieren datos a través del puerto, en este caso es 9600 bits por segundo.
El segundo más importante es "byteData = serial.readByte();". Esta es la función que lee los bytes desde el puerto conectado. Estamos entonces asignar los bytes en una variable int y también convertirlo en una cadena. Se utilizará el int de la matemáticas y la cadena puede ser usada para imprimir en pantalla que es cuando funcionó.
Main.cpp
#include "ofMain.h"#include "ofApp.h"
//======================================================================== int main( ){ //Using small window to just show serial message. ofSetupOpenGL(500,200,OF_WINDOW); // <-------- setup the GL context
// this kicks off the running of my app // can be OF_WINDOW or OF_FULLSCREEN // pass in width and height too: ofRunApp(new ofApp());
}
ofApp.cpp
#include "ofApp.h"//int for storing the byte data from Arduino. int byteData; //-------------------------------------------------------------- void ofApp::setup(){ //General setup of look of window. ofBackground(255); font.loadFont("verdana.ttf", 64); ofSetColor(0);
configuración del puerto serie. usando el puerto COM3 para Windows. También con velocidad en baudios 9600, sketch en Arduino. serial.Setup ("COM3", 9600); //serial port setup. using COM3 for Windows port. //Also using baud rate 9600, same in Arduino sketch. serial.setup("COM3", 9600); }
//-------------------------------------------------------------- void ofApp::update(){
If simple declaración para informar al usuario si Arduino está enviando mensajes serie. Si (serial.available() < 0) {mensaje = "Error de Arduino"; //Simple if statement to inform user if Arduino is sending serial messages. if (serial.available() < 0) { msg = "Arduino Error"; } else { //While statement looping through serial messages when serial is being provided. while (serial.available() > 0) {
datos byte está siendo escrito en byteData como byteData int = serial.readByte(); byteData se convierte en una cadena de dibujo más adelante. MSG = "cm:" + ofToString(byteData); //byte data is being writen into byteData as int. byteData = serial.readByte(); //byteData is converted into a string for drawing later. msg = "cm: " + ofToString(byteData); }
} }
---void ofApp::draw() {//drawing cadena versión pf byteData en de ventana font.drawString (msg, 50, 100); //printing byteData en consola. cout << byteData << endl; //-------------------------------------------------------------- void ofApp::draw(){ //drawing the string version pf byteData on oF window. font.drawString(msg, 50, 100); //printing byteData into console. cout << byteData << endl; }
ofApp.h
#pragma once#include "ofMain.h"
class ofApp : public ofBaseApp{
public: //Standard oF functions. void setup(); void update(); void draw();
void keyPressed(int key); void keyReleased(int key); void mouseMoved(int x, int y ); void mouseDragged(int x, int y, int button); void mousePressed(int x, int y, int button); void mouseReleased(int x, int y, int button); void mouseEntered(int x, int y); void mouseExited(int x, int y); void windowResized(int w, int h); void dragEvent(ofDragInfo dragInfo); void gotMessage(ofMessage msg);
//Custom variables for on screen string and font. string msg; ofTrueTypeFont font;
//New serial object. ofSerial serial; };