27 março 2014

Promoção Livros Arduino - Semana Arduino Day

Bom dia Pessoal !!!

Aproveitando a semana do Arduino Day (não tá sabendo ? clique aqui !), o Arduino e Cia e o site Mania de Livros prepararam uma promoção por tempo limitado pra quem quer começar a estudar sobre o Arduino, ou até mesmo para quem já tem conhecimento sobre o assunto. Tem até um livro sobre Google Android, para você que quer começar a desenvolver aplicações integrando Arduino e Android !

São 4 livros com descontos de 30 %. Dá uma olhada :

Arduino Basico

Arduino Básico

Autor : Michael McRoberts

por R$ 62,00
(preço original R$ 89,00, desconto de 30 %)







Livro Arduino em Ação

Arduino em Ação

Autores : Martin Evans, Joshua Noble e Jordan Hochenbaum

 por R$ 62,00
 (preço original R$ 89,00, desconto de 30 %)






Livro Primeiros passos com Arduino


Primeiros passos com Arduino

Autor : Massimo Banzi

por R$ 27,00 
(preço original R$ 39,00, desconto de 30 %)






Google Android

Google Android - 3a. Edição

Autor : Ricardo R. Lecheta

Por : R$  86,00
(preço original R$ 123,00, desconto de 30%)

 


Como comentei no início, a promoção é por tempo limitado... começa hoje, dia 27/03, e vai só até o dia 31/03... então é melhor se apressar.

Agora você não tem mais desculpas. Adquira um desses livros e aumente os seus conhecimentos sobre Arduino ! :-)



14 março 2014

Arduino Day 2014 - 10 anos de Arduino !

Arduino Day 2014

No próximo dia 29 de Março será realizado o Arduino Day, um evento mundial organizado pelo site oficial do Arduino (day.arduino.cc) para celebrar os 10 anos da plataforma.

Serão organizados eventos oficiais e também independentes, onde a comunidade Arduino é incentivada a realizar encontros, reuniões, palestras, demonstrações e outras atividades, não só para quem já conhece o Arduino, como também para quem deseja aprender mais sobre esta fantástica ferramenta.

Por isso, não importa se você é expert, iniciante, hobbista, estudante, ou simplesmente tem curiosidade sobre o assunto : participe e veja tudo o que já foi feito (e o que ainda pode ser feito) com o Arduino.

No Brasil, várias instituições já programaram as suas atividades. Escolha o local de sua preferência e participe !

São Paulo

Organização: Fatecino – Clube de Arduino da Fatec de Jundiaí
Cidade : Jundiaí
Endereço: Av. Prof. União dos Ferroviários, 1760 - CEP 13201-160

Organização: Laboratório Hacker de Campinas
Cidade : Campinas-SP / Brasil
Endereço: Rua Dr. Sales de Oliveira, 1800 – Vila Industrial Campinas

Organização: Faculdade Anhanguera de Santa Bárbara
Cidade : Santa Barbara D ‘Oeste, São Paulo
Endereço: Rua Juscelino Kubitschek de Oliveira, 1450

Organização : Robocore, Telefonica, Embarcados, Fazedores
Cidade : São Paulo
Endereço : Rua Martiniano de Carvalho, 851 - Bela Vista
Vagas limitadas : Maiores informações em www.embarcados.com.br/arduinodaysampa

Organização: Grupo STC
Cidade : Araçatuba
Endereço: Rua: Cristiano Olsen, 2122 – Araçatuba – SP – Brasil

Ceará

Organização: Corisco Hackerspace Fortaleza
Cidade : Fortaleza
Endereço: Washington Soares, 1321 – Fortaleza CE

Goiás

Organização: Centro Acadêmico de Engenharia de Computação da PUC GO e Grupo de Estudos de Robótica Aplicada PUC Goiás
Cidade : Goiânia
Endereço: PUC Goiás, 1 ª Avenida, 1069 – Setor Leste Universitário, Goiânia - GO

Minas Gerais

Organização: Museu de Ciências Naturais da PUC Minas / Ramo Estudantil IEEE PUC Minas / Laboratório de Sistemas Digitais e Computacionais (LSDC)
Cidade:  Belo Horizonte
Endereço: Avenida Dom José Gaspar 290 - Bairro Coração Eucarístico - Belo Horizonte - MG

Organização: Comunidade Arduino Minas
Cidade: Belo Horizonte
Endereço: CEFET-MG - Av. Amazonas 7675- Nova Gameleira - Belo Horizonte - MG - Brasil

Pará

Organização : Faculdade de Engenharida da Computação e Telecomunicações - UFPa
Cidade : Belém
Endereço : Universidade Federal do Pará - Rua Augusto Corrêa, 01 - Guamá

Piauí

Organização: Labiras – Laboratório de Robótica Inteligente, Automação e Sistemas
Cidade : Teresina
Endereço: IFPI – Campus Teresina Central

Rio de Janeiro

Organização: OHMS + DIY Brasil
Cidade : Rio de Janeiro
Endereço: Rua Visconde da Graça, 147, Jardim Botânico. (a partir do meio dia)

Organização: ArduInRio
Cidade: Rio de Janeiro
Endereço: À confirmar (provavelmente no SINDPDRJ ou na Unicarioca)

