Вы находитесь на странице: 1из 86

Intel

Galileo
2 Gerao

Guia Iniciante

www.multilogica-shop.com

Verso 1.0

ndice

ndice 2
Prefcio 3
A Multilgica-Shop 4
Introduo 5
Principais caractersticas 6
Segurana e Cuidados 7
1. Intel Galileo 2 Gerao 9
1.1 A placa 10
1.2 Esquema 12
1.3 Alimentao 13
1.4 Shields para Intel Galileo 14
1.5 Livro 15

2 Instalao do Software 16
2.1 Arduino IDE para Galileo - Windows 17

3 Programao Arduino 29
3.1 Software Arduino 30
3.2 Programando o Intel Galileo 35

4 Tutoriais 45
4.1 Hello World - Piscar 46
4.2 Boto 52
4.3 Leitura Serial de uma Entrada Analgica 59
4.4 Comando com Comunicao Serial 65
4.5 Display LCD 70
4.6 Sensor de proximidade 79

5. Persistncia da Sketch 84
2

multilogica-shop.com

Prefcio

A Multilgica-Shop, a partir do "Galileo Getting


Started Guide" da Spark Fun, desenvolveu este
material no qual iremos abordar as principais
caractersticas desta placa, explicar o que est por
trs deste projeto e apresentar propostas para se
iniciar neste universo.
Se voc est familiarizado com o entorno do
Arduino, prepare-se para desfrutar de todo o poder
do Intel Galileo 2 Gerao.
Este projeto combina a facilidade da manipulao e
programao de um Arduino com as possibilidades
operacionais de um sistema Linux e a fora do
processador Intel.
Preparamos tambm uma parte mais que especial:
o captulo dos tutoriais, onde voc encontrar
explicaes detalhadas de alguns exemplos,
juntamente com perguntas, dicas e exerccios.

multilogica-shop.com

A Multilgica-Shop

A Multilgica foi fundada em 1990 com foco em tecnologia


e desenvolvimento. Em 2009 iniciou uma nova etapa com a
importao de produtos Open Source e marcas relacionadas de
grande expressividade internacional.
A qualidade no servio e a ateno ao cliente sempre estiveram
entre nossos principais objetivos, por conta disso possumos o
catlogo mais completo do Brasil no setor e mantemos a meta
de atender aos mais exigentes consumidores e desenvolvedores.
As principais novidades e lanamentos mundiais em eletrnica e
robtica voc encontra primeiro na Multilgica-Shop.
Aproveitem a leitura!

multilogica-shop.com

Introduo

O Intel Galileo 2 Gerao uma placa de microcontrolador


baseado no processador de aplicao Quark SoC X1000 da
Intel, um sistema em um chip (system on a chip) da classe
Pentium de 32 bits. a segunda gerao da primeira placa
baseada na arquitetura Intel desenvolvida para ter pinagem
compatvel, tanto em software como em hardware, com os
shields Arduino desenhados para o Uno R3.

multilogica-shop.com

Principais caractersticas

Esta plataforma fornece a facilidade de desenvolvimento da arquitetura Intel atravs do


suporte para ser hospeda em mquinas com sistema operacional Windows, Mac OS e Linux.
Tambm incorpora a simplicidade do software da plataforma de desenvolvimento integrada
(IDE) do Arduino.
Em adio compatibilidade de software e hardware com o Arduino, a placa Intel Galileo 2
Gerao tem muitas caractersticas e portas de E/S padro na indstria de PCs para expandir
o uso habitual para alm do ecossistema de shields Arduino. Um slot mini-PCI Express, uma
porta Ethernet de 100Mb, um slot para cartes Micro-SD, uma porta USB anfitrio, 8MB de
memria flash NOR esto includos.
O Intel Galileo 2 Gerao tem melhorias em relao 1 Gerao que incluem a
substituio da porta RS-232 por um conector UART TTL USB de 3,3V e 6 pinos. Outra
novidade a incluso de PWM (pulse width modulation) de at 12 bits sob certas
circunstncias, redirecionamento para os pinos do Arduino da UART1, capacidade de PoE
(power over ethernet) de 12V, e um sistema de regulagem de alimentao que aceita
voltagens de 7 a 15V.

Este guia lhe fornecer um completo detalhamento para que voc possa dar incio ao uso do
Intel Galileo 2 Gerao.
No geral, vamos lhe mostrar:
- uma apresentao dos componentes e conectores do Galileo
- como baixar e instalar o software Arduino desenvolvido especificamente para o Galileo
- como instalar os drivers no Windows
- como atualizar o firmware no Galileo, usando a IDE Arduino
- como enviar seu primeiro Sketch para o Galileo
- como tornar persistentes suas Sketches no Galileo

multilogica-shop.com

Segurana e Cuidados

Sua rea de trabalho um espao muito importante para desenvolver seus projetos. Trabalhe
sempre em um ambiente tranquilo e bem iluminado e mantenha sua bancada sempre limpa e
seca.
Cuidado ao trabalhar com qualquer tipo de circuito impresso. As conexes destas placas so
expostas, portanto, no apoie sua placa em suportes condutores e tenha cuidado com cabos
desencapados nas proximidades. Embora estas situaes possam causar curtos circuitos elas
no oferecem riscos fsicos devido s baixas voltagens e potncias envolvidas. Lembre-se,
voc no vai se machucar, mas destruir uma placa sempre frustrante.
Os produtos do site, bem como os kits destinados a iniciantes, so apenas bases para a
compreenso dos princpios de funcionamento dos diversos elementos envolvidos.
Sendo assim, a Multilgica-Shop no se responsabiliza por mal uso dos produtos, impercia
ou falha prtica na execuo dos experimentos. No se responsabiliza pela aplicao em
equipamentos de terceiros, pelo uso comercial de qualquer experimento ou informao
contida, bem como insucesso ou lucros cessantes de qualquer natureza.
No recomenda e no d anuncia em testes com animais, no corpo humano e em suporte de
vida. No se responsabiliza por, e no recomenda o uso em transporte de cargas suspensas.
No se responsabiliza por acidentes ou ferimentos que possam advir de experimentos com
quaisquer de nossos produtos. E no recomenda e desencoraja o manuseio de tenses
diretas da rede de distribuio eltrica.

multilogica-shop.com

