segunda-feira, 15 de maio de 2017

Projeto do Kit Iniciante - Roleta Eletrônica com Display de 7 segmentos




video



Esse projeto é bem simples, mas bastante divertido. Utilizando um display de 7 Segmentos você vai construir uma roleta eletrônica para sorteio de 10 números.
A roleta eletrônica faz um sorteio de números entre 1 e 10 (neste caso, o '0' representa o número '10') mostrados no display. O sorteio do numero se dá ao pressionar o botão. Enquanto o botão não é pressionado, o display fica passando todos os números do sorteio.




Para esse projeto você vai precisar dos seguintes itens.

A montagem do projeto na protoboard é mostrada na figura acima. É importante lembrar que o código que mostramos aqui funciona para displays de 7 segmentos de cátodo comum. Esse display faz parte do kit iniciante NMK
Após fazer a montagem em sua protoboard, copie o código abaixo e cole no ambiente de programação do Arduino. Conecte sua placa Arduino e carrege seu código. É hora de testar!


//Matriz de acionamento do display de 7 segmentos.
//Cada linha represente quais segmentos devem ser ligados, no caso, 1 é ligado e 0 é desligado
int disp[10][8] = { { 0, 1, 1, 1, 1, 1, 1, 0 }, // = Digito 0 crescente
  { 0, 1, 0, 0, 1, 0, 0, 0 }, // = Digito 1
  { 0, 0, 1, 1, 1, 1, 0, 1 }, // = Digito 2
  { 0, 1, 1, 0, 1, 1, 0, 1 }, // = Digito 3
  { 0, 1, 0, 0, 1, 0, 1, 1 }, // = Digito 4
  { 0, 1, 1, 0, 0, 1, 1, 1 }, // = Digito 5
  { 0, 1, 1, 1, 0, 1, 1, 1 }, // = Digito 6
  { 0, 1, 0, 0, 1, 1, 0, 0 }, // = Digito 7
  { 0, 1, 1, 1, 1, 1, 1, 1 }, // = Digito 8
  { 0, 1, 1, 0, 1, 1, 1, 1 }
};   // = Digito 9

//Definição da porta que o botão ira usar
byte botao=13;

//Função para imprimir um numero no display de 7 segmentos.
//A matriz disp deve ser construida de acordo com a montagem do display
void numero_display(int m) {

  for (int j = 2; j < 10; j++) {
    digitalWrite(j, disp[m][j - 2]);
  }

}

void setup() {

  //inialização da função randomica para calculos de numeros aleatorios.
  randomSeed(analogRead(0));
  for (int i = 2; i < 11; i++)
  {
    pinMode(i, OUTPUT);
  }
  pinMode(11, INPUT);
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  //Geração de numero aleatorios de 0 a 9
  long n = random(0, 10);
  numero_display(n);
    delay(50);

  //Se o botão foi pressionado...
  if (digitalRead(botao) == HIGH) {
    delay(500);
    //O processo do arduino é interrompido e o display mostra o numero sorteado.
    //O sortei volta rodar quando o botão é pressionado mais uma vez.
    while (digitalRead(botao) == LOW) {

    }
    //Delays são usados para que a informação do botão seja lida apenas uma vez. 
    delay(400);
  }


}








sexta-feira, 12 de maio de 2017

Multiplexação: o que é?



Todos os dispositivos microcontrolados possuem uma quantidade limitada de portas que não permitem que um projeto seja escalado infinitamente. A quantidade de portas utilizadas em cada  projeto tem a ver com sua natureza. Projetos que utilizam uma grande quantidade de sinais de saída (como por exemplo, os projetos que utilizam displays de LEDs ou matrizes de LEDs) necessitam de uma abordagem que permita controlar uma quantidade de dispositivos maior que o número de portas que o microcontrolador possui. Para isso existe uma técnica bastante conhecida chamada de Multiplexação.

Multiplexar é transportar vários sinais sobre um único meio. A multiplexação pode ser implementada tanto no espaço quanto no tempo. Multiplexar em um meio espacial é partilhar um meio  físico para comportar mais de uma informação ou sinal. Multiplexação no tempo é distribuir intervalos de tempos para que cada dispositivo possa utilizar o mesmo meio de transmissão do sinal. O  que se deseja obter utilizando esta  técnica  é  economia,  pois  ao utilizarmos  o  mesmo meio  de  transmissão  para  diversos  canais   economiza-se  em  linhas,  suporte,  manutenção,  instalação, etc.

