Home

Exposição artística multitemática

Pulchritudo Florum / Tinta Espontânea II / Tech Art

Bem-vindos à Web App da minha próxima exposição!

Se adicionarem a app ao ecrã principal do vosso do smartphone ela irá ficar uma Progressive Web App! E terá uma melhor experiência de navegação!

Se já adicionaram já estão na PWA!

Muito Obrigado!

Local da Exposição: Ainda por definir

Tema 1

"Pulchritudo Florum"

Descrição do Tema:

Para esta exposição tentei criar uma série de quadros em que exploro a beleza Floral.

Espero que gostem! Obrigado!

Museu VR

Tema 2

"Tinta Espontânea II"

Descrição do Tema:

Para esta exposição tentei criar uma série de quadros em que a cor é o mais importante como se de uma energia se tratasse e não algo material.

Não são pinturas figurativas.

Tento apenas criar uma energia positiva através da cor.

Espero que gostem! Obrigado!

Tema 3

"Tech Art"

Descrição do Tema:

Para esta exposição tentei criar 5 instalações de Tech Art interativas com movimento através de sensores, luz e som.

Espero que gostem! Obrigado!

"Light Matrix"

Arduino Code:

#include <FastLED.h>
#include <Adafruit_TiCoServo.h>
	
Adafruit_TiCoServo myservo;
Adafruit_TiCoServo myservo2;
Adafruit_TiCoServo myservo3;
Adafruit_TiCoServo myservo4;
Adafruit_TiCoServo myservo5;
Adafruit_TiCoServo myservo6;
Adafruit_TiCoServo myservo7;
Adafruit_TiCoServo myservo8;
Adafruit_TiCoServo myservo9;
	
#define NUM_LEDS 256
CRGB leds[NUM_LEDS];
	
int sensorPin = A7;
int sensorPin2 = A8;
int sensorPin3 = A9;
int sensorPin4 = A10;
int sensorPin5 = A11;
int sensorPin6 = A12;
int sensorPin7 = A13;
int sensorPin8 = A14;
int sensorPin9 = A15;
	
int value = 0;
int value2 = 0;
int value3 = 0;
int value4 = 0;
int value5 = 0;
int value6 = 0;
int value7 = 0;
int value8 = 0;
int value9 = 0;
	
int rgb_val = 0;
	
int servo_val = 90;
int servo_val2 = 90;
int servo_val3 = 90;
int servo_val4 = 90;
int servo_val5 = 90;
int servo_val6 = 90;
int servo_val7 = 90;
int servo_val8 = 90;
int servo_val9 = 90;
	
void setup() {
	  
// tell FastLED there's 60 NEOPIXEL leds on pin 2
FastLED.addLeds<NEOPIXEL, 4>(leds, NUM_LEDS);
	
// tell FastLED there's 60 NEOPIXEL leds on pin 3
//FastLED.addLeds<NEOPIXEL, 3>(leds[1], NUM_LEDS_PER_STRIP);
	
// tell FastLED there's 60 NEOPIXEL leds on pin 4
//FastLED.addLeds<NEOPIXEL, 4>(leds[2], NUM_LEDS_PER_STRIP);
	  
//Serial.begin(9650);
myservo.attach(2);
myservo2.attach(3);
myservo3.attach(5);
myservo4.attach(6);
myservo5.attach(7);
myservo6.attach(8);
myservo7.attach(11);
myservo8.attach(12);
myservo9.attach(13);
	
}
	
