Você está na página 1de 20

MANUAL DE MONTAGEM DE EXTRAS

Bot’n Roll ONE

©Copyright 2010, SAR - Soluções de Automação e Robótica, Lda.


Manual de Montagem de Extras

ÍNDICE

Manual de Montagem de Extras ................................................................................................................. 1

Índice ........................................................................................................................................................... 1

1. Seguidor de Linha ................................................................................................................................ 3

1.1 Montagem e Soldadura dos Componentes ....................................................................................... 3

1.2 Fixação do Seguidor de Linha............................................................................................................. 6

1.3 Ligação Eléctrica do Seguidor à Placa do Bot´n Roll ONE................................................................... 6

1.4 Código de Exemplo ............................................................................................................................ 7

2. LCD ....................................................................................................................................................... 8

2.1 Fixação do LCD ................................................................................................................................... 8

2.2 Ligação Eléctrica do LCD ao Bot´n Roll ONE ....................................................................................... 9

2.3 Comunicação I2C com o LCD.............................................................................................................. 9

2.3.1 Barramento I2C ........................................................................................................................... 9

2.3.2 Comandos de Controlo do LCD ................................................................................................... 9

2.3.3 Lista de Comandos do LCD ........................................................................................................ 10

2.4 Código Exemplo ............................................................................................................................... 10

3. Altifalante .......................................................................................................................................... 11

3.1 Fixação do Altifalante....................................................................................................................... 11

3.2 Ligação Eléctrica do Altifalante ao Bot´n Roll ONE .......................................................................... 11

3.3 Picaxe Tune Wizard .......................................................................................................................... 12

4. LED Muliticolor RGB ........................................................................................................................... 12

4.1 Componentes do kit LED Multicolor ................................................................................................ 13

4.2 Ligações Eléctricas dos LEDS Multicolores RGB ............................................................................... 13

4.3 Aplicação dos LEDs Multicolores no Bot’N Roll ONE ....................................................................... 13

4.4 Comunicação I2C com o LED RGB .................................................................................................... 14

5. Sensor de Cores RGB.......................................................................................................................... 15

5.1 Componentes do Kit Sensor de Cores RGB .............................................................................. 15

5.2 Fixação do Sensor de Cores RGB .............................................................................................. 15

©Copyright 2010, SAR - Soluções de Automação e Robótica, Lda. 1


Manual de Montagem de Extras

5.3 Ligação Eléctrica do Sensor de Cores RGB ao Bot’n Roll ONE .................................................. 16

5.4 Comunicação I2C Com o Sensor de Cores RGB ................................................................................ 17

©Copyright 2010, SAR - Soluções de Automação e Robótica, Lda. 2


Manual de Montagem de Extras

1. SEGUIDOR DE LINHA

O seguidor de linha possui 3 sensores de infravermelhos. UUm microcontrolador pré-programado


programado lê os 3
sensores e envia a informação dos estados ao PICAXE 28X1 através de 3 saídas digitais. Este kit vem em
peças separadas e tem de ser previamente montado e soldado. Estão incluídos todos os acessórios para
fixação e respectivos cabos de ligação à placa do Bot´n Roll ONE.

Fig. 1: Seguidor de Linha

NOTA IMPORTANTE: Não retires os sensores de infravermelhos ST ST-7L


7L que estão num saco separado.
Retira-os apenas quando forem necessário
necessários para a montagem. Estes sensores são idênticos aos
emissores de infravermelhos EL-7L
7L e p
por isso deve-se
se ter o cuidado de não os misturar.

1.1 MONTAGEM E SOLDADURA


OLDADURA DOS COMPONENTES

Conteúdo do Kit:

PCB
Componentes electrónicos
Acessórios de fixação
Cabos de 4 pinos

Fig. 3:: Conteúdo do kit seguidor de linha

Fig. 2: PCB do Seguidor de Linha

©Copyright 2010, SAR - Soluções de Automação e Robótica, Lda. 3


Manual de Montagem de Extras

Em seguida apresentam-se os componentes para montagem no topo (do lado da serigrafia) do PCB
(Soldadura a efectuar no verso do PCB).

Material:

IC1, suporte de circuito integrado de 14 pinos e microcontrolador PIC16F876


R1, Resistência de 4K7
R2, Resistência de 12R
A1, Conjunto de resistências de 4K7 (472G )
A2, Conjunto de resistências de 1K (102G)
VR1, Potenciómetro de 100K
L1-3, LED 3mm amarelo

Procedimento:

1. Solda as duas resistências R1 (4K7) e R2 (12R) na posição


correspondente;
2. Solda o suporte de circuito integrado de 14 pinos IC1;

Fig. 4: Resistências e Suporte do IC

3. Solda os três LEDs amarelos L1-3 na posição correspondente,