A multiplexação por divisão de tempo foi desenvolvida na década de 1950. Ela permite que múltiplos sinais viagem através do mesmo canal de transmissão, mas aloca diferentes intervalos de tempo para cada um. A multiplexação por divisão de tempo exige que todos os dispositivos envolvidos estejam sincronizados e os intervalos de tempo destinados a eles sejam utilizados de forma eficiente. Uma grande desvantagem da multiplexação é o uso de uma fonte constante de corrente elétrica. Técnicas de multiplexação são usadas em telefonia, processamento de vídeo, transmissão digital e transmissão analógica. Aplicações de multiplexação também são evidentes em dispositivos eletrônicos, veículos e aviões.  Um exemplo comum disso é a forma como as empresas fornecem internet e TV. Ambos os sinais trafegam pelo mesmo fio e ao chegar na nossa residência esses sinais sao separados


quarta-feira, 10 de maio de 2017

Como ler sinais analógicos no Arduino













No desenvolvimento de projetos e aplicações com Arduino e outros microcontroladores é importante sabermos diferenciar a natureza das grandezas utilizadas. Alguns dos sinais lidos pelo Arduino, por exemplo, são assim chamados analógicos, dada a sua forma de variar no tempo. São as grandezas que possuem uma relação direta com a forma como a natureza se comporta. A variação desses sinais ocorre em uma escala contínua, como por exemplo valores de velocidade, temperatura, umidade, entre outros. De modo diferente, os sinais digitais variam em uma escala discreta, diretamente relacionada à precisão de leitura do microcontrolador.





É clássico citar o fato de que o mundo real não é digital. Considerando a variação da temperatura como exemplo, ela muda dentro de um intervalo de valores e geralmente não faz mudanças abruptas ao longo do tempo. Muitas vezes medimos parâmetros ambientais como temperatura, intensidade de luz, usando sensores analógicos. Estes sinais resultantes são armazenados como dados digitais sequenciais.

http://natalmakers.mercadoshops.com.br/potenciometro-10k-139841111xJM



Uma experiência interessante para podermos perceber essa variação é utilizando um Potenciômetro de 10k, que é capaz de modificar o valor de resistência em seu pino central de acordo com a posição da chave giratória. Conectando-o ao Arduino da forma indicada na figura, carregue o programa abaixo para o Arduino. Verifique no monitor serial a variação de tensão causada pela variação de resistência do potenciômetro. Para visualizar graficamente os resultados da experiência, utilize o Serial Plotter, clicando no menu correspondente na IDE no Arduino.







// Pino do potenciometro (pino do meio) ligado na porta A0 do arduino.
int analogPin = A0;    

// Variável para armazenar o valor lido
 int val = 0;          

void setup()
{

//Inicia o monitor Serial.
 Serial.begin(9600);         
}

void loop()
{

// Leitura do pino analogico
 val = analogRead(analogPin);   
 Serial.println(val);

}



terça-feira, 9 de maio de 2017

Utilizando o conversor de Nível Lógico





 
Com a popularização de plataformas de prototipação Arduino, vários dispositivos eletrônicos são lançados todos os dias com diferentes maneiras de se comunicar com o Arduino. O Arduino e outras placas de prototipagem microcontroladas são dispositivos que geralmente trabalham em um nível lógico de 5V, e a maioria dos sensores modernos, monitores, cartões flash e módulos trabalham com apenas 3.3V. Para facilitar esse processo de comunicação entre dispositivos de níveis lógicos diferentes, utilizamos o conversor de nível lógico, que consiste em uma pequena placa que possui um divisor de tensão para abaixar o nível lógico de 5v para 3.3V, e um circuito baseado em MOSFET para fazer a elevação do nível lógico de 3.3V para 5V.


Conversor de Nivel Lógico Bidirecional

O conversor de nível lógico bidirecional é um pequeno dispositivo que nivela sinais com diferentes níveis de tensão com segurança. Ele é capaz de compatibilizar os sinais simultaneamente. Este conversor de nível também funciona com dispositivos de 2.8V e 1.8V. Cada conversor de nível tem a capacidade de converter 4 pinos no lado de tensão mais elevada para 4 pinos no lado de tensão reduzida com duas entradas e duas saídas para cada lado. A pequena placa possui um uso bastante simplificado, bastando para isso ser alimentada a partir de duas fontes de tensão (alta e baixa tensão) conforme as tensões que o sistema está usando. Tensão elevada (5V por exemplo) para o pino "HV", tensão reduzida (3.3V por exemplo) para "LV", e terra do sistema para o pino "GND".

