Control car using arduino ethernet


hi there,

im new forum!  i wanted know if me out one!

im trying control rc car using arduino ethernet (the final idea car have access point on , arduino ethernet connected it)

i bought 4wd chasis , decided use 2 motors in front make car go forward , 2 on make car go backwards, way dont have mess myself electronics motors can spin clockwise , anti-clockwise , @ least not in first version of code.

the problem values im giving pin not reflected, mean, tell car go forward when see whats happening dc motors on back, spinning two. checked methods , seem right.
any idea lot !!

thanks!


the code:

code: [select]

#include <spi.h>
#include <ethernet.h>


byte mac[] = { 0xde, 0xad, 0xbe, 0xef, 0xfe, 0xed };
byte ip[] = { 192 ,168 ,1 ,9 };
byte gateway[] = { 192 ,168 ,1 ,1 };
byte subnet[] = { 255 ,255 ,255 ,0 };
ethernetserver server(80);
ethernetclient client;

string readstring = string(40);

int pindelanteroderecho = 8;
int pindelanteroizquierdo = 9;
int pintraseroderecho = 10;
int pintraseroizquierdo = 11;
int delanteroderecho,delanteroizquierdo,traseroderecho,traseroizquierdo;

void setup(){

ethernet.begin(mac, ip, gateway, subnet);
delay(1000);

pinmode(pindelanteroderecho, output);
pinmode(pindelanteroizquierdo, output);
pinmode(pintraseroderecho, output);
pinmode(pintraseroizquierdo, output);

serial.begin(9600);
}




void loop(){
 
client = server.available();

if (client) {
 while (client.connected()) {
   if (client.available()) {
     char c = client.read();
       if (readstring.length() < 40)
       {
         readstring = readstring + c;
       }
if (c == '\n') {

 
 if(readstring.indexof("get /?main") >= 0) {

   
  client.println("http/1.1 200 ok");
client.println("content-type: text/html");
client.println("access-control-allow-origin: *");
 client.println("cache-control: no-cache, must-revalidate");
 client.println("expires: sat, 26 jul 1997 05:00:00 gmt");
client.println("connection: close");  // connection closed after completion of response
         client.println();
         client.println("<!doctype html>");
          client.println("<html>");
 client.println("<head>");
 client.println("<script src='http://ajax.googleapis.com/ajax/libs/jquery/1.8.2/jquery.min.js'></script>");
 client.println("<script type='text/javascript'>");
 client.println("function revisar() {");

 client.println("var vectorx,vectory; ");
 client.println("window.ondevicemotion = function(event) {");  
     client.println("var accelerationx = event.accelerationincludinggravity.x;");  
     client.println("var accelerationy = event.accelerationincludinggravity.y; ");
     client.println("if(math.abs(accelerationx) < 2) {");
     client.println("document.getelementbyid('estado').innerhtml = 'quieto';");
     client.println("vectorx = 0;");
     client.println("}");
     client.println("else {");
     client.println("vectorx = math.ceil(accelerationx);");
     client.println("if(accelerationx>0) {");
     client.println("document.getelementbyid('estado').innerhtml = 'avanzando a:'+vectorx;");
     client.println("}");
     client.println("else {");
     client.println("document.getelementbyid('estado').innerhtml = 'retrocediendo a'+vectorx;");
     client.println("}");
     client.println("}");
     client.println("if(math.abs(accelerationy) < 2) {");
     client.println("document.getelementbyid('giro').innerhtml = 'ningun lado';");
     client.println("vectory = 0;");
     client.println("}");
     client.println("else {");
     client.println("vectory = math.ceil(accelerationy);");
     client.println("if(accelerationy>0) {");
     client.println("document.getelementbyid('giro').innerhtml = 'izquierda a:'+vectory;");
     client.println("}");
     client.println("else {");
     client.println("document.getelementbyid('giro').innerhtml = 'derecha a:'+vectory;");
     client.println("}");
     client.println("}");
 client.println("}  ");
 client.println("scaleandsend(vectorx,vectory);");
 client.println("}");


 client.println("function scaleandsend(x,y) {");
// 9 - 255
// int - x
 client.println("if(y>0) {");
 client.println("var newy = (y*255)/9;");
 client.println("}");
 client.println("else {");
 client.println("var newy = ((math.abs(y)*255)/9) + 255;");
 client.println("}");
 client.println("if(x>0) {");
 client.println("var newx = (x*255)/9;");
 client.println("$.get('http://192.168.1.6/?adelante=1&x='+newx+'&y='+newy , function(data) {});");
 client.println("}");
 client.println("else {");
 client.println("var newx = ((math.abs(x)*255)/9);");
 client.println("$.get('http://192.168.1.6/?atras=1&x='+newx+'&y='+newy , function(data) {});");
 client.println("}");
 client.println("}");
 client.println("setinterval(function(){revisar()}, 200);");
 client.println("</script>");
 client.println("</head>");
 client.println("<body>");
 client.println("<div id='costados'>");
 client.println("<div id='cual' style='font-size:30px;'>estoy girando a: </div>");
 client.println("<div id='giro' style='font-size:30px;'></div>");
 client.println("</div>");
 client.println("<div id='avance'>");
 client.println("<div id='adonde' style='font-size:30px;'>estoy: </div>");
 client.println("<div id='estado' style='font-size:30px;'></div>");
 client.println("</div>");
 client.println("</body>");
 client.println("</html>");






 }
 
 
 

if(readstring.indexof("get /?adelante=1") >=0)
{
 
 client.println("http/1.1 200 ok");
client.println("content-type: text/html");
 client.println("access-control-allow-origin: *");
 client.println("cache-control: no-cache, must-revalidate");
 client.println("expires: sat, 26 jul 1997 05:00:00 gmt");
 
 string url = readstring;

   int primerand = url.indexof("&");
   int segundoand = url.indexof("&",primerand+1);
   
   int x = url.substring(primerand+3,segundoand).toint();
   int y = url.substring(segundoand+3,url.length()).toint();
   int velocidadyderecha;
   int velocidadyizquierda;
   
   if(y>255) {
      velocidadyderecha= y-255;
      velocidadyizquierda = 0;
   }
   else {
      velocidadyderecha= 0;
      velocidadyizquierda = y;
   }
   
   client.println(url);
   client.println(x);
   client.println(velocidadyderecha);
   client.println(velocidadyizquierda);
   
    adelante(x,velocidadyderecha,velocidadyizquierda);  
}

if(readstring.indexof("get /?atras=1") >=0)
{
 
 client.println("http/1.1 200 ok");
client.println("content-type: text/html");
 client.println("access-control-allow-origin: *");
 client.println("cache-control: no-cache, must-revalidate");
 client.println("expires: sat, 26 jul 1997 05:00:00 gmt");
 
 string url = readstring;

   int primerand = url.indexof("&");
   int segundoand = url.indexof("&",primerand+1);
   
   int x = url.substring(primerand+3,segundoand).toint();
   int y = url.substring(segundoand+3,url.length()).toint();
   
   int velocidadyderecha;
   int velocidadyizquierda;
   
   if(y>255) {
       velocidadyderecha= y-255;
      velocidadyizquierda = 0;
   }
   else {
      velocidadyderecha= 0;
      velocidadyizquierda = y;
   }
   
   client.println(url);
   client.println(x);
   client.println(velocidadyderecha);
   client.println(velocidadyizquierda);
   
    adelante(x,velocidadyderecha,velocidadyizquierda);  
}


if(readstring.indexof("get /?check=1") >=0)
{
 
 client.println("http/1.1 200 ok");
client.println("content-type: text/html");
client.println("access-control-allow-origin: *");
 client.println("cache-control: no-cache, must-revalidate");
 client.println("expires: sat, 26 jul 1997 05:00:00 gmt");
client.println("connection: close");  // connection closed after completion of response
         client.println();
         client.println("<!doctype html>");
          client.println("<html>");
 client.println("<head></head>");
 
 client.println("<body>");
 
client.println("motor delantero derecho: ");
client.println(pulsein(pindelanteroderecho,high));

client.println("motor delantero izquierdo: ");
client.println(pulsein(pindelanteroizquierdo,high));

client.println("motor trasero derecho: ");
client.println(pulsein(pintraseroderecho,high));

client.println("motor trasero izquierdo: ");
 client.println(pulsein(pintraseroizquierdo,high));
 
client.println("</body>");
client.println("<html>");


}


readstring="";
client.stop();
}
}
}
}
else {
client.stop();
}




}