certificando-te que o perno mais comprido é inserido no
orifício com a marcação “+”.

4. Solda os dois conjuntos de resistências A1 e A2 nas suas


posições tendo em atenção que a marcação de um “ponto” no
componente alinha com a marcação do ponto no PCB.

Fig. 5: Leds e Resistências

5. Solda o cabo com 2 condutores da seguinte forma: o condutor


vermelho solda na furação com a marcação 1 e o condutor
castanho solda no orifício 5;

6. O cabo com 3 condutores será soldado de acordo com a Fig. 6.


Solda o condutor amarelo no orifício 2, o laranja no 3 e o
vermelho no 4;

Fig. 6: Ligação de cabos

©Copyright 2010, SAR - Soluções de Automação e Robótica, Lda. 4


Manual de Montagem de Extras

7. Solda o potenciómetro em VR1 e coloca o


microcontrolador no suporte de circuito integrado de 14
pinos, de forma que o pino 1 fique direccionado para o
lado das resistências R1 e R2.

Fig. 7: Potenciómetro e Microcontrolador


Componentes para montagem do PCB (Soldadura efectuada
no lado da serigrafia do PCB)

C1-3, Condensador 100nF

IR1-3, Emissor de Infravermelho de 3mm EL-7L

Q1-3, Receptor de Infravermelho de 3mm ST-7L

Solda os três condensadores C1-3 na posição correspondente.


Eles vão actuar como uma "parede" entre o emissor e receptor
de infravermelhos, garantindo que apenas a luz reflectida é
detectada;

Fig. 8: Condensadores

Solda os três emissores de infravermelhos IR1-3 como indicado


na Fig. 9, certificando-te que o perno mais comprido é inserido
no orifício com a marcação “+”. Certifica-te também que os
emissores ficam colocados perpendicularmente ao PCB.

Fig. 9: Leds Emissores

Solda, por fim, os três receptores de infravermelhos Q1-3 na


posição correspondente, certificando-te que o perno mais
comprido é inserido no orifício com a marcação “+”. Assegura-
te que os emissores ficam colocados perpendicularmente ao
PCB.

Fig. 10: Leds Receptores

Fig. 11: Montagem final

©Copyright 2010, SAR - Soluções de Automação e Robótica, Lda. 5


Manual de Montagem de Extras

1.2 FIXAÇÃO DO SEGUIDOR DE LINHA

A fixação do seguidor de linha no Bot´n Roll ONE é efectuada


através de 2 orifícios na placa de acrílico, com furação de 3mm.
(Ver ANEXO B do Manual Bot´n Roll ONE.)

Para a colocação do seguidor de linha são fornecidos dois


conjuntos de espaçadores de nylon (Fig. 12).

Fig. 12: Suportes

Cada conjunto perfaz um comprimento de 36mm e terá que ser


colocado como indicado na Fig. 13.

Fixa o seguidor de linha ao Bot´n Roll ONE usando os espaçadores


e os parafusos de nylon.

Fig. 13: Fixação do seguidor de linha

1.3 LIGAÇÃO ELÉCTRICA DO SEGUIDOR À PLACA DO BOT´N ROLL ONE

Passa os cabos do seguidor de linha pela placa de acrílico como


exemplificado na Fig. 14.

Liga o cabo com 3 condutores ao Bot´n Roll ONE no conector


com a marcação “JP1” e o cabo com 2 condutores ao conector
com marcação “JP5”.

ATENÇÃO: Executa sempre a ligação eléctrica com o Bot´n Roll


ONE desligado!

Fig. 14: Ligação ao Bot’n Roll ONE

©Copyright 2010, SAR - Soluções de Automação e Robótica, Lda. 6


Manual de Montagem de Extras

1.4 CÓDIGO DE EXEMPLO

'segueLinha.bas

symbol IR_ESQ = b0 'cria a variável IR_ESQ no endereço interno b0


symbol IR_DIR = b1 'cria a variável IR_DIR no endereço interno b1
symbol IR_CEN = b2 'cria a variável IR_DIR no endereço interno b2

main:
gosub linha
if IR_ESQ = 0 AND IR_DIR = 0 AND IR_CEN = 1 then
gosub FRENTE
endif
if IR_DIR = 1 AND IR_ESQ = 0 then
gosub DIREITA
endif
if IR_DIR = 0 AND IR_ESQ = 1 then
gosub ESQUERDA
endif
if IR_ESQ = 0 AND IR_DIR = 0 AND IR_CEN = 0 then
gosub PARA
endif
if IR_ESQ = 1 AND IR_DIR = 1 AND IR_CEN = 1 then
gosub PARA
endif
let IR_DIR=0
let IR_ESQ=0
let IR_CEN=0
goto main
linha:
if porta pin0 = 1 then let IR_ESQ=1 ‘ Verifica se o sensor da Esquerda está activo
endif
if porta pin1 = 1 then let IR_CEN=1 ‘ Verifica se o sensor do centro está activo
endif
if porta pin2 = 1 then let IR_DIR=1 ‘ Verifica se o sensor da Direita está activo
endif
return

