sexta-feira, 28 de maio de 2010

Arduino - Parte 3

Chegamos a 3ª postagem sobre Arduino, caso tenha perdido as postagens anteriores, leia a 1ª postagem aqui, e a 2ª postagem aqui. Até o momento você já sabe o que é Arduino, a que se pode fazer com uma placa Arduino, onde comprar no Brasil, e também aprendeu sobre a placa Arduino Duemilanove.
Na postagem de hoje vamos começar a botar a mão na massa, primeiro vamos instalar a nossa placa Arduino no computador e aprender sobre a interface do software de programação:
Instalando a placa Arduino no Windows:
Vamos seguir o passo-a-passo que deve existir em todos os cantos da internet, mas com a diferença que durante o "andar da carruagem" eu vou ir comentando o que aconteceu comigo... (Porque eu sempre tenho problemas com essas coisas?!...).
1º) Pegue o Cabo USB e a sua placa Arduino:

Primeiro conecte seu cabo USB na placa Arduino, pois fica mais fácil depois conectar apenas no computador. 
2º) Baixe a versão mais recente do programa:
Acesse este site e baixe a versão mais atual do programa (no momento é: Arduino 0018). Preferencialmente descompacte a pasta para a unidade C: de seu computador, cuidando para manter a estrutura das subpastas da mesma.

3º) Instale o JAVA:
É isso mesmo, nenhum outro tutorial fala isso, o ambiente de desenvolvimento do Arduino é implementado em Java, então você deve instalar o JRE na sua máquina para funcionar. Para isso acesse este link e baixe a versão mais atual do java para sua máquina.
4) Conecte a placa no computador:
Agora que você já instalou o Java na sua máquina, conecte a placa no computador através do cabo USB, se estiver tudo certo o LED de alimentação irá acender (caso tenha dúvida da localização, veja a postagem anterior onde explico as principais partes da placa Arduino Duemilanove).
5) Instale os Drivers:
É nesta parte que "nem tudo são flores", devo ter lido uns 10 tutoriais de como fazer isso, e assistido uns 5 vídeos no Youtube sobre esse processo, agora eu pergunto: Para que eles serviram? - Para absolutamente nada!!
Todos os tutoriais dizem, conectar a placa no PC, instalar o drive do Chip FTDI, e depois o do ATmega e pronto, assim parece fácil, mas de cara percebi que não ia ser tão simples assim. Tanto na vez que conectei a placa no computador (Windows XP) quanto na vez que conectei no notebook (Windows 7) tive problemas, ambos sistemas não reconheceram o dispositivo e não mostravam o maldito "balão" onde a gente clica para instalar manualmente os drivers, apenas aparecia a mensagem de dispositivo não reconhecido.
Neste momento já estava "P" da vida (sim...eu me estresso facilmente!) então resolvi ir direto no site do fabricante do chip FTDI, que é o responsavel pela comunicação USB com a placa, e é este driver que deve ser instalado antes.  
Acessei essa página e baixei a versão mais atual do driver (a versão que vem com o software Arduíno pode não ser a mais atual), tentei instalar umas 3 vezes, depois reiniciei o PC e "magicamente" funcionou, o computador reconheceu a placa e terminou de instalar os drivers. (Na prática não foi tão fácil e rápido assim..)
Abri o software Arduino e fiz upload do exemplo "Blink" para a placa,  para testar. Problema 1 resolvido, problema 2: instalar os drivers no Windows 7.
Quem disse que isso foi fácil.... nossa, passei mais de uma hora tentando instalar (não adianta perguntar, fiz de tudo que até esqueci), quando finalmente instalei os drivers e fiz o upload do exemplo "Blink" e percebi que estava funcionando normalmente, depois tive que desligar o notebook para sair, quando volto ligo novamente o note conecto a placa e adivinha..... O Windows 7 não reconheceu o dispositivo (mas, essa droga já não estava instalada?), e eu perdi mais uma meia hora para fazer voltar a funcionar.
Instalei tudo novamente e pelo menos não tive mais problemas, nem no PC e nem no note.
6) A interface da Aplicação:
Na imagem a seguir vemos a interface do programa:
 De cima para baixo temos a Barra de Titulo que mostra o nome de sua aplicação (chamada de Sketch pelo software) e a versão do aplicativo (neste caso 0018), depois temos a Barra de Menus onde o principal é o menu Tools, onde selecionamos o modelo da placa e a porta de comunicação (a porta que devemos usar aparece no momento da instalação do driver), depois disso temos uma simples barra de ferramenta que será comentada a seguir com mais detalhes, e na área em branco, temos nosso espaço para programação, é nesta parte que escrevemos o código.
