Étape 3: OpenFrameworks : l’ultime frontière
Maintenant vous avez votre code téléchargée sur votre Arduino, nous devons maintenant préparer l’autre côté, dans ce cas, openFrameworks.
Allez-y et générer un nouveau blanc du projet. Télécharger et collez le code dans les pages concernées de votre application, main.cpp à main.cpp. En copiant et collant sont toujours plus facile à partir de can peu gênant si vous tentez de déplacer des fichiers.
Le code est commenté par ligne pour que vous puissiez comprendre exactement ce qui se passe. Mais pour l’instant le plus important est "serial.setup (« COM3 », 9600);". Cette ligne fait partie de la bibliothèque d’ofSerial et se connecte à un port spécifique en tant que particulier en bauds. Dans ce cas, le port COM3 car je suis sur Windows, sur Mac et Linux, il est plus proche de « / dev/cu. USA19H181P1.1 ". Le baud est à quel taux les données sont transférées par le port, dans ce cas c’est 9600 bits par seconde.
Est la deuxième plus importante ligne "byteData = serial.readByte();". C’est la fonction qui lit les octets venant le port connecté. Nous assignant les octets dans une variable int et aussi les convertissant en une chaîne. L’int servira de mathématiques et de la chaîne peut être utilisée pour imprimer sur l’écran qui c’est quand a couru.
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);
configuration du port série. en utilisant le port COM3 pour Windows. Aussi, à l’aide de débit en bauds 9600, même dans l’Arduino croquis. 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(){
Simple si déclaration pour informer l’utilisateur si Arduino envoie des messages de série. Si (serial.available() < 0) {msg = « Erreur de l’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) {
octet de données est écrit dans byteData comme byteData int. = serial.readByte() ; byteData est converti en une chaîne pour le dessin plus tard. 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 la chaîne version pf byteData sur des font.drawString fenêtre. (msg, 50, 100); //printing byteData en 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; };