Stap 3: OpenFrameworks: The Final Frontier
Nu hebt u uw code geüpload naar je Arduino die we nu moeten voorbereiden van de andere kant, in dit geval openFrameworks.
Ga je gang en het genereren van een nieuw leeg project. Download en plak de code die is gekoppeld naar de desbetreffende pagina's van uw app, main.cpp tot main.cpp. Kopiëren en plakken is altijd makkelijker vanaf kan beetje lastig als u probeert om bestanden te verplaatsen rond.
De code is per regel toegelicht, zodat u kunt begrijpen wat er precies gebeurt. Maar voor nu de belangrijkste regel is "serial.setup ("COM3", 9600);". Deze regel is onderdeel van de ofSerial-bibliotheek en verbinding maakt met een specifieke poort op als bepaalde baud-rate. In dit geval de poort in COM3 zoals ik op Windows ben, is Mac en Linux het dichter bij "/ dev/cu. USA19H181P1.1 ". De baudrate is met welke snelheid gegevens wordt overgedragen via de poort, in dit geval zijn 9600 bits per seconde.
De tweede belangrijkste regel is "byteData = serial.readByte();". Dit is de functie die leest de bytes vanuit de aangesloten poort. Wij zijn vervolgens de bytes in een int variabele toe te wijzen en ook converteren naar een tekenreeks. Int. zal worden gebruikt uit de wiskunde en de tekenreeks kan worden gebruikt om af te drukken op het scherm die het is wanneer liep.
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);
de installatie van de seriële poort. via COM3 voor Windows-poort. Ook met behulp van 9600 baud-rate, schets hetzelfde in de 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(){
Eenvoudig als verklaring om gebruiker te informeren als Arduino seriële berichten verzendt. Als (serial.available() < 0) {msg = "Arduino fout"; //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) {
bytegegevens wordt geschreven in byteData als int. byteData = serial.readByte(); byteData wordt omgezet in een tekenreeks voor de tekening later. 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 de tekenreeks versie pf byteData op van venster. font.drawString (msg, 50, 100); //printing byteData in console. 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; };