FRENTE: ‘ Rotina que faz andar o Bot´n Roll ONE em frente


let pins = %00000101
pwmout 2 , 49, 200
pwmout 1 , 49, 200
return
ESQUERDA: ‘ Rotina que faz virar o Bot´n Roll ONE à esquerda
let pins = %00000110
pwmout 2 , 49, 150
pwmout 1 , 49, 150
return
DIREITA: ‘ Rotina que faz virar o Bot´n Roll ONE à direita
let pins = %00001001
pwmout 2 , 49, 150
pwmout 1 , 49, 150
return
PARA: ‘ Rotina que faz parar o Bot´n Roll ONE
let pins = %00000000
pwmout 2,49,0
pwmout 1,49,0
return

©Copyright 2010, SAR - Soluções de Automação e Robótica, Lda. 7


Manual de Montagem de Extras

2. LCD

O LCD03 é um LCD de 4 linhas, com 20 caracteres por linha e comunicação I2C. A ligação com o Bot´n
Roll ONE é feita através do barramento I2C. Com este LCD terás um interface para comunicação com o
exterior. Podes imprimir mensagens para o utilizador como por exemplo, estados do programa ou o
valor de variáveis.

Este LCD contém todos os acessórios para fixação e o respectivo cabo de ligação à placa do Bot´n Roll
ONE.

Fig. 15: Dysplay LCD

2.1 FIXAÇÃO DO LCD

Para o suporte do LCD são fornecidos 4 conjuntos de


espaçadores de nylon de 36mm (Fig. 16).

Fixa os espaçadores na base de acrílico como exemplificado


na Fig. 17. Existem 4 orifícios de 3mm na placa de acrílico
para a inserção dos espaçadores (Ver ANEXO B do Manual
Bot´n Roll ONE).
Fig. 16: Material para suporte do LCD

Aplica o LCD no Bot’n Roll ONE usando os espaçadores e os


parafusos de nylon (Fig. 18).

Fig. 17: Suportes LCD

Fig. 18: Aplicação do LCD no Bot’n Roll ONE

©Copyright 2010, SAR - Soluções de Automação e Robótica, Lda. 8


Manual de Montagem de Extras

2.2 LIGAÇÃO ELÉCTRICA DO LCD AO BOT´N ROLL ONE

A ligação eléctrica é efectuada através de um cabo de 4


condutores e respectivos conectores.

Um dos conectores ligará na Placa Expansora do


Barramento I2C do Bot´n Roll ONE, onde a serigrafia
indica “LCD”(Fig. 19).

Fig. 19: Conecção à Placa Expansora do Barramento I2C

Liga o outro conector ao LCD com a disposição


apresentada na Fig. 20.

Fig. 20: Conexão no LCD

2.3 COMUNICAÇÃO I2C COM O LCD

2.3.1 BARRAMENTO I2C

O LCD é colocado no barramento I2C com o endereço 0XC6.

2.3.2 COMANDOS DE CONTROLO DO LCD

O LCD03 tem quatro registos, três dos quais são apenas registos de leitura de informação. O registo 0
tem dupla funcionalidade, quando é para escrita, é o registo de comando onde todas as instruções da
secção de comandos poderão ser enviadas. Quando é de leitura retorna o número de bytes livres no
buffer FIFO.

©Copyright 2010, SAR - Soluções de Automação e Robótica, Lda. 9


Manual de Montagem de Extras

2.3.3 LISTA DE COMANDOS DO LCD

Nota: Para mais informação sobre o display LCD03 consulta o manual em anexo (LCD03.pdf).

2.4 CÓDIGO EXEMPLO

‘LCD03.bas

init: pause 2000 ‘espera necessária para inicialização do LCD


i2cslave %11000110,i2cslow,i2cbyte ‘configuração do i2cslave para o LCD
main: writei2c (0,12,4) ‘comando que apaga a informacao do LCD
pause 100
writei2c (0,2,24) ‘coloca o cursor na posicao 24 do LCD
writei2c (0,"Bot`n Roll ONE") ‘impressao do "Bot`n Roll ONE" no LCD
pisca:
writei2c (0,19) ‘liga a luz de fundo do LCD
pause 500
writei2c (0,20) ‘desliga a luz de fundo do LCD
pause 500
goto pisca
end

©Copyright 2010, SAR - Soluções de Automação e Robótica, Lda. 10


Manual de Montagem de Extras

3. ALTIFALANTE

Equipado com um Altifalante, o Bot’n Roll ONE consegue emitir