Para garantir a segurana utilize apenas a fonte de alimentao fornecida com o Intel Galileo
2 Gerao para alimentao do dispositivo, conecte as portas de entrada e sada apenas a
outros dispositivos que sejam, listados, aprovados ou certificados para uso no pas.
Note que o adaptador de corrente alternada fornece risco de choque eltrico.
Na placa Intel Galileo 2 Gerao no h componentes passveis de manuteno.
Conexo e desconexo da alimentao: o plug da fonte de alimentao o dispositivo
de desconexo primria da rede eltrica. A tomada a ser utilizada deve estar prxima ao
equipamento e facilmente acessvel. Para garantir que toda a carga seja removida da placa
desconecte os cabos USB e a fonte de alimentao.
Tempestade eltrica: no conecte ou desconecte nenhum cabo nem realize instalao ou
manuteno desta placa durante uma tempestade eltrica.
Descarga eletrosttica: para reduzir o risco de danos placa voc deve utilizar uma pulseira
anti-esttica aterrada corretamente ou uma manta anti-esttica.

multilogica-shop.com

1. Intel Galileo 2 Gerao

multilogica-shop.com

1.1 A placa

Detalhes das caractersticas suportadas pela arquitetura Intel


Um processador Intel genuno e as capacidades nativas de entrada e sada do sistema
embarcado Clanton (system on a chip SoC) fornecem vrias caractersticas tanto para
a comunidade de hobistas quanto para os estudantes. Elas tambm so teis para
desenvolvedores profissionais buscando por um ambiente de desenvolvimento simples e
com boa relao custo benefcio para os desenhos mais mais complexos baseados nos
processadores Intel Quark SoC X1000.

10

multilogica-shop.com

Caractersticas Fsicas
PCB de 10 x 7cm com conectores USB, UART e ethernet, com o conector de alimentao
ultrapassando as dimenses da placa
4 orifcios para parafusos, para fixao da placa
Boto de reset para reiniciar o programa e os shields conectados
Caractersticas do Processador
Processador Intel Quark SoC X1000
16 Kbytes L1 cach
512 Kbytes SRAM embarcada
Simples de programar, fluxo e ncleo nicos, velocidade constante
Estados de hibernao de CPU compatvel com ACPI
Relgio de tempo real (RTC) integrado com bateria tipo moeda de 3V (bateria no
includa)
Velocidade de clock 400 MHz
Opes de armazenamento:
8MB de Flash SPI Legacy para armazenar o firmware (bootloader) e a ltima sketch.
Entre 256 e 512KB dedicados para armazenagem de sketch
512 KB de SRAM embarcada
256 MB de DRAM
Carto micro SD opcional pode oferecer at 32GB de armazenamento
Armazenamento USB compatvel com qualquer drive USB 2.0
11 kB de EEPROM programveis com a biblioteca EEPROM

11

multilogica-shop.com

1.2 Esquema

12

multilogica-shop.com

1.3 Alimentao

Utilize para alimentao apenas a fonte fornecida juntamente com seu Intel Galileo 2
Gerao.
Sempre que estiver utilizando o Intel Galileo, com a placa conectada simultaneamente
fonte de alimentao e porta USB, h uma situao de risco para a placa por falha na
alimentao. Este risco mais elevado no caso de utilizao com laptops que mantm seu
funcionamento por baterias quando h uma queda no fornecimento de energia eltrica. Nesta
situao h uma grande probabilidade de que a placa sofra danos permanentes. Insistimos
no fato de que nunca a USB dever ser conectada sem que o Intel Galileo 2 Gerao esteja
alimentado pela fonte original que o acompanha. Isto poder danificar a placa e invalidar a
garantia do produto.

ATENO - As fontes de alimentao do Intel Galileo 1 Gerao e do Intel


Galileo 2 Gerao no so intercambiveis. A fonte de alimentao da 2 Gerao
de 12V e causar danos permanentes nas placas da 1 Gerao Galileo.

13

multilogica-shop.com

1.4 Shields para Intel Galileo

Um shield uma placa que permite expandir as funcionalidades originais do Intel Galileo 2
Gerao e que obedecem o padro do Arduino Uno. Alguns exemplos:

Input Shield

14

multilogica-shop.com

Shield LCD

Kit Joystick Shield

1.5 Livro

Este livro (em ingls) fornece instrues passo-a-passo sobre


como escrever sketches Arduino para o Galileo e tambm indica
outros recursos do Linux que definem esta poderosa plataforma de
desenvolvimento para alm de outras placas Arduino.

15

multilogica-shop.com

2 Instalao do Software

Nas prximas pginas vamos repassar as etapas necessrias


para fazer o upload de um cdigo para a placa Intel Galileo
2 Gerao.
Como sempre, tudo comea com o download do software.
Apesar de formar parte da famlia Arduino, o Intel Galileo
no trabalha com a mesma IDE, ento ser necessrio fazer
o download da verso desenvolvida especificamente para ele.

16

multilogica-shop.com

2.1 Arduino IDE para Galileo - Windows

1 - Placa Galileo, fonte de alimentao e um cabo USB microB


Este tutorial serve para instalao da placa Intel Galileo 2 Gerao. Para outras placas da
linha Arduino deve-se buscar o tutorial correspondente. Voc tambm vai precisar da fonte
que acompanha o Intel Galileo 2 Gerao e de um cabo USB microB.

17

multilogica-shop.com

2 - Download da IDE do Arduino


Faa download da ltima verso do software do Arduino para Galileo. Selecione a verso
compatvel com seu sistema operacional, j que existem verses disponveis para Windows,
Mac OS X e Linux. Ao terminar, descompacte o arquivo e mantenha a estrutura de pastas e
sub-pastas. Se quiser guarde esta pasta no drive C: do seu computador.
Mude o nome do arquivo se quiser, mas evite deixar espaos no nome do diretrio. Dentro
desta pasta existe um arquivo chamado arduino.exe que o ponto de entrada do programa
do Arduino, a IDE (Integrated Development Environment). Clique duas vezes neste arquivo.
Pronto, o software j est instalado.

18

multilogica-shop.com

3 - Instalando os drivers do Galileo


Conecte a placa ao computador e aguarde o Windows iniciar o processo de instalao do
driver.
Lembre-se de que sempre que estiver utilizando o Intel Galileo 2 Gerao
mantenha a placa conectada simultaneamente fonte de alimentao e porta
USB.
Depois de alguns momentos o processo vai falhar. Clique em concluir e dispense a ajuda do
assistente.

