🔍

It’s all there somewhere in the clouds :)

„It’s all there somewhere in the clouds.“ is a small series of microcomputers, each featuring a 128×128 pixel screen. These screens display a common pixel sky with generated clouds, creating a unifying thread throughout the piece. Each microcomputer is connected to one another forming a interconnected cluster. ( not yet implemented in demo! )

The displayed pixelated sky with clouds serve as a metaphor for the cloud as a digital space where our data, means our personal information, our tools and our social network is rooted. The common sky, represented over the multiple devices, represents the collective nature of the cloud, emphasizing that we are not alone in our digital presence.

The use of pixelated graphics also calls attention to the abstract and intangible nature of the cloud, highlighting how easily we can overlook the impact of our digital actions as we are blended by cute or beautiful surfaces, that conduct an often not so attractive backend. This refers to energy consumption and hardware ressources needed to offer cloud or stream based services we are often not aware of.

The utilized microcomputers demonstrate an alternative way to deal with computation with low power, accessability and compatibility in mind.


#include <Arduino.h>
#include <sheet.h>

#include <Adafruit_GFX.h>                                  // Core graphics library
#include <Adafruit_ST7735.h>    
 
  
  
  
#define LED_BUILTIN 22
Adafruit_ST7735 tft = Adafruit_ST7735(16, 17, 23, 5, 9); // CS,A0,SDA,SCK,RESET



// Function to draw the bitmap image
void drawMyBitmap(int16_t x, int16_t y, const uint16_t *bitmap, int _w, int _h) {
  for (int16_t j = 0; j < _h; j++) {
    for (int16_t i = 0; i < _w; i++) {
      uint16_t color = bitmap[j * _w + i];
      if (color != 0x0000) { // Check if pixel is not black
        tft.drawPixel(x + i, y + j, color);
      }
    }
  }
}


void setup() {
  
  
  pinMode(27,OUTPUT);//Backlight:27
  analogWrite(27,35);//New version added to backlight control
  tft.initR(INITR_18GREENTAB);                             // 1.44 v2.1
  tft.fillScreen(ST7735_BLACK);                            // CLEAR
  pinMode(LED_BUILTIN, OUTPUT);


}


void drawSky(){

   // Draw sky gradient
  for (int16_t y = 0; y < tft.height(); y++) {
    uint8_t r = map(y, 0, tft.height(), 135, 25);
    uint8_t g = map(y, 0, tft.height(), 106, 237);
    uint8_t b = map(y, 0, tft.height(), 250, 255);
    tft.drawFastHLine(0, y, tft.width(), tft.color565(r, g, b));
  }


}

void loop() {
  // put your main code here, to run repeatedly:


   //tft.fillScreen(ST7735_BLUE);   
   drawSky();
  
  for(int i=0;i<9;i++){

      int rx = int(random(140)-20);
      int ry = int(random(140)-20);

      if(random(100)>40){
        drawMyBitmap(rx,ry,CLOUD,50,29);
      }else{

        drawMyBitmap(rx,ry,CLOUD2,31,24);

      }
  }
  delay(12000);

}