domingo, 28 de outubro de 2012

Novo Arduino Due (Dois, em Italiano)

Olá,

Foi lançado o mais novo membro da plataforma Arduino, o  Due.


Sua principal característica é o novo microcontrolador ATMEL Cortex M3,  SAM3X8E de 32 bits. Melhorando assim, a capacidade de armazenamento que passa para 512 KBytes de Flash (1/2 Mega de memória para armazenamento de programas) e 96 KBytes de memória SRAM, com um clock de 84 Mhz (para comparação, o Mega tem um clock de 16 Mhz).

Sua pinagem, assemelhasse ao do Arduino Mega, tendo, 54 pinos digitais de Entrada e Saída (sendo 12  pinos, PWM) e 12 pinos analógicos de 12 bits (aumentando a resolução para 2^12= 4.096 níveis de sinais), maior do que os antecessores que eram de 10 bits.

A má noticia é que os pinos digitais suportam agora uma tensão elétrica máxima de 3.3v, contra os antigos 5v. Tensões superiores, podem danificar a placa.

A placa possui 2 conectores USB, um para ligação a dispositivos USB (Native USB) e outro especialmente dedicado a programação do chip (Programming port).


Esta disponível também (nos pinos CANTX e CANRX) o protocolo de comunicação CAN (usado na industria automobilística, principalmente), podemos esperar novas aplicações por ai!

O IDE que suporta o Arduino Due, é o de versão 1.5.0 BETA.

quarta-feira, 23 de maio de 2012

Código para testar sensor ultrasônico

Olá,


Copie e cole o código abaixo no IDE do Arduino, ative o "Serial Monitor" e teste as distâncias informadas, consegui leitura de 2,5cm á 250cm com o SR04.


// programa para o sensor ultrassonico
int ledPin = 13; //configura o pino 13 da Arduino para conexão do LED
int trig = 8;    //configura o pino 8 da Arduino para conexão do Trig do sonar
int echo = 11;    //configura o pino 11 (PWM) da Arduino para conexão do Echo do sonar

void setup( ) {
    pinMode(trig, OUTPUT);   //define o pino 8 como um output (envia sinal do sensor)
    pinMode(echo, INPUT);    //define o pino 7 como um input (recebe sinal do sensor)
    pinMode(ledPin, OUTPUT); //define o pino 13 como um output (aciona o LED)
    Serial.begin(9600);    
    Serial.print("distancia");
}

void loop(){
    float tempo, cm;
    //comandos para enviar um pulso do sonar e armazenar o tempo de resposta
    digitalWrite(trig, LOW);
    delayMicroseconds(2);
    digitalWrite(trig, HIGH); //ativa o sonar por 10 microssegundos
    delayMicroseconds(10);
    digitalWrite(trig, LOW);
    delayMicroseconds(2);
    tempo = pulseIn(echo, HIGH);  // tempo, recebe o tempo de ida e volta do sinal
    cm =  tempo/29/2; //converte duration em centímetros
    Serial.println(cm);
    // Se cm menor ou igual a 30, liga o LED
    if (cm <= 30)
    {
        digitalWrite(ledPin, HIGH);
    }
    else
    {
        digitalWrite(ledPin, LOW);
    }
}

sábado, 12 de maio de 2012

Programa para teste do sensor de linha

Olá,

Desenvolvi uma nova versão do programa de TESTE do sensor de linha (chão). O arquivo já esta com a nova extensão de arquivos do Arduino 1.0 (.ino). Pode ser aberto também com o Bloco de notas ou o Wordpad, pois é um arquivo formato texto.

BAIXAR

terça-feira, 1 de maio de 2012

Esquema Sensor de Linha

Olá, Segue abaixo esquemático da PCI (Placa de Circuito Impresso) do sensor de linha. Em virtude do circuito ser bastante simples, pode ser desenhado a mão com caneta sobre a placa.