void loop() {
	
value = analogRead(sensorPin);
value2 = analogRead(sensorPin2);
value3 = analogRead(sensorPin3);
value4 = analogRead(sensorPin4);
value5 = analogRead(sensorPin5);
value6 = analogRead(sensorPin6);
value7 = analogRead(sensorPin7);
value8 = analogRead(sensorPin8);
value9 = analogRead(sensorPin9);
	  
servo_val = map(value, 450, 750, 90, 180);
servo_val2 = map(value2, 450, 750, 90, 195);
servo_val3 = map(value3, 450, 750, 90, 180);
servo_val4 = map(value4, 450, 750, 90, 180);
servo_val5 = map(value5, 450, 750, 90, 180);
servo_val6 = map(value6, 450, 750, 90, 180);
servo_val7 = map(value7, 450, 750, 90, 180);
servo_val8 = map(value8, 450, 750, 90, 180);
servo_val9 = map(value9, 450, 750, 90, 180);
	  
//rgb_val = map(value, 450, 750, 0, 255);
	  
myservo.write(servo_val);
myservo2.write(servo_val2);
myservo3.write(servo_val3);
myservo4.write(servo_val4);
myservo5.write(servo_val5); 
myservo6.write(servo_val6);
myservo7.write(servo_val7);
myservo8.write(servo_val8);
myservo9.write(servo_val9);
	
if (value > 600)
{
leds[29].setRGB( 255, 0, 0); FastLED.show();
leds[30].setRGB( 255, 0, 0); FastLED.show();
	
leds[33].setRGB( 255, 0, 0); FastLED.show();
leds[34].setRGB( 255, 0, 0); FastLED.show();
}
else
{
leds[29].setRGB(4, 4, 4); FastLED.show();
leds[30].setRGB(4, 4, 4); FastLED.show();
	
leds[33].setRGB(4, 4, 4); FastLED.show();
leds[34].setRGB(4, 4, 4); FastLED.show();
}
	
if (value2 > 500)
{
leds[125].setRGB( 0, 255, 0); FastLED.show();
leds[126].setRGB( 0, 255, 0); FastLED.show();
	  
leds[129].setRGB( 0, 255, 0); FastLED.show();
leds[130].setRGB( 0, 255, 0); FastLED.show();
}
else
{
leds[125].setRGB(4, 4, 4); FastLED.show();
leds[126].setRGB(4, 4, 4); FastLED.show();
	
leds[129].setRGB(4, 4, 4); FastLED.show();
leds[130].setRGB(4, 4, 4); FastLED.show();
}

if (value3 > 600)
{
	 
leds[221].setRGB( 0, 0, 255); FastLED.show();
leds[222].setRGB( 0, 0, 255); FastLED.show();
	
leds[225].setRGB( 0, 0, 255); FastLED.show();
leds[226].setRGB( 0, 0, 255); FastLED.show();                  
}
else
{
leds[221].setRGB(4, 4, 4); FastLED.show();
leds[222].setRGB(4, 4, 4); FastLED.show();
	
leds[225].setRGB(4, 4, 4); FastLED.show();
leds[226].setRGB(4, 4, 4); FastLED.show();
}
	
if (value4 > 600)
{
leds[215].setRGB( 25, 25, 255); FastLED.show();
leds[216].setRGB( 25, 25, 255); FastLED.show();
	
leds[231].setRGB( 25, 25, 255); FastLED.show();
leds[232].setRGB( 25, 25, 255); FastLED.show();
}
else
{
leds[215].setRGB(4, 4, 4); FastLED.show();
leds[216].setRGB(4, 4, 4); FastLED.show();
	
leds[231].setRGB(4, 4, 4); FastLED.show();
leds[232].setRGB(4, 4, 4); FastLED.show();
}
	
if (value5 > 600)
{
leds[209].setRGB(100, 255, 100); FastLED.show();
leds[210].setRGB(100, 255, 100); FastLED.show();
	
leds[237].setRGB(100, 255, 100); FastLED.show();
leds[238].setRGB(100, 255, 100); FastLED.show();
}
else
{
leds[209].setRGB(4, 4, 4); FastLED.show();
leds[210].setRGB(4, 4, 4); FastLED.show();
		 
leds[237].setRGB(4, 4, 4); FastLED.show();
leds[238].setRGB(4, 4, 4); FastLED.show();
}
	
if (value6 > 600)
{
leds[113].setRGB(40, 100, 40); FastLED.show();
leds[114].setRGB(40, 100, 40); FastLED.show();
		
leds[141].setRGB(40, 100, 40); FastLED.show();
leds[142].setRGB(40, 100, 40); FastLED.show();  
}
else
{
leds[113].setRGB(4, 4, 4); FastLED.show();
leds[114].setRGB(4, 4, 4); FastLED.show();
		
leds[141].setRGB(4, 4, 4); FastLED.show();
leds[142].setRGB(4, 4, 4); FastLED.show();
}
	
if (value7 > 600)
{
leds[17].setRGB(255, 25, 25); FastLED.show();
leds[18].setRGB(255, 25, 25); FastLED.show();
		
leds[45].setRGB(255, 25, 25); FastLED.show();
leds[46].setRGB(255, 25, 25); FastLED.show(); 
}
else
{
leds[17].setRGB(4, 4, 4); FastLED.show();
leds[18].setRGB(4, 4, 4); FastLED.show();
	  
leds[45].setRGB(4, 4, 4); FastLED.show();
leds[46].setRGB(4, 4, 4); FastLED.show();
}
	
if (value8 > 600)
{
leds[23].setRGB(255, 25, 25); FastLED.show();
leds[24].setRGB(255, 25, 25); FastLED.show();
		  
leds[39].setRGB(255, 25, 25); FastLED.show();
leds[40].setRGB(255, 25, 25); FastLED.show();
}
else
{
leds[23].setRGB(4, 4, 4); FastLED.show();
leds[24].setRGB(4, 4, 4); FastLED.show();
		
leds[39].setRGB(4, 4, 4); FastLED.show();
leds[40].setRGB(4, 4, 4); FastLED.show();
}
	
if (value9 > 600)
{
leds[119].setRGB(25, 255, 25); FastLED.show();
leds[120].setRGB(25, 255, 25); FastLED.show();
	
leds[135].setRGB(25, 255, 25); FastLED.show();
leds[136].setRGB(25, 255, 25); FastLED.show();
}
else
{
leds[119].setRGB(4, 4, 4); FastLED.show();
leds[120].setRGB(4, 4, 4); FastLED.show();
	
leds[135].setRGB(4, 4, 4); FastLED.show();
leds[136].setRGB(4, 4, 4); FastLED.show();
}
}

