terça-feira, 14 de maio de 2013

segunda-feira, 13 de maio de 2013

Controlando Leds e Servo Motor pelo teclado usando CASE

Com os conhecimentos que possuimos ao longo do nosso curso, já podemos fazer uso da porta serial, a Serial Monitor, para a entrada e monitoramento de dados.
Podemos nos comunicar com o Arduíno de maneira que o mesmo responda ou execute alguma funçao ao receber um comendo via teclado. Isso é primordial para o nosso próximo passo, que será a comunicação sem fio e o envio de dados para um display.
No código abaixo podemos perceber que o Arduino vai esperar algum dado na serial ( pois fizemos uso da condicional "if" seguida de "serial.available". Lemos esse dado através do comando "Serial.read()"
Chamamos esse dado e armazenamos o valor na variável "posicao"
Usando a SWICTH CASE, estrutura que estudamos em C++ com "caso", facilita nossa vida ao invés de usarmos uma ifinidade de "IF". No lugar da estrutura se usamos a estrutura caso.
Caso o valor de posicao seja '1' ele liga o Led da porta 11, usamos 'q' para desliga-lo. O Led da porta 10 liga em '2' e desliga em 'w', e assim quantps quisessemos criar. Fiqeum livres para criar....
Ao digitarmos '3' na Serial, o nosso servo mortor ligado a porta que escolhemos ( no caso a 9 por ser PWM), o servo ficará em 180°, ou seja, com o braço para a direita, e assim seguindo as demais chaves.
Vejam o código :

#include <Servo.h>
Servo myservo;
void setup()
{
Serial.begin(9600);
pinMode(11,OUTPUT);
pinMode(10,OUTPUT);
myservo.attach(9);  // Porta de Ataque do servo
}

void loop(){
  if (Serial.available())
     {
      char posicao = Serial.read();          
      switch (posicao){
      case '1':
        digitalWrite(11,HIGH);
        break;
      case '2':
        digitalWrite(10,HIGH);
        break;
      case 'q':
        digitalWrite(11,LOW);
        break;
      case 'w':
        digitalWrite(10,LOW);
        break;
      case '3':
        myservo.write(180);
        break;
      case '4':
        myservo.write(90);
        break;
      case '5':
        myservo.write(0);
        break;

      }
      delay(10);
      Serial.println(posicao);
  }
}


Veja o resultado no video.
http://www.youtube.com/watch?v=zIGOWM8MDwo&feature=youtu.be
Usando a imagição ou sua necessidade, podemos implementar qq circuito eletrônico e condicioná-lo.


sexta-feira, 10 de maio de 2013

Como criar suas próprias funções no Arduíno

Existem 2 funções primordiais e mandatórias no Arduíno: a Setup e a Loop
Estudamos e conhecemos as 2, colocamos ela no nosso código chamando
Void Setup ( ) {} e Void Loop ( ) {}
Para criarmos as nossas, e otimizar nosso código implementando e reduzindo o tamanho do mesmo, devemos infiormar ou não parâmetros que podem ser definidos por variáveis ou constantes.
Vantagens de implementar funções:
  • Funções ajudam o programador permanecer organizado, muitas vezes, isso ajuda a montar o conceito do programa.
  • Funções codificam a tarefa em um único lugar, para que a funcionalidade seja pensada e depurada uma única vez.
  • As chances de erros em modificações reduzem drasticamente, no caso do código precisar ser alterado.
  • Funções reduzem o tamanho dos Sketches (projetos criados na IDE do Arduino, do inglês: rascunhos), pois seções de código podem ser reutilizadas diversas vezes.
  • Elas também tornam mais fácil reutilizar código, tornando-o mais modular, e com um efeito colateral benéfico: fica mais agradável de ler o código.
     
    No decorrer da execução do programa, quando for chamada a função, o sistema busca a função que vc criou no código e executa. 
    Pode ser uma simples multiplicação como pode ser a definição de uma nota musical. No caso da multiplicação os parâmetros são os fatores, e a função retornará o produtos dos mesmos. 
     
    Exemplo de um código bem simples que estudaremos em sala de aula

    void setup(){
      Serial.begin(9600);
    }


    void loop() {
      int i = 2;
      int j = 3;
      int k;
      k = Multiplicar(i, j); // variável k recebe o valor de resultado
      Serial.println(k);
      delay(1000); // a cada 1s envia o valor de 2*3 = 6 na serial
    }

    int Multiplicar(int x, int y){ //variáveis x e y recebem i e j
      int resultado;
      resultado = x * y;
      return resultado;
    }
     
    Qualquer dúvica deixe pergunta nos comentários, me procure no facebook  https://www.facebook.com/joud.dasanfona ou leia o link do Renato Aloi http://renatoaloi.blogspot.com.br/2011/11/funcoes-do-arduino.html

sábado, 16 de março de 2013

DOWNLOAD do FRITZING BLINK

Galera esse programinha é bacana pra poder desenhar e ilustrar os projetinhos de Arduíno.
É gratuíto. É só baixar e qualquer dúvida é só deixar perguntas nos ciomentários que ensinaremos tudo que estiver ao nosso alcance.


Escolha de acordo com seu sistema operacional.

http://fritzing.org/download/ 

sexta-feira, 15 de março de 2013

Baixe sua IDE para o Arduíno

IDE é o ambiente de desenvolvimento integrado para o Arduíno
É um software em JAVA que vai fazer a edição, verificação e compilação do código que vc escolher e editar.
É nele que vc vai fazer o UPLOAD para a sua placa ( ARDUINO), ou seja, é com ele que vc vai gravar o seu código para ser executado no Arduíno.
Clique no link a baixo e escolha de acordo com o seu Sistema Operacinal




Valeu!!!!

CONTROLANDO SERVO MOTOR COM POTENCIÔMETRO

Boas galeras
Segue aí abaixo o código para Arduíno usado para o controle de um Servo motor, através de um potenciômetro.
De acordo com a posição, ou variação da resistência do potenciômetro, a porta 9 do arduíno envia a informação do ângulo o qual o servo motor será posicionado.
No nosso exemplo abaixo usaremos um servo motor, ou seja, uma única articulação.
Vai da imaginação e criatividae de vocês para a criação de um braço robótico com mais articulações.
É só implementar mais o código incluindo mais servos e mais potencometros.
O esquema na Protoboard é esse da figura abaixo:
Código para a IDE do Arduíno ( é só copiar o texto abaixo em azul e colar na IDE)

// Controlando um servo motor através de um potenciômetro
#include <Servo.h>

Servo myservo;                                  // Criando Objeto Servo para controlar

int potpin = 0;                                    // Porta Analógica usada para conedtar o potenciometro
int val;                                               // Variável para ler o valor potenciômetro

void setup()
{
  myservo.attach(9);                         // Porta de Ataque do servo (digital_9)
}

void loop()
{
  val = analogRead(potpin);             // Lê o valor do potenciometro(0-1023)
  val = map(val, 0, 1023, 0, 179);     // mapeia a escala para 180 graus
  myservo.write(val);                       // envia posicão para o servo
  delay(10);                                      // tempo de resposta (pode ser mudado)
}

Aula Inicial de Introdução ao Arduíno

Aí galerinha
Obrigado a todos que participaram da nossa 1a aula
Foi um sucesso. Gostei muito e pretendo extender o curso.
Obrigado a Henrique Batinga, Rammyres Cezar, André Yan, Joadson Alves, Malu Adelli Cardoso, Daniel Brito Sampaio,  Diego Smith Rodrigues, Icaro Ribeiro Pinto, Julliano Prudente, Marcos Matheus, Lucas Felipe, Eden Chaves, Alisson Sena, Catarina Menezes, Paulo Roberto e Emanuele Magno, pela presença.Nosso próximo módulo será informado em breve.
Segue aí o vídeo da nossa primeira aula



Obrigado!!!
Breve postarei a aula em power point no nosso grupo no facebook
Agradecendo desde já o professor Leandro Mota Guimarães, do site
www.brasilrobotics.blogspot.com , que deixou disponível no google esta aula.
Lembrando a galera que eu editei esta aula de acordo com nossas necessidades.
A aula original está no link  http://www.google.com.br/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&sqi=2&ved=0CDsQFjAA&url=http%3A%2F%2Fwww.poli.br%2F~marcilio%2FArduino%2FMinicurso%2520Arduino.ppt&ei=iUZDUZq0G6GA0AHnroHQDA&usg=AFQjCNEh4aY7OWXr50szjkBf0fEjFMitfQ&sig2=WnfFjhheiJjzVvaKBpFcuw&bvm=bv.43828540,d.eWU