testes


5
set 10

O que dá pra fazer só com o Program-Me?

Essa idéia desse post surgiu no último ET (encontro técnico) do grupo ArduInRio. Eu levei o Program-Me para mostrar pro pessoal, e para não perder muito tempo eu separei alguns exemplos de código que eu já tinha testado. Aí eu reparei que muitos dos exemplos só usavam o Program-Me. Alguns exemplos usavam a placa com um potenciômetro, ou um servo, etc.. Mas na maioria dos exemplos simples que eu mostrei nem precisei de protoboard.

Então vou demonstrar com alguns exemplos do site oficial do arduino podem ser feitos usando o Program-Me, e mais nada (só alterando alguma configuração, se necessário).

Então vamos a eles.

Digital I/O

- Blink (http://arduino.cc/en/Tutorial/Blink)

Nada a fazer. Basta fazer o upload e executar.

- Blink without Delay (http://www.arduino.cc/en/Tutorial/BlinkWithoutDelay)

Nada a fazer. Upload e Run.

- Button (http://www.arduino.cc/en/Tutorial/Button)

Basta alterar a linha abaixo, de:

const int buttonPin = 2;     // the number of the pushbutton pin

para:

const int buttonPin = 0;     // the number of the pushbutton pin

Obs: O Program-Me já possui um botão extra. Ele está na porta digital 0.

- Button State Change Detection (http://arduino.cc/en/Tutorial/ButtonStateChange)

Mesma alteração do exemplo Button.

- Debounce (http://www.arduino.cc/en/Tutorial/Debounce)

Mesma alteração do exemplo Button.

- Tone (http://arduino.cc/en/Tutorial/Tone)

Alterar a linha abaixo de:

tone(8, melody[thisNote],noteDuration);

para:

tone(12, melody[thisNote],noteDuration);

Obs: O Program-Me possui um speaker na porta digital 12.

- Pitch follower (http://arduino.cc/en/Tutorial/Tone2)

Alterar a linha abaixo, de:

 tone(8, thisPitch, 10); 

para:

 tone(12, thisPitch, 10); 

Analog I/O

- Calibration (http://arduino.cc/en/Tutorial/Calibration)

Alterar as linhas abaixo, de:

const int sensorPin = 2;     // pin that the sensor is attached to
const int ledPin = 9;        // pin that the LED is attached to

para:

const int sensorPin = 5;     // pin that the sensor is attached to
const int ledPin = 6;        
Obs: O Program-Me possui um sensor de luz (LDR) na porta analógica 5 e um LED na porta digital 6 com PWM.

- Fading (http://arduino.cc/en/Tutorial/Fading)

Alterar a linha abaixo, de:

int ledPin = 9;

para:

int ledPin = 6;

Control Structures

- For Loop (http://arduino.cc/en/Tutorial/ForLoop)

Nada a fazer. Upload e Run.

Obs: Na verdade o Program-Me já possúi 9 LEDs, mas não na ordem exata usada no exemplo. A ordem dos LEDs é: [14, 1, 2, 3, 4, 5, 8, 6, 13]. Mas dá pra ter uma idéia do que o exemplo quer demosntrar ;)

- Arrays (http://arduino.cc/en/Tutorial/Array)

Nada a fazer. Upload e Run.

- While Loop (http://arduino.cc/en/Tutorial/WhileLoop)

Alterar as linhas abaixo, de:

const int sensorPin = 2;
const int ledPin = 9;
const int indicatorLedPin = 13;
const int buttonPin = 2;

para:

const int sensorPin = 5;
const int ledPin = 3;
const int indicatorLedPin = 13;
const int buttonPin = 0;

- Switch Case (http://arduino.cc/en/Tutorial/SwitchCase)

Alterar a linha abaixo, de:

int sensorReading = analogRead(0);

para:

int sensorReading = analogRead(5);

- Switch Case 2 (http://arduino.cc/en/Tutorial/SwitchCase2)

Nada a fazer. Upload e Run.

Conclusão

Bom estes são exemplos básicos, mas mostram bem o que pode ser feito com essa “plaquinha”. Existem outras coisas que podem ser feitas, como por exemplo aumentar ou diminuir o número de LEDs acesos de a cordo com a quantidade de luz captada, etc.. Aí vai da imaginação de cada um.

Alguns projetos simples também podem ser feitos até mesmo sem uma protoboard. Por exemplo ligar um potenciômetro e um servo. Mas isso fica para outro post.

Abs.


28
mai 10

Program-ME vs Arduino – Fight!

A idéia de fazer esse post surgiu a partir de uma pergunta no forum da comunidade do Program-ME no Ning. Um companheiro queria saber a diferença entre um Arduino padrão e o Program-ME antes de investir em um produto.

Nosso companheiro José Luiz respondeu muito bem a dúvida, mas achei que a resposta merecia um complemento. Decidi então dar meus 10 centavos, e dei a opinião de quem está começando nessa cachaça de eletrônica ;) e encontrou no Program-ME um dispositivo pronto pra briga. Minha resposta foi mais ou menos assim:

Posso te afirmar que isso tudo de bom que o Luiz escreveu para mim se resume em uma coisa: Muita coisa pronta para colocar a mão na massa ;)

Já fiz vários testes e brincadeiras só com o Program-ME. Sem precisar comprar nenhum componente extra.

Daí me veio a idéia de comparar os dois produtos em alguns testes básicos. Existem muitos tutoriais de como testar o Arduino com LED, PWM, LDR e outras coisas. Todos também se aplicam ao Program-ME, já que ele é 100% compatível com o Arduino. Mas a diferença que o produto da Globalcode foi pensado para ser o mais didático e fácil possível no ensino da computação física e na criação de experimentos em eletrônica. Então vamos ao que interessa.

Usando LDR

Nesse primeiro FIGHT eu vou comparar os dois dispositivos numa implementação usando um LDR.

Como eu não tenho um Arduino eu decidi colocar aqui um post bem didático do blog do Andre, que demonstra como usar o Arduino com um LDR. O post está bem legal. Muito bem explicado. Possui a lista de materiais necessários, detalhes do circuito que será criado, o programa para executar o teste, e como fazer o upload do programa e executar o teste. Show de bola! Mas percebam a quantidade de coisas que devem ser feitas para o programa funcionar.

O programa (abaixo) foi bem comentado pelo autor, e basicamente acende ou apaga o LED, se o LDR receber pouca ou mais luz, respectivamente (linhas 17 a 21).

/*# PROGRAMA ELABORADO POR ANDRED. #*/

int valor = 0;    // Variavel onde e guardado o valor lido do LDR
int led_pin = 13;  // Pino onde vamos ligar o LED
int analogin = 5; // Pino onde vamos ligar a LDR

void setup(){
  Serial.begin(9600); // Inicia A comunicação da porta Serial para que possamos ver o valor do LDR
}

void loop(){
  valor = analogRead(analogin); // O valor que irá ser lido na porta analogica numero 6 irá ser guardado na variavel “valor”
  Serial.print("O valor Da LDR e igual a: ");  // Mostrar na consola a frase “O valor Da LDR e igual a: “
  Serial.println(valor); // Mostras no Serial Monitor o valor da variavel “valor”
  delay(25); // Faz uma pequena pausa de 25 Mili Segundos

  if (valor < 300) { // Se a variavel valor for menor que 300
    digitalWrite(led_pin, HIGH); // acende o led da porta 8
  } else {
    digitalWrite(led_pin, LOW);
  } // se for maior mantem o led da porta 8 apagado

}

Agora pergunto. E se você não tem toda a lista de materiais e está doido para brincar? Quanto tempo ele gastou para finalizar esse experimento só para ver se o programa funcionava? Ou outro impeditivo qualquer. No caso do Arduino você terá, quase que necessáriamente, que seguir os passos que o André indicou, pois essas são as etapas básicas para brincar com Arduíno + LDR.

Agooooora, se você tem um Program-ME faça assim:

Viram a diferença?

Usando o Program-ME eu concluí o mesmo teste em menos de 1 minuto.

Eu só precisei fazer o upload do programa dele para o Program-ME e pronto. A plaquinha vem preparada para a batalha!! Já vem com 9 leds, 1 speaker, 2 entradas para conectar servo motores, 2 entradas para conectar pontenciometros, sensores de distância analógicos, 1 botão, e o já conhecido sensor de luminosidade (LDR), e etc..

Isso facilita muito, pois tudo já está soldado e testado, e economiza nossa grana e nosso tempo, pois já está comprado e nenhum investimento adicioal é necessário.

Claro que se vamos criar nosso próprios projetos e inventar trapizongas, então mexer com solda, protoboard, e etc é necessário, e até muito legal ;) Mas eu acho muito legal poder fazer vários testes e brincadeiras (principalmente para estudar a linguagem de programação) sem precisar estar à volta com fios, solda, e outras coisas só para fazer uma brincadeirinha.

Program-ME WINS

Não quero dizer que o Program-ME é melhor que “x” ou “y”, até porque não ganho comissão, nem nada. Essa é a opinião de uma pessoal que encontrou tudo que precisava em um produto, e até agora está muito satisfeita com tudo. A qualidade do dispositivo é excelente e o atendimento da GC é ótimo.

Vou tentar colocar mais alguns “fights” entre os dois dispositivos mais para frente, mas para começar tá bom.

Fico por aqui.

Abs.