O resistor R1 pode ser de 240 ou 220 Ohms. Tenha atenção com a polaridade dos componentes o fotodiodo (Tx) e o fototransistor (Rx) têm polaridade (+ e -).
Sugiro também, que Tx e Rx não seja soldados diretamente na placa, mas sim, ligados através de fios (Vermelho para positivo e Preto para Negativo). Dessa forma,  Tx e Rx podem ser fixados no robô na parte inferior (lembre-se de 5 á 15 mm do chão) e a placa na parte superior, em local protegido.

sábado, 28 de abril de 2012

Contatos Elétricos

Olá,

Em razão dos possíveis choques mecânicos que o robô possa vir a sofrer, todos os contatos e emendas elétricas, devem ser reforçados.A figura ao lado indica a melhor ligação de fios com a placa do Arduino.
Solde o(s) fio(s) em uma barra de terminais e proteja a com fita isolante ou preferencialmente, espaguete térmico (1.5mm a 2,5mm).

Barra de pinos

 
Espaguete térmico


 

quinta-feira, 10 de novembro de 2011

Baterias de célula de Lítio

Olá,

ATENÇÃO: Muitas equipes, estão usando as baterias de célula de Li-Po, Li-Ion, Li-Fe ou mesmo as baterias de Níquel. Em virtude das grandes correntes que são fornecidas por essas baterias, seguem algumas recomendações:

A) Nunca toque o fio Preto  no Vermelho da saída de alimentação, irá fechar um curto-circuito. Perigo de incêndio e liberação de gás tóxico.


B) O melhor precaução contra acidentes, é isolando com fita isolante ou melhor, com conectores apropriados, os terminais.



C) O contato dos circuitos externos a bateria, deve ser realizado com terminais macho apropriados, e não com soldagem de estanho e/ou fitas isolantes.

D) Esta disponível no laboratório de física, o carregador do Prof. Dourival, para baterias de Lítio e Níquel.


terça-feira, 8 de novembro de 2011

sábado, 5 de novembro de 2011

Fotos Apresentação Integrador Sumô de Robô

Parabéns a todos pela apresentação dos equipamentos, seguem algumas fotos do evento. Continuemos, com este ânimo na segunda fase do projeto, a competição.

















quarta-feira, 2 de novembro de 2011

Programa para Robô (COM Sensor Ultra Som v1.2)


Olá,

Segue o código do robô (COM Sensor Ultra Som). Só deve ser ajustado os pinos de ligação na primeira parte do código.

O arquivo abaixo esta no formato (.INO) do Arduino, formato texto. Pode ser aberto no bloco de nota ou diretamente pelo programa do Arduino a partir da versão 1.0.

LINK:  Versão 1.3r (09/11/2012) - Esta versão é para PonteH a rele, não há controle de velocidade.


Qualquer dúvida, encaminhar ao Email: ViniciusCostaPinto@gmail.com





terça-feira, 1 de novembro de 2011

Programa para Robô (Sem Sensor Ultra Som) - v1.4

Olá,

Segue o código do robô (Sem Sensor Ultra Som). Só deve ser ajustado os pinos de ligação na primeira parte do código.

O arquivo abaixo esta no formato (.INO) do Arduino, formato texto. Pode ser aberto no bloco de nota ou diretamente pelo programa do Arduino.

LINK Versão 1.4 (28/11/2013)


Qualquer dúvida, encaminhar ao Email: ViniciusCostaPinto@gmail.com

domingo, 30 de outubro de 2011

Sistema de Potência (Bateria)

Olá,

Para quem ainda não decidiu sobre o sistema de bateria a usar, uma alternativa seriam as baterias de Parafusadeiras sem fio, muito vendidas ultimamente. Recentemente comprei uma de 14,4v (ideal para os robôs) por R$ 145,00. Este preço é de uma bateria Li-Po de 4.500mAh. Na maleta veio; 2 baterias de 14.4v (sim duas!!), um carregador e de quebra um excelente motor da parafusadeira. A bateria pesa em torno de 700 gramas.