7) A barra de Ferramentas:

Nesta barra temos as principais tarefas a nossa disposição, para saber o significado de algum botão, basta passar o mouse sobre o mesmo e logo após o último botão irá aparecer ser significado.
Os principais que devemos saber o significado são respectivamente o primeiro botão, que serve para compilar o código e o penúltimo que serve para fazer o upload do código para a placa.
Também temos a disposição um botão para abrir (seta para cima) e um botão para salvar (seta para baixo) um Sketch.
Para não ficar uma "tripa" maior ainda a postagem, a parte de trabalhar no código e fazer o upload do mesmo para a placa fica para a próxima. Até mais....
Fonte:
- http://arduino.cc/en/Guide/Windows;

segunda-feira, 17 de maio de 2010

Arduino - Parte 2

No post anterior, você começou a aprender sobre o Arduino, o que é, o que pode ser construído, onde comprar no Brasil e viu alguns projetos que se pode fazer, essa postagem é para vocês se familiarizarem com o Arduino Duemilanove, a minha placa chegou semana passada na quinta-feira. 
Porque Duemilanove? 
O nome da placa significa 2009 em Italiano, e foi o ano de lançamento da mesma, substituda da Diecimila.
Caracteristicas:
Microcontrolador: ATmega328
Voltagem operacional: 5V
Voltagem de alimentação (recomendada): 7-12V
Voltagem de alimentação (limites): 6-20V
Pinos I/O digitais: 14 (dos quais 6 podem ser saídas PWM)
Pinos de entrada analógica: 6
Corrente contínua por pino I/O: 40 mA
Corrente contínua para o pino 3.3V: 50 mA
Memória flash: 32 KB (2KB usados para o bootloader)
SRAM: 2 KB
EEPROM: 1 KB
Velocidade de clock: 16 MHz
Partes da Placa:

1 - Bandeira da Itália: a placa Arduino Duemilanove possui 2 tipos o "a" (no lugar da bandeira diz apenas "made in Italy") e o "b" (possui a bandeira da Itália - a minha é desse modelo).
2 - Entrada USB: é do tipo AB, daqueles de impressoras USB, esta porta USB possui ainda um fusível de proteção, se alguma coisa fizer com que seja aplicada uma corrente maior que 500mA na porta USB do seu computador, o fusivel corta a corrente até que o curto ou a sobrecarga seja removida.
3 - Chip FTDI: Chip responsável pela conversão de serial para USB, sem este chip sua placa teria uma saída serial e não USB. (site do fabricante do chip) O primeiro driver a ser instalado no PC é o deste chip.
4 - LEDs TX e RX: Estes leds indicam quando há uma comunicação entre o computador e a placa arduino, mais especificamente, quando o chip FTDI está "trabalhando", pois o RX indica que o chip está recebendo sinal e o TX que está transmitindo (por exemplo uma "resposta" para o computador).
5 - Botão Reset: Nas versões anteriores do arduino, antes de se transferir um programa para o chip tinha-se que resetá-lo antes, na arduino duemilanove isso não é mais preciso, mas o botão permanece, coso você precise utilizá-lo.
6 - Power LED: Este LED possui a função de indicar quando sua placa esta sendo alimentada, seja através da posta USB ou de uma fonte externa (bateria, transformador, etc).
7 - Regulador de Voltagem: Se não estou enganado este deve ser o regulador de voltagem da placa, caso esteja sendo alimentada por uma fonte externa de energia, a alimentação recomendada é de 7 até 12V, mas o arduino pode operar com uma tensão entre 6 e 20V.
8 - Não sei o nome correto disso, mas ele atua selecionando a origem da energia (fonte externa ou USB) aoutomaticamente, nas versões anteriores (como Decimila) tinha-se que selecionar manualmente a alimentação da placa, este chip faz isso automaticamente na versão Duemilanove.
9 - Conector: Para conectar a uma fonte externa sua placa arduino, cuide porque o positivo deve ser a parte central do conector.
10 - Chip ATmega328: o modelo do chip pode variar, mas de qualquer forma, é aqui que tudo funciona, a memoria do arduino está aqui (ela é dividida em Flash, EEPROM, e SRAM).
11 - Cristal: Cristal oscilador de 16Mhz.
12 - LED do pino 13: o pino 13 da placa (não do chip) possui um LED e um resistor, então para você fazer o "olá mundo" no arduino não precisa necessariamente de um LED conectado à placa para ver funcionar (como nas versões anteriores), a versão duemilanove já possui este LED.
13 - Pinos Digitais: 14 pinos de entrada/saída digital, dos quais 6 podem ser saídas PWM;
14 - Pinos de entrada analógica: 6 pinos de entrada analógica;
 Alimentação: 
