O Projeto Ultra Mega Secreto, ou nem tanto, Crafter, trata do desenvolvimento de um produto que será (ou foi, dependendo de quando você está lendo esse post) lançado em Janeiro de 2016 pelo Robô Livre:
Um kit pedagógico com design bacana. Que permita  upgrades a partir da aquisição de kits ou recombinando com outros materiais, principalmente descarte de eletrônicos - METARRECICLAGEM. Que qualquer pessoa possa usar mas que instigue aqueles que querem se aprofundar no desenvolvimento.
vOd8c9y.png?1

Vamos montar nosso Crafter:

Este link te levará para o vídeo de Introdução.

Assista esse vídeo para acompanhar a montagem até a fixação dos motores.

Esta parte é muito importante pois trata da montagem eletrônica da PonteH, a peça que vai controlar nossos motores.

Agora Vamos Baixar o Software, depois disso nosso robô já estará com as funcionalidades básicas de movimentação.

Confira como ele funciona e veja como foi feita a fixação das peças.

Nesse vídeo ele passeia pela Campus Party - Executando o código básico.


Código Básico:


//Constantes Gerais
#define TEMPO 1000  //constante do tempo de espera - 1000 = 1 segundo
#define SLOW 100 //constante para andar devegar (PWM baixo)
#define FAST 170 // constante para Andar Rápido (PWM Alto)
#define POT 250 //Potencia dos Motores - Média 254 PWM = 100%


// pinos da Pnte H
#define IA1  5
#define IB1  6
#define IA2  11 
#define IB2  10 

//piscar LED inicio
void piscarLED(void){
  digitalWrite(13,HIGH);
  delay(300);
  digitalWrite(13,LOW);
  delay(300);
  digitalWrite(13,HIGH);
  delay(300);
  digitalWrite(13,LOW);
  delay(300);
  digitalWrite(13,HIGH);
  delay(300);
  digitalWrite(13,LOW);
  delay(300);
}

// Movimento para Frente
void andarFrente()
{
  analogWrite( IA1, POT ); // POT = speed => normal
  digitalWrite( IB1, LOW); // 10 = forward
  analogWrite( IA2, POT ); // POT = speed => normal
  digitalWrite( IB2, LOW); // 10 = forward
}

// Movimento para Tras
void andarTras()
{
  digitalWrite( IA1, LOW ); // 01 = direction => Backward
  analogWrite( IB1, POT);   // PWM speed => normal
  digitalWrite( IA2, LOW ); // 01 = direction => Backward
  analogWrite( IB2, POT);   // PWM speed => normal
}

// Movimento para Direita
void andarDireita()
{
  analogWrite( IA1, POT );  // POT = speed => normal
  digitalWrite( IB1, LOW);  // 10 = forward
  digitalWrite( IA2, SLOW); // POT = speed => devagar
  analogWrite( IB2, LOW);   // 10 = forward
}

// Movimento para Esquerda
void andarEsquerda()
{
  analogWrite( IA1, SLOW );  // POT = speed => devagar
  digitalWrite( IB1, LOW);   // 10 = forward
  digitalWrite( IA2, POT);   // POT = speed => normal
  analogWrite( IB2, LOW);    // 10 = forward
}


// Gira para Direita
void girarDireita()
{
  analogWrite( IA1, POT );  // POT = speed => normal
  digitalWrite( IB1, LOW);  // 10 = forward
  digitalWrite( IA2, LOW ); // 01 = direction => Backward
  analogWrite( IB2, POT);   // PWM speed => normal
}

// Gira para Esquerda
void girarEsquerda()
{
  digitalWrite( IA1, LOW ); // 01 = direction => Backward
  analogWrite( IB1, POT);   // PWM speed = normal
  analogWrite( IA2, POT );  // PWM speed = normal
  digitalWrite( IB2, LOW);  // 10 = forward
}


void parar()
{
  digitalWrite(IA1, LOW);
  digitalWrite(IB1, LOW);
  digitalWrite(IA2, LOW);
  digitalWrite(IB2, LOW);
}


void setup() {
  //inicia Comunicação Serial para Comunicar via Serial Monitor ou outra ferramenta
  Serial.begin(9600);

  //led
  pinMode(13, OUTPUT);

  // MOTORES - Configurar e Comecar desligado
  pinMode(IA1, OUTPUT);
  pinMode(IB1, OUTPUT);
  pinMode(IA2, OUTPUT);
  pinMode(IB2, OUTPUT);
  digitalWrite(IA1, LOW);
  digitalWrite(IB1, LOW);
  digitalWrite(IA2, LOW);
  digitalWrite(IB2, LOW);
}

void loop() {

  Serial.println("Inicio"); 
  piscarLED();
  Serial.println("Frente"); 
  andarFrente();
  delay(TEMPO);
  Serial.println("Girar Esquerda");
  girarEsquerda();
  delay(TEMPO);
  Serial.println("Frente"); 
  andarFrente();
  delay(TEMPO);
  Serial.println("Girar Esquerda");
  girarEsquerda();
  delay(TEMPO);
  Serial.println("Frente"); 
  andarFrente();
  delay(TEMPO);
  Serial.println("Girar Esquerda");
  girarEsquerda();
  delay(TEMPO);
  Serial.println("Frente"); 
  andarFrente();
  delay(TEMPO);
  parar();
  
}






Atividades recentes