Want to make creations as awesome as this one?

Transcript

Escola Secundária de Amarante

Projeto de Aptidão Profissional

20 de Julho de 2023

Prof Paulo MoraisProf João CandeiasProf Rui Rodrigues

José Luís

CARRO ROBOT REMOTO

Desenvolviementos Futuros

Diagrama Elétrico

Resultados

Motivação

Aplicação

Comunicação

Fluxograma

Vídeo Demonstrativo

Índice

Desenvolver competências a nivel prático e técnico Linguagem de programação Contacto direto com todos os componentes

Escola Secundária de Amarante

Projeto de Aptidão Profissional

20 de Julho de 2023

Prof Paulo MoraisProf João CandeiasProf Rui Rodrigues

José Luís

Motivação da realização do Projeto

Escola Secundária de Amarante

Projeto de Aptidão Profissional

20 de Julho de 2023

Prof Paulo MoraisProf João Candeias

José Luís

Aplicação

Escola Secundária de Amarante

Projeto de Aptidão Profissional

20 de Julho de 2023

Prof Paulo MoraisProf João Candeias

José Luís

Comunicação

Prof Paulo MoraisProf João CandeiasProf Rui Rodrigues

distância

NÃO

NÃO

SIM

SIM

SIM

SIM

SIM

NÃO

NÃO

NÃO

SIM

NÃO

NÃO

SIM

'STP'

para

'↑'

frente

'STP'

'→'

'←'

'↓'

dist<30

para

dir

esq

tra

Variáveis

'F'

'P'

'D'

'E'

'T'

BLE

Início

Escola Secundária de Amarante

Projeto de Aptidão Profissional

Fluxograma

Escola Secundária de Amarante

Projeto de Aptidão Profissional

20 de Julho de 2023

Prof Paulo MoraisProf João CandeiasProf Rui Rodrigues

José Luís

DIAGRAMA ELÉTRICO

Controlo total do robot com uma aplicação;Fluidez e rapidez na comunicação;O sensor ultrassónico permite dar alguma autonomia ao robot;Ilustração dos movimentos e estados do robot através do Display

Escola Secundária de Amarante

Projeto de Aptidão Profissional

20 de Julho de 2023

Prof Paulo MoraisProf João CandeiasProf Rui Rodrigues

José Luís

Resultados

Controlar a velocidade ;Criação de uma aplicação única para controlo do carro;Definir o tempo de autonomia; Utilização de outros sensores para torná-lo 100% autónomo ;Implementar uma câmera fotográfica ou de vídeo , por exemplo, para culto turístico e investigações policiais;

Escola Secundária de Amarante

Projeto de Aptidão Profissional

20 de Julho de 2023

Prof Paulo MoraisProf João CandeiasProf Rui Rodrigues

José Luís

Desenvolvimentos Futuros

Escola Secundária de Amarante

Projeto de Aptidão Profissional

20 de Julho de 2023

Prof Paulo MoraisProf João CandeiasProf Rui Rodrigues

José Luís

Vídeo Demonstrativo