ATENO - As fontes de alimentao do Intel Galileo 1 Gerao e do Intel


Galileo 2 Gerao no so intercambiveis. A fonte de alimentao da 2 Gerao
de 12V e causar danos permanentes nas placas da 1 Gerao Galileo.

19

multilogica-shop.com

Clique no Menu Principal e abra o Painel de Controle.


Dentro do Gerenciador de Dispositivos localize o elemento Gadget Serial v2.4. Clique com o
boto da direita e selecione Atualizar Driver de Software.

20

multilogica-shop.com

Selecione a opo Procurar software de driver no computador.

21

multilogica-shop.com

Partindo do princpio que a IDE Arduino Intel j est instalada em seu computador, escolha
esta localidade, incluindo subdiretrios, para a busca do driver e clique em Avanar.

22

multilogica-shop.com

Algumas confirmaes sero solicitadas, depois clique em Instalar.

23

multilogica-shop.com

Aps alguns instantes, o Windows concluir a instalao do driver e retornar com o nome
Galileo. Clique em fechar.

24

multilogica-shop.com

Aps a instalao do driver, o Galileo vai aparecer instalado e com o nmero da porta COM j
definido.

25

multilogica-shop.com

4 - Atualizao do Firmware
Atualizar o firmware uma boa etapa a realizar aps a instalao dos drivers. Este processo
ajuda a comprovar que o software e os drivers foram instalados corretamente e prepara o
Intel Galileo 2 Gerao para o firmware mais atualizado disponvel. Siga os passos seguintes
para atualizar seu Galileo.
Reboot do Intel Galileo
Para fazer o reboot do Intel Galileo 2 Gerao em primeiro lugar desligue o cabo USB.
Depois, desligue a fonte do adaptador da placa. Se voc tem um carto SD colocado no
Galileo, retire antes de energizar novamente a placa.
Para ligar novamente o Galileo, certifique-se de conectar em primeiro lugar a fonte de 12V e
depois o cabo USB micro B na porta Cliente.
Ajuste inicial da IDE Arduino Galileo
Clique duas vezes na aplicao do Arduino, o arquivo arduino.exe. Caso o programa carregue
com o idioma que no da sua preferncia voc pode alterar na sesso de preferncias do
programa.
Confira com ateno que o ttulo da janela indica Arduino 1.5.3 no topo. Selecione agora
a porta serial que conectar o Galileo: Ferramentas > Porta Serial. Voc deve selecionar o
mesmo nmero de porta COM que o sistema definiu no final do passo 3 deste Guia.
Voc deve selecionar qual a sua placa: Ferramentas > Placa > Intel Galileo Gen 2.

26

multilogica-shop.com

Atualizao do Firmware
Finalmente, para atualizar o firmware v at Ajuda > Firmware update. Clique em Sim para
prosseguir.
O software ir verificar a comunicao com a placa e ler a verso atual do firmware. Na
prxima janela que surgir, selecione novamente a opo Sim para confirmar que voc quer
fazer o upgrade do firmware. Neste momento o processo dar incio.
O processo deve durar aproximadamente 5 minutos. Durante esta atualizao, no desligue
nem o cabo USB nem a fonte de seu Intel Galileo 2 Gerao. Ao final do processo o sistema
ir confirmar que a atualizao foi completada com sucesso.

27

multilogica-shop.com

5 - Exemplo Piscar
Abra o exemplo Piscar (blink): Arquivo > Exemplos > 01.Basics > Blink
Agora simplesmente clique no boto Carregar da janela do programa e espere alguns
segundos. Se o processo foi executado normalmente voc ver uma mensagem de
Transferncia concluda.
Depois de alguns segundos voc ver um pequeno LED verde piscar a cada segundo. Este
LED est conectado ao pino 13 do Galileo.
Neste caso, parabns! Seu Intel Galileo est pronto e instalado.

28

multilogica-shop.com

3 Programao Arduino

29

multilogica-shop.com

3.1 Software Arduino

Para executar o programa entramos na pasta do Arduino guardada no computador e


procuramos o cone. Clique duas vezes para abrir o programa.
O programa do Arduino tambm conhecido como IDE Arduino (Integrated Development
Environment) pois alm do ambiente de programao consiste tambm em um editor de
cdigo, um compilador e um depurador. Neste caso trabalharemos com a verso da IDE
especfica para o Intel Galileo.

Arduino

30

multilogica-shop.com

Espao de trabalho:

31

multilogica-shop.com

Sketches
Softwares escritos usando a IDE Arduino so chamados de Sketches. Estes Sketches so
escritos no editor de texto da IDE do Arduino e so salvos com a extenso de arquivo .ino.
Este editor tem caractersticas de cortar/colar e para buscar/substituir texto. A rea de
mensagem d feedback ao salvar e exportar arquivos e tambm exibe informaes de erros
ao compilar Sketches. O canto direito inferior da janela exibe a placa atual e a porta serial.
Os botes da barra de ferramentas permitem que voc verifique, carregue, crie, abra e salve
Sketches ou abra o monitor serial.
Verificar
Verifica se seu cdigo tem erros.
Carregar
Compila seu cdigo e carrega para a placa Arduino.
Novo
Cria um novo Sketch.
Abrir
Apresenta um menu de todos os sketches j existentes.
Salvar
Salva seu Sketch.
Monitor Serial
Abre o monitor serial.

32

multilogica-shop.com

Monitor Serial
Exibe dados seriais sendo enviados da placa Intel Galileo para o computador. Para enviar
dados para a placa, digite o texto e clique no boto "enviar" ou pressione enter.
A comunicao entre o Galileo e seu computador pode acontecer em vrias velocidades
padro pr-definidas. Para que isso ocorra importante que seja definida a mesma velocidade
tanto na Sketch quanto no Monitor Serial.
Na Sketch esta escolha feita atravs da funo Serial.begin. E no Monitor Serial atravs do
menu drop down do canto inferior direito.
Note que no Mac ou Linux a placa ir resetar (executar novamente o seu Sketch desde o
incio), quando voc abrir o monitor serial.

A comunicao serial com a placa Intel Galileo tambm pode ser feita atravs de outras
linguagens de programao como Processing, Flash, Python, MaxMSP e muitas outras.

