Dagu rover 5 - arduino mega 2560 - Xbee (9 / 11 paso)

Paso 9: Código Final

Aquí está el código Final para el arduino mega 2560. He creado sub comandos para hacer más fácil.

 int count; int check1; //see if subcomand has run int check2; //see if subcomand has run int check3; //see if subcomand has run int check4; //see if subcomand has run int check5; //see if subcomand has run 
 void setup() { Lcount=0; Rcount=0; 
 // initialize the digital pin as an output. pinMode(dirch1,OUTPUT); pinMode(dirch2,OUTPUT); pinMode(dirch3,OUTPUT); pinMode(dirch4,OUTPUT); 
 pinMode(speedch1,OUTPUT); pinMode(speedch2,OUTPUT); pinMode(speedch3,OUTPUT); pinMode(speedch4,OUTPUT); 
 pinMode(encoderA, INPUT); pinMode(encoderB, INPUT); attachInterrupt(0, LhandleEncoder, CHANGE); pinMode(encoderC, INPUT); pinMode(encoderD, INPUT); attachInterrupt(5, RhandleEncoder, CHANGE); 
 Serial2.begin(9600); Serial.begin(9600); 
 analogWrite(speedch1,0);// stop all analogWrite(speedch2,0);// stop all analogWrite(speedch3,0);// stop all analogWrite(speedch4,0);// stop all 
 count = 0; (SPEED = 200); 
 } 
 // the loop routine runs over and over again forever: void loop() { 
 if (Serial2.available() > 0) { // read the incoming byte: incomingByte = Serial2.read(); } if(incomingByte == 10 && check1 == 0) forward(); else if(incomingByte == 11 && check2 == 0) rotate_right(); else if(incomingByte == 12 && check3 == 0) backward(); else if(incomingByte == 13 && check4 == 0) rotate_left(); else if(incomingByte == 14 && check5 == 0) pause(); 
 // if(incomingByte == 16){ // if (Lcount != Lcountsaved && Rcount != Rcountsaved) Serial2.print(Lcount,DEC);//send encoder data Serial2.print(","); Serial2.print(Rcount,DEC); Serial2.print(","); Serial2.println(); incomingByte = 1; // Lcountsaved = Lcount; //Rcountsaved = Rcount; // } } void LhandleEncoder() { if(digitalRead(encoderA) == digitalRead(encoderB)) { Lcount++; } else { Lcount--; } } 
 void RhandleEncoder() { if(digitalRead(encoderC) == digitalRead(encoderD)) { Rcount++; } else { Rcount--; } } 
 void forward() { check2 = 0; check3 = 0; check4 = 0; check5 = 0; analogWrite(speedch1,0); analogWrite(speedch2,0); analogWrite(speedch3,0); analogWrite(speedch4,0); delay(100); digitalWrite(dirch1,LOW); digitalWrite(dirch2,HIGH); digitalWrite(dirch3,LOW); digitalWrite(dirch4,HIGH); analogWrite(speedch1,SPEED); analogWrite(speedch2,SPEED); analogWrite(speedch3,SPEED); analogWrite(speedch4,SPEED); check1 = 1; 
una y otra vez funciona para siempre la rutina bucle: } 
Si (Serial2.available() > 0) {/ / lee el byte entrante: incomingByte = Serial2.read(); void backward() { check1 = 0; check2 = 0; check4 = 0; check5 = 0; analogWrite(speedch1,0); analogWrite(speedch2,0); analogWrite(speedch3,0); analogWrite(speedch4,0); delay(100); digitalWrite(dirch1,HIGH); digitalWrite(dirch2,LOW); digitalWrite(dirch3,HIGH); digitalWrite(dirch4,LOW); analogWrite(speedch1,SPEED); analogWrite(speedch2,SPEED); analogWrite(speedch3,SPEED); analogWrite(speedch4,SPEED); 
if(incomingByte == 16) {/ / si (Lcount! = Lcountsaved & & Rcount! = Rcountsaved) Serial2.print (Lcount, DEC); //send codificador datos Serial2.print(","); Serial2.Print(Rcount,DEC); Serial2.Print(","); Serial2.println(); incomingByte = 1; Lcountsaved = Lcount; Rcountsaved = Rcount; // check3 = 1; } void LhandleEncoder() {if(digitalRead(encoderA) == digitalRead(encoderB)) {Lcount ++; } Else {Lcount--; void rotate_right() { check1 = 0; check3 = 0; check4 = 0; check5 = 0; analogWrite(speedch1,0); analogWrite(speedch2,0); analogWrite(speedch3,0); analogWrite(speedch4,0); delay(100); //wait to stop digitalWrite(dirch1,LOW); digitalWrite(dirch2,HIGH); digitalWrite(dirch3,HIGH); digitalWrite(dirch4,LOW); analogWrite(speedch1,SPEED); analogWrite(speedch2,SPEED); analogWrite(speedch3,SPEED); analogWrite(speedch4,SPEED); check2 = 1; 
void RhandleEncoder() {if(digitalRead(encoderC) == digitalRead(encoderD)) {Rcount ++; } Else {Rcount--; void rotate_left() { check1 = 0; check2 = 0; check3 = 0; check5 = 0; analogWrite(speedch1,0); analogWrite(speedch2,0); analogWrite(speedch3,0); analogWrite(speedch4,0); delay(100); digitalWrite(dirch1,HIGH); digitalWrite(dirch2,LOW); digitalWrite(dirch3,LOW); digitalWrite(dirch4,HIGH); analogWrite(speedch1,SPEED); analogWrite(speedch2,SPEED); analogWrite(speedch3,SPEED); analogWrite(speedch4,SPEED); check4 = 1; 
 } 
 void pause() { check1 = 0; check2 = 0; check3 = 0; check4 = 0; analogWrite(speedch1,0); analogWrite(speedch2,0); analogWrite(speedch3,0); analogWrite(speedch4,0); check5 = 1; } 
 import processing.serial.*; Serial myPort; // Create object from Serial class int lf = 10; // Linefeed in ASCII int source1; int source2; String myString = null; 
 void setup(){ size(640, 360); println(Serial.list()); String portName = Serial.list()[5]; // pick the port connected myPort = new Serial(this, portName, 9600); myPort.clear(); 
 myString = myPort.readStringUntil(lf); myString = null; source1 = 0; source2 = 0; 
 } void draw(){ background(255,255,255); textSize(32); text(source1,20,60); text(source2,20,120); fill(0,0,0); while (myPort.available() > 0) { myString = myPort.readStringUntil(lf); if (myString != null) { println(myString); 
 String[] q = splitTokens(myString, ",");//split at "," println(q.length + " values found"); // Prints 2 values found" source1 = int(q[0]); source2 = int(q[1]); } } } void keyPressed() { if (key == CODED) { if (keyCode == UP) { myPort.write(10);//Forward } else if (keyCode == DOWN) { myPort.write(12);//Backward } else if(keyCode == LEFT){ myPort.write(13);//LEFT } else if(keyCode == RIGHT){ myPort.write(11);//Right }else if(keyCode == CONTROL){ myPort.write(14); //Pause } } } 
void pause() {check1 = 0; check2 = 0; check3 = 0; check4 = 0; analogWrite(speedch1,0); analogWrite(speedch2,0); analogWrite(speedch3,0); analogWrite(speedch4,0); check5 = 1;

Artículos Relacionados

Hazlo tú mismo Arduino Mega 2560 o 1280

Hazlo tú mismo Arduino Mega 2560 o 1280

así que esta es mi primera instructables... Vamos a probar esto!* el original se puede encontrar aquí: http://tsjwang.blogspot.com/2013/08/diy-arduino-mega-2560.html*Muy bien.Esta es la historia: estaba trabajando en este proyecto de Arduino frustran
Cómo utilizar Arduino Mega 2560 como Arduino isp

Cómo utilizar Arduino Mega 2560 como Arduino isp

cuando construyo mi Atmega328p-pu en una placa de circuito para mi ciclomotor lo necesitaba a bootload.Porque no tengo ninguno externo equipo de programación necesaria para utilizar mi Arduino Mega 2560 como ArduinoISP ( http://arduino.cc/en/Tutorial
Servidor Web DIY con Arduino Mega 2560

Servidor Web DIY con Arduino Mega 2560

en este proyecto de bricolaje, vamos a hacer nosotros mismos un servidor web pequeño con W5100 escudo y arduino mega 2560,Vamos a conseguir nosotros mismos iniciado,Preparar todas las piezas...Paso 1: Las piezas necesarias para este DIY 1. Arduino Me
Arduino Mega 2560 basado Control de intensidad de luz LDR

Arduino Mega 2560 basado Control de intensidad de luz LDR

La mayoría de ustedes ya sabe sobre Arduino y programación, pero aquellos de ustedes que no saben acerca de sus fundamentos deben leer este instructivo primer.Todo lo que necesitas saber acerca de Arduino tiene. He usado Mega 2560 en este instructabl
Mínimo desnudo DIY de la Arduino Mega 2560

Mínimo desnudo DIY de la Arduino Mega 2560

El objetivo de este proyecto es crear una versión de Arduino Mega 2560 Junta cuenta componente inferior y menor tamaño del tablero.Personalmente para ser utilizado para proyectos de robótica que requieren flash de 256 KB y pasadores de digital/analóg
Cómo utilizar 2.4 pulgadas TFT LCD SPFD5408 con arduino MEGA 2560

Cómo utilizar 2.4 pulgadas TFT LCD SPFD5408 con arduino MEGA 2560

Este instructable le mostrará cómo para el SPFD5408 2.4 pulgadas lcd a la arduino MEGAPaso 1:Paso 2: bibliotecasAlgunos de ustedes pueden comprar esta pantalla LCD o el pensamiento de conseguiruno. Su una gran pantalla para la visualización de imágen
Guía de un newbie para configurar ESP8266 con Arduino Mega 2560 o Uno

Guía de un newbie para configurar ESP8266 con Arduino Mega 2560 o Uno

Por productos de código abierto para tener éxito o adopción en masa por los "fabricantes" / "DIY-ers" / "dev" / "etc"; una documentación actualizada y exacta o guía de inicio rápido tiene que ser proporcionado. Mens
Placa de Arduino Mega 2560 R3

Placa de Arduino Mega 2560 R3

3D imprimible placa de prototipado Arduino Mega.Rompí la placa en 2 piezas para permitir la impresión en pequeñas plataformas de construcción 3D (modelo sólido también).Usted puede utilizar el 123D app disponible http://www.123dapp.com/123d y descarg
Arduino MEGA 2560 domótica con relé de 8 canales

Arduino MEGA 2560 domótica con relé de 8 canales

Compruebe las páginas siguientes para el esquema y el código.Paso 1: El esquema Aquí puede ver el esquema.Debe ser muy fácil de entender.Simplemente se conectan como se muestra en el esquema.Paso 2: El códigoNecesita incluir las librerías de Ethernet
Arduino Mega Intro

Arduino Mega Intro

Hey todo el mundoEl Arduino Mega es un increíble microcontrolador para proyectos que necesitan una gran cantidad de io o procesamiento de energía y es muy divertido para usar. En este instructable veremos el:Especificaciones de Arduino Megaslos proye
BloonDuino - un Arduino y un Xbee basado en dirigible

BloonDuino - un Arduino y un Xbee basado en dirigible

ResumenFoto y vídeo documentación es esencial para muchos acontecimientos importantesQuadcopter drones han demostrado coste eficiente en comparación con la película gigante grúa armas y helicópteros de gran escala, pero son extremadamente ruidosos só
Planta WIFI, sistema de monitoreo basado en Arduino MEGA y ESP8266

Planta WIFI, sistema de monitoreo basado en Arduino MEGA y ESP8266

Hoy vamos a mostrarles nuestra primera experiencia en Internet de las cosas. Para ello, decidimos utilizar un Arduino MEGA en vez de un Arduino UNO. Eso es porque Arduino MEGA tiene más de un puerto serie y este hecho nos permite utilizar el ESP8266
Arduino Mega hexápodo

Arduino Mega hexápodo

Segundo Video (más o menos lo mismo, salvo el movimientos más rápidos de la mano):https://www.youtube.com/watch?v=zepHB4h5JS4&featu...Este es mi hexápodo, se basa alrededor de hexápodo de Phoenix de Lynxmotion y corre una versión modificada del códig
RS485 Comunicación Serial entre Arduino Mega y Arduino Nano con Visuino

RS485 Comunicación Serial entre Arduino Mega y Arduino Nano con Visuino

A veces necesitamos conectar placas Arduino ubicados muy lejos unos de otros. RS485 es una manera muy conveniente para conectar las tablas con sólo 2 conductores y puede trabajar a una distancia de 1200 m (4000 pies). También permite múltiples tablas