sons para o exterior e desta forma aumentar a sua interacção com
o mundo.
Poderás verificar no Altifalante fornecido, as suas especificações
técnicas. Neste exemplo, o Altifalante tem uma impedância de 8
Ohms e uma potência de 2 W.

Fig. 21 Altifalante

3.1 FIXAÇÃO DO ALTIFALANTE

Para fixares o Altifalante usa o velcro fornecido no kit que permitirá a sua colocação em qualquer parte
da estrutura do Bot’N Roll ONE.

3.2 LIGAÇÃO ELÉCTRICA DO ALTIFALANTE AO BOT´N ROLL ONE

O Altifalante possui um cabo de ligação e respectivo conector de


cinco pinos, que deverá ser ligado ao Bot’n Roll ONE no conector
identificado como “JP2”.

Fig. 22 Ligação do Altifalante

©Copyright 2010, SAR - Soluções de Automação e Robótica, Lda. 11


Manual de Montagem de Extras

3.3 PICAXE TUNE WIZARD

O "Picaxe Tune Wizard"" é uma ferramenta do ""Picaxe Programming Editor"" que te permitirá compôr
facilmente as melodias ou sinais de aviso. Para aceder a esta ferramenta clica em PICAXE -> Wizards ->
Ring Tone Tunes.. Aparece então a janela do Editor.

Fig. 23: “Picaxe Tune Wizard”

Para uma correcta configuração do altifalante terás de seleccionar o Out


Output 4 no "PICAXE
PICAXE Tune Wizard".
Wizard
Seguidamente defines o tempo da música em batidbatidas
as por minuto (BPM) e adicionas as notas no editor,
tendo em conta a sua duração e a oitava. Para ouvires a tua criação musical clicas em Play e não te
esqueças de ir guardando o teu trabalho para um ficheiro clicando em File->Save.. Assim que terminares
a composição deverás adicioná--la
la na programação do teu Bot´N Roll ONE e para isso basta clicar em
Copy no "Tune Wizard". O código gerado será colocado no local do programa onde estiver o cursor.

4. LED MULITICOLOR RGB

O par de LEDs Multicolores vão “colorir” o teu Bot´n Roll ONE. Usando comunicação I2C podes
configurar os leds de forma independente. Cada um tem uma resolução RGB de 24 bits, ou seja, pode
apresentar 16.777.216 cores diferentes! O LED Multicolor tem diferentes modos de funcionamento.
Podes, por exemplo, configurar mu
mudanças
danças instantâneas de cor ou aplicar um efeito de transição entre
cores, com um tempo definido por ti.

Podes também programar o LED com uma sequência de cores para ele executar repetidamente.

Nunca olhes directamente para um led a uma distância curta pois pode ferir a retina e causar
problemas de visão permanentes
permanentes.

©Copyright 2010, SAR - Soluções de Automação e Robótica, Lda. 12


Manual de Montagem de Extras

4.1 COMPONENTES DO KIT LED MULTICOLOR

O Kit LED Multicolor é composto pelos seguintes items:

2 LEDs Multicolores
2 Cabos de 4 condutores
2 Abraçadeiras de serrilha

Fig. 24 Componentes Leds RGB

4.2 LIGAÇÕES ELÉCTRICAS DOS LEDS MULTICOLORES RGB

Ligações eléctricas dos LEDs Multicolores

Para ligar os LEDs Multicolores deves:

1. Encaixar cada LED Multicolor numa extremidade de cada cabo


como indicado na Fig. 25.

Fig. 25: Inserção do LED RGB no cabo

2. A outra extremidade de cada cabo conecta à Placa Expansora


do Barramento I2C nas ligações “RGB1” e “RGB2” (Fig. 26).

Fig. 26 Ligação dos LEDs RGB ao Bot’n Roll ONE

4.3 APLICAÇÃO DOS LEDS MULTICOLORES NO BOT’N ROLL ONE

Aplica os LEDs Multicolores no teu Bot’N Roll


ONE onde achares mais conveniente. Neste caso
foram usadas as abraçadeiras de serrilha para
colocar os LEDs no suporte do LCD.

Fig. 27: Bot’n Roll ONE com LEDs Multicolores

©Copyright 2010, SAR - Soluções de Automação e Robótica, Lda. 13


Manual de Montagem de Extras

4.4 COMUNICAÇÃO I2C COM O LED RGB

Por defeito, todos os LEDs Multicolores vêm de fábrica com o endereço $09 (0x09 em notação
hexadecimal). Para poderes controlar os LEDs de forma independente, é necessário alterar o endereço
de um deles. Para isso terás que colocar um só LED no barramento I2C e executar o código de exemplo
“changeLEDAddress.bas”, no Picaxe Programming Editor. Na segunda linha do programa colocas o novo
endereço a atribuir ao teu LED RGB.

