May 13, 2019 Alizarin Zroob 0Comment

An interactive gift basket that gives it’s recipient insight on which energy source is best for them, based on their beloved preference: money or the environment

Energy Basket – environmental critical object by Alizarin Zroob

Fossil fuel is finite. In the pace we’re using it, it’ll all be gone in decades. In comparison, the sun is estimated to have 5 billion years of shining left. The fact most of the earth (~80%) is still powered by fossil fuel is a calamity.

Energy basket is communicating this simple truth with a simple, playful interface.

Conclusion:

Even if you’re greedy, renewable energy is still a better deal.

About Energy Basket

In a world where the activists in charge of climate change propaganda are 13 year old girls, critical objects better be adorable.

Teenage protesters this February in Europe. Image by Eric Lalmand / AFP / Getty Images, as published on buzzfeed.

Renewable energy technologies exist for ages. They’re significantly better environmentally, not releasing any pollution to the atmosphere. Currently, green energy prices are more or less leveled with the prices of fossil fuels, and they keep on plunging, as reported on Forbes. With the dwindling supply of fossil fuels, it’s clear that their prices will only rise.

Our world’s politicians keep on favoring fossil fuels with their orders and legislations. Being involved with the fossil fuel business, they might see immediate profit from it. But in the long run, it’s clear that renewable energy will profit everyone involved, environmentally and financially.

Approachable API sources from Data.gov provide data on the shifts in usage and pricing of the different energy sources. I considered using them, but decided going a simpler route. I wanted this critical object to speak to a large audience.

The chosen object is a gift basket, in order to represent the world we’re gifting to the upcoming generations. It’s aesthetic draws further from the serious, discomforting, mechanic or fetishized that often is associated with critical objects. It was purposely designed to look fun and funny, kitschy and festive. A caricature of a diorama, like decoration board on steroids.

The basket is portioned to two sides illustrating two options of worlds we might be headed into.

Fossil-fueled petroleum half

Grotesque garden made of glitzening plastic debris. Trump-figurine, dollar sign and toy gun illustrating the corruption and greed behind the fuel industry.

Biodegradable-renewable half

Adorable floral arrangement handcrafted of natural and recycled materials.
The Environment heart piece is an actual homemade biodegradable sculpture made of mushroom mycelium.

@EnergyBasket Twitter

An automatic twitter account mirroring the basket

Talking to @EergyBasket1 twitter Profile, you can send your preferred choice and receive a personalized reply online. Energy Basket reply bot will auto-generate a result twit for you, with the energy source that’s best for you. Our social media manager will explain to you why it makes sense, if necessary.

Further development suggestion

This is only a prototype. A more developed version will ideally include:

♥ An option actually to power the basket from a built-in solar panel

♥ A built-in “ding!” sound when the result is revealed

♥ Better readability

♥ Data collection of how many clicks gathered to Money and Environment, to publish updated on Energy Basket’s twitter account

The mechanics

Energy basket is operated by a simple home-made interface. Input from two arcade buttons is transformed by a basic micro-controller (arduino 101) into a satisfying visual output. The output is shown on an acrylic dial built upon a servo motor, enhanced by two RGB LEDs.

The plain mechanism, before populated with decorations
Testing the pure prototype

This is the breadboard:

And here’s the arduino code used to activate it:

#include <Interval.h>
#include <Servo.h>
#include <Adafruit_NeoPixel.h>

int button1 = 4; //button pin, connect to ground to move servo
int press1 = 0;
int button2 = 5; //button pin, connect to ground to move servo
int press2 = 0;
Servo servo1;
#define PIN        12
#define NUMPIXELS 2
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

#define DELAYVAL 10000 // Time (in milliseconds) to pause between pixels

Interval buttonTimeout;         // set a timout for the ticker

void setup()
{
  pinMode(button1, INPUT);
  pinMode(button2, INPUT);
  servo1.attach(9);
  digitalWrite(4, HIGH); //enable pullups to make pin high
  digitalWrite(5, HIGH); //enable pullups to make pin high
   pixels.begin(); 
}

void loop() {
   for(int i=0; i<NUMPIXELS; i++) { 
      pixels.setPixelColor(i, pixels.Color(0, 100, 50));
         pixels.show(); 
   }
{
  press1 = digitalRead(button1);
  if (press1 == LOW)
  {
    
    servo1.write(145);
       for(int i=0; i<NUMPIXELS; i++) { 
                  pixels.clear(); 
      pixels.setPixelColor(i, pixels.Color(0, 200, 30));
         pixels.show(); 
   }
          delay(DELAYVAL); // Pause before next pass through loop
    servo1.write(90);
  }    

  press2 = digitalRead(button2);
  if (press2 == LOW)
  {

    servo1.write(10);
      pixels.clear(); 
      pixels.setPixelColor(0, pixels.Color(0, 200, 30));
      pixels.show(); 
    delay(255);
    servo1.write(170);
          pixels.clear(); 
      pixels.setPixelColor(1, pixels.Color(0, 200, 30));
      pixels.show(); 
    delay(255);
   servo1.write(30);
         pixels.clear(); 
      pixels.setPixelColor(0, pixels.Color(0, 200, 30));
      pixels.show(); 
    delay(255);
    servo1.write(150);
          pixels.clear(); 
      pixels.setPixelColor(1, pixels.Color(0, 200, 30));
      pixels.show(); 
   delay(255);
   servo1.write(70);
         pixels.clear(); 
      pixels.setPixelColor(0, pixels.Color(0, 200, 30));
      pixels.show(); 
   delay(275);
   servo1.write(130);
         pixels.clear(); 
      pixels.setPixelColor(1, pixels.Color(0, 200, 30));
      pixels.show(); 
      servo1.write(80);
            pixels.clear(); 
      pixels.setPixelColor(0, pixels.Color(0, 200, 30));
      pixels.show(); 
   delay(325);
   servo1.write(140);
         pixels.clear(); 
      pixels.setPixelColor(1, pixels.Color(0, 200, 30));
      pixels.show(); 
      delay(375);
   servo1.write(40);
         pixels.clear(); 
      pixels.setPixelColor(0, pixels.Color(0, 200, 30));
      pixels.show(); 
   delay(525);
   servo1.write(145);
         pixels.clear(); 
      pixels.setPixelColor(1, pixels.Color(0, 200, 30));
      pixels.show(); 
     delay(DELAYVAL); // Pause before next pass through loop
    servo1.write(90);
  }
}
}

Leave a Reply

Your email address will not be published. Required fields are marked *