"Light Handle"

Arduino Code 2:

#include <FastLED.h>

#define NUM_LEDS 64
CRGB leds[NUM_LEDS];
						
// defines pins numbers
const int trigPin = 9;
const int echoPin = 10;
// defines variables
long duration;
int distance;
int color = 255;
int color2 = 0;
int sound = 0;
void setup() {
FastLED.addLeds<NEOPIXEL, 8>;(leds, NUM_LEDS);
pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
pinMode(echoPin, INPUT); // Sets the echoPin as an Input
Serial.begin(9600); // Starts the serial communication
}
void loop() 
{
// Clears the trigPin
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
// Sets the trigPin on HIGH state for 10 micro seconds
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
// Reads the echoPin, returns the sound wave travel time in microseconds
duration = pulseIn(echoPin, HIGH);
// Calculating the distance
distance = duration * 0.034 / 2;
// Prints the distance on the Serial Monitor
Serial.print("Distance: ");
Serial.println(distance);
						
color = map(distance, 13, 0, 255, 0);
color2 = map(distance, 13, 0, 0, 255);
sound = map(distance, 13, 0, 200, 5000);
						
tone(11, sound, 100);
						
for(int i=0; i < 64; i++)
{    			
leds[i].setRGB( color, color2, 0); FastLED.show();  
}
							  
}

"magicMatrix[x][y]!🧡"

Arduino Code 3:

#include <FastLED.h>

#define NUM_LEDS 576
        
#define DATA_PIN 4
        
CRGB leds[NUM_LEDS];
        
const int trigPin = 19;
const int echoPin = 18;
        
long randNumber;
long randNumber2;
long randNumber3;
long randNumber4;
long randNumber5;
long randNumber6;
long randNumber7;
long randNumber8;
long randNumber9;
long randNumber10;
long randNumber11;
long randNumber12;
long randNumber13;
long randNumber14;
long randNumber15;
long randNumber16;
long randNumber17;
long randNumber18;
long randNumber19;
long randNumber20;
long randNumber21;
long randNumber22;
long randNumber23;
long randNumber24;
long duration;
int distance;
int color = 255;
int color2 = 0;
int sound = 0;