'changeLEDAddress.bas 'programa para mudar endereço I2C do LED Multicolor


symbol enderecoNovo=80 ' define o novo endereço a ser atribuído ao LED

symbol enderecoSlave=enderecoNovo<<1 'faz um shift para a esquerda do enderecoNovo


init: pause 1000 'pausa necessária para inicialização do LED Multicolor

main: i2cslave 1,i2cslow,i2cbyte 'define endereço de broadcast


writei2c ("o") 'pára a sequência do LED
pause 200 'pausa de 200ms
writei2c ("A",enderecoNovo,$d0,$0d,enderecoNovo) 'muda para endereço $9
pause 200 'pausa de 200ms
i2cslave enderecoSlave,i2cslow,i2cbyte ' configuração do i2cslave para o LED
pause 100 'pausa de 100ms

pisca: gosub red 'chama a rotina muda a cor do LED RGB para vermelho
gosub green 'chama a rotina muda a cor do LED RGB para verde
gosub blue 'chama a rotina muda a cor do LED RGB para azul
gosub black 'chama a rotina muda a cor do LED RGB para Apagado
gosub white 'chama a rotina muda a cor do LED RGB para banco
goto pisca 'volta para "pisca"
end

red: writei2c ("n",255,0,0) 'coloca o Led com a cor vermelha


pause 300 'pausa de 300ms
return 'devolve o fluxo do programa ao local onde a subrotina foi chamada

green:writei2c ("n",0,255,0) 'coloca o Led com a cor verde


pause 300 'pausa de 300ms
return 'devolve o fluxo do programa ao local onde a subrotina foi chamada

blue: writei2c ("n",0,0,255) 'coloca o Led com a cor azul


pause 300 'pausa de 300ms
return 'devolve o fluxo do programa ao local onde a subrotina foi chamada

white:writei2c ("n",255,255,255) 'coloca o Led com a cor branca


pause 300 'pausa de 300ms
return 'devolve o fluxo do programa ao local onde a subrotina foi chamada

black:writei2c ("n",0,0,0) 'coloca o Led apagado


pause 300 'pausa de 300ms
return

No final do programa o LED deve piscar com várias cores.

Consulta o manual BlinkM.pdf para veres todos os comandos disponíveis além dos já apresentados no
programa.

Bom Trabalho!

©Copyright 2010, SAR - Soluções de Automação e Robótica, Lda. 14


Manual de Montagem de Extras

5. SENSOR DE CORES RGB

Este extra consiste num sensor de cores RGB de 10 bits e de quatro canais. Tendo quatro canais, o
sensor consegue decompor uma determinada cor nas três cores primárias (vermelho, verde e azul),
registando também a intensidade da luz incidente.

A resolução de cada canal é de 10 bits, isto é, para cada


cor primária e intensidade de luz de uma leitura do
sensor, obtêm-se valores que variam entre 0 e 1023.

Este sensor mede intensidades de luz entre 100 lux e


100000 lux e adapta-se facilmente a ambientes de
iluminação diferentes bastando para isso um ajuste dos
valores de configuração do sensor no software.

Este sensor possui iluminação própria através de um Fig. 28: Sensor RGB
LED de cor branca. É muito preciso e fiável, conseguindo
identificar pequenas diferenças entre cores.

A comunicação com o Bot’n Roll ONE é efectuada pelo barramento I2C.

5.1 COMPONENTES DO KIT SENSOR DE CORES RGB

O Kit Sensor RGB é composto pelos seguintes itens:

1 Sensor RGB;
1 Cabo com 4 condutores;
4 Espaçadores de nylon;
4 Parafusos de nylon;

Fig. 29: Material constituinte do kit Sensor RGB

5.2 FIXAÇÃO DO SENSOR DE CORES RGB

A fixação do sensor RGB no Bot´n Roll ONE é


efectuada através de 2 orifícios na placa de acrílico,
com furação de 3mm. (Ver ANEXO B do Manual
Bot´n Roll ONE.)

Para a colocação do sensor RGB são fornecidos dois


conjuntos de espaçadores de nylon (Fig. 30).

Cada conjunto perfaz um comprimento de 38mm e


terá que ser colocado como indicado na Fig. 30.

Fig. 30: Suportes do Sensor RGB

©Copyright 2010, SAR - Soluções de Automação e Robótica, Lda. 15


Manual de Montagem de Extras

Fixa o sensor RGB ao Bot´n Roll ONE através dos


espaçadores de 38mm usando os parafusos de nylon
(Fig. 31).

O sensor RGB está a 2mm do chão o que permite uma


correcta amostragem das cores.

No caso usares o sensor RGB em conjunto com o


Seguidor de Linha, fixa o sensor RGB aos espaçadores do
Seguidor de Linha. Como estes espaçadores são de
36mm permitem manter a distância óptima de 2mm ao Fig. 31: Fixação do sensor RGB ao espaçador
chão para a amostragem das cores.