more code:

code: [select]

boolean avanzando = true;

void adelante(int velocidadx,int velocidadyderecha, int velocidadyizquierda) {
 
 
      delanteroderecho = velocidadx-velocidadyderecha;
      delanteroizquierdo = velocidadx-velocidadyizquierda;
     
 
     analogwrite(pindelanteroderecho, delanteroderecho);  
   
     
     analogwrite(pindelanteroizquierdo, delanteroizquierdo);
   
 
 if(!avanzando) {
  traseroderecho=1;
 traseroizquierdo=1;
 analogwrite(pintraseroderecho, traseroderecho);

 
 
 analogwrite(pintraseroizquierdo, traseroizquierdo);

 
  avanzando = true;
 }
 
}

void atras(int velocidadx,int velocidadyderecha, int velocidadyizquierda, ethernetclient client) {
 
  traseroderecho = velocidadx-velocidadyderecha;
  traseroizquierdo = velocidadx-velocidadyizquierda;
   
  analogwrite(pintraseroderecho, traseroderecho);  
 
 
  analogwrite(pintraseroizquierdo, traseroizquierdo);
   

 if(avanzando) {
    delanteroderecho = 1;
    delanteroizquierdo = 1;
   analogwrite(pindelanteroderecho, delanteroderecho);  
   
   
   analogwrite(pindelanteroizquierdo, delanteroizquierdo);  
   
 
  avanzando = false;
 }
 
}



Arduino Forum > Using Arduino > Programming Questions > Control car using arduino ethernet


arduino

Comments

Popular posts from this blog

opencv3, tbb and rasp pi 2 - Raspberry Pi Forums

small ethernet problem - Raspberry Pi Forums

Multithumb configuration params not working? - Joomla! Forum - community, help and support