Project Description

Project description

Nombre del proyecto: vehiculo solar.

 

Supervisor:  Prof. Javier Eduardo Campillo Jimenez.

 

Estudiante #1: Jesus Castro

Estudiante #2: Jesus Funes

Estudiante #3: Manuel Hoyos

 

Descripcion del proyecto:

nuestro proyecto de vehiculo solar consiste en un pequeño vehiculo ensamblado con instrumentos o materiales tales como un puente controlador, un chasis de material acrilico, un modulo arduino y un panel solar entre otros mas, los cuales nos permitiran ensamblar un vehiculo solar el cual su fuente de alimentacion estara dada por la luz solar captada por el panel solar ubicado en la parte superior de este, haciendo posible realizar tareas como la transportacion autonoma de este, ser posible de controlar la tarea de inicio-parada y transportar pequeñas cargas de un punto x a un punto y.

 

Introduccion:

La realizacion del proyecto vehicular nos brinda una excelente oportunidad de conocer el mundo de la electronica de una manera mas cercana y familiar, al probar y observar desde un punto de vista personal, los diferentes instrumentos o materiales que se ven involucrados en el proceso de expirementacion y de esa manera reconocer las funciones que poseen los elementos que traen como resultado el correcto funcionamiento de nuestro vehiculo solar y asi mismo realizar las tareas o pruebas requeridas para calificar de manera positiva nuestro diseño escogido.

 

Objetivo: 

 

El objetivo general del proyecto es el poder desarrollar un vehículo solar a pequeña escala con los elementos ya mencionados para así mismo observar de cerca su funcionamiento y/o comportamiento mediante pruebas como el transporte de pequeñas cargas de un punto a otro entre otras mas.

 

 

Diagrama de bloques:

 

image

 

Marco legal y requirimientos especiales: 

Actualmente nuestro proyecto de vehículo solar o eléctrico, a mayor escala, se ven regulados por la ley  no 1964 del 11 de julio de 2019 la cual mediante de diferentes puntos promueve el uso de vehículos eléctricos en Colombia como a su vez dictan diferentes proposiciones. Podemos nombrar diferentes artículos como:            Articulo 1 que cita “La presente Ley tiene por objeto general' esquemas de promoción al uso de vehículos eléctricos y de cero emisiones con el fin de contribuir a la movilidad sostenible y a la reducción de emisiones contaminantes y de gases de efecto invernadero.”                                       

 Articulo 2 Definiciones.                                                                                                                          Para la interpretación y aplicación de 13 presente Ley, se tendrán en cuenta las siguientes definiciones:                                                                                                                        Movilidad Sostenible: Se entenderá por movilidad sostenible aquella que es capaz de satisfacer las necesidades de la sociedad de moverse se libremente, acceder, comunicarse, comercializar o establecer relaciones sin sacrificar otros valores humanos ecológicos básicos actuales o futuros. Es decir, debe incluir principios básicos de eficiencia, seguridad, equidad, bienestar (calidad de vida), competitividad y salud de conformidad a lo dispuesto por el world Business Council for Sustainable Development.                             

 Vehículo eléctrico: Un vehículo impulsado exclusivamente con uno o más motores eléctricos, que obtienen corriente de un sistema de almacenamiento de energía recargable, como baterías, u otros dispositivos portátiles de almacenamiento de energía eléctrica, incluyendo celdas de hidrógeno o que obtienen la corriente a través de catenarias. Estos vehículos no cuentan con motores de combustión interna o sistemas de generación eléctrica a bordo como medio para suministrar energía eléctrica.                                                                                                                              Estación de carga rápida: Sistema que provee energía para la carga rápida de las baterías de vehículos eléctricos y que cuenta con una potencia de salida superior a 50 kilovatios.                   

Estación de carga lenta: Equipo que provee energía para la carga lenta de baterías de vehículos eléctricos y que tiene una potencia de salida entre 7 kilovatios y 49 kilovatios.

 Zona de Parquímetro: Zonas debidamente demarcadas Y señalizadas, destinadas para el estacionamiento de vehículos en las vías publicas, previo pago de una tasa de uso a la administración distrital o municipal.