Na figura Fig. 32 vês como fixar os dois sensores para serem usados em conjunto. Nota que o sensor RGB
fica por baixo (mais perto do chão) do Seguidor de Linha.

Fig. 32: Sensor RGB usado em conjunto com o Seguidor de Linha

5.3 LIGAÇÃO ELÉCTRICA DO SENSOR DE CORES RGB AO BOT’N ROLL ONE

Insere no sensor RGB uma extremidade do cabo


fornecido e passa-o através da placa de acrílico,
como indicado na Fig. 33.

Insere a outra extremidade do cabo na Placa


Expansora do Barramento I2C em “C+D-“ como
indicado na Fig. 34.

Fig. 33: Ligação eléctrica do sensor RGB

Fig. 34: Ligação do sensor RGB na Placa Expansora

©Copyright 2010, SAR - Soluções de Automação e Robótica, Lda. 16


Manual de Montagem de Extras

5.4 COMUNICAÇÃO I2C COM O SENSOR DE CORES RGB

Usando o I2C consegues efectuar leituras e configurar o teu Sensor de Cores RGB.

Para enviar comandos de configuração e iniciar uma leitura usa o endereço I2C $E8 (notação
hexadecimal). Para aceder aos registos com o resultado de uma leitura/conversão usa o endereço $E9.

Este sensor possui registos de configuração que devem ser ajustados para efectuares uma leitura com
precisão. Estes registos são um condensador e um tempo de integração que devem ser alterados de
forma que, para cada canal, obtenhas valores de leitura que variem entre 0(preto) e 1000(branco).

O valor do condensador é configurado alterando o seu valor entre 0 e 15 (notação decimal).


Aumentando o valor do condensador terás valores de leitura mais baixos.

O tempo de integração corresponde a uma variável de 12bits, 8 LOW bits + 4 HIGH bits. Aumentando o
tempo de integração terás valores de leitura mais altos.

Com estas opções de configuração, facilmente adaptas as tuas leituras às mudanças de intensidade de
luz que acontecem frequentemente.

O código que se segue efectua a


configuração do sensor (uma só vez
no início do programa). De seguida e
de forma repetitiva, efectua leituras
de côr. Aparecerá a janela de
“Debug” do Picaxe Programming
Editor que mostra os valores obtidos
para cada canal. Estes valores são
actualizados a cada leitura e são os
valores das variáveis usadas no
programa.

O programa também envia cada


leitura, para um LED RGB que possua
o endereço $A0. Os valores de 10 bits
do Sensor RGB são previamente
convertidos para valores de 8 bits
usados pelo LED.

Fig. 35 Janela de Debug do Picaxe Programming Editor

Analisando o código seguinte vais perceber como efectuar as configurações do sensor assim como obter
leituras de côr. Este programa encontra-se nos programas exemplo de que acompanham o manual.

Bom trabalho!

©Copyright 2010, SAR - Soluções de Automação e Robótica, Lda. 17


Manual de Montagem de Extras

'*********** Definição dos Endereços I2C a usar no programa ***********

symbol write_add = $E8 'Endereço para escritas no Sensor RGB


symbol read_add = $E9 'Endereço para leituras do Sensor RGB
symbol led_add = $A0 'Endereço para escritas no LED RGB

'*********** Definição dos registos de configuração do Sensor RGB ***********


symbol CAP_RED = $6 'Ajuste do ganho do sensor - Valor do condensador 0 a 15 (Decimal)
symbol CAP_GREEN = $7 'Ajuste do ganho do sensor - Valor do condensador 0 a 15 (Decimal)
symbol CAP_BLUE = $8 'Ajuste do ganho do sensor - Valor do condensador 0 a 15 (Decimal)
symbol CAP_CLEAR = $9 'Ajuste do ganho do sensor
symbol INT_RED_LO = $A 'Ajuste do ganho do sensor - Tempo de integração 8 bits
symbol INT_RED_HI = $B 'Ajuste do ganho do sensor - Tempo de integração 4 bits 0 a 4095 (Decimal)
symbol INT_GREEN_LO = $C 'Ajuste do ganho do sensor - Tempo de integração 8 bits
symbol INT_GREEN_HI = $D 'Ajuste do ganho do sensor - Tempo de integração 4 bits 0 a 4095 (Decimal)
symbol INT_BLUE_LO = $E 'Ajuste do ganho do sensor - Tempo de integração 8 bits
symbol INT_BLUE_HI = $F 'Ajuste do ganho do sensor - Tempo de integração 4 bits 0 a 4095 (Decimal)
symbol INT_CLEAR_LO = $10 'Ajuste do ganho do sensor - Tempo de integração 8 bits
symbol INT_CLEAR_HI = $11 'Ajuste do ganho do sensor - Tempo de integração 4 bits 0 a 4095 (Decimal)