void setup() {

    randomSeed(color2);
    pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
    pinMode(echoPin, INPUT); // Sets the echoPin as an Input
    pinMode(trigPin2, OUTPUT); // Sets the trigPin as an Output
    pinMode(echoPin2, INPUT); // Sets the echoPin as an Input
    pinMode(trigPin3, OUTPUT); // Sets the trigPin as an Output
    pinMode(echoPin3, INPUT); // Sets the echoPin as an Input

    FastLED.addLeds<NEOPIXEL, DATA_PIN>(leds, NUM_LEDS);  // GRB ordering is assumed
    Serial.begin(115200); // Starts the serial communication
}

void loop() { 
  color = map(distance, 18, 3, 255, 0);
  color2 = map(distance, 18, 3, 0, 255);
  sound = map(distance, 16, 1, 500, 2000);
  randNumber = random(color);
  randNumber2 = random(color);
  randNumber3 = random(color);
  randNumber4 = random(color);
  randNumber5 = random(color);
  randNumber6 = random(color);
  randNumber7= random(color);
  randNumber8 = random(color);
  randNumber9 = random(color);
  randNumber10 = random(color);
  randNumber11 = random(color);
  randNumber12 = random(color);
  randNumber13 = random(color);
  randNumber14 = random(color);
  randNumber15 = random(color);
  randNumber16 = random(color);
  randNumber17 = random(color);
  randNumber18 = random(color);
  randNumber19 = random(color);
  randNumber20 = random(color);
  randNumber21 = random(color);
  randNumber22 = random(color);
  randNumber23 = random(color);
  randNumber24 = random(color);

  sensor();
  toneMatrix();
  ledsMatrix();
}

void toneMatrix() {
  tone(16, sound, 10);
  delay(10);
}

void ledsMatrix(){
  for(int i=7; i < 15; i++)//1
  {    
    leds[i].setRGB( color, color2, 0);
    FastLED.show();
  }

  for(int i=71; i < 79; i++)//2
  {    
    leds[i].setRGB( randNumber, randNumber2, randNumber3);
    FastLED.show();
  }

  for(int i=135; i < 143; i++)//3
  {    
    leds[i].setRGB( randNumber4, randNumber5, randNumber6);
    FastLED.show();
  }

  for(int i=199; i < 207; i++)//4
  {    
    leds[i].setRGB( randNumber7, randNumber8, randNumber9);
    FastLED.show();
  }
  for(int i=263; i < 271; i++)//5
  {    
    leds[i].setRGB( randNumber10, randNumber11, randNumber12);
    FastLED.show();
  }
  for(int i=327; i < 335; i++)//6
  {    
    leds[i].setRGB( randNumber13, randNumber14, randNumber15);
    FastLED.show();
  }
  for(int i=391; i < 399; i++)//7
  {    
    leds[i].setRGB( randNumber16, randNumber17, randNumber18);
    FastLED.show();
  }
  for(int i=455; i < 503; i++)//8
  {    
    leds[i].setRGB( randNumber19, randNumber20, randNumber21);
    FastLED.show();
  }
  for(int i=519; i < 627; i++)//9
  {
    leds[i].setRGB( randNumber22, randNumber23, randNumber24);
    FastLED.show();
  }
}
void sensor() {
  // Clears the trigPin
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  // Sets the trigPin on HIGH state for 10 micro seconds
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  // Reads the echoPin, returns the sound wave travel time in microseconds
  duration = pulseIn(echoPin, HIGH);
  // Calculating the distance
  distance = duration * 0.034 / 2;
  // Prints the distance on the Serial Monitor
  //Serial.print("Distance: ");
  //Serial.println(distance);
}

"Sky Rails Matrix"

Arduino Code 4:

#define MOTOR_SPEED 100

//sensor pins
#define trigPin A1 //analog input 1
#define echoPin A2 //analog input 2
#define trigPin2 A3 //analog input 3
#define echoPin2 A4 //analog input 4

const int PIN_RED   = 9;
const int PIN_GREEN = 12;
const int PIN_BLUE  = 13;
const int buzzer = A0;

int RMotor_1 = 2;
int RMotor_2 = 3;
int LMotor_1 = 4;
int LMotor_2 = 5;
int REnable = 11;
int LEnable = 10;
int motor_speed;
long duration;
int distance;
long duration2;
int distance2;
bool direction = true;

