sábado, 26 de abril de 2014

Trilha de Leds com Arduino

Pessoal, dando continuidade a minha série de experiências com o Arduíno, estive desenvolvendo a alguns dias uma trilha de leds com um efeito super bacana, e que me deu um pouco mais de trabalho, simplesmente porque os meus conceitos de eletrônica já estão um pouco enferrujados, já que fazem pelo menos uns 10 anos que não tinha mais tido contato com ela, somente em alguns poucos casos em que precisava efetuar alguma leitura de volts, etc, porém nada mais profundo como no caso do Arduíno.
Caso você esteja assim como eu recomendo muito que se faça um estudo mais aprofundado em algumas matérias da eletrônica, como associação de resistores, Led's, fórmulas de grandezas que são resistência, voltagem e potencia, essas matérias vão lhe ajudar e muito na hora de desenvolver seus projetos, mas vamos lá, para se ter uma ideia do que eu fiz vejam o vídeo


A montagem dos componentes na protoboard é algo muito simples, não reparem na bagunça, inclusive alguns resistores que usei são de diferentes valores mas caso optem por comprar recomendo usarem para esse tipo de LED de alto brilho ligado aos 5 volts do Arduino resistores com valor de 120 ohms inclusive testei no meu circuito e funcionaram com sucesso, fornecendo exatos 3,0 volts nas pernas do LED, se procurar em outros exemplos na internet poderá ver que muitas pessoas usam os mais diversos tipos de resistores, porém com um cálculo mais aprofundado poderá tira o máximo de luminosidade de seus leds, gastando pouco com isso já que se utilizar o resistor certo lhe economizara alguns centavos de real.
O efeito do LED se da através da utilização de algumas linhas de comando no Arduíno que podem ser mais simples ou mais elaboradas no meu caso optei por algo mais elaborado poupando kbytes da memória do Arduíno, vamos ao código:


Note que o código está com muitas linhas, 91 linhas para ser mais exato porém, utilizando o método de se criar esse feito utilizando a variável digitalWrite, somente para correr o led como na primeira sequência que é mostrada no vídeo foram utilizadas cerca de 86 linhas de comando, fazendo com que mais memória do Arduíno fossem consumidas.
Para entender mais o código que foi utilizado é preciso buscar mais informações na internet em:
http://arduino.cc/en/Reference/HomePage
Lá você encontrará uma descrição detalhada de cada linha que foi inserida no meu código que no inicio era bem pequeno porém foi tomando forma e agora esta desse tamanho e crescendo ainda mais, ele foi feito para se ter uma introdução para meu próximo projeto que será uma matriz de led de 32x6, um pouco mais a frente ainda terei que estudar muito mais as linhas de comando utilizadas.

terça-feira, 22 de abril de 2014

Novos itens para coleção

Pessoal, comprei alguns componentes que irão me ajudar com novos projetos e estudos, foram comprados online através de um site chamado "solda fria", muitos que estão no ramo de eletrônica a algum tempo e compram produtos pela internet devem conhecer o site que oferece uma larga variedade de produtos e um preço ao meu ver bem atrativo, segue o link;
http:\\www.soldafria.com.br


Gostaria de agradecer ao site soldafria que me mandou de brinde alguns itens que serão muito importantes em meus projetos, em breve voltarei a fazer compras com eles, lembrando que outros componentes estão vindo da china, que comprei pelo site aliexpress.com, que tem preços bem atrativos quando não se tem muita pressa em recebe-los já que podem demorar até 45 dias para entrega, mas toda essa espera vale muito a pena já que os preços podem ser cerca de 50% mais em conta.
Vou colocar aqui a lista de alguns sites que vendem componentes eletrônicos...

https://www.robocore.net/
http://www.labdegaragem.org/loja/
http://tiggercomp.com.br/novaloja/index.php
http://www.soldafria.com.br/index.php
http://multilogica-shop.com/


Caso alguém tenha conhecimento em outras lojas, já teve experiências de compra e quiser colocar na lista deixe nos comentários

domingo, 20 de abril de 2014

Acendimento de Led com Arduino

Olá pessoal, já fazem alguns dias que estou engajado em aprender um pouco mais sobre a placa e suas aplicações, então resolvi começar.
Como primeiro experimento resolvi começar com o mais básico o acendimento de um Led que pode ser feito apenas com um código chamado "blink" que esta nos exemplos básicos do Arduíno e além de tudo serve para testar o funcionamento da placa após a sua compra, é um exemplo simples que pode ser executado facilmente:

Exemplo de conexão led
Note que se você soldar apenas um resistor de 220ohms na perna "anodo" do Led e conecta - lo a porta 13 no Arduíno e a outra extremidade do Led o "catodo" na porta GND do Arduíno (foto ao lado), terá um feito de piscar o led escrevendo um simples Scketch no Arduíno, esse é um dos exemplos mais usados quando se compra um Arduíno ele serve para testar em parte seu funcionamento básico, mas caso você não tenha um Led não fique preocupado a fabricante do Arduíno se preocupou com isso pra você e incluiu em sua board um led integrado, que ao ser executado o mesmo scketch "blink" utilizando a porta 13 fara piscar o led que está na board.
Para os amigos que ficaram curiosos com esse método de teste e primeiro exercicio com o Arduíno segue abaixo o scketch para ele ser executado lembrando que ele pode ser encontrado no menu da IDE do Arduíno basta clicar em File>Examples>Basics>Blink...

int led = 13;
void setup() 
{              
    pinMode(led, OUTPUT);    
}
void loop() 
{
  digitalWrite(led, HIGH);
  delay(1000);
  digitalWrite(led, LOW);
  delay(1000);
}

Agora caso a sua conexão tenho sido bem sucedida ao se fazer o upload do scketch para o Arduíno o seu led agora vai piscar com intervalos de 1 segundo entre as piscadas, caso isso não tenha acontecido verifique as conexões e soldas e faça novamente o modelo.

Entendendo os comnados

 Vamos verificar o que cada função faz e para que servem dentro do seu scketch...

"int led = 13;"

Essa função define o nome da porta 13 como sendo "led" é bastante simples existem outros parâmetros para se utilizar a função "int" caso você queira estudar ainda mais sobre ela o link a seguir (em inglês) te dará mais detalhes sobre ela:

http://arduino.cc/en/Reference/Int

"void setup(){}"

O  código de estrutura setup nada mais é do que uma das principais funções do Arduíno sem ela suas scketch's não irão compilar pela IDE e será exibido um erro, ela é parte básica e é usada para chamar suas variáveis, é executada apenas uma só vez quando se inicia o Arduíno a menos que seja apertada a tecla "reset" que esta presente na board, mais detalhes podem ser vistos em:
http://arduino.cc/en/Reference/Setup

"pinMode(led, OUTPUT);"

A função "pinMode" já diz tudo, é usada para definir o modo que se comporta o pino, dentro dos parenteses () estão definidos seus parâmetros o "led" que definimos no inicio do Scketch como sendo a porta "13" (int led = 13), foi configurado para "OUTPUT" ou seja definido como saida, sendo assim já sabemos que ele fornecerá corrente e voltagem, e não receberá nenhum valor de algum sensor por exemplo, mais detalhes podem ser vistos em:
http://arduino.cc/en/Reference/PinMode 

"void loop(){}"

Também definido como um código de estrutura é parte vital da nossa scketch dentro dela ficarão as principais operações que o Arduíno ira fazer e como o nome já diz sempre está em "loop", ficando assim em um laço eterno, executando todas as funções que estão dentro dele por quantas vezes forem necessárias, mais detalhes podem ser vistos em:
http://arduino.cc/en/Reference/Loop

"digitalWrite(led, HIGH);"

Agora que a brincadeira começa a ficar interessante, essa função faz uma escrita em uma porta digital como sua tradução já diz, seus parâmetros também dizem como essa função deve se comportar e diz que o "led" que definimos como sendo a porta "13", vai estar "HIGH" ou seja no máximo fornecendo assim máxima tensão de saída na porta no nosso caso 5Volts, mais detalhes podem ser vistos:
http://arduino.cc/en/Reference/DigitalWrite
http://arduino.cc/en/Reference/Constants 

"delay(1000);"

Essa função tem como objetivo promover um "atraso" na sua programação, uma espera, um ponto de aguardo, e em seus parenteses o tempo é contato por millisegundos ou seja para se ter uma pausa de 1 segundo digitamos o valor 1000 ao invés de 1, se queremos 5  segundos colocamos entre os parenteses o valor 5000 e assim sucessivamente, mais detalhes podem ser vistos em:
http://arduino.cc/en/Reference/Delay 

"digitalWrite(led, LOW);"

Aqui temos quase uma repetição da função "digitalWrite", porém em seus parâmetros temos outros valores indicando que agora o nosso "led" que esta conectado a porta "13" passa a ter uma outra condição, agora "LOW" que significa baixo, ou em outras palavras desligado, fazendo assim com que o nosso "led" agora fique desligado.
http://arduino.cc/en/Reference/DigitalWrite
http://arduino.cc/en/Reference/Constants