'*********** Definição dos registos para leitura da cor ***********


symbol CTRL = $0 'Registo de controlo
symbol DATA_RED_LO = $40 'Côr - 8 bits
symbol DATA_RED_HI = $41 'Côr - 2 bits 0 a 1023 (Decimal)
symbol DATA_GREEN_LO = $42 'Côr - 8 bits
symbol DATA_GREEN_HI = $43 'Côr - 2 bits 0 a 1023 (Decimal)
symbol DATA_BLUE_LO = $44 'Côr - 8 bits
symbol DATA_BLUE_HI = $45 'Côr - 2 bits 0 a 1023 (Decimal)
symbol DATA_CLEAR_LO = $46 'Côr - 8 bits
symbol DATA_CLEAR_HI = $47 'Côr - 2 bits 0 a 1023 (Decimal)
symbol OFFSET_RED = $48 'Offset da côr
symbol OFFSET_GREEN = $49 'Offset da côr
symbol OFFSET_BLUE = $4A 'Offset da côr
symbol OFFSET_CLEAR = $4B 'Offset da côr

'*********** Declaração de variáveis **********************


symbol VERMELHO = w3 'Variável de recepção do i2c ->b6:b7
symbol VERDE = w4 'Variável de recepção do i2c ->b8:b9
symbol AZUL = w5 'Variável de recepção do i2c ->b10:b11
symbol LUMIN = w6 'Variável de recepção do i2c ->b12:b13
symbol RED_LED = b3 'Armazena cor vermelha para o LED RGB
symbol GREEN_LED = b14 'Armazena cor verde para o LED RGB
symbol BLUE_LED = b15 'Armazena cor azul para o LED RGB

main: ‘Rotina inicial do programa


gosub cfg_sensor 'Calibração dos parâmetros de conversão do Sensor RGB
gosub cfg_led 'Inicialização do LED RGB
gosub ler_cfg 'Verificação dos valores de configuração introduzidos
goto loop_ 'Salta para a rotina que lê a cor do Sensor e escreve no LED

loop_: 'Leitura do Sensor RGB e escrita no LED.


gosub leitura_cor 'O Sensor RGB efectua a leitura de uma côr
gosub converte_cor 'Converter a côr lida de 10 bits para 8 bits
gosub escreve_led 'Envia o valor de 8 bits da côr para o LED RGB
goto loop_

cfg_sensor:'Configura o valor de um condensador virtual e um tempo de integração


i2cslave write_add,i2cslow,i2cbyte 'i2cslave para escrita no Sensor RGB
pauseus 1
writei2c(CAP_RED,5) 'Ajuste do valor do condensador para a cor vermelha
writei2c(CAP_GREEN,5) 'Ajuste do valor do condensador para a cor verde
writei2c(CAP_BLUE,2) 'Ajuste do valor do condensador para a cor azul
writei2c(CAP_CLEAR,12) 'Ajuste do valor do cond. para a intensidade de luz
writei2c(INT_RED_LO,$D8) 'LOW byte do tempo de integração para a cor vermelha
writei2c(INT_RED_HI,$0E) 'HIGH byte do tempo de integração para a cor vermelha
writei2c(INT_GREEN_LO,$D8) 'LOW byte do tempo de integração para a cor verde
writei2c(INT_GREEN_HI,$0E) 'HIGH byte do tempo de integração para a cor verde
writei2c(INT_BLUE_LO,$A0) 'LOW byte do tempo de integração para a cor azul
writei2c(INT_BLUE_HI,$0F) 'HIGH byte do tempo de integração para a cor azul
writei2c(INT_CLEAR_LO,$00) 'LOW byte do tempo de integ. da intensidade de luz
writei2c(INT_CLEAR_HI,$0C) 'HIGH byte do tempo de integ. da intensidade de luz
return

cfg_led: 'Inicialização do LED RGB


i2cslave led_add,i2cslow,i2cbyte ' configuração do i2cslave para o LED RGB2
writei2c ("f",150) 'comando que define a velocidade de transição de côr (Fade)
writei2c ("o") 'Termina a leitura da sequência programada no LED RGB

©Copyright 2010, SAR - Soluções de Automação e Robótica, Lda. 18


Manual de Montagem de Extras

return

ler_cfg: 'Leitura e apresentação dos valores de configuração introduzidos no Sensor RGB