Teste que efetuei hoje:

1 Bateria de 14.4v de parafusadeira sem fio 
1 Motor de vidro de carro (com 1kg de carga)

Resultados:

Tempo de trabalho: 20  + 17  = 37 minutos com força plena (efetuei duas medições com um intervalo, pois o motor estava esquentando muito).

Bateria fornece mais de 4,8A de corrente nominal.




LED (PARA SINALIZAR QUE ESTA LIGADO)

Olá,

Segundo o regulamento, todos os robôs devem ter um LED (qualquer cor, com um resistor em série de 470 Ohms) para sinalizar que esta ligado.






Quando o árbitro ordenar que ambas as equipes liguem seus robôs na arena, o LED deve piscar por 5 segundos e depois permanecer acesso.

Observação: Durante os 5 segundos iniciais, o robô deve ficar imóvel na arena.

Estou colocando na programação para que o LED pisque 5 vezes (uma a cada segundo) e depois permaneça acesso (quando será também , efetuado o movimento dos motores).

sexta-feira, 28 de outubro de 2011

Conectores para placa Arduino

Olá,

Todos tem que ter em mente que as conexões com a placa Arduino, devem esta bem firme, para que em competição, os fios não venham a se soltar. O conector abaixo pode ser fixado nos da placa, e os fios dos sensores e motores, soldados a este.


Teste com pilhas AA (Ni MH)

Olá,

Estou postando um teste que realizei com pilhas AA de 4.800 mAh. Criei um pacote (pack) com 12 unidades em série ( 12 x 1.2v = 14.4v). Liguei o pacote a 2 motores de vidro de carro (conforme a foto abaixo)

Apesar das pilhas não estarem completamente carregadas, a corrente inicial foi de 3A e o teste terminou com corrente de 0.96A. O tempo de uso foi de 26 minutos. As pilhas esquentaram bastante, chegando a 39 C.

Vou realizar um outro teste, com carga máxima das pilhas e vou postar, os resultados. Também vou efetuar a pesagem do pacote.




segunda-feira, 24 de outubro de 2011

Código do Arquivo: Motor.h

Este código deve ser "colado" no bloco de notas, e salvo com o nome "Motor" e a extensão ".h" ao invés de ".txt". Lembre-se de salvar o arquivo na pasta do arquivo de código do teste de motores.

Código Abaixo:


 /* *******************************************************************************************
  Funcao para conversao do valor de potencia do motor de decimal para porcentual
********************************************************************************************/
int calcularPotencia(int potencia)
{
  return ( (float)potencia / 100 * 255 ) ;
}


/* *********************************************************************************************
  Funcao de controle do motor
*********************************************************************************************
*/
int motor(boolean sentidoHorario, int potenciaSaida, int pinoHorario, int pinoAntiHorario, int potenciaAtual)
/*
  sentidoHorario: 1 = Horario, 0 = Anti Horario
  potencia: Potência a ser colocado o motor, vai de 0(%) a 100(%)
  pinoHorario: pino digital (com PWM) para rotacao sentido horario do motor
  pinoAntiHorario: pino digital (com PWM) para rotacao sentido horario do motor
*/
{
  potenciaSaida = calcularPotencia(potenciaSaida);


  int x = 0, pino = 0;


  if( potenciaAtual <= potenciaSaida)
  {
    for(x=potenciaAtual+1; x<=potenciaSaida; x++)
    {
      analogWrite( (pino = (sentidoHorario?pinoHorario:pinoAntiHorario) ) , x);
    }
  }
  else
  {
    for(x=potenciaAtual-1; x>=potenciaSaida; x--)
    {
      analogWrite( (pino = (sentidoHorario?pinoHorario:pinoAntiHorario) ) , x);
    }
  }
  return (x);
}

Codigo de Exemplo do Controle dos Motores


// O arquivo abaixo (Motor.h) deve esta na mesma pasta desse arquivo (TesteMotor.pde)
#include "Motor.h"