Você poderá fazer experiências com seu Arduíno agora controlando ele de outras formas, alterando os valor do "delay" ou colocando mais funções e ver como o circuito se comporta...

Abraços

quinta-feira, 17 de abril de 2014

Nova Aquisição

Olá pessoal que esta me acompanhando na minha saga com o Arduíno, fiquei devendo um vídeo sobre os materiais que comprei assim como o vídeo com uma apresentação formal do meu Arduíno Uno, que na verdade é uma versão xing-ling se podemos dizer assim, mas isso não é uma das piores coisas do mundo porque se você for analisar bem os chineses detém os melhores componentes eletrônicos do mercado, porem não tem uma boa qualidade de produção, isso faz com que seus produtos finais sejam sempre uma porcaria, infelizmente o foco dos chineses é a produção em massa, e não qualidade de produção.
Fiz o upload de um vídeo mostrando os detalhes do meu Arduíno


Para os entusiastas de plantão nas minhas pesquisas na internet também achei um guia de referência para a Pinagem e portas do Arduíno acredito eu ser de grande valia para saber o que realmente cada pino representa nessa fantástica mini - board.

Mapa de Portas Arduíno
Analisando o projeto bem a fundo é uma board realmente bem minimalista, mas que se bem configurada pode nos ajudar a desenvolver diversos tipos de projetos nos mais diversos segmentos, desde os mais simples até os mais complicados incluindo outros até o jumpeamento de outros dispositivos Arduínos e seus mais diversos Shields que incluem Ethernet, GPS, Wi - Fi, Bluetooth e muitas outras plataformas de comunicação.
Portanto o Arduíno se adapta facilmente aos mais diversos projetos, de automação e eletrônica e o melhor disso tudo, é uma plataforma open - source que ainda pode ser implementada e mudada conforme a sua atribuição no projeto, por isso que hoje encontramos não só distribuições "Arduíno" mas muitas outras como Freeduíno, Seeduíno, Brasuino, Arduino tupiniquim e muitos outros com suas próprias nomenclaturas e disposição de componentes, mas isso não indica que não tem qualidade ou que não funcionam com a IDE disponibilizada pelo fabricante Italiano, não a maior parte deles são totalmente compatível com a IDE e boa parte dessas board's alternativas ainda podem ser usadas com as Shields originais feitas pelo fabricante Italiano...
Portanto ao procurar um para realizar sua compra somente atente para esses fatos se eles podem ou não serem compatíveis com a IDE do Arduíno e com suas Shields....

sábado, 12 de abril de 2014

Controlando um LED

Pessoal, vou mostrar para vocês hoje um exemplo bacana e bem simples de se fazer com seu Arduíno, trata - se de um circuito que fara você controlar um LED com seu Arduíno, através de uma programação básica, os itens necessários para esse feito são

1 - Protoboard
1 - LED Colorido a sua escolha
1 - Resistor 100 Ohms

Faça as ligações como na foto abaixo:
Arduíno conectado ao LED

Analisando a imagem mais a fundo, temos a seguintes configurações, o cabo verde esta conectado diretamente na placa Arduíno, pela sua porta 13, ligando - se através da protoboard ao resistor, que por sua vez está ligado em uma das pernas do LED.
Em outra extremidade temos o cabo preto que esta diretamente ligado ao Arduíno por meio da sua porta GND, que por sua vez esta conectada a protoboard onde está a outra extremidade do LED.
Esse circuito é relativamente simples e pode ser facilmente executa por alguém bem leigo na área de eletrônica, note que a porta 13 esta fazendo o papel do positivo no circuito, mas esse positivo só será ligado pelo comando que iremos ver a seguir que será programado no Arduíno de forma muito simples.

Escrevendo a linha de comando:

//Controlando LED

int led1 = 13; //Define o nome da porta 13 sendo led1

void setup()
{
  pinMode (led1, OUTPUT); //Define a porta 13 como saída de energia
}
void loop()
{
   digitalWrite (led1, HIGH); // Define o LED como Ligado
   delay(2000);               // Espera de 2000 milisegundos
   digitalWrite (led1, LOW);  // Define o LED como Apagado
   delay(2000);               // Espera de 2000 milisegundos
}

Feitos isso conecte seu Arduíno na porta USB e faça um upload da linha de comando para ser gravada em seu Arduíno, feito isso você verá que as luzes de transmissão e recepção de dados do seu Arduíno começarão a piscar, depois disso note que seu led começara a piscar com intervalos de 2 segundos a cada piscada, se isso ocorreu meus parabéns esse é um dos exercícios mais simples e legais de se fazer com o seu Arduíno.
Brinque com os valores do intervalo de cada piscada alterando os valores da função delay(2000) e poste seus resultados nos comentários.