O Arduino Duemilanove pode ser alimentado pela conexão USB ou por qualquer fonte de alimentação externa. A fonte de alimentação é selecionada automaticamente. Alimentação externa (não-USB) pode ser tanto de uma fonte ou de uma bateria. A fonte pode ser conectada com um plug de 2,1mm (centro positivo) no conector de alimentação. Cabos vindos de uma bateria podem ser inseridos nos pinos Gnd (terra) e Vin (entrada de voltagem) do conector de alimentação.
A placa pode operar com uma alimentação externa de 6 a 20 volts. Entretanto, se a alimentação for inferior a 7 volts o pino 5V pode fornecer menos de 5 volts e a placa pode ficar instável. Se a alimentação for superior a 12 volts o regulador de voltagem pode super-aquecer e avariar a placa desta forma a alimentação recomendada é de 7 a 12 volts.
Memória:
O chip ATmega328 possui uma memória flash de 32KB (2KB são utilizados pelo bootloader), 2KB de SRAM e mais 1KB de EEPROM.
Entrada e Saída:
Cada um dos 14 pinos digitais do Duemilanove pode ser usado como entrada ou saída usando as funções de pinMode(), digitalWrite(), e digitalRead(). Estes pinos operam com 5 volts. e cada um pode fornecer ou receber um máximo de 40 mA.
Comunicação:
Segundo o site da Multilógica, representante oficial do Arduino no Brasil, "com o Arduino Duemilanove a comunicação com um computador, com outro Arduino ou com outros microcontroladores é muito simplificada. O ATmega328 permite comunicação serial no padrão UART TTL (5V), que está disponível nos pinos digitais 0 (RX) e 1 (TX). Um chip FTDI FT232RL na placa encaminha esta comunicação serial através do USB e os  drives FTDI (incluído no software do Arduino) fornece uma porta COM virtual para o software no computador. O software Arduino inclui um monitor serial que permite que dados simples de texto sejam enviados à placa Arduino. Os LEDs RX e TX da placa piscam quando os dados estão sendo transferidos ao computador pelo chip FTDI e a conexão USB (mas não quando há comunicação serial pelos pinos 0 e 1)."
Programação:
O Arduino Duemilanove pode ser programado com o software Arduino através de seu computador,  o chip ATmega328 do Arduino vem pré-gravado com um bootloader que permite enviar novos programas sem o uso de um programador de hardware externo. Mais detalhes da programação nos próximos posts.
Bootloader:
É um pequeno programa, tambem chamado de sistema de inicialização, que foi carregado para o microcontrolador em sua placa. O bootloader fica ativo por poucos segundos enquanto a placa é reinicializada, após isso ele começa a rodar o programa que você fez o upload mais recente para a placa.
É, acho que por hoje chega... agora você já conhece muito bem sua placa Arduino Duemilanove, mas, caso esteja interessado em aprender um pouco mais, segue as fontes de pesquisa. 
Um abraço e até a próxima.
Fontes

sexta-feira, 7 de maio de 2010

Arduino - Parte 1