// Funcao setup()
void setup()
{
  //Seta os pinos dos motores para saida
  pinMode(10, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(6, OUTPUT);
}


int potenciaSaidaMotor1 = 70;      // Em porcentual
int potenciaSaidaMotor2 = 60;      // Em porcentual
boolean direcaoMotor1 = 0;         // 0 = Anti horario
boolean direcaoMotor2 = 1;         // 1 = horario


// Atencao: todos os pinos abaixo devem ser PWM, para controle da velocidade do(s) motor(es)
int pinHorarioMotor1 = 11;
int pinAntiHorarioMotor1 = 10;
int pinHorarioMotor2 = 9;
int pinAntiHorarioMotor2 = 6;
  
// Exemplo de acionamento dos motores (1 - Motor da Direita e 2 - Motor da Esquerda)
void loop()
{
  int static motor1 = 0;          // Potencia inicial/atual do motor1
  int static motor2 = 0;          // Potencia inicial/atual do motor2
   
  /*
    O exemplo abaixo movimenta o motor direito no sentido Anti horario com potencia de 70% e
      movimenta o motor esquerdo no sentido horario com potencia de 60%.
    O sentido anti horário no motor da direita, efetua o movimento para frente e o sentido horario
      no motor da esquerda, tambem efetua o movimento para a frente. Como as velocidades finais 
      são ligeiramente diferentes (70% e 60% da potência dos motores), o robo ira efetuar uma 
      curva em parabola para a esquerda.
  */  
  
  // Funcao para acionar o motor 1 - direito
  motor1 = motor(direcaoMotor1, potenciaSaidaMotor1, pinHorarioMotor1, pinAntiHorarioMotor1, motor1);
  // Funcao para acionar o motor 2 - esquerdo
  motor2 = motor(direcaoMotor2, potenciaSaidaMotor2, pinHorarioMotor2, pinAntiHorarioMotor2, motor2);
  delay(2000);
}

sábado, 15 de outubro de 2011

Simulador para Arduino

Olá,

Não deixe de baixar o simulador (OpenSource) do Arduino Fritzing. Muito bom, principalmente para quem ainda esta sem a placa para testar.

Ele simula o circuito de testes na placa de protótipo, tem editor de programação e cria a PCI (Placa de circuito impresso).

Estou criando um circuito sensor de linha com LDR, usando o simulador. Em breve publico o esquemático, PCI e resultados. Me parece, a princípio, ser mais sensível do que o circuito com LED IR.

Abraços.




Transmissão e Rodas

Olá,

A transmissão da força do motor as rodas, não necessariamente precisar ser com correntes, a Ferreira Costa (em frente a Unijorge), tem uma divisão de correia e polias, uma de rodízios e uma de eixos lisos ou rosqueados.


ATENÇÃO: Ponte H a relé (ou relay. Relê nunca!)

Olá,

Quem não montou ainda a Ponte H a relé, segue abaixo lista de material: (Atenção para adquirir Relés de 5 Volts de Entrada (Controle).

4 Relés de 5V entrada, 10A de saída, NA (Normalmente Aberto, isso é importante.)
4 Transistores, BC 546 ou BC 547 ou BC 548 (Tipo NPN).
4 Diodos retificadores (1N4007)
4 LED´s para sinalização (3mm ou 5 mm) vermelhos.
4 Resistores para controle de corrente dos Led´s de 390 Ohms por 1/4 Watt.
4 Resistores de PullDown de 10K Ohms por 1/4 Watt.
2 Bornes de 4 pinos KRE-4 (pequeno).
3 Bornes de 2 pinos KRE-2 (pequeno).
1 Placa de Fenolite ou similar para circuito impressor, de 10cm x 10cm.
1 Percloreto para corroer a placa, 100g.
2 Metros de fio 22AWG (Vermelho, Preto e Verde).

Observação: Esta configuração, é para controle de 2 motores.