i2cslave read_add,i2cslow,i2cbyte ' configuração do i2cslave para o Sensor RGB
pauseus 1
writei2c(CAP_RED) 'Valor do condensador da côr vermelha
i2cread(b16) 'Armazena o valor na variavel do PICAXE b16
writei2c(CAP_GREEN) 'Valor do condensador da côr verde
i2cread(b17) 'Armazena o valor na variavel do PICAXE b17
writei2c(CAP_BLUE) 'Valor do condensador da côr azul
i2cread(b18) 'Armazena o valor na variavel do PICAXE b18
writei2c(CAP_CLEAR) 'Valor do condensador da intensidade da luz
i2cread(b19) 'Armazena o valor na variavel do PICAXE b19
writei2c(INT_RED_LO) 'Valor do tempo de integração LOW byte vermelho
i2cread(b20) 'Armazena o valor na variavel do PICAXE b20
writei2c(INT_RED_HI) 'Valor do tempo de integração HIGH byte vermelho
i2cread(b21) 'Armazena o valor na variavel do PICAXE b21
writei2c(INT_GREEN_LO) 'Valor do tempo de integração LOW byte verde
i2cread(b22) 'Armazena o valor na variavel do PICAXE b22
writei2c(INT_GREEN_HI) 'Valor do tempo de integração HIGH byte verde
i2cread(b23) 'Armazena o valor na variavel do PICAXE b23
writei2c(INT_BLUE_LO) 'Valor do tempo de integração LOW byte azul
i2cread(b24) 'Armazena o valor na variavel do PICAXE b24
writei2c(INT_BLUE_HI) 'Valor do tempo de integração HIGH byte azul
i2cread(b25) 'Armazena o valor na variavel do PICAXE b25
writei2c(INT_CLEAR_LO) 'Valor do tempo de integração LOW byte int. luz
i2cread(b26) 'Armazena o valor na variavel do PICAXE b26
writei2c(INT_CLEAR_HI) 'Valor do tempo de integração HIGH byte int. luz
i2cread(b27) 'Armazena o valor na variavel do PICAXE b27
gosub debug_t 'Actualiza a janela de DEBUG do Picaxe Programming Editor
return

leitura_cor: 'O sensor RGB efectua a leitura de uma côr


i2cslave write_add,i2cslow,i2cbyte 'Configuração do i2cslave para escrita no Sensor RGB
pauseus 1
writei2c(CTRL,$1) 'Faz a amostragem da côr e inicia a conversão
pause 100 'Espera de 100ms para que a conversão da amostra termine
i2cslave read_add,i2cslow,i2cbyte 'Configuração do i2cslave para o Sensor RGB
pauseus 1
writei2c(DATA_RED_LO) 'Pedido de leitura do LOW byte da cor vermelha
i2cread(b6) 'Leitura devolvida pelo sensor e guardada no LOW byte da WORD 3
writei2c(DATA_RED_HI) 'Pedido de leitura do HIGH byte da cor vermelha
i2cread(b7) 'Leitura devolvida pelo sensor e guardada no HIGH byte da WORD 3
writei2c(DATA_GREEN_LO) 'Pedido de leitura do LOW byte da cor verde
i2cread(b8) 'Leitura devolvida pelo sensor e guardada no LOW byte da WORD 4
writei2c(DATA_GREEN_HI) 'Pedido de leitura do HIGH byte da cor verde
i2cread(b9) 'Leitura devolvida pelo sensor e guardada no HIGH byte da WORD 4
writei2c(DATA_BLUE_LO) 'Pedido de leitura do LOW byte da cor azul
i2cread(b10) 'Leitura devolvida pelo sensor e guardada no LOW byte da WORD 5
writei2c(DATA_BLUE_HI) 'Pedido de leitura do HIGH byte da cor azul
i2cread(b11) 'Leitura devolvida pelo sensor e guardada no HIGH byte da WORD 5
writei2c(DATA_CLEAR_LO) 'Pedido de leitura do LOW byte da intensid. de luz
i2cread(b12) 'Leitura devolvida pelo sensor e guardada no LOW byte da WORD 6
writei2c(DATA_CLEAR_HI) 'Pedido de leitura do HIGH byte da intensid. de luz
i2cread(b13) 'Leitura devolvida pelo sensor e guardada no HIGH byte da WORD 6
gosub debug_t 'Actualiza a janela de DEBUG do Picaxe Programming Editor
return

converte_cor:
RED_LED=VERMELHO*1/4 'Converte a cor vermelha de 10bits para 8bits
GREEN_LED=VERDE*1/4 'Converte a cor verde de 10bits para 8bits
BLUE_LED=AZUL*1/4 'Converte a cor azul de 10bits para 8bits
return

escreve_led:
i2cslave led_add,i2cslow,i2cbyte ' configuração do i2cslave para o LED RGB
writei2c ("n",RED_LED,GREEN_LED,BLUE_LED) 'Envia a cor lida para o LED RGB
return

debug_t:
low 0 ' reset 0 to correct condition
pause 250 ' wait a while
debug ' display values on computer screen
return

©Copyright 2010, SAR - Soluções de Automação e Robótica, Lda. 19

Você também pode gostar