lunes, 4 de marzo de 2019

Manipular el Robot con el Control Remoto

Esta practica es un reto, porque vamos a unir dos programas y manipularemos nuestro RobotCar usando un Control Remoto. Para realizar esta practica necesitas el código del Receptor de luz Infrarroja de un Mando a Distancia(control remoto) el cual puedes descargar en este enlace: http://nbrobots.blogspot.com/2019/02/... Nota: debes instalar la librería "IRLremote" aquí les pongo la liga para la descarga: https://drive.google.com/drive/folder... Y también les dejo un vídeo de como pueden cargarlo si tienen algún problema: https://youtu.be/9K6lk1vWZr4 Y por último debemos copiar las funciones que creamos para poder mover las ruedas, y también configurar el registro DDRD para usar PORTD con dicho propósito(o si lo prefieren usar las instrucciones pinMode y digitalWrite): http://nbrobots.blogspot.com/2019/02/...



//++++++++++++++++++++++++++++++++++++++++++++++++

//++++++++++++++++++++++++++++++++++++++++++++++++
#include <IRLremote.h> int BUZZER=8; int RED=A2; //LED ROJO int YELLOW=A1; //LED AMARILLO int GREEN=A0; //LED VERDE int INTERRUPCION=1; //INT 1 colocada en PIN#3 uint8_t PROTOCOLO; //FORMATO DE INFORMACION uint16_t DIRECCION; //DEL CONTROL REMOTO uint32_t TECLA; uint8_t COPIA; //ALMACENA UNA COPIA TEMPORAL DE "SREG" void ADELANTE(){ PORTD=B10010000; } void DERECHA(){ PORTD=B10000000; } void IZQUIERDA(){ PORTD=B00010000; } void DETENER(){ PORTD=B00000000; } void REVERSA(){ PORTD=B01100000; } void IREvent(uint8_t protocol,uint16_t address,uint32_t command){ PROTOCOLO=protocol; DIRECCION=address; TECLA=command; } void setup() { // put your setup code here, to run once: IRLbegin<IR_ALL>(INTERRUPCION); //Configura receptor Serial.begin(9600); //PINES 7,6,5,4,3,2,1,0 = PORTD //ENTRADA=0 Y SALIDA=1 DDRD=B11110011; pinMode(BUZZER,OUTPUT); } void loop() { // put your main code here, to run repeatedly: COPIA=SREG; cli(); //CLEAR Global Interrupt Flag while(PROTOCOLO!=0 && TECLA!=0){ Serial.print("Protocolo="); Serial.print(PROTOCOLO); Serial.print(" Dirección="); Serial.print(DIRECCION,HEX); Serial.print(" Tecla="); Serial.println(TECLA,HEX); PROTOCOLO=0; } SREG=COPIA; //sei(); //SET Global Interrupt Flag while(TECLA!=0){ switch(TECLA){ case 0x49B6: ADELANTE(); delay(1000); DETENER(); break; case 0xF906: DERECHA(); delay(500); DETENER(); break; case 0xE916: IZQUIERDA(); delay(500); DETENER(); break; case 0x1BE4: REVERSA(); delay(2000); DETENER(); break; case 0xD926: tone(BUZZER,200,200); analogWrite(RED,0); analogWrite(YELLOW,0); analogWrite(GREEN,0); break; case 0x6897: analogWrite(RED,255); analogWrite(YELLOW,0); analogWrite(GREEN,0); break; case 0x9867: analogWrite(RED,0); analogWrite(YELLOW,255); analogWrite(GREEN,0); break; case 0xB04F: analogWrite(RED,0); analogWrite(YELLOW,0); analogWrite(GREEN,255); break; } TECLA=0; } }
//++++++++++++++++++++++++++++++++++++++++++++++++
//++++++++++++++++++++++++++++++++++++++++++++++++


Les deseo mucho éxito para este reto
y sigamos programando!!!

No hay comentarios.:

Publicar un comentario

Transformación del Samybot

Les deseo mucho éxito y sigamos programando!!!