33

multilogica-shop.com

Bibliotecas
O ambiente de programao Arduino pode ser estendido atravs da utilizao de bibliotecas,
assim como a maioria das plataformas de programao. Bibliotecas fornecem funcionalidades
extras para uso em sketches. Por exemplo, para trabalhar com hardware ou manipulao de
dados.
Algumas bibliotecas j vm instaladas com a IDE Arduino, mas voc tambm pode fazer
download ou criar a sua prpria.
Para usar uma biblioteca em um sketch, selecione em sua IDE Arduino:
Sketch> Importar Biblioteca.
Dentro da programao voc inclui as funcionalidades de uma biblioteca j existente a partir
do comando:
#include <LiquidCrystal.h>

34

multilogica-shop.com

3.2 Programando o Intel Galileo

O Intel Galileo se programa em uma linguagem de alto nvel semelhante a C/C++ e


geralmente tem os seguintes componentes para elaborar o algoritmo:
-

Estruturas
Variveis
Operadores booleanos, de comparao e aritmticos
Estrutura de controle
Funes digitais e analgicas

Para mais detalhes visite a Referncia da linguagem de programao Arduino, em portugus.


Veja a referncia estendida para caractersticas mais avanadas da linguagem Arduino e a
pgina das bibliotecas para interao com tipos especficos de hardware, no site oficial do
Arduino.

35

multilogica-shop.com

Estruturas
So duas as funes principais que deve ter todo programa em Arduino.
A funo setup() chamada quando um programa comea a rodar. Use esta funo para
inicializar as suas variveis, os modos dos pinos, declarar o uso de livrarias, etc. Esta funo
ser executada apenas uma vez aps a placa ser ligada ou ressetada.
setup(){
}

Aps criar uma funo setup() que declara os valores iniciais, a funo loop() faz exatamente
o que seu nome sugere, entra em looping (executa sempre o mesmo bloco de cdigo),
permitindo ao seu programa fazer mudanas e responder. Use esta funo para controlar
ativamente a sua placa.
loop(){
}

36

multilogica-shop.com

Variveis
Variveis so expresses que voc pode usar em programas para armazenar valores como a
leitura de um sensor em um pino analgico. Aqui destacamos algumas:
- Variveis Booleanas
Variveis boolenas, assim chamadas em homenagem a George Boole, podem ter apenas dois
valores: verdadeiro (true) e falso (false).
boolean running = false;

- Int
Inteiro o principal tipo de dado para armazenamento numrico capaz de guardar nmeros
de 2 bytes. Isto abrange a faixa de -32.768 a 32.767 (valor mnimo de -2^15 e valor mximo
de (2^15) -1).
int ledPin = 13;

- Char
Um tipo de dado que ocupa 1 byte de memria e armazena o valor de um caractere ASCII.
Caracteres literais so escritos entre aspas.
char myChar = A;

37

multilogica-shop.com

Operadores booleanos
Estes operadores podem ser usados dentro da condio em uma sentena if.
- && (e lgico)
Verdadeiro apenas se os dois operandos forem verdadeiros, ou seja, a primeira condio e a
segunda forem verdadeiras. Exemplo:
if (digitalRead(2) == 1
}

// ...