Vehículo de cero emisiones: Vehículo automotor impulsado por cualquier tecnología de motorización que en virtud de la generación de la energía para propulsión, no emite emisiones contaminantes al aire ni gases de efecto invernadero. 

 Artículo 3. Impuesto sobre Vehículos Automotores. Adiciónese el parágrafo 5° al artículo 145 de la Ley 488 de 1998 el cual quedará así: Parágrafo 5. Para los vehículos eléctricos, las tarifas aplicables no podrán superar en ningún caso, el uno por ciento (1%) del valor comercial del vehículo. En esta ley podemos encontrar otros artículos los cuales se encargan de regular el uso como promover la compra de esta clase de vehículos en el territorio colombiano.                                                                                                  

Presupuesto:

Nombre precio subsitema
puente controlador 8250 control y comunicacion
plataforma acrilica 32150 chasis
modulo arduino con bluetooth 38080 control y comunicacion
baterias 18650 23800 alimentacion 
porta baterias 1607 alimentacion
regulador 5v para wemos 4998 alimentacion
ruedas x chasis
motores x chasis
panel solar 11600 panel solar
regulador de carga 23800 alimentacion
shield prototipado mini board 3451 control y comunicacion

x-viene incluido con el chasis.

presupuesto total: 147736

 

Estrategia de implementacion:

 

  1. sobre el chasis prediseñado, se ensamblan las 4 ruedas con sus diferentes engranajes.
  2. Se instalan los dinamos y los engranajes faltantes para el control de las ruedas y la dirección.
  3. Se instalan en la capa siguiente del chasis los módulos de Arduino y de bluetooth, encargados del control a distancia y funcionamiento de nuestro vehículo solar.
  4.  Se cubre la sección de los módulos con la parte superior del chasis, la cual va a servir de base o soporte para nuestro panel solar.
  5. Se realiza el cierre total del chasis y de las uniones correspondientes entre las diferentes partes presentes en nuestro vehículo.
  6. Se realizan las diferentes pruebas necesarias para revisar el funcionamiento eficaz de nuestro vehículo. 

 

Impacto social:

El impacto social que queremos llegar a tener con nuestro proyecto, aunque sea a pequeña escala, es el de explicar de manera clara y breve el funcionamiento de un vehículo solar y cada uno de los beneficios, ya sean ambientales y/o económicos que estos puedan llegar a tener en nuestra actualidad. Además buscamos persuadir a las personas por interesarse mas sobre las alternativas verdes que pueden llegar a brindarnos varias opciones positiva si al hablar de métodos de generación de energías se refiere.

 

Impacto ambiental: 

El impacto ambiental mas esperado por nosotros es la reducción de emisiones contaminantes por el uso de nuevas alternativas de generación de energía para los vehículos, escoger las nuevas opciones verdes y amigables con el medio ambiente sobre los métodos ya establecidos y predominante como lo es el uso de carburantes o combustibles fósiles, los cuales emiten una gran huella o gran impacto negativo sobre el medio ambiente. Así queremos lograr un impacto en la sociedad donde se incentive al cambio de esta clase de vehículos a los nuevos modelos como lo son los híbridos o los eléctricos.

 

Codigo implementado:

 

* Built with references from:
 *  Random Nerd Tutorials - https://randomnerdtutorials.com/esp8266-web-server/
 *  L298N Wiring Diagram - http://www.14core.com/wiring-driving-the-l298n-h-bridge-on-2-to-4-dc-motors/
 *  Wemos-D1-Mini-RC - https://github.com/wassgha/WemosD1MiniRC
 *  esp8266-robot - https://github.com/openhomeautomation/esp8266-robot
 */

// Replace with your network credentials
const char* ssid     = "tu wifi";
const char* password = "tu clave";