para(); unsigned char dis_para[1][16] = { 0x4e, 0x4a, 0x7a, 0x00, 0x02, 0x7e, 0x02, 0x00, 0x7e, 0x42, 0x7e, 0x00, 0x7e, 0x0a, 0x0a, 0x0e }; if (valor == 'P') { para(); estado = 5; } if (estado==1){ if (distancia<=30.0){ para(); estado=5; } if (estado == 5) IIC_send(dis_para[data_line][i]); void para() { analogWrite(5, 0); analogWrite(6, 0); }

Serial.begin(9600);if (Serial.available()) { char valor = Serial.read() if (valor == 'F') { frente(); estado = 1; } if (valor == 'T') { tra(); estado = 2; } if (valor == 'E') { esq(); estado = 3; } if (valor == 'D') { dir(); estado = 4; } if (valor == 'P') { para(); estado = 5; } }

void tra() { vel(); digitalWrite(2, HIGH); digitalWrite(4, HIGH); }

#define IIC_SCL A5 #define IIC_SDA A4 #include <afstandssensor.h> AfstandsSensor afstandssensor(A0, 10); //(triggerPin, echoPin) double distancia=0.0; char valor; unsigned char data_line = 0; unsigned char delay_count = 0; unsigned char data_display1 = 0; unsigned char data_display2 = 0; unsigned char data_display3 = 0; unsigned char data_display4 = 0; unsigned char data_display5 = 0; unsigned char data_display6 = 0; unsigned char data_display7 = 0; unsigned char data_display8 = 0; unsigned char data_display9 = 0; unsigned char data_display10 = 0; unsigned char data_display11 = 0; unsigned char data_display12 = 0; unsigned char data_display13 = 0; unsigned char data_display14 = 0; unsigned char data_display15 = 0; unsigned char data_display16 = 0; unsigned char dis_inicio[1][16] = { 0x00, 0x4e, 0x4a, 0x7a, 0x00, 0x02, 0x7e, 0x02, 0x00, 0x7e, 0x1a, 0x6e, 0x00, 0x02, 0x7e, 0x02 }; unsigned char dis_frente[1][16] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x04, 0x7e, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00 }; unsigned char dis_direita[1][16] = { 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x54, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00 }; unsigned char dis_esquerda[1][16] = { 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x54, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00 }; unsigned char dis_tras[1][16] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x20, 0x7e, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00 }; unsigned char dis_para[1][16] = { 0x4e, 0x4a, 0x7a, 0x00, 0x02, 0x7e, 0x02, 0x00, 0x7e, 0x42, 0x7e, 0x00, 0x7e, 0x0a, 0x0a, 0x0e }; int estado=5; pinMode(IIC_SCL, OUTPUT); pinMode(IIC_SDA, OUTPUT); digitalWrite(IIC_SCL, LOW); digitalWrite(IIC_SDA, LOW); pinMode(2, INPUT); //esqueda-frente, direita-tras pinMode(3, INPUT); //esqueda-frente, direita-frent pinMode(4, INPUT); //esqueda-tra, direita-frtent analogWrite(5, 100); analogWrite(6, 100);

unsigned char dis_direita[1][16] = { 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x54, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00 }; Serial.begin(9600); if (Serial.available()) { if (valor == 'D') { dir(); estado = 4; } if (estado == 4) IIC_send(dis_direita[data_line][i]); void dir() { vel(); digitalWrite(4, LOW); digitalWrite(2, HIGH); }

if (Serial.available()) { char valor = Serial.read(); if (valor == 'F') { frente(); estado = 1; } if (valor == 'T') { tra(); estado = 2; } if (valor == 'E') { esq(); estado = 3; } if (valor == 'D') { dir(); estado = 4; } if (valor == 'P') { para(); estado = 5; } }

void para() { analogWrite(5, 0); analogWrite(6, 0); }

if (estado==1){ if (distancia<=30.0){ para(); estado=5; }

unsigned char dis_frente[1][16] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x04, 0x7e, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00 }; Serial.begin(9600); if (Serial.available()) { char valor = Serial.read(); if (valor == 'F') { frente(); estado = 1; } } if (estado == 1) IIC_send(dis_frente[data_line][i]); if (estado==1){ if (distancia<=30.0){ para(); estado=5; } void frente() { vel(); digitalWrite(3, HIGH); digitalWrite(2, LOW); digitalWrite(4, LOW); }

#define IIC_SCL A5 #define IIC_SDA A4 #include <afstandssensor.h> AfstandsSensor afstandssensor(A0, 10); //(triggerPin, echoPin) double distancia = 0.0; char valor; unsigned char data_line = 0; unsigned char delay_count = 0; unsigned char data_display1 = 0; unsigned char data_display2 = 0; unsigned char data_display3 = 0; unsigned char data_display4 = 0; unsigned char data_display5 = 0; unsigned char data_display6 = 0; unsigned char data_display7 = 0; unsigned char data_display8 = 0; unsigned char data_display9 = 0; unsigned char data_display10 = 0; unsigned char data_display11 = 0; unsigned char data_display12 = 0; unsigned char data_display13 = 0; unsigned char data_display14 = 0; unsigned char data_display15 = 0; unsigned char data_display16 = 0; unsigned char dis_inicio[1][16] = { 0x00, 0x4e, 0x4a, 0x7a, 0x00, 0x02, 0x7e, 0x02, 0x00, 0x7e, 0x1a, 0x6e, 0x00, 0x02, 0x7e, 0x02 }; unsigned char dis_frente[1][16] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x04, 0x7e, 0x04, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00 }; unsigned char dis_direita[1][16] = { 0x00, 0x00, 0x00, 0x00, 0x10, 0x10, 0x10, 0x10, 0x10, 0x54, 0x38, 0x10, 0x00, 0x00, 0x00, 0x00 }; unsigned char dis_esquerda[1][16] = { 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x54, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00 }; unsigned char dis_tras[1][16] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x20, 0x7e, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00 }; unsigned char dis_para[1][16] = { 0x4e, 0x4a, 0x7a, 0x00, 0x02, 0x7e, 0x02, 0x00, 0x7e, 0x42, 0x7e, 0x00, 0x7e, 0x0a, 0x0a, 0x0e }; int estado = 5; pinMode(IIC_SCL, OUTPUT);

void tra() { vel(); digitalWrite(2, HIGH); digitalWrite(4, HIGH); }

void esq() { vel(); digitalWrite(4, HIGH); digitalWrite(2, LOW); }

unsigned char dis_tras[1][16] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x10, 0x20, 0x7e, 0x20, 0x10, 0x00, 0x00, 0x00, 0x00, 0x00 };//display if (valor == 'T') { tra(); estado = 2; }//bluetooth if (estado == 2) IIC_send(dis_tras[data_line][i]);//display void tra() { vel(); digitalWrite(2, HIGH); digitalWrite(4, HIGH); } //motores

void para() { analogWrite(5, 0); analogWrite(6, 0); }

void dir() { vel(); digitalWrite(4, LOW); digitalWrite(2, HIGH); }

void frente() { vel(); digitalWrite(3, HIGH); digitalWrite(2, LOW); digitalWrite(4, LOW); }

unsigned char dis_esquerda[1][16] = { 0x00, 0x00, 0x00, 0x00, 0x10, 0x38, 0x54, 0x10, 0x10, 0x10, 0x10, 0x10, 0x00, 0x00, 0x00, 0x00 }; Serial.begin(9600); if (Serial.available()) { if (valor == 'E') { esq(); estado = 3; } } if (estado == 3) IIC_send(dis_esquerda[data_line][i]); void esq() { vel(); digitalWrite(4, HIGH); digitalWrite(2, LOW); }