sexta-feira, 11 de abril de 2014

Interface de Desenvolvimento (IDE)

Nesse post vou tentar mostrar de forma mais simples possível o programa que é usado para escrever as linhas de comando que serão convertidas internamente pelo microcontrolador Atmega em sinais válidos para executar as ações nos mais diversos dispositivos, como led's, display lcd, servo motores, entre outros O Arduino IDE é uma aplicação multiplataforma escrita em Java derivada dos projetos Processing e Wiring. É esquematizado para introduzir a programação a pessoas não familiarizadas com o desenvolvimento de software. Inclui um editor de código com recursos de realce de sintaxe, parênteses correspondentes e indentação automática, sendo capaz de compilar e carregar programas para a placa com um único clique. 
Tendo uma biblioteca chamada "Wiring", ele possui a capacidade de programar em C/C++. Isto permite criar com facilidade muitas operações de entrada e saída, tendo que definir apenas duas funções no pedido para fazer um programa funcional:
  • setup() – Inserida no inicio, na qual pode ser usada para inicializar configuração, e
  • loop() – Chamada para repetir um bloco de comandos ou esperar até que seja desligada.
Habitualmente, o primeiro programa que é executado tem a simples função de piscar um LED, essa função tem uma papel muito importante para verificar o funcionamento de seu Arduíno assim que você o recebe em sua casa. No ambiente de desenvolvimento, o usuário escreve um programa exemplo como este:

// define LED_PIN 13
int LED_PIN = 13;
 
void setup () {
    pinMode (LED_PIN, OUTPUT);     // habilita o pino 13 para saída digital (OUTPUT).
}
 
void loop () {
    digitalWrite (LED_PIN, HIGH);  // liga o LED.
    delay (1000);                  // espera 1 segundo (1000 milissegundos).
    digitalWrite (LED_PIN, LOW);   // desliga o LED.
    delay (1000);                  // espera 1 segundo.
}

O código acima não seria visto pelo compilador como um programa válido, então, quando o usuário tentar carregá-lo para a placa, uma cópia do código é escrita para um arquivo temporário com um cabeçalho extra incluído no topo, e uma simples função principal como mostrada abaixo:



# include<WProgram.h>
 
void setup () {
    pinMode (LED_PIN, OUTPUT);     // habilita o pino 13 para saída digital (OUTPUT).
}
 
void loop () {
    digitalWrite (LED_PIN, HIGH);  // liga o LED.
    delay (1000);                  // espera 1 segundo (1000 milissegundos).
    digitalWrite (LED_PIN, LOW);   // desliga o LED.
    delay (1000);                  // espera 1 segundo.
}
 
int main(void)
{
    // define LED_PIN 13
    int LED_PIN = 13;
 
    init();
 
    setup();
 
    for (;;)
        loop();
 
    return 0;
}

Se você não entendeu nada, não fique frustrado porque estamos no caminho certo, acredite aconteceu comigo, todas essas linhas indicam coisas simples para o Arduíno, podemos dizer que basicamente escrevemos para o Arduíno, "falso ou verdadeiro", algo que na computação entendemos como "0 ou 1", e isso torna a escrita dos códigos bem mais fácil de programar do que em outras linguagens, claro que existem códigos mais complexos que contam com expressões matemáticas e condições com retorno de dados, mas o principio e sempre o mesmo.
Interface Gráfica da IDE do Arduíno

A interface gráfica da IDE do Arduíno é bem simples encontramos nela um visual bem minimalista, onde estão todos os comandos necessários para se compilar o código, fazer upload, criar novos projetos, etc.
Uma ferramenta que realmente segue a risca a essência do projeto algo feito para ser simples para que todos possam entender programar e brincar com o Arduíno, ao meu ver o simples aqui remete algo como artesanal, fazendo com que o programador se sinta realmente criando algo do "nada".
A IDE é uma ferramenta essencial para a programação e comunicação entre o Arduíno e o PC, apesar de suas funções serem simples o primeiro passo entre você e o Arduíno é ela e recomendo que conheça ela mais a fundo fazendo o download da versão mais atual, abaixo vou colocar os links para download nas mais diversas plataformas.


Arduíno 1.0.5 - Download
Windows Installer / Windons Zip
Mac OS X
Linux : 32bits / 64bits

quinta-feira, 10 de abril de 2014

Arduíno