void setup() {
  Serial.begin(9600);
  pinMode(buzzer, OUTPUT);
  pinMode(PIN_RED,   OUTPUT);
  pinMode(PIN_GREEN, OUTPUT);
  pinMode(PIN_BLUE,  OUTPUT);
  delay(1000);
  pinMode(RMotor_1, OUTPUT);
  pinMode(RMotor_2, OUTPUT);
  pinMode(LMotor_1, OUTPUT);
  pinMode(LMotor_2, OUTPUT);                          
  pinMode(REnable, OUTPUT);
  pinMode(LEnable, OUTPUT);
  
  pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
  pinMode(echoPin, INPUT); // Sets the echoPin as an Input
  pinMode(trigPin2, OUTPUT); // Sets the trigPin as an Output
  pinMode(echoPin2, INPUT); // Sets the echoPin as an Input

  pinMode(buzzer, OUTPUT); 

  analogWrite(10, 100);
  analogWrite(11, 100);

}

void loop() {
  
  while (direction == true) {
    sensor();
    sensor2();
    Serial.println("F");
    Serial.print("Distance: ");
    Serial.println(distance);
    Serial.print("Distance 2 loop 1: ");
    Serial.println(distance2);
    move_forward();
    randomTones_high();
    analogWrite(PIN_RED,   0);
    analogWrite(PIN_GREEN, 255);
    analogWrite(PIN_BLUE, 0);
    if (distance < 7){
    direction = false;
    }
  }
  while (direction == false) {
    sensor();
    sensor2();
    Serial.println("B");
    Serial.print("Distance: ");
    Serial.println(distance);
    Serial.print("Distance2 loop 2: ");
    Serial.println(distance2);
    move_backward();
    randomTones_low();
    analogWrite(PIN_RED,   255);
    analogWrite(PIN_GREEN, 0);
    analogWrite(PIN_BLUE,  0);
    if (distance2 < 7){
    direction = true;
    }
  }
}
void move_backward() {
  digitalWrite(RMotor_1, HIGH);
  digitalWrite(RMotor_2, LOW);
  digitalWrite(LMotor_1, LOW);
  digitalWrite(LMotor_2, HIGH);
}

void move_forward() {
  digitalWrite(RMotor_1, LOW);
  digitalWrite(RMotor_2, HIGH);
  digitalWrite(LMotor_1, HIGH);
  digitalWrite(LMotor_2, LOW);
}
void turn_right() {
  digitalWrite(RMotor_1, HIGH);
  digitalWrite(RMotor_2, LOW);
  digitalWrite(LMotor_1, HIGH);
  digitalWrite(LMotor_2, LOW);
}
void turn_left() {
  digitalWrite(RMotor_1, LOW);
  digitalWrite(RMotor_2, HIGH);
  digitalWrite(LMotor_1, LOW);
  digitalWrite(LMotor_2, HIGH);
}
void move_stop() {
  digitalWrite(RMotor_1, LOW);
  digitalWrite(RMotor_2, LOW);
  digitalWrite(LMotor_1, LOW);
  digitalWrite(LMotor_2, LOW);
}
void randomTones_high()
{
  int randomBuzzer = random (800, 1000);
4  int randomBuzzerTime = random (1, 1000);
  tone(buzzer, randomBuzzer, randomBuzzerTime);
  delay(100);  // delay in between reads for stability
}
void randomTones_low()
{
  int randomBuzzer = random (20, 200);
  int randomBuzzerTime = random (1, 800);
  tone(buzzer, randomBuzzer, randomBuzzerTime);
  delay(100);  // delay in between reads for stability
}
void sensor() {
  // Clears the trigPin
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
  // Sets the trigPin on HIGH state for 10 micro seconds
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
  // Reads the echoPin, returns the sound wave travel time in microseconds
  duration = pulseIn(echoPin, HIGH);
  // Calculating the distance
  distance = duration * 0.034 / 2;
  // Prints the distance on the Serial Monitor
  // Serial.print("Distance: ");
  // Serial.println(distance);
}
void sensor2() {
  // Clears the trigPin
  digitalWrite(trigPin2, LOW);
  delayMicroseconds(2);
  // Sets the trigPin on HIGH state for 10 micro seconds
  digitalWrite(trigPin2, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin2, LOW);
  // Reads the echoPin, returns the sound wave travel time in microseconds
  duration2 = pulseIn(echoPin2, HIGH);
  // Calculating the distance
  distance2 = duration2 * 0.034 / 2;
  // Prints the distance on the Serial Monitor
  // Serial.print("Distance: ");
  // Serial.println(distance);
}

