Introduction: TEMPORAL AGENT (Art Piece)

About: Hi. I'm PIA. i am a youthful and ambitious dude from AOTEAROA.

This is TEMPORAL AGENT, an art piece made to explore intersecting ideas of time, spirituality, and technology.

It consists of 2 Arduino microprocessors, a servo motor "faux-metronome", a text-screen, and an image-screen.

I made my machine to represent shifting experiences of time in the modern age:

  • accelerated processes of work, production, and education
  • our culture leaning towards automation, taking things for granted
  • living life through temporal regimes, not through experience.

I also wanted to contrast ideas of MECHANICAL / TECHNOLOGICAL time and HUMAN / SUBCONSCIOUS time in my piece.


This instructable is a walk-through of my design process!

Supplies

I used:

  • 2 arduino UNO microprocessors
  • An SD card module & low-GB SD card
  • An ST7735 128x160 1.8" TFT display
  • An SSD1306 128×32, 0.91", OLED display
  • A 9g servo motor
  • Jumper wires, breadboard
  • Tape, blutak, superglue: random materials to secure & build the base

I also used ADOBE PHOTOSHOP to rescale & reformat images into 128x160 bitmaps. And MIRO as a documentation tool & workspace.

Step 1: Brainstorm & Concepts

Again, my goal for this exploration was to explore ideas of time, spirituality and tech. I had a very broad focus that I wanted to narrow down into a machine output with a clear point.

I wanted to convey "rigid routines" and counting, as well as the messy and fractured nature of memories. I really liked the idea of using LCD screens, as well as the idea of incorporating sound and language.


MY MACHINE IDEA....

After a lot of brainstorming, I decided to make a metronomic device that'd make use of image, language and sound. The metronome would move in a second-by-second manner like a clock.

A text screen would change with each left-right or right-left movement of the metronome, counting 1 to 4 in regular second intervals.

As well as this, a TFT screen displaying coloured bitmap images would change at random intervals.


Step 2: Adding Text Screen & Servo

After finalizing my idea, I connected a servo motor & simple OLED screen (0.91", 128*32 SSD1306) to my Arduino.


Step 3: Code for Screen & Servo

I added code to move my servo in a roughly-metronomic fashion, 45 degrees left to right.

I also wrote code for my screen to iterate through a string array of "counting words" in different languages:

  • English
  • Te Reo Māori
  • Hebrew
  • German
  • Binary

I refined my program to delay the screen-changing & metronome movement, making for a more natural feel.

Step 4: Connecting Colour TFT

Now I had to get images working. I started by connecting the colour TFT (ST7735 1.8" 128*160 screen) to a second Arduino UNO I had.

Step 5: Wiring SD Module

I wanted to add an SD module to access stored images.

My ST7735 had pins for an SD card, but this would not work no matter how I changed the pinouts. It turned out that I had blown it (?) by accidentally switching my VCC & ground pins, hahaha... The good news is all the pointless troubleshooting I did helped develop my understanding of pinouts & Arduino problem-solving strategies.

Anyway, after realising the TFT SD card was shot, I connected this external module to my circuit. I used existing tutorial code & images to test that the screen worked: above is a video of this.

Step 6: Adding My Own Images

I replaced the tutorial images with my own. The images I collected were related to my themes: the past, work culture, and emotional memories.

I used photoshop to convert these images to bitmaps. These had to be 60kb each.

First, I scaled my images to 128x160 format, and then hit "save a copy" -> 24-bit bitmap. I moved these onto my SD card, and confirmed that they worked.

Step 7: PARTS WORK: Now Join Em...

After confirming that both the SERVO/COUNT and the CHANGING IMAGE SCREEN components of my machine were functional, I combined them into one circuit.

This was evil as... It was so janky. So many things were broken. I messed up the order of some pins, and my sketch took up too much memory.

I also encountered some logic issues in my new code. I had conflicting delay/count mechanisms between the servo & image sketches (delays & loops in the image sketch would interfere with the second-by-second mechanism of the servo).

Step 8: Solution: 2 UNOs!

The obvious, easiest solution to this was to just go back to using two microprocessors.

I split my code back into two files, and moved the servo & lcd to a different microprocessor. I decided to run my "big colour screen" program's sketch through my computer, and have my servo/lcd sketch loaded onto the other UNO board.

This was good, as I didn't have to worry about device communication or delays anymore. I also freed up enough memory to get my image-screen working again.

Step 9: FINAL OUTPUT!

This is my final output. I made a body for it using glue, tape, and pieces of scrap card. I taped my wires down as well because the fragility was making me nervous, hahaha...

I think TEMPORAL AGENT does what I wanted it to. It is very engaging: I cannot stop watching the bar move and the screens change. It has clear links to time and creates feelings of melancholy and nostalgia... I like it a lot.


This project was very fun to make. I was new to Arduino and have learned a lot about what I can do, how to problem solve & how to learn. I'm glad I understand screens & bitmaps now.


Here is a link to my code:

https://github.com/jackyardbackoff/TemporalAgent

Making Time Contest

This is an entry in the
Making Time Contest