Rio Grande do Norte

Organização: GIM – Grupo de iniciação um Mecatrônica
Cidade : Natal
Endereço: Campus Universitário Lagoa Nova – Natal – RN

Rio Grande do Sul

Organização: Centro de Tecnologia Acadêmica – IF – UFRGS
Cidade : Porto Alegre
Endereço: Av. Prof. Bento Gonçalves, 9500

Organização: MateHackers
Cidade : Porto Alegre
Endereço: Av. Prof. Independência, 330 SALA 206, Porto Alegre / RS – Brasil

Santa Catarina

Organização: Universidade do Oeste de Santa Catarina – UNOESC
Cidade : Chapecó
Endereço: Av. Prof. Nereu Ramos, 3777-D – Bairro Seminário

Realizei um levantamento sobre os locais dos eventos em sites como o DIY Brasil e o Blog Nova eletrônica (http://blog.novaeletronica.com.br/dia-arduino-2014-brasil/), portanto peço que se souberem de alguma mudança de local ou mesmo novos eventos, me avisem para que eu atualize a lista.

13 março 2014

Arduino - Como realizar um scroll no LCD 16x2, deixando uma linha fixa

Um leitor do site enviou uma pergunta hoje, sobre como realizar um scroll no LCD 16x2 ligado ao Arduino, mas apenas em uma linha. A outra ficaria estática.

A pergunta é aparentemente simples mas, ao pesquisar o assunto, vi que realizar o scroll em apenas uma linha envolve questões como mexer diretamente na memória do LCD e alterar (ou criar) bibliotecas.

Ao invés de usar uma biblioteca nova, por que não fazer isso utilizando a LiquidCrystal, amplamente utilizada por todos e provavelmente já instalada na sua IDE ?

Encontrei um colega lá da India (http://nishantarora.in/), que criou um programinha exatamente para isso, mas que infelizmente resolvia apenas parte do problema : a linha inferior permanecia estática, mas a linha superior realizava o scroll uma única vez.

O que eu fiz foi alterar o código para que o scroll não só fosse realizado de forma ininterrupta, como também aceitasse qualquer tamanho de string que fosse colocada no programa. O resultado você pode ver no vídeo abaixo :



O circuito utilizado é o mesmo mostrado no post Display LCD Winstar WH1602A. O modelo do LCD é o WH1602A mas o programa pode ser utilizado sem problemas em outros modelos de display 16x2, como o HD44780, que eu abordei neste artigo.

Além do LCD, usei como componente adicional um resistor de 10 K para ajuste do contraste :


Circuito Scroll LCD 16x2 Arduino






Abaixo, o programa utilizado para testes e mostrado no vídeo acima :

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
// Programa : Scroll LCD 16x2 apenas em uma linha  
// Alteracoes e adaptacoes : Arduino e Cia  
//  
// Baseado no programa original de Nishant Arora  
   
#include <LiquidCrystal.h>  
   
//Inicializacao do display  
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);  
   
//Configuracoes LCD 16x2  
int screenWidth = 16;  
int screenHeight = 2;  
   
//String para as 2 linhas 
 
//line1 = Scroll linha superior
String line1 = "Arduino e Cia, dicas, projetos e tutoriais: www.arduinoecia.com.br"; 
 
//line2 = Linha inferior - estatica  
String line2 = " Arduino e Cia";  
   
// just some reference flags  
int stringStart, stringStop = 0;  
int scrollCursor = screenWidth;  
int tamanho =0;  
   
void setup() 
{  
  //Inicializacao do display  
  lcd.begin(screenWidth,screenHeight);  
}  
   
void loop() 
{  
  lcd.setCursor(scrollCursor, 0);  
  lcd.print(line1.substring(stringStart,stringStop));  
  lcd.setCursor(0, 1);  
  lcd.print(line2);  

  //Quanto menor o valor do delay, mais rapido o scroll  
  delay(250);  
  scroll_sup(); //Chama a rotina que executa o scroll  

  //Verifica o tamanho da string  
  tamanho = line1.length();  
  if (stringStart == tamanho)  
  {  
    stringStart = 0;  
    stringStop = 0;  
  }  
}  
   
void scroll_sup()  
{  
  lcd.clear();  
  if(stringStart == 0 && scrollCursor > 0)
  {  
    scrollCursor--;  
    stringStop++;  
  } else if (stringStart == stringStop){  
    stringStart = stringStop = 0;  
    scrollCursor = screenWidth;  
  } else if (stringStop == line1.length() && scrollCursor == 0) {  
    stringStart++;  
  } else {  
    stringStart++;  
    stringStop++;  
  }  
}  

Basicamente o que o programa faz é calcular a posição do cursor, imprimir a string line1 na linha superior e a string line2 na linha inferior. Depois ele apaga a tela, calcula a nova posição do cursor e imprime novamente as duas strings.

E o procedimento vai se repetindo até que toda a string line1 seja mostrada na linha superior. Quando isso acontece, todo o processo é reiniciado.

Este é um código que pode ser melhorado, especialmente para retirar o efeito "piscar" da tela, causado pelo uso do comando lcd.clear(), mas que serve de base para o seu projeto. :-)