Entre os usos do Conversor de nível lógico estão a interconexão de pinos de comunicação I2C, SPI e leitura de sensores a partir dos pinos do microcontrolador.







sábado, 17 de outubro de 2015

Análise de Viabilidade em Projetos


Comumente, a idéia de um projeto vem em nossa mente como um furacão. E deve ser assim: a primeira pessoa que ele deve impressionar é a nós mesmos. Somos o primeiro a comprar a idéia, entendê-la e elogiá-la mentalmente, ainda que de modo inconsciente. Mas, uma hora ela precisa sair da nossa cabeça e se expor de modo concreto, tornando-se um projeto implementado. Cada projeto leva seu tempo e possui sua complexidade. Isso já falamos aqui diversas vezes. Nessa postagem queremos frisar uma palavra em especial: Viabilidade. Essa palavra está presente desde o início da implementação e direciona as escolhas feitas no projeto, no que tange a peças, acessórios, sensores, atuadores, plataformas, software, entre outras coisas. Além disso, tem uma relação com a complexidade e o custo do projeto. 

Via de regra, nenhum projeto pode ser considerado inviável, se você possui os recursos para implementá-lo. O problema é que, diversas vezes não consideramos o fato de que, o objetivo final de um determinado projeto pensado pode ser muito simples e realizado por um tipo de dispositivo mais simples ainda, o que torna o nosso projeto muitas vezes concorrente de algo mais barato e viável. Por exemplo: hoje em dia é muito fácil utilizar dispositivos móveis. Vemos todos os dias idéias de aplicativos que usam GPS que consideram cálculos por contagem de pontos de unidades móveis. Imagine um aplicativo que calcula a estimativa do número de pessoas em um show. O desenvolvedor considera de antemão que o seu aplicativo vai estar em um número minimo de celulares para poder efetuar essa contagem, como em uma amostragem. Estatisticamente, a probabilidade de atingir o êxito nessa empreitada está dependente sempre do sucesso do aplicativo. Caso muitas pessoas não usem, o aplicativo não pode gerar informações confiáveis. Assim, o projeto nasce com uma dependência de viabilidade que só será alcançada se isso acontecer. Isso dificulta a realização dos testes, entre outras coisas.

Esse exemplo citado acima ainda mostra um problema que tem relação com a viabilidade do projeto, que é a aceitação das pessoas. Se o projeto é direcionado para resolver um problema real, o projeto tem tudo para dar certo. Mas, nem sempre o que o idealizador do projeto considera como problema real é de fato, para os outros, um problema. Isso precisa ser verificado antes da implementação para não correr o risco de perder muito tempo em algo inútil.

Outro problema que enxergamos, em diversos projetos, é o uso de dispositivos e componentes muito precisos e caros para realizar tarefas muito simples. Por exemplo: um MP3 player feito com Raspberry / Arduino Tre / ou qualquer outra plataforma que usa um microprocessador. A menos que esse MP3 player possua funcionalidades específicas que exijam um processamento mais pesado (controle por voz, gestos ou inteligência artificial, por exemplo), não faz sentido usar uma plataforma tão cara. Existem módulos MP3 que podem ser controlados por Arduinos mais simples, e que não custam mais de 5 dólares.

Por isso, antes de desenvolver sua idéia em uma implementação, vale a pena pesquisar e analisar para que o custo, a complexidade e a falsa idéia de solução perfeita, não o decepcionem durante o caminho.


sexta-feira, 9 de outubro de 2015

Etapas de Projeto: O Case!



Proteger e fornecer um visual agradável para o seu projeto é uma tarefa tão importante quanto desenvolver suas funcionalidades. Mas no momento de escolher um case para sua placa de desenvolvimento é preciso decidir com base nas mesmas variáveis de projeto que influenciaram em outras etapas. Temos hoje, no mercado, diversos cases prontos, pré-fabricados, por encomenda e também os do tipo faça-você-mesmo (DIY). Mas nem todos se adequam a qualquer projeto. Caso você esteja à procura de um case para guardar seu dispositivo apenas, tem à sua escolha diversos modelos que possuem também suas diferenças. Alguns cases encapsulam a placa por completo, deixando à mostra apenas a porta USB ou Ethernet. Outros ainda tem aberturas para os cabos de prototipagem ou mesmo são vazados para permitir o melhor resfriamento do microcontrolador. 

