Robo sumo
Por: Evelyn Moreno • 2/4/2015 • Relatório de pesquisa • 640 Palavras (3 Páginas) • 632 Visualizações
Da mesma forma como o sumo, o objetivo principal da competição de robôs é empurrar o adversário para fora da arena. A arena tem a apenas uma delimitação de borda, onde os robôs devem trabalhar de forma autônoma, procurando o adversário, empurrando-o para fora e decidindo a melhor maneira para executar determinada tarefa.
Tomamos como base 2 sensores: presença e piso.Por exemplo, quando o sensor de presença detectar um oponente a função base_frente será utilizado, afim de empurrar o adversário.
Para controlar o robô o microcontrolador PIC16F628 foi utilizado, como mostrado na figura 01. Este componente é responsável por processar as informações recebidas através dos sensores. O microcontrolador representa um computador em um só chip, e engloba funcionalidades de microprocessador, memória de dados e programa, interfaces de entrada/saída de dados, etc.
#include <xc.h>
//#pragma config BOREN=OFF, CP=OFF, PWRTE=ON, WDTE=OFF, LVP=OFF, MCLRE=OFF, FOSC=INTOSCIO
__config(BOREN_OFF & MCLRE_OFF & CP_OFF & WDTE_OFF & FOSC_INTOSCIO);
#define _XTAL_FREQ 4000000
#define delay 15
void base_frente();
void base_direita();
void base_esquerda();
void base_re();
void main(){
TRISA = 0B00000110;
TRISB = 0B00000000;
OPTION_REG = 0b10000000; // configura os registradores
INTCON = 0b00000000; // configura as interrupções
CMCON = 0b00000111; // configura os comparadores
int a=0;
int b=0
while(a < 20){
base_frente();
a++
}
for(;;){
while (RA1 == 0 && RA2 == 0){
base_direita();
}
while (RA1 == 0 && RA2 ==1 && b<60){
base_esquerda();
b++
}
while (RA1 == 1 && RA2 == 0){
base_frente();
}
while (RA1 == 1 &&RA2 == 1)}
base_re();
}
}
}
void base_frente(){
...