Difference between revisions of "Courses/Pielen met Plotters"

From Publication Station
(Created page with "Ook al worden computers steeds slimmer en sneller, creatief zijn ze nog steeds niet. Dit komt doordat ze eigenlijk alleen maar regels kunnen volgen. Maar juist doordat ze werk...")
 
Line 1: Line 1:
Ook al worden computers steeds slimmer en sneller, creatief zijn ze nog steeds niet. Dit komt doordat ze eigenlijk alleen maar regels kunnen volgen. Maar juist doordat ze werken op basis van regels kunnen ze gebruikt worden om hele mooie dingen te genereren. Een paar eenvoudige regels kunnen leiden tot de meest complexe resultaten.  
Ook al worden computers steeds slimmer en sneller, creatief zijn ze nog steeds niet. Dit komt doordat ze eigenlijk alleen maar regels kunnen volgen. Maar juist doordat ze werken op basis van regels kunnen ze gebruikt worden om hele mooie dingen te genereren. Een paar eenvoudige regels kunnen leiden tot de meest complexe resultaten.  


In deze workshop gaan we deze eigenschap van computers uitbuiten door ze te koppelen aan een plotter en ze een paar heel simpele regels te geven. Wat hieruit komt is soms onvoorspelbaar, maar altijd interessant!
Toevallig is er ook een categorie kunst die zich helemaal richt op het creëren van simpele regels die tot mooie resultaten leiden. Dit heet generatieve kunst, en het is zeker de moeite waard om er even wat over te leren. [https://richardrichardrichard.wordpress.com/2012/07/31/introduction-to-generative-art/ Hier] en [http://manning.com/pearson/GenArt-Sample-Intro.pdf hier] vind je een goede omschrijving.
 
Nu je wat inspiratie hebt opgedaan kun je gaan pielen met de plotter. Dit gaan we doen vanuit processing, dus [https://processing.org/download/ download] dat eerst. Het is slim om er even kennis mee te maken, dat kun je [https://processing.org/tutorials/ hier] doen. De minimale code die je nodig hebt om de plotter aan te sturen is als volgt:
 
<nowiki>
import processing.serial.*; // Communicating With the plotter happens via the serial port, so you have to import the libraries first
Serial myPort;  // Create object from Serial class
 
void setup(){
  size(200,200); 
 
  println(Serial.list()); // Output a list of available serial ports
  try{
      String portName = Serial.list()[0]; // Instead of the zero, use the right number based on the list mentioned above
      myPort = new Serial(this, portName, 9600);
      myPort.write("IN"); // Tell the plotter that communication will commence
 
      plotterLine (0,0,700,100);
  }
  catch ( Exception e){
      println("Error"+ e);
  }
}
 
void plotterLine(float x1, float y1, float x2, float y2) {
  println("plotterline");
 
    if ( portAvailable == 1 ){
  myPort.write("PU");
  myPort.write("PA" + str(x1) + "," + str(y1) +";");
  // myPort.write("CI150;");
  // myPort.write("CI250;");
  myPort.write("PD");
  myPort.write("PA" + str(x2) + "," + str(y2) +";");
  myPort.write("PU");
  delay(100);
    }
}
</nowiki>

Revision as of 10:07, 19 February 2015

Ook al worden computers steeds slimmer en sneller, creatief zijn ze nog steeds niet. Dit komt doordat ze eigenlijk alleen maar regels kunnen volgen. Maar juist doordat ze werken op basis van regels kunnen ze gebruikt worden om hele mooie dingen te genereren. Een paar eenvoudige regels kunnen leiden tot de meest complexe resultaten.

Toevallig is er ook een categorie kunst die zich helemaal richt op het creëren van simpele regels die tot mooie resultaten leiden. Dit heet generatieve kunst, en het is zeker de moeite waard om er even wat over te leren. Hier en hier vind je een goede omschrijving.

Nu je wat inspiratie hebt opgedaan kun je gaan pielen met de plotter. Dit gaan we doen vanuit processing, dus download dat eerst. Het is slim om er even kennis mee te maken, dat kun je hier doen. De minimale code die je nodig hebt om de plotter aan te sturen is als volgt:

import processing.serial.*; // Communicating With the plotter happens via the serial port, so you have to import the libraries first
Serial myPort;  // Create object from Serial class

void setup(){
  size(200,200);  
  
   println(Serial.list()); // Output a list of available serial ports
   try{
      String portName = Serial.list()[0]; // Instead of the zero, use the right number based on the list mentioned above
      myPort = new Serial(this, portName, 9600); 
      myPort.write("IN"); // Tell the plotter that communication will commence

      plotterLine (0,0,700,100);
   }
   catch ( Exception e){
      println("Error"+ e);
   }
} 

void plotterLine(float x1, float y1, float x2, float y2) {
  println("plotterline");
  
    if ( portAvailable == 1 ){
   myPort.write("PU");
   myPort.write("PA" + str(x1) + "," + str(y1) +";");
   // myPort.write("CI150;");
  // myPort.write("CI250;");
   myPort.write("PD");
   myPort.write("PA" + str(x2) + "," + str(y2) +";");
   myPort.write("PU");
   delay(100);
    }
}