// Set web server port number to 80
WiFiServer server(80);

// Variable to store the HTTP request
String header;
// Auxiliar variable to store the current output state
String outputState = "off"; //initially set to off
String outputDirection = "n/a"; //initially no direction

// Motor Inputs (INL=left in INR=right in)
const int INL1 = D7;
const int INL2 = D6;
const int INR1 = D3;
const int INR2 = D4;

//from BasicHttpClient example
/*void setupWifi(){
      USE_SERIAL.begin(115200);
   // USE_SERIAL.setDebugOutput(true);
    USE_SERIAL.println();
    USE_SERIAL.println();
    USE_SERIAL.println();
    for(uint8_t t = 4; t > 0; t--) {
        USE_SERIAL.printf("[SETUP] WAIT %d...\n", t);
        USE_SERIAL.flush();
        delay(1000);
    }
    WiFi.mode(WIFI_STA);
    WiFiMulti.addAP("ROBONET", "Mast3rSUsh1");
}*/

void connectToWifi(){
  // Connect to Wi-Fi network with SSID and password
  Serial.print("Connecting to ");
  Serial.println(ssid);
  WiFi.begin(ssid, password);
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  // Print local IP address and start web server
  Serial.println("");
  Serial.println("WiFi connected.");
  Serial.println("IP address: ");
  Serial.println(WiFi.localIP());
  server.begin();
}

void setup() {
  // put your setup code here, to run once:
  pinMode(INL1, OUTPUT);
  pinMode(INL2, OUTPUT);
  pinMode(INR1, OUTPUT);
  pinMode(INR2, OUTPUT);
  stopMotors(); //ensure motors are off on initialization
  Serial.begin(115200);
  connectToWifi(); //rui example
}

void right(){
  Serial.println("right...");
  digitalWrite(INL1, HIGH);
  digitalWrite(INL2, LOW);  
  digitalWrite(INR1, HIGH);
  digitalWrite(INR2, LOW);
}

void left(){
  Serial.println("left...");
  digitalWrite(INL1, LOW);
  digitalWrite(INL2, HIGH);  
  digitalWrite(INR1, LOW);
  digitalWrite(INR2, HIGH);
}

void stopMotors(){
  Serial.println("stop...");
  digitalWrite(INL1, LOW);
  digitalWrite(INL2, LOW);  
  digitalWrite(INR1, LOW);
  digitalWrite(INR2, LOW);
}

void forward(){
  Serial.println("forward...");
  digitalWrite(INL1, HIGH);
  digitalWrite(INL2, LOW);  
  digitalWrite(INR1, LOW);
  digitalWrite(INR2, HIGH);
}

void backward(){
  Serial.println("backward...");
  digitalWrite(INL1, LOW);
  digitalWrite(INL2, HIGH);  
  digitalWrite(INR1, HIGH);
  digitalWrite(INR2, LOW);
}