Talvez você nunca tenha tido contato com uma plaquinha dessas, creio que se talvez passasse por uma rua onde estivesse ali jogada na calçada provavelmente iria ignora - la, ou até mesmo joga - la no lixo...
Placa Arduíno Uno
Não fiquem assustados digo isso porque realmente a placa espanta pelo seu minusculo tamanho e por sua simplicidade, pode ser confundida facilmente como um circuito que não tem mais nenhuma utilidade, porém esse não é o caso, o caso é que a placa tem muitas utilidades e esta revolucionando o mercado de micro - controladores...Isso mesmo !!! Essa minuscula plaquinha esta fazendo muita gente ganhar dinheiro e transformando pessoas em verdadeiros gênios da eletrônica e da robótica.

Por meio de códigos e conexões essa placa pode conversar com outros sensores, e pode tornar possível milhares de projetos de automação, robótica, etc.
São realmente milhares de aplicações com esse dispositivo simples e de baixo custo que se bem configurado pode fazer coisas incríveis.
Placa Arduíno Uno parte inferior
Entrei realmente no mundo do Arduíno por acaso, minha ideia principal era montar um display gráfico em uma máquina de café espresso para que fossem exibidas informações como tela de boas vindas, temperatura da caldeira e logo do fabricante da máquina, isso era uma ideia relativamente simples, um amigo que teve a mesma ideia me recomendou que pesquisasse a fundo sobre a placa e foi o que fiz.
A principio pesquisei em muitos sites que posteriormente vou postar os links para maiores detalhes para quem estiver interessado nessas informações, mas ao pesquisar uma coisa me chamou muita atenção em um desses sites havia um texto que dizia " Se você passou os últimos anos em Marte ou simplesmente nunca ouviu falar do Arduíno..." Vi o quanto estava atrasado na tecnologia e que tinha que correr para saber logo de que se tratava.
O Arduino,é uma plataforma de prototipagem eletrônica de hardware livre, isso que dizer que nada impede de você criar a sua com seu nome que acha mais conveniente, como é o caso de muitas outras versões (Feduino, Severino, etc) projetada com um microcontrolador Atmel AVR de placa única, com suporte de entrada/saída embutido. O objetivo do projeto é criar ferramentas que são acessíveis, com baixo custo, flexíveis e fáceis de se usar. Principalmente para aqueles que não teriam alcance aos controladores mais sofisticados e de ferramentas mais complicadas.
Pode ser usado para o desenvolvimento de objetos interativos independentes, ou ainda para ser conectado a um computador hospedeiro. Uma típica placa Arduino é composta por um controlador, algumas linhas de entrada/saída digital e analógica, além de uma interface serial ou USB, para interligar-se ao hospedeiro, que é usado para programá-la e interagi-la em tempo real. Ela em si não possui qualquer recurso de rede, porém é comum combinar um ou mais Arduinos deste modo, usando extensões apropriadas chamadas de shields.
 O projeto iniciou-se na cidade de Ivrea, Itália, em 2005, com o intuito de interagir em projetos escolares de forma a ter um orçamento menor que outros sistemas de prototipagem disponíveis naquela época. Seu sucesso foi sinalizado com o recebimento de uma menção honrosa na categoria Comunidades Digitais em 2006, pela Prix Ars Electronica, além da marca de mais de 50.000 placas vendidas até outubro de 2008.
Atualmente, seu hardware é feito através de um microcontrolador Atmel AVR, sendo que este não é um requisito formal e pode ser estendido se tanto ele quanto a ferramenta alternativa suportarem a linguagem Arduino e forem aceitas por seu projeto. Considerando esta característica, muitos projetos paralelos se inspiram em cópias modificadas com placas de expansões, e acabam recebendo seus próprios nomes.
Apesar do sistema poder ser montado pelo próprio usuário, os mantedores possuem um serviço de venda do produto pré-montado, através deles próprios e também por distribuidores oficiais com pontos de venda mundiais, já lhes adianto que aqui no Brasil o negócio e bem mais embaixo quanto a preços mas se está disposto a pagar por isso o Arduíno oficial pode ser vendido aqui por cerca de R$100,00 dependendo do modelo enquanto "clones" feitos na china pode custar até R$40,00
Caso queira ainda pode comprar você mesmo os componentes e ir montando o seu e entendendo mais a sua lógica de funcionamento o que realmente é muito aconselhável para quem esta começando, ai vai de cada pessoa eu preferi por comprar uma versão compatível feito na china no meu caso paguei míseros R$51,00 com frete grátis....
Bom agora para mais informações vou deixar aqui alguns link's que podem ser acessados, para que possam ser esclarecidas mais dúvidas, como sou novo no mundo Arduíno vou tentar passar as informações com total clareza possível para os iniciantes como eu a assim aprender cada dia mais um pouco e ir tentando passar meu conhecimentos a cada dia para todos
http://arduino.cc/ - Site Oficial