Alguns tipos podem comprometer o bom funcionamento do seu projeto, caso você não considere as situações de funcionamento do dispositivo. Ambiente com sol, umidade excessiva, calor excessivo e maresia, por exemplo, podem causar problemas de funcionamento e até mesmo a perda do dispositivo. Quanto ao aquecimento do dispositivo, a preocupação não se restringe apenas ao funcionamento no ambiente final de trabalho. Um sensor conectado de  maneira errada pode superaquecer o seu dispositivo, provocando danos a ele. Por isso o constante monitoramento é necessário.


O material com o qual o case foi fabricado também deve ser levado em consideração. Se o objetivo é proteger o seu dispositivo, não adianta colocá-lo em um case feito de um material que não seja adequado ao seu projeto. Muitos cases são verdadeiras obras de arte e merecem elogios pela criatividade, mas, como diz o ditado: "Gaiola de ouro não alimenta o passarinho!". Seu projeto precisa funcionar bem, acima de tudo. 








domingo, 4 de outubro de 2015

Da difícil e simples arte de inovar...


INOVAR: Segundo o Michaellis:
i.no.var
(do latim innovare) vtd 1 Fazer inovações, introduzir novidades em... blá blá blá... 
Já viram esse modo de iniciar um artigo em algum lugar? Para mim não existe um modo melhor de entender um conceito do que mostrando um contra-exemplo. Às vezes delimitar o escopo do conceito, mostrando onde ele termina, nos faz perceber o quanto erramos em definir as coisas que produzimos. Antes de tudo é preciso separar duas coisas importantes nessa definição: a primeira é a inovação em si, a segunda é a inovação como conceito de mercado. Se considerarmos uma solução nova para um problema antigo, algum grau de inovação está contido nessa idéia. Mas para o mercado, não adianta se uma idéia é bonita e inteligente, precisa vender. Infelizmente, a mídia vende a idéia de inovação como sendo aqueles celulares que ficam obsoletos em seis meses e cujas novas versões não têm nada a acrescentar, além de uma câmera com maior definição, mais memória e mais dois núcleos de processamento. Isso passa uma idéia inalcançável de inovação e segrega as pessoas, fazendo-as pensar que ter boas idéias é algo reservado somente para grandes mentes iluminadas.



"Passamos anos das nossas vidas em uma escola, 
que premia os que tem uma memória muito boa, 
e reprime os que nasceram com a capacidade de questionar"

Inovar não é algo difícil. Muito mais difícil parece ser a coragem de mostrar que somos capazes de fazer algo novo. Isso vem de uma educação maltratada, que não encoraja o pensamento individual. Passamos anos das nossas vidas em uma escola, que premia os que tem uma memória muito boa, e reprime os que nasceram com a capacidade de questionar as coisas como elas são. Um livro nunca deveria ser o fim, mas o início de uma busca pelo conhecimento que parte dali para outras fontes e opiniões. 


"A verdade não deixa de ser verdade
por ter sido dita de um modo desagradável."

Pergunte-se: você tem coragem de mostrar aos outros uma idéia nova? uma música que você compôs? Um poema que você escreveu? Se essas perguntas o remetem ao medo das críticas, saiba que para inovar você precisa separar umas pessoas das outras. Seus pais sempre vão achar muito bonito o que você faz (via de regra), então, a opinião deles sempre será questionável, ainda que uma excelente fonte de apoio e nunca deverá ser desconsiderada. Mas pode não ser a opinião certa para indicar que você está num caminho certo. Por outro lado, a opinião dos críticos, pode não ser a mais agradável. Aprenda a não levar pelo lado pessoal, muitas vezes uma pessoa critica uma idéia pela simples inveja de não ser sua. Apesar disso, considere-as, pois podem ser as mais verdadeiras entre todas. A verdade não deixa de ser verdade por ter sido dita de um modo desagradável. Sendo assim, aproveite a oportunidade para crescer como pessoa e elevar o nível da sua idéia. 


"Ponha em prática ao menos uma 
das coisas que você tem vontade de fazer"

Passados todos esses poréns, liberte sua mente para inovar. Mude sua sala, alterne o caminho para o trabalho, tente fazer a mesma coisa de outro jeito, leia outros livros. Em outras palavras, ponha em prática ao menos uma das coisas que você tem vontade de fazer e nunca fez por medo do que os outros vão achar. Inovar é muito simples, e será uma construção, muito mais do que um talento nato. Uma idéia puxa outra que se conecta a outras e, quando menos esperar, vai estar surpreso com o que sua mente é capaz de criar.