Arduino Digital kompass projekt (3 / 3 steg)
Steg 3: Bearbetning IDE källkoden
Efter vi har laddat upp den tidigare Arduino skiss vi måste ta emot data till den bearbetning IDE och dra den digitala kompassen. Kompassen består av en bakgrundsbild, fast bilden av pilen och en roterande bild av kroppen av kompassen. Så används värdena för eart magnetfältet med Arduino att rotera kompassen.
Här är källkoden för bearbetning IDE:
< p > / * Arduino kompass < br > *
* av Dejan Nedelkovski,
* < en href = "http://www.HowToMechatronics.com" > www.HowToMechatronics.com
< /a >
*
*/
import processing.serial.*;
import java.awt.event.KeyEvent;
importera java.io.IOException; < /p >< p > följetong myPort;
PImage imgCompass;
PImage imgCompassArrow;
PImage bakgrund; < /p >< p > sträng data = "";
float rubrik; < /p >< p > void setup() {
storlek (1920, 1080, P3D);
Smooth();
imgCompass = loadImage("Compass.png");
imgCompassArrow = loadImage("CompassArrow.png");
bakgrund = loadImage("Background.png");
myPort = ny följetong (här, "COM4", 115200); startar den seriell kommunikationen
myPort.bufferUntil('\n');
} < /p >< p > void draw() {
bild (bakgrund, 0, 0); Läser in bakgrundsbilden
pushMatrix();
Översätt (bredd/2, höjd/2, 0); Översätter det koordinerade systemet in i mitten av skärmen, så att rotation hända mitt i centrum
rotateZ(radians(-heading)); Roterar kompassen runt Z - axeln
bild (imgCompass,-960,-540); Laddar bilden kompass och som det koordinerade systemet flyttas måste vi behöver ställa in bilden på-960 x, - 540y (halva skärmstorlek)
popMatrix(); Ger koordinatsystem är tillbaka till den ursprungliga positionen 0,0,0
bild (imgCompassArrow, 0, 0); Laddar CompassArrow bilden som inte påverkas av funktionen rotateZ() på grund av popMatrix() funktion
textSize(30);
text ("rubrik:" + rubrik, 40, 40); Skriver ut värdet på rubriken på skärmen < /p >< p > delay(40);
} < /p >< p > / / startar data läses från serieporten
void serialEvent (Serial myPort) {
data = myPort.readStringUntil('\n'); / / läser in data från serieporten och placerar det i strängen variabel "data".
rubrik = float(data); Täcker den strängvärdet i flytvärdet
} < /p >
Jag hoppas du kommer att gilla detta projekt. Om det är så kan du också besöka min hemsida för mer cool projekt.