"CW_234094"

Arduino Code 5:

#include <Servo.h>          //Servo motor library. This is standard library
#include <NewPing.h>        //Ultrasonic sensor function library. You must install this library
//sensor pins
#define trig_pin A0 //analog input 1
#define echo_pin A1 //analog input 2
#define maximum_distance 250
boolean goesForward = false;
int distance = 150;
int pos;
NewPing sonar(trig_pin, echo_pin, maximum_distance); //sensor function
Servo myservo; //our servo name
Servo myservo2; //our servo name
Servo myservo3; //our servo name
Servo myservo4; //our servo name
Servo myservo5; //our servo name
Servo myservo6; //our servo name
Servo myservo7; //our servo name
Servo myservo8; //our servo name
Servo myservo9; //our servo name
void setup(){
Serial.begin(9600);
myservo.attach(2);
// myservo2.attach(3);
// myservo3.attach(4);
//left
myservo4.attach(5);
myservo4.write(45);
myservo5.attach(6);
myservo5.write(50);
myservo6.attach(7);
myservo6.write(180);
//right
myservo7.attach(8);
myservo7.write(120);
myservo8.attach(9);
myservo8.write(160);
myservo9.attach(10);
myservo9.write(0);
delay(2000);
distance = readPing();
delay(100);
distance = readPing();
delay(100);
distance = readPing();
delay(100);
distance = readPing();
delay(100);
}
void loop(){
Serial.println(distance);
int distanceRight = 0;
int distanceLeft = 0;
delay(50);
if (distance <= 20){
moveStop();
delay(300);
moveBackward();
delay(300);
moveStop();
delay(300);
distanceRight = lookRight();
delay(300);
distanceLeft = lookLeft();
delay(300);
if (distance >= distanceLeft){
turnRight();
moveStop();
}
else{
turnLeft();
delay(300);
moveStop();
delay(300);
}
}
else{
moveForward();
delay(300);
}
distance = readPing();
}
int lookRight(){  
myservo.write(50);
delay(500);
int distance = readPing();
delay(100);
myservo.write(115);
delay(100);
return distance;
}
int lookLeft(){
myservo.write(170);
delay(500);
int distance = readPing();
delay(100);
myservo.write(115);
delay(100);
return distance;
}
int readPing(){
delay(70);
int cm = sonar.ping_cm();
if (cm==0){
cm=250;
}
return cm;
}
void moveStop(){
Serial.println("Stop");
delay(1000);
}
void moveForward(){
if(!goesForward){
Serial.println("Forward");
delay(100);
goesForward=true;
distance = readPing();
while (distance > 20){
for (pos = -45; pos <= 0; pos += 1) {
myservo4.write(45+pos);
myservo5.write(50);
myservo6.write(180);
delay(15);
}
for (pos = 0; pos >= -45; pos -= 1) {
myservo4.write(45+pos);
myservo5.write(50);
myservo6.write(180);
delay(15);
}
for (pos = 180; pos >= 130; pos -= 1) {
myservo7.write(0+pos);
myservo8.write(160);
myservo9.write(130-pos);
delay(15);
  }
  for (pos = 130; pos <= 180; pos += 1) {
  myservo7.write(0+pos);
  myservo8.write(160);
  myservo9.write(130-pos);
  delay(15);
  }
}
}
}
void moveBackward(){
Serial.println("Back");
delay(100);
goesForward=false;
for (pos = 35; pos <= 0; pos += 1) {
myservo4.write(pos);
myservo5.write(pos);
myservo6.write(-(pos*2));
delay(15);
}
for (pos = 0; pos >= 35; pos -= 1) {
myservo4.write(pos);
myservo5.write(pos);
myservo6.write(-(pos*2));
delay(15);
}
for (pos = 90; pos >= 120; pos -= 1) {
myservo7.write(pos);
myservo8.write(pos);
myservo9.write(-(pos*2));        
delay(15);                       
}
for (pos = 120; pos <= 90; pos += 1) {
myservo7.write(pos);
myservo8.write(pos);
myservo9.write(-(pos*2));
delay(15);                      
}
}
void turnRight(){
Serial.println("Right");
delay(100);
while (distance > 20){
for (pos = 20; pos <= 40; pos += 1) {
myservo4.write(pos+20);
myservo5.write(pos+40);
myservo6.write(pos+120);
delay(15);
}
for (pos = 40; pos >= 20; pos -= 1) {
myservo4.write(pos+20);
myservo5.write(pos+40);
myservo6.write(pos+120);
delay(15);
}
}                
}
void turnLeft(){
Serial.println("Left");
delay(100);
while (distance > 20){
for (pos = 110; pos >= 90; pos -= 1) {
myservo7.write(pos);
myservo8.write(pos);
myservo9.write(-pos);
delay(15);
}
for (pos = 90; pos <= 110; pos += 1) {
myservo7.write(pos);
myservo8.write(pos);
myservo9.write(-pos);
delay(15);
}
}
}