//Create a web server on local network address
void createWebServer(){
  WiFiClient client = server.available();   // Listen for incoming clients
  if (client) {                             // If a new client connects,
    Serial.println("New Client.");          // print a message out in the serial port
    String currentLine = "";                // make a String to hold incoming data from the client
    while (client.connected()) {            // loop while the client's connected
      if (client.available()) {             // if there's bytes to read from the client,
        char c = client.read();             // read a byte, then
        Serial.write(c);                    // print it out the serial monitor
        header += c;
        if (c == '\n') {                    // if the byte is a newline character
          // if the current line is blank, you got two newline characters in a row.
          // that's the end of the client HTTP request, so send a response:
          if (currentLine.length() == 0) {
            // HTTP headers always start with a response code (e.g. HTTP/1.1 200 OK)
            // and a content-type so the client knows what's coming, then a blank line:
            client.println("HTTP/1.1 200 OK");
            client.println("Content-type:text/html");
            client.println("Connection: close");
            client.println();
            
            // Motor Control (On & Off)
            if (header.indexOf("GET /control/forward") >= 0) {
              outputState = "ON";
              outputDirection = "MOVING FORWARDS";
              forward();
              
            } else if (header.indexOf("GET /control/stop") >= 0) {
              outputState = "OFF";
              outputDirection = "ROBOT IS NOT MOVING";
              stopMotors();
              
            } else if (header.indexOf("GET /control/backward") >= 0) {
              outputState = "ON";
              outputDirection = "MOVING BACKWARDS";
              backward();
              
            } else if (header.indexOf("GET /control/left") >= 0) {
              outputState = "ON";
              outputDirection = "MOVING LEFT";
              left();  
                         
            } else if (header.indexOf("GET /control/right") >= 0) {
              outputState = "ON";
              outputDirection = "MOVING RIGHT...";
              right();             
            }
            
            // Display the HTML web page
            client.println("<!DOCTYPE html><html>");
            client.println("<head><meta name=\"viewport\" content=\"width=device-width, initial-scale=1\">");
            client.println("<link rel=\"icon\" href=\"data:,\">");
            
            // CSS to style the on/off buttons 
            // Feel free to change the background-color and font-size attributes to fit your preferences
            client.println("<style>html { font-family: Helvetica; display: inline-block; margin: 0px auto; text-align: center;}");
            client.println(".button { background-color: #2ca545; border: none; color: white; padding: 16px 40px; margin: 25px");
            client.println("text-decoration: none; font-size: 30px; margin: 2px; cursor: pointer;}</style></head>");
            
            // Web Page Heading
            client.println("<img src=https://www.learnrobotics.org/wp-content/uploads/2017/11/cropped-logo-small-1.png height=50px>");
            client.println("<h2>Wifi Mobile Robot Controller</h2>");
            client.println("<p> Take control of your robot from anywhere on your home network! Tutorial sponsored by <a href=https://www.learnrobotics.org>Learn Robotics</a></p>");
            client.println(" ");
            client.println(" ");
            
            // Display current state, and controller buttons for robot 
            client.println("<p>Robot State " + outputState + " Robot Direction " + outputDirection +"</p>");
            
            client.println("<p><a href=\"/control/forward\"><button class=\"button\">FORWARD</button></a></p>");
            client.print("<p><a href=\"/control/left\"><button class=\"button\">LEFT</button></a> <a href=\"/control/stop\"><button class=\"button\">STOP</button></a> <a href=\"/control/right\"><button class=\"button\">RIGHT</button></a></p>");
            client.println("<p><a href=\"/control/backward\"><button class=\"button\">BACKWARD</button></a></p>");
            
               
            client.println("</body></html>");
            
            // The HTTP response ends with another blank line
            client.println();
            // Break out of the while loop
            break;
          } else { // if you got a newline, then clear currentLine
            currentLine = "";
          }
        } else if (c != '\r') {  // if you got anything else but a carriage return character,
          currentLine += c;      // add it to the end of the currentLine
        }
      }
    }
    // Clear the header variable
    header = "";
    // Close the connection
    client.stop();
    Serial.println("Client disconnected.");
    Serial.println("");
  }
}

void loop(){
  createWebServer();
}

tomado de: 

https://github.com/liz-miller/tutorials/blob/master/wemos-wifi-robot/WeMos_D1_Mini_Wifi_Robot/WeMos_D1_Mini_Wifi_Robot.ino

al codigo se le hicieron variaciones para su compilcacion

Gallery

Design Files

Embed Code

Export Design Data

Open JSON Format
All model data in Upverter's Open JSON export format (more info)
Gerber Format (RS-274X extended)
CAD to CAM transfer instructions (more info)
NC Drill (Excellon)
NC drill and route machine instructions (more info)
XYRS
X-Y, rotation and side data for Pick and Place assembly (CSV)
PADS Layout Netlist
Export your schematic into a third-party layout tool
Dimension Drawing
Export the board outline, holes, and rulers
High-Res Schematic PNG
High resolution image form
3D Model (Step)
3D model of the board and components