Olá pessoal, esta é a primeira de uma série de postagens sobre Arduino que irei escrevendo conforme vou aprendendo sobre o mesmo, minha placa Arduino deve chegar semana que vem, até lá vou ler muita coisa para já ter uma base. Meus outros dois projetos estão em stand by por enquanto, um por falta de tempo, e o outro por falta de umas peças ainda... pretendo até o fim do mês terminar pelo menos um deles (se eu encontrar as malditas peças). Bom, vamos logo ao assunto:
O que é Arduino?
Arduino é uma plataforma de hardware open source baseado em um microcontrolador com suporte a conexão via serial ou USB com o computador para receber programas, uma placa Arduino é tudo o que você precisa para iniciar no mundo da eletrônica e programação de microcontroladores.     
Antes que você resolva ler o parágrafo anterior novamente, não, você não leu errado, eu realmente escrevi "hardware open source", você deve estar acostumado a ver software open source onde o código fonte está disponivel para quem deseja alterar, neste caso o hardware (a placa Arduino) funciona da mesma forma, você pode encontrar dezenas de esquemas de placas Arduino, escolher a que mais lhe agrada e montá-la peça por peça, ou compre um dos modelos já existentes para começar.
O poder do Arduino:
Por ser um hardware open source, você encontrará inúmeras aplicações com arduino na internet, e a maioria completamente documentada em seus menores detalhes para que você também possa reproduzir o feito em sua casa. Com uma placa Arduino você pode fazer desde o simples "Hello World" que no caso do Arduino é fazer um LED piscar, até controlar aeronaves não tripuladas (sim, já encontrei textos falando sobre isso!).
Como começar com Arduino?
O primeiro passo seria você adquirir uma placa arduino (pelo que já li na internet a mais fácil de utilizar seria a Duemilanove - 2009 em italiano), ler a documentação e os tutoriais e começar pelo básico como fazer um LED piscar. Não adianta de cara você querer criar um robô mais poderoso que a skynet que saia destruindo tudo que você não vai conseguir, ou você acha que na primeira aula de programação ao invés do "Olá mundo!" você já escreve um programa com 5 mil linhas de código?!
Onde Comprar?
Para quem mora no Brasil, existem 2 maneiras de adquirir uma placa Arduino (uma mais cara que a outra como tudo dessa droga de país...), ambas oficiais indicados pela própria página oficial do arduino.
1ª) Unite: http://www.unitecorp.eng.br/faces/ProdArduino.jsp (nunca ouvi falar dessa loja, mas já tenho em mente algumas coisas para comprar nela).
2ª) Multilógica: http://www.multilogica-shop.com/ (já comprei várias coisas dessa loja, leva uns 3 dias mais ou menos para chegar, é super rápido e tranquilo de comprar).
Você também pode comprar de sites extrangeiros mas os problemas começam ai: valor do frete, tempo para chegar as peças, etc, etc...
O problema do preço:
Talvez o único ponto contra ao arduino seria o preço, que no Brasil é um assalto... quer um exemplo? lá fora encontra-se placas Arduino por cerca de $30 a $40 enquanto as mesmas saem por quase R$ 150,00 aqui no país. Assim que tiver a oportunidade (e tempo) vou para o exterior (Uruguai ou Paraguai :p ) para comprar outras placas Arduino e mais algumas coisas que saem 3 vezes mais caras do que o "normal" nos outros países. A maioria dos projetos com Arduino no Brasil, recebem patrocínio de empresas e muitas vezes capital extrangeiro, o pessoal aprende com dinheiro de fora nos cursos que algumas universidades oferecem aqui no país e depois desaparecem...
Exemplos de aplicações com Arduino:
Segue alguns vídeos e links de coisas possiveis de se fazer com o Arduino, tudo encontrado depois de uma breve pesquisa na internet, alguns são vídeo-tutoriais que além de mostrar o "produto" ensina a contruir...
- Controlando um servo de posição com arduino e um potênciometro:


- Controlando a cor de um LED RGB com Ipod Touch


- Música tema do Mário tocada com 3 motores de passo com Arduino:



- Controlando LED RGB com Arduino e Processing;
- Controlando Arduino com PHP via porta serial;

Bom pessoal, este post foi só para ter um "primeiro contato" com o Arduino para quem nunca ouviu falar ou não sabia direito o que era e acho melhor parar por aqui senão o post fica quilométrico dada a quantidade de materiais de arduino que se encontra na internet, então para finalizar, como sempre algumas fontes:
- Arduino - Página oficial;
- Blog do Spock;
- Arduino na wikipédia;
- Freeduino.org o maior acervo de tutoriais com arduino;
- Site do Ricardo Dias (estudante de Engenharia Eletrônica e Telecomunicações da Universidade de Aveiro - Portugal);