About

Bio


João Miguel Narciso Alves nasceu a 11 de Fevereiro de 1979 em Lisboa.

Desde cedo tomou o gosto pelo desenho e pela pintura, e por isso, seguiu o agrupamento de artes no secundário.

Em 2003 licenciou-se em Artes Plásticas / Pintura pela Faculdade de Belas Artes da Universidade de Lisboa.

Em 2012 completou o seu Mestrado em Novos Media e Práticas Web na Universidade Nova de Lisboa

Exposições realizadas:

Em 2002 participou no Concurso de Fotografia de Santiago do Cacém:

"Mostra-nos Santiago do Cacém", onde ganhou uma menção honrosa.

Em 2003 realizou uma exposição de Pintura, na Biblioteca de Alcácer do Sal, com o tema:

"Industrialização".

Em 2009 realizou uma exposição de Pintura, no Centro Cultural da Junta de Freguesia de São João de Brito, com o tema:

"Industrialização".

Em 2015 participou numa feira de artesanato no LX Market para promover os seus quadros.

Em 2016 realizou uma exposição de Pintura na Fábrica de Braço de Prata com o tema:

"Explosão de Côres"

Em 2017 realizou uma exposição de Pintura, no Casual Lounge Caffé, com o tema:

"Laboratório de Cor".

Em 2017 realizou uma exposição de Pintura, no Hospital Garcia de Orta, com o tema:

"Mais Cor, Menos Forma".

Em 2018 realizou uma exposição de Pintura na Fábrica de Braço de Prata com o tema:

"A Magia da Cor"

Em 2018 realizou uma exposição de Pintura no Restaurante da Herdade de Montalvo com o tema:

“Universo de Côres"

Em 2019 realizou uma exposição de Pintura, no Hospital Garcia de Orta, com o tema:

"Terapia da Cor".

Em 2019 realizou uma exposição de Pintura, no Hospital São Francisco Xavier, com o tema:

"Cores da Primavera".

Em 2019 realizou uma exposição de Pintura, no Hospital São Francisco Xavier, com o tema:

"Percurso".

Em 2022 realizou uma exposição de Pintura, no Hospital Egas Moniz, com o tema:

"Ecstasy of Color / Ahimsa".

Em 2023 realizou uma exposição de Pintura, na Junta de Freguesia do Lumiar, multi temática com os seguintes temas:

“In search of the Light / Color Energy / Interactive Light and Sound Sculptures”

Em 2023 realizou uma exposição de Pintura, no Hospital Egas Moniz, com o tema:

”Tinta Espontânea”

Descrição da sua obra artística:

Teve um período mais figurativo na sua pintura, mas este novo estilo é mais espontâneo no qual tem mais prazer.

O processo criativo é agora mais experimental e de investigação.

Tenta criar imagens diferentes do habitual.

Baseia-se na experimentação de combinações e efeitos de cores.

Baseia-se mais na cor do que na forma.
O processo de pintar é espontâneo, intuitivo, automático ou subconsciente.

O acaso e o aleatório determinam a evolução da pintura.

Tenta criar algo puramente esteticamente agradável.

facebook.com/galeriajoaoalves

instagram.com/galeriajoaoalves

galeriajoaoalves.pt

E-mail: jmnalves@gmail.com