Menú principal

Mensajes recientes

#1
Operaciones / Re:Manufactura: TX-57 "Tezcalt...
Último mensaje por Hector_Bernal - Mayo 08, 2025, 03:50:31 AM
Como comentario, una vez en el compilador se pasa a lenguaje hexadecimal. El código completo es muchísimo más largo
#2
Operaciones / Re:Manufactura: TX-57 "Tezcalt...
Último mensaje por Hector_Bernal - Mayo 08, 2025, 03:26:07 AM
Tezcaltipoca VIII

El General 01 monta el motor y los sistemas necesarios para la primera prueba real del vehículo, sin carrocería.

Código del ECU (Real)

// ECU Control System - EJ10T-H Twincharged Hydrogen Engine
// Proyecto TX-57 | Firmware Avanzado

#include <Arduino.h>

// Se agregan divisores para mejorar el entendimiento del sistema.

// === Pines de Sensores y Actuadores ===
constexpr uint8_t RPM_SENSOR       = A0;
constexpr uint8_t TPS_SENSOR       = A1;
constexpr uint8_t COOLANT_SENSOR   = A2;
constexpr uint8_t PRESSURE_SENSOR  = A3;
constexpr uint8_t KNOCK_SENSOR     = A4;
constexpr uint8_t O2_SENSOR        = A5;

constexpr uint8_t RELAY_SUPERCHARGER = 5;
constexpr uint8_t SOLENOID_TURBO     = 6;
constexpr uint8_t RELAY_FAN          = 7;
constexpr uint8_t INJECTOR_PINS[4]   = {8, 9, 10, 11};

// === Parámetros Críticos ===
constexpr int IDLE_RPM    = 900;
constexpr int MAX_RPM     = 8500;
constexpr int FAN_ON_TEMP = 90;  // °C
constexpr int FAN_OFF_TEMP= 80;  // °C

// === Estructuras de Datos ===
struct SensorReadings {
  int rpm;
  int throttle;
  int coolantTemp;
  int intakePressure;
  int knock;
  int o2;
};

struct TelemetryPacket {
  SensorReadings data;
  bool turboActive;
  bool superchargerActive;
};

// === Variables Globales ===
bool g_turboActive = false;
bool g_superchargerActive = false;

// === Prototipos de Funciones ===
SensorReadings readSensors();
bool manageInjection(const SensorReadings&);
TelemetryPacket controlBoost(const SensorReadings&);
bool thermalControl(int temperature);
void diagnosticLog(const TelemetryPacket&);

void setup() {
  Serial.begin(115200);
  // Configuración de pines
  pinMode(RELAY_SUPERCHARGER, OUTPUT);
  pinMode(SOLENOID_TURBO, OUTPUT);
  pinMode(RELAY_FAN, OUTPUT);
  for (auto pin : INJECTOR_PINS) pinMode(pin, OUTPUT);
}

void loop() {
  // Paso 1: Lectura de sensores
  auto sensors = readSensors();

  // Paso 2: Inyección de combustible
  if (!manageInjection(sensors)) {
    Serial.println("[ERROR] Falla en inyección");
  }

  // Paso 3: Control de sobrealimentación
  auto telemetry = controlBoost(sensors);

  // Paso 4: Control térmico
  if (!thermalControl(sensors.coolantTemp)) {
    Serial.println("[WARN] Temperatura crítica");
  }

  // Paso 5: Log y telemetría
  diagnosticLog(telemetry);
  delay(20);
}

SensorReadings readSensors() {
  SensorReadings r;
  r.rpm            = analogRead(RPM_SENSOR);
  r.throttle       = analogRead(TPS_SENSOR);
  r.coolantTemp    = analogRead(COOLANT_SENSOR);
  r.intakePressure = analogRead(PRESSURE_SENSOR);
  r.knock          = analogRead(KNOCK_SENSOR);
  r.o2             = analogRead(O2_SENSOR);
  return r;
}

bool manageInjection(const SensorReadings& s) {
  if (s.throttle < 0 || s.throttle > 1023) return false;
  int basePulse = map(s.throttle, 0, 1023, 1000, 10000); // microsegundos
  for (auto pin : INJECTOR_PINS) {
    digitalWrite(pin, HIGH);
    delayMicroseconds(basePulse);
    digitalWrite(pin, LOW);
  }
  return true;
}

TelemetryPacket controlBoost(const SensorReadings& s) {
  TelemetryPacket t;
  t.data = s;

  // Supercargador
  if (s.throttle > 600 && s.rpm > 2000) {
    digitalWrite(RELAY_SUPERCHARGER, HIGH);
    g_superchargerActive = true;
  } else {
    digitalWrite(RELAY_SUPERCHARGER, LOW);
    g_superchargerActive = false;
  }

  // Turbo
  if (s.rpm > 3500 && s.throttle > 500) {
    digitalWrite(SOLENOID_TURBO, HIGH);
    g_turboActive = true;
  } else {
    digitalWrite(SOLENOID_TURBO, LOW);
    g_turboActive = false;
  }

  t.turboActive = g_turboActive;
  t.superchargerActive = g_superchargerActive;
  return t;
}

