Task 5 - create a visuals that visualize your trained model

Mobirise Website Builder

Testing wekinator

Mobirise Website Builder

Experimenting with Max 

Experimentation
In my research, I'm currently exploring the concept of harnessing energy generated by living organisms and examining our relationship with them. Through this exploration, I aim to develop interactive installations that diffuse knowledge about their capabilities and explore passive methods of interaction with them. Thanks to a seminar I attended, I became interested in experimenting with the transmission of data from soil to Arduino, effectively using soil as a trigger mechanism. Drawing inspiration from YouTube tutorials, I tried to adapt techniques employed to turn vegetables into functional buttons for use with soil. When implementing this circuit, I observed that the data indeed fluctuated when the soil was touched, indicating a possible setup for a trigger mechanism. Subsequently, I integrated this setup with Processing to generate abstract shapes in response to soil touch events.
The creation of this installation marks the start of a larger installation project aimed at responding to microbial activity and human touch. One intriguing aspect of the circuit setup is its usage of the human body for conductivity, effectively closing the circuit. This conceptualises the human body as an integral part of the device rather than an external interaction component.

Looking ahead, I envision connecting multiple soil cells to music software to explore the possibility of creating a soil drum instrument that can be utilised by multiple individuals simultaneously. While the specifics of this project are still under consideration, I find the idea intriguing.




This is the explanation of the processing code:
          +-----------------------+
| Setup() |
| - Initialize sketch |
| - Set window size |
| - Set background |
| - Open serial port |
+-----------+-----------+
|
v
+-----------------------+
| Draw() |
| - Check for data |
| availability |
| - Read data |
| - Convert to integer |
| - Draw bacteria |
+-----------+-----------+
|
v
+-----------------------+
| drawBacteria() |
| - Draw green shapes |
| based on sensor |
| values |
+-----------------------+

Mobirise Website Builder

Processing code creating abstract representation of bacteria when soil is touched

Codes
Arduino code:
// the setup routine runs once when you press reset:

void setup() {

// initialize serial communication at 9600 bits per second:

Serial.begin(9600);

}


// the loop routine runs over and over again forever:

void loop() {

// read the input on analog pin 0:

int sensorValue = analogRead(A0);

// print out the sensor value:

Serial.println(sensorValue);

delay(500); // delay in between reads for stability




Processing code: Code green bacteria:

import processing.serial.*;

Serial serialPort; // Create a Serial object


void setup() {

size(400, 300); // Set the size of the window

background(0); // Black background

// Open the serial port - change "/dev/cu.usbmodem1441401" to the appropriate port name for your system

serialPort = new Serial(this, "/dev/cu.usbmodem1441401", 9600);

}


void draw() {

if (serialPort.available() > 0) { // If data is available to read

String data = serialPort.readStringUntil('\n'); // Read the data until newline character

if (data != null) {

println(data); // Print the data to the console

// Convert data to integer

int sensorValue = Integer.parseInt(data.trim());

// Check if sensor value is under 1023

if (sensorValue < 1023) {

// Draw a green bacteria at a random position

float x = random(width);

float y = random(height);

float size = random(10, 30); // Random size for the bacteria

drawBacteria(x, y, size);

}

}

}

}



// Function to draw a bacteria shape

void drawBacteria(float x, float y, float size) {

int numVertices = 20; // Number of vertices

float angleIncrement = TWO_PI / numVertices; // Angle increment between vertices

fill(0, 255, 0); // Green fill color

beginShape();

for (int i = 0; i < numVertices; i++) {

// Calculate vertex position

float theta = i * angleIncrement;

float offsetX = cos(theta) * size * random(0.8, 1.2);

float offsetY = sin(theta) * size * random(0.8, 1.2);

// Quantize vertex position to create pixelization effect

offsetX = floor(offsetX / 5) * 5; // Round to nearest multiple of 5

offsetY = floor(offsetY / 5) * 5; // Round to nearest multiple of 5

// Add vertex to shape

vertex(x + offsetX, y + offsetY);

}

endShape(CLOSE);

}

Free AI Website Software