&& digitalRead(3) == 1) { // ler dois interruptores

verdadeiro apenas se os dois interruptores estiverem fechados.


- || (ou lgico)
Verdadeiro se algum dos operandos for verdadeiro, ou seja, se a primeira ou a segunda
condio for verdadeira. Exemplo:
if (x > 0 || y > 0) {
}

// ...

verdadeiro apenas se x ou y forem maiores que 0.


- ! (negao)
Verdadeiro apenas se o operando for falso. Exemplo:
if (!x) {
}

// ...

verdadeiro apenas se x for falso (ou seja, se x for igual a 0).

38

multilogica-shop.com

Operadores de comparao
if, que usado juntamente com um operador de comparao, verifica quando uma condio
satisfeita, como por exemplo um input acima de um determinado valor. O formato para uma
verificao if :
if (algumaVariavel > 50)
{
}

// faa alguma coisa

O programa checa se algumaVariavel (colocar acentos em nomes de variveis no uma


boa idia) maior que 50. Se for, o programa realiza uma ao especfica. Colocado de outra
maneira, se a sentena que est dentro dos parntesis verdadeira o cdigo que est dentro
das chaves roda; caso contrrio o programa salta este bloco de cdigo.
As chaves podem ser omitidas aps uma sentena if se s houver uma nica linha de cdigo
(definida pelo ponto e vrgula) que ser executada de modo condicional:
if (x > 120)

digitalWrite(LEDpin, HIGH);

if (x > 120)

digitalWrite(LEDpin, HIGH);
if (x > 120) {digitalWrite(LEDpin, HIGH);}

// todos so corretos

A sentena que est sendo verificada necessita o uso de pelo menos um dos operadores de
comparao:
x
x
x
x
x
x

39

== y (x igual a y)
!= y (x no igual a y)
< y (x menor que y)
> y (x maior que y)
<= y (x menor ou igual a y)
>= y (x maior ou igual a y)

multilogica-shop.com

Operadores aritmticos
Se aplicam no uso de variveis.
= (igualdade)
+ (adio)
- (subtrao)
* (multiplicao)
/ (diviso)
% (resto da diviso)

40

multilogica-shop.com

Estruturas de controle
So instrues que permitem decidir e realizar diversas repeties de acordo com alguns
parmetros. Entre os mais importantes podemos destacar:
- Switch/case
Do mesmo modo que as sentenas if, as switch/case controlam o fluxo dos programas.
Switch/case permite ao programador construir uma lista de casos dentro de um bloco
delimitado por chaves. O programa checa cada caso com a varivel de teste e executa o
cdigo se encontrar um valor idntico.
switch (var) {
case 1:

//faa alguma coisa quando var == 1

case 2:

//faa alguma coisa quando var == 2

default:

// se nenhum valor for idntico, faa o default

// default opcional

- While
While far com que o bloco de cdigo entre chaves se repita contnua e indefinidamente at
que a expresso entre parentesis () se torne falsa. Algo tem que provocar uma mudana no
valor da varivel que est sendo verificada ou o cdigo vai sempre ficar dando voltas dentro
do while. Isto poderia ser o incremento de uma varivel ou uma condio externa, como o
teste de um sensor.
var = 0;

while(var < 200){

// algum cdigo que se repete 200 vezes

var++;

41

multilogica-shop.com

- For
A sentena for utilizada para repetir um bloco de cdigo delimitado por chaves. Um
contador com incremento normalmente usado para controlar e finalizar o loop. A sentena
for til para qualquer operao repetitiva, e frequentemente usada com arrays para
operar em conjuntos de dados ou de pinos.
// Aumentar o brilho de um LED usando um pino PWM
int PWMpin = 13; // um LED

no pino 13

void setup()
{

// nenhum setup necessrio


}

void loop()
{

for (int i=0; i <= 255; i++){


analogWrite(PWMpin, i);

42

delay(10);

multilogica-shop.com

Funes digitais
Orientadas a revisar o estado e a configurao das entradas e sadas digitais.
- pinMode()
Configura o pino especificado para que se comporte ou como uma entrada (input) ou uma
sada (output).
Sintaxe:
pinMode(pin, mode)
pinMode(9, OUTPUT);

// determina o pino digital 9 como uma sada.

- digitalRead()
L o valor de um pino digital especificado, HIGH ou LOW.
Sintaxe:
digitalRead(pin)
buttonState = digitalRead(9);

// Leitura do estado de um boto no pino 9.

- digitalWrite()
Escreve um valor HIGH ou um LOW em um pino digital.
Sintaxe:
digitalWrite(pin, valor)
digitalWrite(9, HIGH);

43

multilogica-shop.com

// Coloca o pino 9 em estado HIGH.

Funes analgicas
Ideais para a leitura ou escrita de valores analgicos.
- analogRead()
L o valor de um pino analgico especificado. A placa Arduino contm um conversor
analgico-digital de 10 bits com 6 canais. Com isto ele pode mapear voltagens de entrada
entre 0 e 5 volts para valores inteiros entre 0 e 1023. Isto permite uma resoluo entre
leituras de 5 volts / 1024 unidades ou 0,0049 volts (4.9 mV) por unidade.
Sintaxe:
analogRead(pin)
int a = analogRead (A0);

// L o valor do pino analgico A0 e armazena


//este valor na varivel "a".

- analogWrite()
Escreve um valor analgico (onda PWM) em um pino. Pode ser usado para acender um LED
variando o brilho ou girar um motor a velocidade varivel.
Sintaxe:
analogWrite(pin, valor)
analogWrite (9,134);

44

multilogica-shop.com

// Envia o valor analgico 134 para o pino 9.

4 Tutoriais

Em cada tutorial deste guia voc identifica os materiais necessrios


para sua execuo, os conhecimentos prvios necessrios e o
que voc vai aprender, o diagrama de montagem, o cdigo de
programao, dicas e exerccios extras.
Lembre-se sempre de utilizar a fonte que acompanha seu Intel
Galileo 2 Gerao para realizar os tutoriais deste guia.

45

multilogica-shop.com

4.1 Hello World - Piscar

Este exemplo mostra a experincia mais simples que voc pode fazer com um Intel Galileo
2 Gerao para verificar uma sada fsica: piscar um LED.
Quando voc est aprendendo a programar, na maioria das linguagens de programao, o
primeiro cdigo que voc escreve diz Hello World na tela do computador. Como a placa
Arduino no tem uma tela substituiremos esta funo fazendo piscar um LED.

O Que Vou Aprender?


-

Ativar uma sada digital


Acender um LED em ON/OFF
Temporizar um sinal de sada
Sintaxe de um programa Arduino

Conhecimentos Prvios
- Sinal digital
- Funo digitalWrite()

46

multilogica-shop.com

Materiais Necessrios

1 Intel Galileo 2 Gerao

1 LED

47

multilogica-shop.com

1 Cabo USB microB

1 Resistor 330

Diagrama

48

multilogica-shop.com

Este cdigo j vem junto com a IDE do Arduino. Voc pode acessar em:
Arquivo > Exemplos > 01.Basics > Blink
Ns apenas reproduzimos aqui com explicaes e os comentrios em portugus.
No programa a seguir, o primeiro comando o de inicializar o pino 13 como sada atravs da
linha
pinMode(13, OUTPUT);

No loop principal do cdigo, voc liga o LED com esta linha de comando:
digitalWrite(13, HIGH);

Este comando direciona 5 volts ao pino 13 e o acende. Voc desliga o LED com o seguinte
comando:
digitalWrite(13, LOW);

Este comando retira os 5 volts do pino 13, voltando para 0 e desligando o LED. Entre desligar
e ligar voc precisa de tempo suficiente para que uma pessoa veja a diferena, ento o
comando delay() informa o Galileo no fazer nada durante 1000 milissegundos, ou um
segundo. Quando voc usa o comando delay(), nada mais acontece neste perodo de tempo.
Uma vez entendido os exemplos bsicos, verifique tambm o exemplo Piscar sem delay para
aprender como criar um delay enquanto faz outras funes.

49

multilogica-shop.com

Cdigo Fonte
/*

Piscar

Acende um LED por um segundo, e depois apaga pelo mesmo tempo, repetidamente.
*/

// Estabeleca um nome para o pino 13:


int led = 13;

// Se executa cada vez que o Galileo inicia:


void setup() {

// Inicializa o pino digital como sada.

pinMode(led, OUTPUT);

// A funcao loop() continua executando enquanto o Galileo estiver alimentado,


// ou ate que o botao reset seja acionado.
void loop() {

digitalWrite(led, HIGH);

// Aguarda um segundo (1s = 1000ms)

delay(1000);

// Aguarda um segundo (1s = 1000ms)

digitalWrite(led, LOW);
}

// Acende o LED

delay(1000);

50

multilogica-shop.com

// Apaga o LED

Dica
1 - Na linguagem Arduino // se utiliza para acrescentar comentrios na linha de cdigo, sendo
muito til para explicar uma sintaxe ou deixar um lembrete. Um exemplo de seu uso:
digitalWrite(13,LOW);

51

multilogica-shop.com

//Apaga o LED

4.2 Boto

O boto um componente que conecta dois pontos do circuito quando est pressionado.
Neste exemplo quando o boto est pressionado o LED se acende.

O Que Vou Aprender?


-

Cabear um circuito
Condicional if/else
Estado de um boto
Ler uma entrada digital e escrever uma sada digital

Conhecimentos Prvios
-

52

Sinal digital
Funo digitalWrite() e digitalRead()
Divisor de voltagem
Condicional, operadores booleanos e de comparao

multilogica-shop.com

Materiais Necessrios

1 Intel Galileo 2 Gerao

1 LED

Jumpers

53

multilogica-shop.com

1 Boto

1 Resistor 10k

1 Cabo USB microB

1 Resistor 330

1 Protoboard

Diagrama

54

multilogica-shop.com

Cdigo Fonte

/*

Botao

Liga e desliga um LED conectado ao pino digital 13 quando pressionado um


botao conectado ao pino 2.
O Circuito:

* LED conectado ao pino 13 e ao terra


* botao conectado ao pino 2 desde 5V

* resistor de 10K conectado ao pino 2 desde o terra

*/

// constantes nao sao alteradas.

// Sao usadas aqui para definir os numeros dos pinos:


const int buttonPin = 2;
const int ledPin =

// o numero do pino do boto

13;

// o numero do pino do LED

// variaveis que devem mudar:


int buttonState = 0;

// variavel para ler o estado do botao

void setup() {

// inicializa o pino do LED como saida:


pinMode(ledPin, OUTPUT);

// inicializa o pino do botao como entrada:

pinMode(buttonPin, INPUT);

void loop(){

// faz a leitura do valor do botao:

buttonState = digitalRead(buttonPin);

55

multilogica-shop.com

// verifica se o botao esta pressionado.

// em caso positivo, buttonState e HIGH:


if (buttonState == HIGH) {
// liga o LED:

digitalWrite(ledPin, HIGH);

else {

// desliga o LED:

56

digitalWrite(ledPin, LOW);

multilogica-shop.com

Dicas

1 - Quando voc est programando com o software do Arduino, muitas das palavras que voc
escreve so reservadas para a linguagem. Estas palavras se colocam com uma cor diferente,
e uma dica para verificar se esto escritas corretamente. Como no exemplo:
void loop() {

digitalWrite(13,HIGH);
delay(1000);

digitalWrite(13,LOW);
delay(1000);
}

2 - Em um projeto com uso de vrios botes com funcionalidades diferentes, pode ser til
trabalhar com peas como estas:
Conjunto de botes tcteis coloridos

57

multilogica-shop.com

Exerccio 1
Para evitar acidentes no ambiente de trabalho, uma regra de segurana em vrios
equipamentos industriais obrigar que um usurio aperte dois botes, um com cada mo,
para acionar uma mquina. o caso da mquina de corte usada em fbricas de papel.
Com a seguinte montagem podemos simular esta situao. O LED somente acende se os dois
botes do circuito estiverem pressionados:

Exerccio 2
Faa mais uma modificao no cdigo fonte do exerccio 1 para que voc possa acender o
LED do pino 13 pressionando ou o boto 1 ou o boto 2. Ao deixar de pressionar, o LED se
apaga.

58

multilogica-shop.com

4.3 Leitura Serial de uma Entrada Analgica

Este exemplo mostra como ler um pino de uma entrada analgica, mapear o resultado para
um intervalo de 0 a 1023, e usar esse resultado para definir a modulao PWM de um pino de
sada para acender e apagar um LED como um dmer.

O Que Vou Aprender?


-

Controlar uma entrada analgica


Ver dados pelo computador
Mltiplos estados de um potencimetro
Ler uma entrada analgica

Conhecimentos Prvios
- Sinal analgica
- Funo analogRead() e Serial.print

59

multilogica-shop.com

Materiais Necessrios

1 Cabo USB microB

1 Intel Galileo 2 Gerao

1 LED

Jumpers

60

multilogica-shop.com

1 Resistor
330

1 Potencimetro

1 Protoboard

Diagrama

61

multilogica-shop.com

Cdigo Fonte

/*

Entrada Analogica, Saida Analogica, Saida serial

Le o pino de entrada analogica, mapeia o resultado para um intervalo entre 0


e 1023 e usa o resultado para estabelecer o pulso PWM do pino de saida.
Tambem e possivel acompanhar o resultado atraves do Monitor Serial.
O circuito:

- O pino central do Potenciometro conectado ao pino analogico 0. Os pinos


lateriais do potenciometro conectados no terra e 5V.
- LED conectado no pino digital 9 e no terra.

Criado em 29/12/2008, Modificado em 09/04/2012 por Tom Igoe


Este exemplo e de dominio publico.
*/

// constantes nao sao alteradas:


const int analogInPin = A0;
const int analogOutPin = 9;
int sensorValue = 0;
int outputValue = 0;

// Entrada analogica do potenciometro

// Saida analogica onde o LED esta conectado


// leitura do potenciometro

// leitura da saida PWM (analogica)

void setup() {

// inicializa a comunicacao serial:

Serial.begin(9600);

void loop() {

// faz a leitura da entrada analogica:

sensorValue = analogRead(analogInPin);

62

multilogica-shop.com

// mapeia o resultado da entrada analogica dentro do intervalo de 0 a 1023:


outputValue = map(sensorValue, 0, 1023, 0, 255);
// muda o valor da saida analogica:

analogWrite(analogOutPin, outputValue);
// imprime o resultado no monitor serial:
Serial.print("sensor = " );
Serial.print(sensorValue);

Serial.print("\t output = ");

Serial.println(outputValue);

// Aguarda 2 milissegundos antes do proximo loop:


}

delay(2);

63

multilogica-shop.com

Dicas

1 - Note que as entradas analgicas do Intel Galileo tm uma resoluo de 12 bits (valores
de 0 a 4095), mas as sadas analgicas por PWM tm uma resoluo de 12 bits (valores de 0
a 4095). por isso que necessria a funo 'map', para "mapear" os valores de modo que
se mantenham proporcionais.

2 - Outros elementos que tambm so potencimetros:

Potencimetro de Membrana
rotativo Softpot

64

multilogica-shop.com

Potencimetro de Membrana
SoftPot 50mm

4.4 Comando com Comunicao Serial

Atravs deste tutorial voc vai controlar o acionamento de um rel e de um LED desde o
Monitor Serial de seu computador.

O Que Vou Aprender?


- Executar um comando atravs da Comunicao Serial
- Controlar o acionamento de um rel e de um LED atravs do computador
- Varivel char

Conhecimentos Prvios
- Variveis booleanas
- Serial.print

65

multilogica-shop.com

Materiais Necessrios

1 Cabo USB microB

1 Intel Galileo 2 Gerao

2 LEDs

Jumpers

66

multilogica-shop.com

2 Resistores
330

1 Rel

1 Protoboard

Diagrama

67

multilogica-shop.com

Cdigo Fonte

//**************************************************************************
//* Codigo para teste de Galileo acionando rele do kit Multilogica,
//* ligado na saida digital 2 e GND, monitorado pelo Led 13
//* este codigo tem dominio publico

//**************************************************************************
//inicializa uma variavel do tipo char que utiliza 1 byte para armazenar
//1 caracter

char input= 0;
int rele=2;
int led=13;

boolean y=true;

// inicializa uma variavel do tipo booleano

void setup() {

pinMode(rele,OUTPUT);
pinMode(led,OUTPUT);
Serial.begin(9600);
Serial.println();

Serial.print("**Codigo para acionar rele conectado ao pino 2 do Galileo ");


Serial.println("atraves do monitor serial**");
Serial.println("");

Serial.println("Pressione 1 e depois ENTER para inverter o estado do rele


novamente");
}

Serial.println("Aguardando comando :");

void loop() {

if (Serial.available() > 0) {
input= Serial.read();

68

multilogica-shop.com

if (input =='1'){

Serial.print("O rele agora esta ");


if(y){

digitalWrite(rele, HIGH);
digitalWrite(led, HIGH);

Serial.println("ligado");

else {

digitalWrite(rele, LOW);
digitalWrite(led, LOW);

}
}

Serial.println("desligado");

y=!y; // altera o valor de y, se le y e igual a nao y

else {

69

Serial.println("Comando invalido");

multilogica-shop.com

4.5 Display LCD

O display de LCD uma pea importante em projetos em que voc precisa visualizar a leitura
de um sensor ou mesmo para transmitir uma informao para o usurio.
Neste exerccio voc aprender a conectar um Display LCD 2x16, que j vem com os pinos
soldados.

O Que Vou Aprender?


-

Conectar seu display LCD ao Intel Galileo 2 Gerao


Programar frases para aparecer no visor do LCD
Ajustar o brilho do display com um potencimetro
Conhecer as funes da biblioteca LiquidCrystal.h
Usar as funes:
-

70

lcd.print
lcd.setCursor
scrollDisplayLeft()
scrollDisplayRight()

multilogica-shop.com

Materiais Necessrios
1 Intel Galileo 2 Gerao

71

1 Cabo USB microB

1 Potencimetro

1 Display LCD

Jumpers

1 Protoboard

multilogica-shop.com

Diagrama

72

multilogica-shop.com

Cdigo Fonte

/*

Biblioteca LiquidCrystal codigo Multilogica

Demonstra o uso do display de 16x2 caracteres

Esta biblioteca funciona com todos displays compativeis com o


driver Hitachi HD44780.
Este codigo escreve :
Multilogica shop
(cc)

2015

Circuito :

* LCD pino RS no pino digital 12

* LCD pino Enable no pino digital 11


* LCD pino D4 pin no pino digital 5
* LCD pino D5 pin no pino digital 4
* LCD pino D6 pin no pino digital 3
* LCD pino D7 pin no pino digital 2
* LCD pino R/W no terra
* Trimpot de 10K :
* +5V no +5V

* Terra no terra

* wiper to LCD VO pin (pin 3)


Codigo de dominio publico baseado no tutorial original :
http://www.arduino.cc/en/Tutorial/LiquidCrystal

*/

// Inclui o codigo da biblioteca:


#include <LiquidCrystal.h>

73

multilogica-shop.com

// Inicializa a biblioteca e define os pinos utilizados


LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {

// define o numero de colunas e linhas do Display :


lcd.begin(16, 2);

// Envia a mensagem para o display.


lcd.print("Multilogica shop");

lcd.setCursor(0, 1); //Posiciona o cursor na primeira coluna(0) e na


segunda linha(1) do Display
lcd.print(" (cc)

void loop() {
}

74

multilogica-shop.com

2015 ");

Dicas
Se o seu projeto necessita mais espao para visualizar informaes ou um display de LCD
diferenciado, conhea estas outras opes:

Display LCD 2x40 - branco sobre azul

Display LCD 2x16 fundo RGB

75

multilogica-shop.com

Exerccio 1
Aqui faremos mais um exerccio usando a mesma montagem deste Tutorial.
Neste exerccio voc poder tambm modificar o texto original e controlar o tempo que seu
texto fica fixo e a durao do scroll para a direita ou para a esquerda.

/*

LiquidCrystal Library - scrollDisplayLeft() and scrollDisplayRight()

Biblioteca LiquidCrystal codigo Multilogica

Demonstra o uso do display de 16x2 caracteres

Esta biblioteca funciona com todos displays compativeis com o


driver Hitachi HD44780

Este codigo escreve Multilogica Shop no LCD e usa

scrollDisplayLeft() e scrollDisplayRight() para passar o texto.


Circuito :

* LCD pino RS no pino digital 12

* LCD pino Enable no pino digital 11


* LCD pino D4 pin no pino digital 5
* LCD pino D5 pin no pino digital 4
* LCD pino D6 pin no pino digital 3
* LCD pino D7 pin no pino digital 2
* LCD pino R/W no terra
* Trimpot de 10K :
* +5V no +5V

* Terra no terra

* wiper to LCD VO pin (pin 3)

76

multilogica-shop.com

Library originally added 18 Apr 2008 by David A. Mellis

library modified 5 Jul 2009 by Limor Fried (http://www.ladyada.net)


example added 9 Jul 2009 by Tom Igoe
modified 22 Nov 2010 by Tom Igoe

Codigo de dominio publico baseado no tutorial original:


http://arduino.cc/en/Tutorial/LiquidCrystalScroll

*/

// Inclui o codigo da biblioteca:


#include <LiquidCrystal.h>

// Inicializa a biblioteca e define os pinos utilizados


LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
void setup() {

// define o numero de colunas e linhas:


lcd.begin(16, 2);

// Envia a mensagem para o display.


lcd.print("Multilogica Shop");
}

delay(2000);

void loop() {

// caminha 16 posicoes para o texto sair do display a esquerda:

for (int positionCounter = 0; positionCounter < 16; positionCounter++) {


// caminha uma posicao para a esquerda:
lcd.scrollDisplayLeft();
// Aguarda um instante:

delay(250);

// caminha 32 posicoes para o texto sair do display a direita:

for (int positionCounter = 0; positionCounter < 32; positionCounter++) {


// caminha uma posicao para a direita:
lcd.scrollDisplayRight();

77

multilogica-shop.com

// Aguarda um instante:
}

delay(250);

// caminha 16 posicoes para a esquerda para mover de novo ao centro:

for (int positionCounter = 0; positionCounter < 16; positionCounter++) {


// caminha uma posicao para a esquerda:
lcd.scrollDisplayLeft();
// Aguarda um instante:

delay(250);

// delay no final do full loop:


delay(2000);
}

78

multilogica-shop.com

4.6 Sensor de proximidade

Este sensor capaz de determinar a aproximao de um objeto atravs da reflexo de


infravermelhos.
Neste tutorial vamos utilizar este sensor e gerar uma sada no display de LCD utilizando a
biblioteca LcdBarGraph. Vamos tambm gerar uma sinalizao quando a leitura do sensor de
distncia ultrapassar um determinado valor. Neste caso um LED ir acender.

O Que Vou Aprender?


-

Conectar o sensor de distncia Sharp GP2S28


Usar a entrada analgica
Gerar uma sinalizao quando uma leitura ultrapassa um valor determinado.
Utilizar a biblioteca para gerar sadas que no sejam texto no LCD:
- LcdBarGraph.h

79

multilogica-shop.com

Materiais Necessrios
1 Intel Galileo 2 Gerao

1 Cabo USB microB

1 Sensor de distncia
Sharp GP2S28

1 Resistor
100

1 Potencimetro

1 LED

1 Resistor
330

1 Resistor
10k

1 Display LCD

Jumpers
1 Protoboard

4 unidades
Jumpers macho-fmea

80

multilogica-shop.com

Diagrama

Colocando-se o sensor na posio mostrada na foto, os dois


jumpers vermelhos correspondem aos pinos que esto nas
posies A (anodo) e C (coletor). O jumper azul corresponde ao
pino K (catodo) e o jumper laranja ao pino E (emissor).

81

multilogica-shop.com

Cdigo Fonte
#include <LiquidCrystal.h>

#include <LcdBarGraph.h>
byte lcdNumCols = 16;
byte sensorPin0 = 0;
int var0;
int var1;

int ledPin = 8;

LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

LcdBarGraph lbg1(&lcd, lcdNumCols, 0, 0);


LcdBarGraph lbg2(&lcd, lcdNumCols, 0, 1);
void setup(){

pinMode(ledPin, OUTPUT);

lcd.begin(2, lcdNumCols);
lcd.clear();

delay(10);

void loop()
{

var0 = analogRead(sensorPin0);

var1 = 250;

if (var0 > var1) { //nenhum objeto detectado

digitalWrite(ledPin,HIGH); //apaga o LED indicador de presena de objeto

} else { //objeto detectado


}

digitalWrite(ledPin,LOW);
lbg1.drawValue( analogRead(sensorPin0), 1024);
lbg2.drawValue( var1 , 1024);

82

delay(10);

multilogica-shop.com

83

multilogica-shop.com

5. Persistncia da Sketch
Se voc est acostumado com outros Arduinos notar que uma das diferenas do Intel
Galileo 2 Gerao que quando ele desligado da alimentao a sketch que estava
armazenada se perde.
Ou seja, quando a alimentao reconectada a sketch no volta a ser executada.
Para implementar esta funcionalidade voc necessitar de um carto micro SD e um leitor que
possa conectar este carto ao seu computador. Este carto deve obedecer duas requisies:
- deve ser formatado como FAT ou FAT32
- deve ter capacidade mxima de 32GB no formato SDHC. O formato SDXC no funcionar.
Caso voc esteja utilizando um carto que no seja novo recomendamos que voc o
reformate utilizando o software fornecido para esta finalidade da SD Association, e que pode
ser baixado neste link:
https://www.sdcard.org/downloads/formatter_4/
O prximo passo baixar a imagem do sistema operacional no site da Intel deste link:
https://downloadcenter.intel.com/Detail_Desc.aspx?DwnldID=24355
H varios arquivos para download nesta pgina mas neste momento o que nos interessa o:
File name: SDCard.1.0.4.tar.bz2
possvel que em futuras atualizaes o nome deste arquivo mude mas isso deve ocorrer
respeitando-se a numerao das novas verses. Em caso de dvida procure pelo que tem a
especificao:
Operating Systems: Linux*

84

multilogica-shop.com

Uma vez que o arquivo esteja em seu computador voc deve fazer a descompactao. A
estrutura de arquivos que voc conseguir ser como a da imagem abaixo:

Copie exatamente como est para o seu carto micro SD.


Esteja certo de que sua placa Intel Galileo no est conectada nem na fonte de alimentao
nem na porta USB.
Agora voc j pode desconectar o carto de seu computador, encaixar no Intel Galileo e
reconectar a fonte de alimentao.
A placa dar o boot a partir da imagem gravada no carto. Voc pode notar que em alguns
momentos o LED indicativo SD ir acender e apagar.
Esta operao demorar alguns minutos. Seja paciente. Voc pode monitorar o final do
processo de boot conectando novamente o cabo USB e abrindo o gerenciador de dispositivos.
Quando o boot estiver pronto a placa Intel Galileo ir novamente aparecer entre as portas
COM.
Com o boot pelo carto micro SD a prxima sketch que voc carregar ser gravada no carto
e ser acionada sempre que a alimentao da placa for reestabelecida.
Para testar a persistncia da sketch siga estes passos:
- carregue o "Blink"
- espere que o LED conectado ao pino 13 comece a piscar
- desligue a conexo USB
- deligue a fonte de alimentao
- espere alguns segundos
- religue a fonte de alimentao
Aps o processo de boot o LED conectado ao pino 13 voltar a piscar.

85

multilogica-shop.com

Verso 1.0
Guia desenvolvido pela Equipe da Multilgica-Shop.
Baseado no Galileo Getting Started Guide criado pela Spark Fun.
multilogica-shop.com