Академический Документы
Профессиональный Документы
Культура Документы
Nesta série, nós utilizamos a tecnologia Arduino para criar jogos de laser interativos
básicos chamados 'Duino tag:
Parte 1: Aprender os princípios básicos do Arduino, esboçar o projeto e fazer uma
experiência que ajudará você a entender como funciona o Infravermelho.
Parte 2: Construir e testar a parte receptora da arma do 'Duino Tag, incluindo o teste.
Parte 3: Construir o transmissor e concluir a arma do 'Duino Tag.
Para prosseguir, você não precisa ter nenhuma experiência com eletroeletrônicos,
embora a experiência com o trabalho com componentes eletroeletrônicos certamente
possa ajudar muito. O mesmo pode ser dito sobre o trabalho com um
microcontrolador. Se tiver trabalhado com microcontroladores, você já estará em
vantagem, mas lembre-se de que a plataforma Arduino é totalmente adequada para
pessoas sem essa experiência. Acima de tudo, você deve estar disposto a ampliar
suas habilidades. O trabalho com eletroeletrônicos e microcontroladores pode ser
uma experiência compensadora. Muitos engenheiros de software não têm a chance
de gravar código para dispositivos que criam uma interface com o mundo físico, e o
Arduino fornece um ponto de entrada de baixo custo para o trabalho com
dispositivos interativos.
Este tutorial, Parte 1, em uma série de três partes, "Construindo um Jogo de Laser
Baseado no Arduino", se concentra nos princípios básicos do Arduino. Vamos fazer
uma introdução ao uso do Arduino e examinar os princípios básicos de linguagem e
API. Vamos preparar o projeto 'Duino tag, incluindo princípios básicos de design e a
criação de uma lista de peças. Vamos aprender sobre como solicitar peças on-line,
onde procurar e quais peças são necessárias. Por fim, utilizando alguns
componentes em estoque e alguns códigos de teste básicos, demonstraremos os
princípios básicos que controlam como funciona a arma.
Requisitos do Sistema
Introdução ao Arduino
O que É Arduino?
Introdução
Para se criar uma interface com o hardware Arduino, você precisa instalar o
software. Faça o download para o seu sistema operacional e siga o guia de
instalação e configuração passo a passo apropriado (consulte Requisitos do
sistema). Eles seguem as mesmas etapas:
Descompacte o software
Instale o driver USB para o Arduino
Conecte a placa
Ative o software
Faça o upload de um exemplo
Nós não cobriremos cada etapa detalhadamente, já que elas são diferentes de um
ambiente para outro. Vamos discutir o software e o exemplo Blink.
Esta linha diz a você imediatamente quais linhas na linguagem Arduino terminam
com ponto e vírgula. Além disso, ela diz quase tudo que precisamos saber sobre a
declaração de variáveis na linguagem Arduino. A sintaxe: Declarar o tipo de variável,
declarar o nome da variável, configurar o valor inicial da variável. Além do tipo int, a
linguagem Arduino suporta int sem sinal, Boolean, char, char sem sinal, byte, long,
long sem sinal, float, double, string e array. Encontre detalhes sobre cada tipo de
dado em Referência de Linguagem Arduino, mas observe também o tipo array. Cada
método mostrado na Listagem 3 é aceitável quando se declara uma array.
Após a função setup ser executada, a função loop é chamada, indefinidamente, até a
placa Arduino ser desligada ou algum evento cataclísmico criar uma lacuna no
espaço e no tempo. É na função loop que, normalmente, fazemos a maior parte do
nosso trabalho, atendendo à entrada do sensor e acionando alguma forma de saída.
Assim como com a função setup, cada esboço deve ter uma função loop, mesmo
que a função esteja vazia.
Além do que aprendemos do exemplo Blink, existem outras coisas que devemos
mencionar resumidamente sobre a linguagem Arduino:
Estruturas de controle mais familiares são suportadas (if, while, for, switch, etc.).
Operadores aritméticos, de comparação, booleanos, bit a bit e compostos são todos
padrão.
A linguagem suporta nativamente certas funcionalidades matemáticas,
trigonométricas, de número aleatório e de comunicação serial.
Podemos incluir bibliotecas externas utilizando instruções #include na parte superior
do esboço.
Socialmente falando, este é um grande projeto para se trabalhar com amigos. Adoro
criar dispositivos em minha oficina, mas às vezes é divertido sentar ao redor de uma
mesa com alguns amigos para trabalharmos juntos. Como esses dispositivos
destinam-se a interagir uns com os outros, é quase impossível construir apenas um.
Ao envolver amigos, você facilita seu próprio trabalho. Você tem mais sensores para
atirar e mais armas para testar seu próprio sensor. Isso leva à inevitável conclusão: é
divertido. Quando o 'Duino tags estiver ativo e em execução, você será obrigado a
disparar contra seus amigos imediatamente.
E, por fim, em vez de comprar um dispositivo inexplorável e pronto para uso de uma
loja, você terá feito coletivamente sua própria criação. Se não gostar da forma como
ele funciona, você altera o dispositivo ou altera suas regras. Você pode terminar
gastando um pouco mais do que gastaria comprando uma unidade de prateleira
barata, mas, no final, você terá algo que pode desmontar, reprogramar e que
realizará a todas as suas vontades. Não é simplesmente algo você pode comprar de
sua cadeia de lojas de brinquedos nacional favorita.
Agora que você já confia no projeto, vamos falar sobre a arma do 'Duino tag. O que
ela fará? Como ela funcionará? De quais componentes você vai precisar? Como
você encaixotará o eletroeletrônico?
Existem mais variações de regras que poderiam ser incluídas aqui, mas aqui é o
lugar ideal para começarmos. No código, nós escreveremos e estabeleceremos o
seguinte conjunto de regras:
Cada arma possui seis tiros seguros. Não há recarga. Esses tiros podem ser
disparados sem perigo.
Cada jogador pode fazer seis acertos. Após fazer seis acertos, o jogador será
eliminado.
Cada tiro que um jogador disparar após o sexto aumentará a possibilidade de uma
falha catastrófica da arma. No caso dessa falha catastrófica da arma, o jogador será
eliminado.
Falando português claro, você pode sofrer seis disparos e pode disparar seis vezes.
Após ter utilizado seus seis disparos seguros, cada vez que você disparar um tiro, as
chances de sua arma falhar aumentam. Se sua arma falhar, você será eliminado.
Com base nessas regras simples e em algumas instruções dadas antes neste
tutorial, podemos estabelecer alguns princípios básicos sobre o hardware:
'Duino tag é baseada em infravermelho.
A arma age como um emissor e um sensor.
A arma precisa de algum tipo de acionador.
A arma emite sons.
A arma deve ser durável.
Este tutorial não gastará muito tempo falando sobre como encaixotar sua arma do
'Duino tag. Após os eletroeletrônicos funcionarem, falaremos sobre as opções para
se criar ou adequar diferentes caixas para o projeto. Agora que o comportamento já
foi traçado, é hora de especificar o hardware. Mas não podemos ir muito longe sem
falar um pouco sobre como os sensores infravermelhos funcionam.
É assim que a arma do 'Duino tag funciona em sua essência. Esse meio requer um
determinado tipo de sensor de IR. Nós discutiremos isso agora, conforme falamos
sobre as peças que são necessárias e onde elas podem ser obtidas.
Peças
Conforme mencionado, precisamos de uma placa Arduino. Vejamos o que mais será
necessário.
LED infravermelho
Não há nada de especial no LED. Usei um LED de IR de três-quartos T1 da All
Electronics.
Sensor infravermelho
Esta série foi escrita utilizando um Sensor Infravermelho TSOP2138YA (também da
All Electronics).
Comutador transitório de um pólo
É o acionador, portanto, queremos algo que não seja muito pequeno e nem muito
grande.
Elemento Piezo
Utilizamos para emitir sons. Sugiro o uso de um pequeno e revestido.
fiação solid ou stranded com 22 calibradores
Precisamos de duas cores. Não precisamos de muito — um metro no máximo.
Resistores
Precisamos de dois resistores diferentes. Um resistor de 100Ω (100 ohm ou marrom-
preto-marrom), um resistor de 10kΩ (10000 ohm ou marrom-preto-laranja) e um
resistor de 82Ω (82 ohm ou cinza-vermelho-preto).
Capacitores
Precisamos de um capacitor de 0.1uF.
Lente
Uma pequena lente de aumento (de três quartos a uma polegada de diâmetro) — na
primeira vez, você pode utilizar aquela lente de plástico barata que ganhou como
lembrancinha em uma festa.
Tubo
Um pequeno cano de PVC ou outro tubo rígido.
Você deve estar preparado para andar na Radio Shack e encontrar tudo que precisa
para concluir esta série. Se você preferir comprar de um revendedor on-line, veja
aqui três recomendações:
Digi-Key
Oferece uma variedade de componentes eletrônicos com preços razoáveis
Mouser
Outra excelente fonte de componentes eletrônicos on-line
All Electronics Corp.
A seleção é um pouco mais limitada do que das outras duas, mas fiquei satisfeito
como cliente
Consulte Recursos para conhecer esses varejistas on-line. Como alternativa, uma
simples procura na Web também apresentará várias opções. Se você decidir
comprar em outro lugar, lembre-se destas quatro questões:
Consulte o tempo de entrega, principalmente quando comprar de um vendedor da
eBay. Você pode encontrar vários componentes eletrônicos de vendedores da eBay,
mas muitas vezes os itens são enviados diretamente da China, o que pode levar
uma ou duas semanas.
Não compre nada que não tenha uma folha de especificações. Todos os
componentes eletrônicos possuem o que é conhecido como folha de especificações
que lista diversas informações vitais sobre voltagem, fiação, etc. Se você não tiver
estas informações em mãos, o trabalho com seus componentes pode se transformar
em um desafio.
Pechinche. Os preços dos componentes variam muito. Não tenha medo de fazer
uma referência cruzada dos preços oferecidos em sites diferentes. A menos que
esteja fazendo um pedido muito grande, não fará muito sentido comprar sensores
em um site e LEDs em outro. Mas ainda assim você deve verificar se está
comprando por um preço competitivo.
Seja preciso com números de modelos, principalmente com o sensor de IR. Isso
pode parecer óbvio se você já tiver trabalhado com eletroeletrônicos antes, mas
pode parecer pouco óbvio se você for novo nesta área. Os sensores de IR têm
vários fabricantes e modelos, além de terem aparência semelhante, mas suas
frequências são diferentes. A frequência é importante.
Enquanto espera as peças chegarem, vamos fazer algo interessante com o Arduino.
Isso ajudará a aguçar sua vontade de começar o projeto, bem como a introduzir uma
capacidade pouco conhecida do LED. Esta experiência não terminará como parte do
projeto concluído, mas vai ajudar você a ter um melhor entendimento de como
funciona a frequência. Além disso, ela permitirá que você se envolva completamente
com o software e o hardware Arduino.
Vamos fazer uma pequena experiência que nos ensine algo novo sobre o LED e que
nos ajude a entender tudo sobre frequência.
Em seguida, vamos gravar um pequeno código para escutar o pino 0 Analog e fazer
a leitura para o monitor serial (eu avisei que voltaríamos nisso).
void setup()
{
// Inicialize a Interface Serial
Serial.begin(9600);
}
void loop()
{
// Faça uma leitura no Pino Analog
val = analogRead(recvPin);
// Emita o valor detectado
Serial.print("DETECT : ");
Serial.println(val);
// Aguarde para fazer a próxima leitura.
delay(wait);
}
Você pode ver que não há muita coisa neste código. Nós configuramos algumas
variáveis, inicializamos a interface serial e fizemos leituras a partir da entrada
analógica uma vez por segundo. É um script simples, mas com efeito super
interessante. Salve o script e faça seu upload para o hardware Arduino. Após o
upload ser concluído, clique no botão Serial Monitor na parte superior da janela do
Arduino. Isso vai reconfigurar a placa Arduino e, a partir daí, você começará a ver
algumas leituras aparecendo na área de janela na parte inferior. Diminua as fontes
de luz e observe as leituras. Elas devem ser semelhantes à Figura 2.
Você pode ver que a entrada analógica, que percorre uma escala de 0-1,023, pulou
para quase 90 quando a lanterna elétrica iluminou o LED. Mais uma vez, os números
podem variar muito, dependendo da luz ambiente, da escolha do LED e da força da
lanterna elétrica. Mas basicamente, isso se refere a sensores de luz.
Agora, para fazer uma comparação, acenda várias luzes em torno do hardware
Arduino, de modo que haja bastante luz ambiente, e observe como as linhas de base
aumentam.
Você pode ver que os números de linha de base aumentaram cerca 40, ocasionando
um salto menos distinto quando o LED entra em contato com outras fontes de luz.
Nesse exemplo, ainda podemos dizer quando a lanterna elétrica está iluminando
diretamente o LED.
Mas se você tivesse que trabalhar com muito mais luz ambiente, ou se precisasse
lidar com algo que dispersasse a fonte de luz (como uma luz muito distante do LED),
as diferenças numéricas ficariam muito mais sutis. Para ilustrar isso, configure o
Arduino de uma maneira que você possa direcionar a luz da lanterna elétrica para o
LED do outro lado da sala e examine os resultados.
Além de mostrar uma nova forma interessante de se usar o LED básico, este
exemplo ajuda a ilustrar a dificuldade inerente ao trabalho com luz ambiente visível e
detecção de luz. Você pode imaginar quão complicado este problema pode se tornar
quando o trabalho envolve algo como infravermelho, que é quase onipresente e
invisível a olho nu.
Agora que o sensor de luz está funcionando, modifique o código e utilize-o como
uma oportunidade para aprender um pouco sobre frequência. Conforme aprendemos
anteriormente, o infravermelho está em todo lugar, portanto, os sensores precisam
filtrar tudo que não está sendo transmitido a uma frequência específica. Vamos
demonstrar nesta seção, de maneira rudimentar, como funciona a transmissão de
frequência. Isto aqui não deve ser uma experiência científica abrangente, mas pode
ajudar a ilustrar o conceito.
Modificando o Código
Nós alteraremos o código para que, quando a leitura de luz aumentar mais de 5 por
cento da linha de base, seja iniciado um ciclo que examine as próximas duas
leituras, emitindo um código específico baseado nos códigos detectados. Primeiro,
declararemos algumas variáveis adicionais. Precisamos de uma variável para
determinar quantas leituras devem ser feitas para se estabelecer o número da linha
de base da luz ambiente, uma variável para conter o saldo de leitura mínimo
esperado, um agente iterativo, uma array para conter os códigos diferentes e um
rastreio int para nos informar onde estamos no ciclo.
Se você salvou e fez upload deste código (é necessário ativar o monitor serial após
cada upload), você deverá ver quando as leituras estão sendo feitas. Ao acender
uma lanterna elétrica sobre o LED, você pode acionar um ciclo. As duas próximas
leituras (uma segunda separada) determinam qual código final é emitido. Você pode
acionar as diferentes saídas ligando e desligando a lanterna elétrica alternadamente
a uma frequência de uma vez por segundo. Por exemplo, se você acender a lanterna
elétrica sobre o LED por apenas três segundos, será necessário emitir a mensagem
"Explodir". Se você ligar a lanterna elétrica por um segundo, desligar por um
segundo e ligar por um segundo, você deverá acionar o código "Desligar". Aqui está
uma amostra da saída.
O que você está fazendo aqui é sinalizando uma mensagem binária a uma
frequência muito baixa. Isso se assemelha ao que faz a arma do 'Duino tag, embora
ela o faça a uma frequência muito mais alta.
Agora você deve estar preparado para mergulhar na criação e no teste da arma do
'Duino tag, que serão descritos no restante das séries.
Resumo
Antes de ir para a Parte 2, você deve reunir alguns suprimentos:
Um ferro de solda e um pouco de solda. Você não precisa ter nenhuma idéia, já que
não fará nenhuma soldagem simples ou complexa.
Um par de cortadores/desencapadores de fios. Aviso: Não use seus dentes para
desencapar os fios.
Os componentes eletrônicos descritos anteriormente.
Aprender
Visite o site oficial do Arduino.
"Build It. Share It. Profit. Can Open Source Hardware Work?" é uma introdução da
revista Wired ao Arduino e ao perfil dos desenvolvedores por trás dele.
Discutir
Participe de blogs do developerWorks e se envolva na comunidade do
developerWorks.