project 14 board

 

project 14 circuit

 

 

 

 

 

 

 

 

logo1

 

 

 

 

 

 

 

 

 

logo2

project 14 Tweak the Arduino Logo blz 145.          terug naar de inleiding

Via deze schets worden 8 bit getallen via de seriele poort naar een processing schets gestuurd
Met deze getallen kan je de achtergrondskleur van een afbeelding varieren
 
Bij mij verloopt de communicatie nogal instabiel !!
 
 

 void setup() { 
  // De seriele  communicatie initialiseren. 
  Serial.begin(9600); 
} 
 
void loop() { 
  //De spanning op de arm van de potmeter wordt door de analoge inputpin uitgelezen 
  //met analogRead omgezet in een 10 bit getal, delen door 4 omzetten in een 8 bit getal 
  //De analoge pin schrijft het 8 bit getal naar de seriele poort 
  Serial.write(analogRead(A0/4)); 
  //delay van 20 milliseconde zodat er 8 bit pulstreinjes naar de poort worden gestuurd 
  delay(20); 
} 
 
//Het getal wordt via de seriele poort in processing geimporteerd
 
De processing schets  
De processing ide downloaden
De schets maakt gebruik van de Serial lib en de classes: PImage en de java class PSurface
colorMode() zet de RGB om in HSB
 
 

 import processing.serial.*; 
 
// een object van de seriele poort aanmaken 
Serial myPort; 
 
// Het PImage object "logo" aanmaken. 
PImage logo; 
 
// De variabele waarin de achtergrondkleur van het logo komt 
// Het logo is een png plaatje dus de achtergrond is kleurloos. 
int bgcolor = 0; 
 
void setup() { 
 
  // ipv size() wordt hier surface gebruikt. 
  // Surface is een object van de java classs "PSurface". 
  // Het object niet declareren want er is maar een surface. 
  surface.setResizable(true); 
 
  // zet color in Hue/Saturation/Brightness mode 
  colorMode(HSB, 255); 
  // Hue is de kleur tussen 0 en 360. 
  // Saturation tussen 0 en 100 % mengt de kleur met wit. 
  // Brightness tussen 0 en 100 % mengt de kleur met zwart. 
  // Met het tweede argument (255) in colorMode verandert de range van H, S en B naar [0,255] 
 
  // Laad het logo  in het Pimage object.  Een ander png plaatje mag natuurlijk ook 
  logo = loadImage("http://www.arduino.cc/arduino_logo.png"); 
 
  surface.setSize(logo.width, logo.height); 
 
  // De poort staat in de arduino ide. In mijn geval is dit /dev/ttyACM0 
  myPort = new Serial(this, "/dev/ttyACM0", 9600); 
} 
 
void draw() { 
  // Als er data binnenkomt en de poort is beschikbaar 
  if (myPort.available() > 0) { 
    // lees het 8 bit getal van de arduino en stop het in bgcolor 
    bgcolor = myPort.read(); 
    // De waarde printen 
    println(bgcolor); 
  } 
 
  // In background de 8 bit waarden invoeren want 
  // H, S en B zijn in colorMode gemapt naar [0,255] 
  background(bgcolor, 255, 255); 
 
  // Het logo tekenen start in de li bovenhoek 
  image(logo, 0, 0); 
}