bool thermalControl(int temperature) {
  if (temperature >= FAN_ON_TEMP) {
    digitalWrite(RELAY_FAN, HIGH);
  } else if (temperature <= FAN_OFF_TEMP) {
    digitalWrite(RELAY_FAN, LOW);
  }
  return (temperature < 110); // Señala advertencia si supera 110°C
}

void diagnosticLog(const TelemetryPacket& t) {
  Serial.print(F("[TELEMETRY] RPM:")); Serial.print(t.data.rpm);
  Serial.print(F(" THR:")); Serial.print(t.data.throttle);
  Serial.print(F(" TMP:")); Serial.print(t.data.coolantTemp);
  Serial.print(F(" KNOCK:")); Serial.print(t.data.knock);
  Serial.print(F(" O2:")); Serial.print(t.data.o2);
  Serial.print(F(" BOOST(SC/TC):")); Serial.print(t.superchargerActive);
  Serial.print(F("/")); Serial.println(t.turboActive);
}


#3
Operaciones / Re:Manufactura: TX-57 "Tezcalt...
Último mensaje por Hector_Bernal - Mayo 08, 2025, 03:17:16 AM
Tezcaltipoca VII

D-40 continúa ahora con la fabricación del Chasis tubular para realizar la primera prueba con el montaje del motor.


#4
Operaciones / Re:Manufactura: TX-57 "Tezcalt...
Último mensaje por Hector_Bernal - Mayo 08, 2025, 03:16:00 AM
Tezcaltipoca VI

D-40 continúa fabricando la suspensión para el vehículo, instala Coilovers sobre una suspensión MagenRide (Magnética) para lograr una estabilización incomparable.


#5
Operaciones / Re:Manufactura: TX-57 "Tezcalt...
Último mensaje por Hector_Bernal - Mayo 08, 2025, 03:11:47 AM
Tezcaltipoca V

D-40 realiza las nuevas modificaciones al EJ20TH, fue necesario aumentar a 96mm el diametro de los cilindros y reforzar el bloque para lograr la potencia deseada, el caballaje final varía según la configuración de la computadora.


#6
Operaciones / Re:Manufactura: TX-57 "Tezcalt...
Último mensaje por Hector_Bernal - Mayo 08, 2025, 03:07:55 AM
Tezcaltipoca IV

El General 01 pone a trabajar a su equipo en el taller, comienzan las adaptaciones y modificaciones a sistemas de inyección y bloque de motor con las piezas adquiridas y otras fabricadas.


#7
Operaciones / Re:Manufactura: TX-57 "Tezcalt...
Último mensaje por Hector_Bernal - Mayo 08, 2025, 03:03:09 AM
Tezcaltipoca III

A pedido de 01, informado por E-52 (Epsilon), se retira el motor del Subaru Impresa en el Taller de R-26.

El mismo queda a disposición en el taller, sin fluidos de Aceite, Refrigerante y con la bomba hidraulica aun unida al motor


#8
Operaciones / Re:Manufactura: TX-57 "Tezcalt...
Último mensaje por Hector_Bernal - Mayo 08, 2025, 03:00:13 AM
Tezcaltipoca II

El personal va de compras para la mejora y adaptación del vehículo


Rol
#9
Operaciones / Re:Manufactura: TX-57 "Tezcalt...
Último mensaje por Hector_Bernal - Mayo 08, 2025, 02:51:47 AM
Tezcaltipoca 0

El General 01 habla con su personal asociado a B&S y a Noctis para llevar a cabo la elaboración de un prototipo. Entrega planos y bocetos.

#10
Operaciones / Manufactura: TX-57 "Tezcaltipo...
Último mensaje por Hector_Bernal - Mayo 08, 2025, 02:37:47 AM
Noctis VW - TX-57

El TX-57 "Tezcatlipoca" es la encarnación definitiva de la movilidad táctica: un blindado ligero de líneas afiladas y presencia imponente, forjado en acero balístico y cerámica avanzada, con un chasis tubular reforzado que desafía la torsión más brutal. Su motor bóxer overbore de 2.17 L twincharged, alimentado por hidrógeno de alta presión, entrega un brutal par de 700 Nm y 380 hp, catapultando sus 6.5 toneladas de pura contundencia a más de 210 km/h en asfalto y 190 km/h fuera de pista. Con transmisión secuencial de rally de 6 velocidades y tracción integral permanente, cada cambio es un latido mecánico de precisión quirúrgica. La suspensión MagneRide con coilovers estilo Baja-1000 absorbe la furia del terreno, mientras la dirección en las cuatro ruedas convierte cada giro en una maniobra implacable. Bajo la piel de aluminio y Kevlar, un enjambre de sensores —MAP, TPS, lambda de banda ancha y más— orquesta la sinfonía digital de la ECU Syvecs Atom X, que gobierna inyección, encendido, twincharge y control de presión con la exactitud de un cirujano.