Process¶
Ideation & sketches¶
Concept: Adaptability Through Nature-Inspired Design This wearable is inspired by fungal adaptability, particularly the Lion’s Mane Mushroom (Hericium erinaceus) and the Bamboo Mushroom (Phallus indusiatus). The design will integrate biomimicry, responsive technology, and modular adaptability to create an interactive piece that reacts to environmental conditions.
🌿 Ideation: Digital Pattern Drafting for Wearable Adaptability¶
This step of the process was important because I learned to draft my own pattern digitally. Inspired by the adaptability of fungi, particularly the Lion’s Mane Mushroom and Bamboo Mushroom, I explored organic, flowing structures that could be modular and responsive.
This step of the process was important because I learned to draft my own pattern digitally. The focus was on laser-cut textile explorations, using cutting patterns inspired by the adaptability of fungi.
🔹 Key Insights:¶
- Modularity: How laser-cut segments can interlock or expand.
- Structural Integrity: Testing material strength and flexibility post-cutting.
- Aesthetic & Functionality: Finding a balance between biomimetic patterns and wearability.
Design & Fabrication¶
🌀 Future Steps: Design & Fabrication¶
Moving forward, I want to explore digital pattern drafting more deeply to refine the adaptability of the wearable. My goal is to develop parametric textile structures inspired by fungal morphologies, using Grasshopper and Clo3D to simulate their movement and interaction with the body.
I also plan to experiment with different fabrication techniques, including:
- Laser cutting & CNC milling to create modular, expandable textile patterns.
- Material testing to identify fabrics that balance flexibility, durability, and comfort.
- Iterative prototyping to refine both the aesthetics and functionality of the design.
In the near future, I’d like to fabricate test samples and evaluate how the patterns respond in real-world conditions. Once these tests are complete, I’ll make the half- or test-fabrication files available for further development.
🛠️ Prototypes: Digital & Electronic Development¶
This stage was crucial for refining both the physical structure and electronic integration of the wearable.
🔹 Digital Form Exploration in Blender¶
I used Blender to prototype the initial geometry and adaptability of the wearable, simulating how the laser-cut textile patterns would behave in motion. These 3D models helped visualize:
- The flexibility and responsiveness of the design.
- How different cutting patterns affect the material's expansion and contraction.
- Possible attachment methods for integrating electronic components.
🔹 Electronic Prototyping & Connectivity¶
To ensure real-time interaction between the environmental sensors and the wearable, I prototyped the electronics using two ESP8266 WiFi modules. These allow:
- Wireless communication between the sensors and the wearable.
- Data exchange over WiFi, enabling remote sensing and feedback loops.
- Modular scalability, so additional sensors can be integrated as needed.
Open ArduinoIDE, you need to set up the preferences by going to File and then click Preferences and then paste "http://arduino.esp8266.com/versions/2.3.0/package_esp8266com_index.json" in the Additional Boards Manager URLs option, click ok.
Next, you have to go to tools > Board > Board Manager and search for esp8266 by ESP8266 Community and install it.
Now, go to Tools > Board > ESP8266 Modules and you can see many option for ESP8266. For ESP8266 ModeMCU lua Wifi, it is recommended toselect "NodeMCU 1.0 (ESP-12E Module). Next, select your port. If you cant recognize your port, go to the Control Panel > System > Device Manager > Port and update your USB driver.
Now, you can succesfully upload your coding into your ESP8266 ModeMCU Lua WiFi
- Wireless communication between the sensors and the wearable.
Server Code¶
#include <ESP8266WiFi.h>
#include <ESP8266WebServer.h>
#include <Adafruit_NeoPixel.h>
#define PIN_NEOPIXEL D1 // Pin donde está conectado el Neopixel
#define NUMPIXELS 1 // Número de LEDs en el anillo
const char *ssid = "ESP_Server";
const char *password = "12345678";
ESP8266WebServer server(80);
Adafruit_NeoPixel pixels(NUMPIXELS, PIN_NEOPIXEL, NEO_GRB + NEO_KHZ800);
IPAddress local_IP(192, 168, 4, 1);
IPAddress gateway(192, 168, 4, 1);
IPAddress subnet(255, 255, 255, 0);
void setColor(int r, int g, int b) {
for (int i = 0; i < NUMPIXELS; i++) {
pixels.setPixelColor(i, pixels.Color(r, g, b));
}
pixels.show();
}
void handleHumidity() {
if (server.hasArg("value")) {
int humedad = server.arg("value").toInt();
Serial.println("Humedad recibida: " + String(humedad) + " %");
if (humedad <= 30) {
setColor(0, 255, 255); // rosa (Baja humedad)
} else if (humedad <= 40) {
setColor(255, 255, 0); // Amarillo (Humedad media)
} else {
setColor(255, 0, 128); // Verde (Alta humedad)
}
server.send(200, "text/plain", "Humedad procesada correctamente");
} else {
server.send(400, "text/plain", "Error: No se recibió el parámetro 'value'");
}
}
void setup() {
Serial.begin(115200);
WiFi.softAPConfig(local_IP, gateway, subnet);
WiFi.softAP(ssid, password);
Serial.println("Servidor WiFi iniciado");
Serial.print("IP del Servidor: ");
Serial.println(WiFi.softAPIP());
pixels.begin();
pixels.clear();
pixels.show();
server.on("/humedad", HTTP_GET, handleHumidity);
server.begin();
Serial.println("Servidor HTTP iniciado");
}
void loop() {
server.handleClient();
}
Client code¶
#include <ESP8266WiFi.h>
#include <ESP8266HTTPClient.h>
const char *ssid = "ESP_Server"; // Nombre del AP del servidor
const char *password = "12345678"; // Contraseña del AP
const char *serverIP = "192.168.4.1"; // Dirección IP del servidor
const int serverPort = 80;
#define HR00040_PIN A0 // Pin donde está conectado el sensor de humedad
void setup() {
Serial.begin(115200);
WiFi.begin(ssid, password);
Serial.print("Conectando a ");
Serial.println(ssid);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println("\nConectado al Servidor!");
Serial.print("IP del Cliente: ");
Serial.println(WiFi.localIP());
}
void loop() {
if (WiFi.status() == WL_CONNECTED) {
WiFiClient client;
HTTPClient http;
int sensorValue = analogRead(HR00040_PIN); // Leer humedad del suelo
float humedad = map(sensorValue, 1023, 0, 0, 100); // Convertir a porcentaje (invertido)
Serial.print("Humedad del suelo:");
Serial.print(humedad);
Serial.println("%");
// Construir la URL con el valor de humedad como parámetro
String url = "http://" + String(serverIP) + "/humedad?value=" + String(humedad, 2);
http.begin(client, url);
int httpResponseCode = http.GET();
if (httpResponseCode > 0) {
String response = http.getString();
Serial.println("Respuesta del Servidor: " + response);
} else {
Serial.print("Error en la solicitud HTTP: ");
Serial.println(httpResponseCode);
}
http.end();
} else {
Serial.println("No conectado al WiFi!");
}
delay(5000); // Espera 5 segundos antes de enviar otra medición
}
Mentoring notes¶
Mentors in all sessions may share with you their comments, notes, advise, projects and technical equipment to check out. This is good place to share those, so that you can find them later on when you need them the most!
Half-fabrication files¶
-
Test file: 3d modelling test ↩