Ultrasonic sensor i openFrameworks använder Arduino (3 / 4 steg)
Steg 3: OpenFrameworks: den yttersta gränsen
Nu har du din kod laddade upp på din Arduino nu måste vi förbereda den andra sidan, i det här fallet openFrameworks.
Gå vidare och skapa en ny tom av projektet. Hämta och klistra in den kod som hör till de relevanta sidorna i din app, main.cpp till main.cpp. Kopiera och klistra in är alltid lättare som kan lite besvärlig om du försöker flytta filer.
Koden är kommenterade rad för rad så att du kan förstå exakt vad som händer. Men nu är den viktigaste linjen "serial.setup ("COM3", 9600);". Denna linje är en del av ofSerial biblioteket och ansluter till en viss port vid som särskilt överföringshastigheten. I detta fall hamnen i COM3 som jag på Windows, är Mac och Linux det närmare till "/ dev/cu. USA19H181P1.1 ". Baud är vilken som data skickas via porten, i detta fall är det 9600 bitar per sekund.
Den näst viktigaste raden "byteData = serial.readByte();". Detta är den funktion som läser byte från anslutna hamnen. Vi är sedan tilldela byte till en int variabel och även konvertera den till en sträng. Int kommer att användas från matematik och strängen kan användas för att skriva ut på skärmen som det är när sprang.
Main.cpp
#include "ofMain.h"
#include "ofApp.h"
//========================================================================
int main () {
Med litet fönster att bara Visa seriellt meddelande.
ofSetupOpenGL(500,200,OF_WINDOW); <---setup GL samband
Detta drar igång driften av min app
kan vara OF_WINDOW eller OF_FULLSCREEN
passera i bredd och höjd för:
ofRunApp (nya ofApp());
}
ofApp.cpp
#include "ofApp.h"
int för att lagra byte data från Arduino.
int byteData;
//--------------------------------------------------------------
void ofApp::setup() {
Allmänna inställningar av utseendet på fönstret.
ofBackground(255);
font.loadFont ("verdana.ttf", 64);
ofSetColor(0);
seriell port setup. med hjälp av COM3 för Windows port.
Även använder överföringshastighet 9600, skiss samma i Arduino.
Serial.Setup ("COM3", 9600);
}
//--------------------------------------------------------------
void ofApp::update() {
Enkelt om uttalande att informera användaren om Arduino skickar seriell meddelanden.
om (serial.available() < 0) {
MSG = "Arduino fel";
}
annat {
Medan uttalande ges loopa igenom seriell meddelanden när seriell.
samtidigt (serial.available() > 0) {
byte data som skrivits in i byteData som int.
byteData = serial.readByte();
byteData konverteras till en sträng för att rita senare.
MSG = "cm:" + ofToString(byteData);
}
}
}
//--------------------------------------------------------------
void ofApp::draw() {
Rita sträng version pf byteData fönstret.
font.drawString (msg, 50, 100);
skriva ut byteData till konsolen.
Cout << byteData << oä;
}
ofApp.h
#pragma en gång
#include "ofMain.h"
klass ofApp: offentliga ofBaseApp {
offentlig:
Standard funktioner.
void setup();
void update();
void draw();
void keyPressed (int nyckel);
void keyReleased (int nyckel);
void mouseMoved (int x, int y);
void mouseDragged (int x, int y, int knappen);
void mousePressed (int x, int y, int knappen);
void mouseReleased (int x, int y, int knappen);
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);
Anpassade variabler för på skärmen strängen och teckensnitt.
sträng msg;
ofTrueTypeFont teckensnitt;
Nya seriella objekt.
ofSerial seriell;
};