Fórum témák

» Több friss téma
Cikkek » HMC6352 iránytűmodul - I2C (TWI) használata AVR-rel
HMC6352 iránytűmodul - I2C (TWI) használata AVR-rel
Szerző: Fizikus, idő: Nov 27, 2010, Olvasva: 23920, Oldal olvasási idő: kb. 1 perc
Lapozás: OK   7 / 9

Irányadatok grafikus megjelenítése Processing-gel II.

Az RGBCube nevű Processing példaprogramot kicsit módosítva néhány perc alatt grafikusan is ábrázolhatjuk az iránytűmodul térbeli helyzetét (Examples/3D/Form/)

(a videóhoz kattints a képre)

  1. float xmag, ymag = 0;
  2. float newXmag, newYmag = 0;
  3. import processing.serial.*;
  4. int [] vals = new int[1];  
  5. Serial myPort;  
  6. boolean madeContact = false;
  7.  
  8. void setup()
  9. {
  10.    size(640, 400, P3D);
  11.    PFont myFont = createFont(PFont.list()[2], 14);
  12.    textFont(myFont);
  13.    myPort = new Serial(this, Serial.list()[0], 9600);
  14.    myPort.bufferUntil('\r');
  15.    strokeWeight(2);
  16.    colorMode(RGB, 1);
  17. }
  18.  
  19. void draw()
  20. {
  21.    background(0.5);
  22.  
  23.    if (madeContact == false)
  24.      {
  25.         myPort.write('m');
  26.      }
  27.  
  28. float a = 2*PI*vals[0]/3600;
  29. pushMatrix();
  30. translate(width/2, height/2, -30);
  31. rotateX(-0.4);
  32. rotateY(-a);
  33. scale(90);
  34.  
  35. beginShape(QUADS);
  36.  
  37.   fill(0, 1, 1); vertex(-1,  1,  1);
  38.   fill(1, 1, 1); vertex( 1,  1,  1);
  39.   fill(1, 0, 1); vertex( 1, -1,  1);
  40.   fill(0, 0, 1); vertex(-1, -1,  1);
  41.  
  42.   fill(1, 1, 1); vertex( 1,  1,  1);
  43.   fill(1, 1, 0); vertex( 1,  1, -1);
  44.   fill(1, 0, 0); vertex( 1, -1, -1);
  45.   fill(1, 0, 1); vertex( 1, -1,  1);
  46.  
  47.   fill(1, 1, 0); vertex( 1,  1, -1);
  48.   fill(0, 1, 0); vertex(-1,  1, -1);
  49.   fill(0, 0, 0); vertex(-1, -1, -1);
  50.   fill(1, 0, 0); vertex( 1, -1, -1);
  51.  
  52.   fill(0, 1, 0); vertex(-1,  1, -1);
  53.   fill(0, 1, 1); vertex(-1,  1,  1);
  54.   fill(0, 0, 1); vertex(-1, -1,  1);
  55.   fill(0, 0, 0); vertex(-1, -1, -1);
  56.  
  57.   fill(0, 1, 0); vertex(-1,  1, -1);
  58.   fill(1, 1, 0); vertex( 1,  1, -1);
  59.   fill(1, 1, 1); vertex( 1,  1,  1);
  60.   fill(0, 1, 1); vertex(-1,  1,  1);
  61.  
  62.   fill(0, 0, 0); vertex(-1, -1, -1);
  63.   fill(1, 0, 0); vertex( 1, -1, -1);
  64.   fill(1, 0, 1); vertex( 1, -1,  1);
  65.   fill(0, 0, 1); vertex(-1, -1,  1);
  66.     endShape();
  67.     popMatrix();
  68. }
  69.  
  70. void serialEvent(Serial myPort)
  71. {
  72.    madeContact = true;
  73.    String myString = myPort.readStringUntil('\n');
  74.    if (myString != null)
  75.       {
  76.         myString = trim(myString);
  77.         int sensors[] = int(split(myString, ','));
  78.         if (sensors.length >= 1)
  79.            {
  80.                vals[0] = sensors[0];
  81.                delay(100);
  82.                println(sensors[0]);
  83.                myPort.write('m');
  84.           }
  85.     }
  86. }


A cikk még nem ért véget, lapozz!
Következő: »»   7 / 9
Értékeléshez bejelentkezés szükséges!
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem