redbot
Publicado em 29 de Dezembro de 2025 às 22:42
Categoria:
olha só esse robozinho é fã da cor vermelha e ele ira sempre a seguir! estou brincando(ou sera que não?)
esse é um projeto um pouco mas avançado que demanda mas dinheiro porém ele é muito divertido :3
(talvez a imagem não ira representar o produto final se você não caprichar!!)
Materiais Necessários
- 1x arduino uno ou nano
- 1x sensor de cor TCS3200/CS230
- 2x motores DC (3v-6v) com caixa de redução e 2 rodas
- 1x drive de motor ponte H L298N
- chassi de acrilico, papelão ou plastico bem rigido (aprox. 15 a 20 cm)
- 1x roda boba
- 1x suporte para 4 pilhas AA ou bateria 9V
- cambos jumpers( macho-macho e macho-fêmea) e uma mini protoboard
- 4x RODAS
Ferramentas Necessárias
- pistola de cola quente ou(e) fita dupla face tipo banana
- chave tipo philipps ou fenda
- tesoura ou estilete
- alicate de corte ou desscascador de fios
- cabo usb A/B
- softawre arduino IDE
Etapas
prepare o chassi!
-
MOTORES:
use cola quente ou a fita para ficar dois motores DC um em cada lado
RODAS:
encaixe as rodas no eixo dos motores
RODA BOBA:
cole-a na parte da frente centralizada. o robo tera que fcar reto!
preparando o cerebro e a ernegia
-
ARDUINO:
coloque-a na parte de cima
DRIVER:
fixe o drive de motor perto dos motores!
BATERIA:
coloque o suporte de pilhas no centro assim equilibrara melhor
SUPER CHOQUE! MEXENDO NA ELETRICA
-
Conecte os dois fios do motor da direita nos terminais OUT1 e OUT2 do Driver L298N. O motor da esquerda vai no OUT3 e OUT4. (Precisa de uma chave de fenda pequena).
Use cabos Fêmea-Macho para ligar os pinos IN1, IN2, IN3 e IN4 do Driver aos pinos digitais 8, 9, 10 e 11 do Arduino. -
O sensor TCS3200 tem vários pinos. Use cabos Fêmea-Macho:
VCC do sensor no 5V do Arduino.
GND do sensor no GND do Arduino.
S0, S1, S2, S3 nos pinos 2, 3, 4, 5 do Arduino.
OUT do sensor no pino 6 do Arduino. - Ligue o fio positivo (vermelho) da bateria no 12V do Driver e o negativo (preto) no GND do Driver. Muito importante: Puxe um fio extra do GND do Driver para o GND do Arduino (isso chama-se terra comum).
EU ESTOU VENDO!
-
coloque o sensor de cor virado pro chão
deixe uma distancia de 1 a 2 cm de onde o objeto vermelho passara
HORA DE ENSINA-LO!
-
ESSE É O CODIGO COMPLETO
porem se tu se achar cabuloso crie o teu proprio
// --- Definição dos Pinos do Sensor TCS3200 ---
#define S0 2
#define S1 3
#define S2 4
#define S3 5
#define OUT 6
// --- Definição dos Pinos do Driver L298N (Motores) ---
#define IN1 8
#define IN2 9
#define IN3 10
#define IN4 11
// Variáveis para armazenar a intensidade das cores
int vermelho = 0;
int verde = 0;
int azul = 0;
void setup() {
// Configuração dos pinos do sensor
pinMode(S0, OUTPUT);
pinMode(S1, OUTPUT);
pinMode(S2, OUTPUT);
pinMode(S3, OUTPUT);
pinMode(OUT, INPUT);
// Configuração dos pinos dos motores
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
// Escala de frequência do sensor em 20% (padrão para Arduino)
digitalWrite(S0, HIGH);
digitalWrite(S1, LOW);
Serial.begin(9600); // Abre o monitor serial para calibração
}
void loop() {
detectarCores(); // Chama a função que lê o sensor
// LOGICA "DE VERDADE":
// No TCS3200, quanto MENOR o valor, mais forte é a cor.
// Verificamos se o Vermelho é menor que o Verde E menor que o Azul.
if (vermelho < verde && vermelho < azul && vermelho < 100) {
Serial.println("Vermelho detectado! Movendo...");
moverFrente();
} else {
Serial.println("Cor nao identificada. Parado.");
parar();
}
delay(200); // Pequena pausa para estabilidade
}
// --- Função que lê os valores RGB ---
void detectarCores() {
// Lendo Vermelho
digitalWrite(S2, LOW);
digitalWrite(S3, LOW);
vermelho = pulseIn(OUT, LOW);
// Lendo Verde
digitalWrite(S2, HIGH);
digitalWrite(S3, HIGH);
verde = pulseIn(OUT, LOW);
// Lendo Azul
digitalWrite(S2, LOW);
digitalWrite(S3, HIGH);
azul = pulseIn(OUT, LOW);
// Mostra os valores no PC para você calibrar
Serial.print("R: "); Serial.print(vermelho);
Serial.print(" G: "); Serial.print(verde);
Serial.print(" B: "); Serial.println(azul);
}
// --- Funções de Movimento ---
void moverFrente() {
digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW);
}
void parar() {
digitalWrite(IN1, LOW); digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW); digitalWrite(IN4, LOW);
}
Conclusão
de qualquer forma... esse robo é super CABEÇA!
ele não é linear e nem burro
ele apenas é fascinado numa cor!

Comentários
0