INKY

s373.net/x 8bit graffiti polar plotter

INKY won an award at Lisbon Maker Faire 2015! http://makerfairelisbon.com/en/2015/08/13/inky.html INKY media from Lisbon Maker Faire 2015 http://s373.net/continuum/2015/09/21/inky-makerfaire-lx/ covered in Makezine: "I left my heart in... Lisbon" by Sabrina Merlo http://makezine.com/2015/09/23/i-left-my-heart-in-lisbon/
INKY is s373.net/x's 8bit graffiti polar plotter. INKY is a small painting bot capable of throwing ink / watery liquids. It's controlled manually, with a joystick, or with gcode generated from inkscape, or programmatically, with generative algorithms, etc. INKY is developed in Portugal by S373.NET/X ART CODEX STUDIOS. Inky's roots lay in 32-bit difference machine, an installation developped by André Sier in 2009, where computer vision generated movement instructs inky where to draw programatically. video from 32-bit difference machine at 64-bits solo exhibition, Who Gallery, Lisbon, 2011
Firmware and hardware upgraded, with example programs capable of generating manual inky control, or gcode inky interpreters. video from DMZ at Esculturas Generativas & DMZ, Festival Cidade Preocupada, Montemor-O-Novo, 2015
Inky has many components, from firmware to hardware, 3d printed parts, servos, water pumps, water holder, etc. Inky has been mainly developped by s373.net/x art codex studios, and parts of the project are slowly being released open source, as you may find below.

Inky s373.net/x's 8bit graffiti polar plotter

hardware, programming, software, 3d parts : André Sier Thanks Tiago Rorke (inky 3d box 3rd version - DMZ). INKY has already helped to create the following electronic works by artist André Sier: > "32-bit Difference Machine" (2009-10) ; > "Anthemusa" (2014-15) ; > "DMZ" (2015) ; > "Portrait Machine" (2015) ;´

Inky Example Schematic (breadboard view)

/* Copyright s373.net/x art codex studios Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */

Inky Firmware 0.221

// inky firmware 0221 // protocol: xbyte ybyte powerbyte comma // (c) s373.net/x art codex studios, 2009,2010 // http://s373.net/x /* Copyright s373.net/x art codex studios Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ #include Servo.h int vals[4] = { 0,0,0, 44 }; int oldvals[4] = { 0,0,0, 44 }; int head = 0; Servo xservo, yservo; #define XSERVOPIN 10 #define YSERVOPIN 9 #define POWERHIGH 5 void setup() { Serial.begin(57600); pinMode(13,OUTPUT); pinMode(POWERHIGH,OUTPUT); xservo.attach(XSERVOPIN); yservo.attach(YSERVOPIN); zero(); establishContact(); } void loop(){ delay(33); boolean readbyte = false; boolean endmessage = false; while (Serial.available() > 0) { int incoming = Serial.read(); vals[head] = incoming; head++; if(head>3){ head = 0; } readbyte = true; if(vals[3]==44){ endmessage = true; vals[3]=0;//-1; head = 0; Serial.flush(); } } head = 0; if(readbyte&&endmessage){ Serial.print(vals[0]); Serial.print(" "); Serial.print(vals[1]); Serial.print(" "); Serial.println(vals[2]); if(oldvals[0]!=vals[0]){ oldvals[0]=vals[0]; writeXservo(vals[0]); } if(oldvals[1]!=vals[1]){ oldvals[1]=vals[1]; writeYservo(vals[1]); } if(oldvals[2]!=vals[2]){ oldvals[2]=vals[2]; writePower(vals[2]); } } } void writePower(int val){ analogWrite(POWERHIGH, val); } void writeXservo(int val){ xservo.write(val); delay(15); } void writeYservo(int val){ yservo.write(val); delay(15); } //int toInt1000(byte* b){ // int v = 0; // v += ((b[1]-48)*1000); // v += ((b[2]-48)*100); // v += ((b[3]-48)*10); // v += (b[4]-48); // return v; //} void establishContact() { Serial.println("Polar Plotter Firmware 0.221"); Serial.println("Andre Sier, 2010, 2014"); while (Serial.available() <= 0) { Serial.print('A', BYTE); // send a capital A delay(300); } while (Serial.available() > 0) { Serial.print(Serial.read()); } } void zero(){ writeXservo(20); writeYservo(50); writePower(0); }

INKY <-> Processing Example





-- http://andre-sier.com (c) s373.net/x art codex studios 2009, 2015