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:
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:
- sobre el chasis prediseñado, se ensamblan las 4 ruedas con sus diferentes engranajes.
- Se instalan los dinamos y los engranajes faltantes para el control de las ruedas y la dirección.
- 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.
- 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.
- Se realiza el cierre total del chasis y de las uniones correspondientes entre las diferentes partes presentes en nuestro vehículo.
- 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