Post on 21-Nov-2018
UNIVERSIDADE FEDERAL DO PARANÁ
MARCOS VINÍCIUS LOPES PAIXÃO
SISTEMA SEM FIO AUTOMATIZADO DE SOLICITAÇÃO DE BEBIDA
CURITIBA 2013
MARCOS VINICIUS LOPES PAIXÃO
SISTEMA SEM FIO AUTOMATIZADO DE SOLICITAÇÃO DE BEBIDA
Trabalho de Conclusão de Curso apresentado à disciplina Projeto de Graduação como requisito à conclusão do Curso de Engenharia Elétrica, Setor de Tecnologia, Universidade Federal do Paraná Orientador: Prof. Msc. Ademar Luiz Pastro
CURITIBA 2013
AGRADECIMENTOS
Gostaria de agradecer primeiramente aos meus pais e minha irmã que
sempre me deram suporte para que eu pudesse chegar à conclusão deste
curso em uma faculdade conceituada.
A todos os professores que se dedicaram a ensinar uma educação além
do conhecimento técnico da profissão, mostrando valores de responsabilidade
profissional e social.
Em especial aos professores Ewaldo Mehl, Waldemiro Pedroso
Sobrinho, Eduardo Parente, Gisele Ferrari, Márlio Bonfim e Ademar Luiz
Pastro, cada um de vocês tem uma parte no exemplo de profissional de
qualidade que formei em minha mente e que tentarei alcançar na minha vida.
"Professores tendem a eternidade; nunca poderão saber onde termina
sua influencia", ADAMS, Henry.
A minha namorada Karla Cristina Kisner Balan pelo apoio, dicas ao
decorrer deste projeto e pelas vezes que melhorou meu animo durante muitos
momentos de nervosismo.
Aos meus amigos do PET, Rodolfo Pfeffer, Mariely Lopes, Guilherme
Sionek, André Luiz Langner, Rafael Kaminagakura e muitos outros que
passaram por este ótimo período de novas experiências na faculdade.
Aos meus amigos de estudos e festas, André Luiz Pereira França,
Camilo Coelho, Ricardo Zanin, José Roberto Salazar, Fernando Corsico,
Guilherme Shuneman, Bruno Pierin e Thiago Cesar.
Aos meus amigos que dividiram moradia comigo, Felipe Costa, Felipe
Bavaresco, Cláudia Juliane, Thiago Cesar, Felipe Succi, Anderson Godinho e
Pedro Spinelli.
Aos meus amigos de outros cursos, do C7, da ASA e da AS em especial
a Nádia Mayer, Jéssica Baroni, Jéssica Moraes e Bruna Mendes Machado.
“Dos amores humanos, o menos egoísta, o mais puro e desinteressado
é o amor da amizade” CÍCERO, M Tulios.
RESUMO
Este trabalho apresenta o desenvolvimento de um protótipo que consiste em um sistema autônomo, portanto, independente de um computador, para automatizar a solicitação de bebidas em bares, lanchonetes e casas noturnas. O sistema, formado por um circuito de suporte e um circuito da base, deverá medir a quantidade de líquido de uma garrafa através do circuito de suporte e informar o circuito base através de RF. Os circuitos são controlados por PIC da família 18F e se comunicam através do módulo nRF24L01. Para mensurar a quantidade de bebida foi utilizado um sensor de múltiplas camadas de filme, modelo FRS-402. Dentre os resultados obtidos pode-se destacar a criação de uma biblioteca para nRF24L01 escrita com comando do software PICC da CSS, a criação de um protótipo funcional com três botões e um LCD e o uso do sensor FRS-402 com êxito. Além do desenvolvimento do protótipo este trabalho apresenta ao final alguns métodos de manufatura de placas de circuitos impressos.
Palavras-chave: Sensor de força. Comunicação sem fio. nRF24L01P.
LISTA DE FIGURAS Figura 1 - Um exemplo típico de pacote serial ................................................. 15
Figura 2 - Acoplamento indutivo da bobina L1 (ativa) com a bobina L2 (passiva) [18] ................................................................................................................... 17
Figura 3 - Diagrama macro do sistema ............................................................ 18
Figura 4 - Exemplo de codificação Manchester ................................................ 24
Figura 5 - Pacote de dados .............................................................................. 25
Figura 6 - Em rosa o enviado e azul o recebido, neste caso a sincronia ocorreu no 6º bit do 1º byte ........................................................................................... 25
Figura 7 - Módulo nRF24L01P da Nordic ......................................................... 26
Figura 8 - Operação do SPI [6] ......................................................................... 26
Figura 9 - Fluxograma de envio de dados por SPI através de software [6] ...... 27
Figura 10 - Pacote padrão nRF 24L01P [6] ...................................................... 28
Figura 11 - Fluxo temporal de confirmação de recebimento (ACK) com dados (PAY) do receptor para o transmissor, exemplo para dois pacotes [6] ............ 28
Figura 12 - Fluxograma de inicialização do módulo ......................................... 29
Figura 13 - Fluxograma para colocar módulo em modo receptor ..................... 30
Figura 14 - Ler dado recebido .......................................................................... 31
Figura 15 - Display LCD 4 linhas e 20 colunas................................................. 32
Figura 16 - Telas desenvolvidas ....................................................................... 33
Figura 17 - Telas de erro .................................................................................. 33
Figura 18 – Pinos do PIC 18F4550 [9] ............................................................. 35
Figura 19 - Circuito base completo ................................................................... 36
Figura 20 - Detalhe da conexão entre antena e chip do smartcard .................. 37
Figura 21 - Equipamento de carregamento indutivo para Nintendo Wii ........... 38
Figura 22 - Bobina ativa 2.05 V (amarelo) e Bobina passiva 3.14 V (verde) a 120 kHz ............................................................................................................ 39
Figura 23 - Bobina ativa 1.69 V (amarelo) e Bobina passiva 3.70 V (verde) a 130 kHz ............................................................................................................ 39
Figura 24 - Bobina ativa 0.72 V (amarelo) e Bobina passiva 2.53 V (verde) a 140 kHz ............................................................................................................ 40
Figura 25 - Entradas e saídas do circuito da base ........................................... 41
Figura 26 - Fluxograma simplificado do funcionamento do circuito da base .... 42
Figura 27 - Sensor piezelétrico ......................................................................... 43
Figura 28 - Sensor de pressão estática FRS-402 [13] ..................................... 44
Figura 29 - Curva de resistência versus pressão para o sensor FRS-402 [13] 44
Figura 30 – Pinos do PIC 18F2550 [9] ............................................................. 45
Figura 31 - Circuito do suporte completo ........................................................ 46
Figura 32 - Fluxograma para configurar o módulo como TX ............................ 47
Figura 33 - Envio de dado ................................................................................ 47
Figura 34 - Entradas e saídas do circuito do suporte ....................................... 48
Figura 35 - Fluxograma simplificado do funcionamento do circuito do suporte 49
Figura 36 – Proposta de gabinete desmontado................................................ 50
Figura 37 - Proposta de gabinete montado ...................................................... 51
Figura 38 - Aplicando emulsão na placa [1] ..................................................... 53
Figura 39 - Transferência do layout [1] ............................................................. 54
Figura 40 - Revelação [1] ................................................................................. 54
Figura 41 - Layout impresso em folha revista................................................... 57
Figura 42 - Resultado após retirar as partes não aderidas, a parte inferior esquerda apresenta uma falha de transferência no plano terra. ...................... 57
Figura 43 - Resultado após retoque com caneta para retroprojetor ................. 58
Figura 44 - Resultado após corrosão ............................................................... 58
Figura 45 - Imagem do protótipo do circuito base montado ............................. 59
Figura 46 - Imagem do protótipo do circuito do suporte montado .................... 60
LISTA DE SIGLAS
ACK Acknolegment, pacote de confirmação
ASK Amplitude Shift Key, tipo de modulação digital por
amplitude
BIT Binary digit, menor unidade de informação
BYTE Binary Term, conjunto de 8 bits.
CRC Cyclic redundancy check, campo para verificação de
pacote recebido
EEPROM Electrically-Erasable Programmable Read-Only Memory,
tipo de memória não volatil.
FSK Frequency Shit Key, tipo de modulação digital por
frequencia
ICSP In Circuit Serial Program, interface de programação para o
microcontrolador PIC
LCD Liquid Crystal Display, display de cristal líquido
LED Light Emiter Diode, Diodo emissor de luz
MISO Master Input Slave Output, terminal da interface SPI
MOSI Master Output Slave Input, terminal da interface SPI
PCB Printed Circuit Board, placa de circuito impresso.
PSK Phase Shit Key, tipo de modulação digital por fase de onda
PVC Polyvinyl chloride , tipo de plástico
RF Rádio frequencia
SCK Source Clock, terminal da interface SPI
SPI Serial Peripheral Interface, interface de comunicação
SS Slave Select, terminal da interface SPI
UART Universal Asynchronous Receiver/Transmitter, periférico de
microcontrolador para comunicação serial
Vpp Tensão de pico á pico
SUMÁRIO
1 INTRODUÇÃO ........................................................................................................ 9 1.1 OBJETIVO ............................................................................................................................... 9 1.2 JUSTIFICATIVA .................................................................................................................... 10 1.3 ESTRUTURA DO RELATÓRIO ............................................................................................ 10
2 CONCEITOS .......................................................................................................... 11 2.1 LCD ....................................................................................................................................... 11 2.2 COMUNICAÇÃO RF ............................................................................................................. 11 2.2 SPI ......................................................................................................................................... 13 2.3 SENSOR DE PESO .............................................................................................................. 14 2.4 MICROCONTROLADOR ...................................................................................................... 14 2.5 INTERFACE SERIAL RS-232 ............................................................................................... 15 2.6 CARREGAMENTO INDUTIVO ............................................................................................. 16
3 CONCEPÇÃO ........................................................................................................ 18
4 DESENVOLVIMENTO ........................................................................................ 20 4.1 CIRCUITO BASE .................................................................................................................. 20
4.1.1 Interface para desenvolvimento ...................................................................... 21 4.1.2 Memória não volátil ......................................................................................... 21 4.1.3 Receptor de RF ............................................................................................... 22 4.1.4 Interface Homem � Máquina ......................................................................... 32 4.1.5 Microcontrolador ............................................................................................. 35 4.1.6 Carregamento sem fio .................................................................................... 37 4.1.7 Resumo do Circuito Base ............................................................................... 40
4.2 CIRCUITO DO SUPORTE .................................................................................................... 42 4.2.1 Sensor de Peso .............................................................................................. 43 4.2.2 Microcontrolador ............................................................................................. 45 4.2.3 Transmissor RF .............................................................................................. 46 4.2.4 Carregamento sem fio .................................................................................... 48 4.2.5 Resumo do circuito do suporte ....................................................................... 48
4.3 PROPOSTA DE GABINETE ................................................................................................. 50
5 PROTOTIPAGEM ................................................................................................ 52 5.1 SIMULAÇÕES, ESQUEMÁTICOS E LAYOUT ..................................................................... 52 5.2 TRANSFERÊNCIA DE LAYOUT – PROCESSO SERIGRÁFICO ........................................ 52 5.3 CORROSÃO – PROCESSO SERIGRÁFICO ....................................................................... 55 5.4 transferência de layout – processo térmico com folha de adesivo ....................................... 55 5.5 transferência de layout – processo térmico com folha de revista ......................................... 56 5.6 CORROSÃO – PROCESSO TÉRMICO COM FOLHA DE REVISTA .................................. 57
6 RESULTADOS ...................................................................................................... 59 6.1 CIRCUITO DA BASE ............................................................................................................ 59 6.2 CIRCUITO DO SUPORTE .................................................................................................... 59 6.3 COMUNICAÇÃO SEM FIO ................................................................................................... 60 6.4 SENSOR DE PESO .............................................................................................................. 60 6.5 CARREGAMENTO INDUTIVO ............................................................................................. 61 6.6 ANÁLISE DE CUSTOS ......................................................................................................... 61 6.8 CÓDIGO E PLACAS FINALIZADAS ..................................................................................... 62
7 CONCLUSÃO ........................................................................................................ 63
REFERÊNCIAS......................................................................................................... 64
APÊNDICES ............................................................................................................. 66
APENDICE I – CÓDIGO DO TRANSMISSOR RF ...................................................................... 67 APENDICE II – CÓDIGO DO RECEPTOR RF ........................................................................... 68
9
1 INTRODUÇÃO
O presente relatório irá apresentar a concepção, desenvolvimento e
resultados do projeto de graduação para o curso de Engenharia Elétrica da
Universidade Federal do Paraná elaborado pelo aluno Marcos Vinicius Lopes
Paixão o qual se trata de um sistema automatizado de requisição de bebida.
A automatização consiste na aplicação da eletrônica de modo a
executar tarefas sem a interferência do homem1. A aplicação escolhida elimina
a necessidade de interação entre consumidor e atendente para solicitação da
substituição de uma garrafa de bebida vazia. Os benefícios diretos são melhor
atendimento aos clientes e os indiretos são maior lucratividade e uma melhor
imagem do estabelecimento.
Este sistema será aplicado no nicho de bares e casas noturnas que é
um nicho especial, pois os sistemas de automatização podem ser usados para
formar uma imagem diferenciada do local, caracterizando como moderno. Além
de despertar o interesse das pessoas que visitam o local e a curiosidade das
pessoas que ouvem os comentários de quem esteve presente.
1.1 OBJETIVO
O objetivo deste projeto é construir um sistema que informe aos
atendentes que uma determinada mesa, que está consumindo alguma bebida
em garrafa, precisa da troca da garrafa vazia por uma cheia.
Este sistema será formado por dois circuitos: o primeiro solicitará a
reposição de uma garrafa de bebida, quando detectado que a garrafa está
vazia para o segundo circuito, através de transmissão de dados sem fio e o
segundo circuito irá exibir as informações da mesa e da bebida que está sendo
consumida em tal mesa.
1 Definição de automação do dicionário Michaelis, 2003
10
1.2 JUSTIFICATIVA
Existem várias motivações para este trabalho de conclusão de curso,
dentre elas podem ser citadas:
• A aplicação do conhecimento adquirido ao decorrer dos cinco
anos de curso de Engenharia Elétrica da Universidade Federal
do Paraná.
• Para a construção do protótipo é necessário reunir conhecimentos
das três ênfases existentes na Engenharia Elétrica da
Universidade Federal do Paraná; Eletrônica, Telecomunicações
e Eletrotécnica.
• A possibilidade de uma futura comercialização do projeto.
1.3 ESTRUTURA DO RELATÓRIO
Este relatório inicia apresentando alguns conceitos introdutórios
envolvidos no projeto visando uma base prévia para completo entendimento
das partes subsequentes.
A segunda parte apresenta a concepção do projeto, em alto nível,
mostrando as interações de cada um dos principais componentes e sua
localização no sistema.
A terceira parte é referente ao desenvolvimento do sistema, abordando a
justificativa das escolhas iniciais para cada componente do circuito e as
alterações até o resultado final.
A quarta parte apresenta os métodos testados para prototipagem das
placas e seus resultados.
Por fim serão feitos alguns comentários gerais sobre os resultados
alcançados e sugestões de melhorias para uma eventual continuação do
projeto.
11
2 CONCEITOS
Os principais conceitos ligados a este projeto serão abordados a seguir
para facilitar o entendimento do restante do trabalho.
2.1 LCD
A sigla LCD vem do inglês Liquid-Crystal Display, ou seja, Display de
Cristal Líquido. Sua tecnologia consiste em usar um líquido polarizador de luz
controlado eletricamente entre duas placas de vidros com película polarizada.
A aplicação de tensão em um eletrodo acarretará uma alteração no
alinhamento das moléculas do cristal líquido, proporcionando uma cor mais
escura neste ponto. O formato dos eletrodos determina o pixel para um display
gráfico ou um segmento para um display de segmentos.
Os displays mais utilizados são os que possuem o processador Hitachi
HD44780 [2], estes modelos podem exibir muitas informações usando poucas
vias de comunicação, possuem caracteres com desenho pré-configurados e
comandos padronizados.
2.2 COMUNICAÇÃO RF
A comunicação por rádio freqüência (RF) é a exploração da
propriedade física de irradiação de ondas eletromagnéticas para correntes
elétricas de alta frequencia. Para isto os circuitos precisam de
dimensionamentos especiais, de acordo com a frequencia escolhida, para a
transmissão de modo a maximizar a irradiação e recepção.
O circuito de RF possui uma ou mais ondas portadoras que terão
algumas de suas características variando conforme os dados a serem
12
transmitidos, este processo é conhecido como modulação. Os principais tipos
de modulação digital são:
• ASK – Amplitude Shift Keying, para este caso a característica
variável da onda é a Amplitude. [3]
• FSK – Frequency Shift Keying, para este caso a característica
variável da onda é a frequência. [3]
• PSK – Phase Shift Keying, para este caso a característica variável
da onda é a fase. [3]
Um enlace de comunicação é formado por dois elementos,
denominados transmissor e receptor ou apenas transceptores, se ambos
puderem transmitir e receber dados. Abaixo os três tipos de transmissão
disponíveis:
• Simplex, canal de comunicação em apenas um sentido, indo do
transmissor para receptor sem a possibilidade de confirmação de
recebimento.
• Half-duplex, canal de comunicação bidirecional, sendo que a
comunicação só pode fluir em um sentido de cada vez, ou seja, hora
o transceptor um é transmissor e o transceptor dois é receptor, hora
o inverso acontece.
• Full-duplex, canal de comunicação bidirecional, sendo que o
transceptor um é transmissor e receptor simultaneamente, então
pode enviar dados ao transceptor dois ao mesmo tempo em que
recebe. [4]
Há outros dois conceitos que devem ser explorados ainda sobre
comunicação RF:
• O Pacote ACK do inglês Acknowledgement que significa
reconhecimento. Este pacote vai do transceptor que recebeu o
13
pacote para o transceptor que enviou e tem como objetivo sinalizar
que o envio foi recebido corretamente2.
• Campo CRC do inglês Cyclic Redundant Check, que consiste em um
campo da mensagem gerado a partir de operações matemáticas
com os dados, sendo usado para detectar erros de transmissão de
dados3.
2.2 SPI
A sigla SPI vem do inglês Serial Peripheral Interface é uma
comunicação feita a três ou quatro fios, sendo um ou dois deles para controle e
dois para dados. Esta comunicação sempre precisa de um mestre e um
escravo, o mestre coordena a transmissão dos dados e apenas ele pode iniciar
a troca de informações, já o escravo recebe os comandos do mestre
respondendo caso exista sinal de clock no terminal de clock conectado ao
mestre. A cada ciclo de clock um bit é transferido do mestre para o escravo e
do escravo para o mestre.
Os quatros terminais desta comunicação são:
• MISO do inglês Master Input Slave Output, neste terminal a cada
ciclo de clock será disponibilizado um bit do escravo para o mestre.
• MOSI do inglês Master Output Slave Input, neste terminal a cada
ciclo de clock será disponibilizado um bit do mestre para o escravo.
• SCK do inglês Serial Clock, este terminal é controlado pelo mestre e
fornece o clock para o dispositivo escravo ler o bit e escrever um bit
nos terminais de dado.
• SS do inglês Slave Select, este terminal é usado caso se tenha mais
de um dispositivo escravo compartilhando os mesmos canais de
2 Definição obtida em http://oque.dictionarist.com/ACK, acesso em 25/04/13. 3 EWING, Gregory C, "Reverse-Engineering a CRC Algorithm", 2010, disponível em
http://www.cosc.canterbury.ac.nz/greg.ewing/essays/CRC-Reverse-Engineering.html.
14
dados. Caso este terminal esteja em nível baixo, o dispositivo
escravo coloca o terminal MISO em modo de alta impedância, não
interferindo na comunicação do dispositivo escravo ativo. [5]
2.3 SENSOR DE PESO
Sensores são dispositivos que respondem a um estímulo físico com um
sinal elétrico entre seus terminais. O sensor de peso, ou de força, deverá
transformar a força em um sinal elétrico. Para se obter o valor correto da
grandeza física é necessário condicionar o valor lido, pois os sensores têm
natureza não linear.
2.4 MICROCONTROLADOR
O microcontrolador é um circuito integrado que possui diversos
periféricos complementares para realizar as funções de execução de um
programa sem a necessidade de componentes externos. Entre os periféricos
disponíveis nos microcontroladores em uso neste projeto podemos destacar:
• Conversor analógico digital, transforma um sinal analógico entre
dois limites em um sinal digital de valor linearmente
proporcional, sua principal característica é a resolução, dada em
bits.
• Oscilador interno que consiste em um cristal ou circuito RC que
fornece o clock para o funcionamento do microcontrolador.
• UART do inglês Universal Asynchronous Receiver Transmiter,
responsável pela comunicação serial assíncrona do
microcontrolador.
15
• EEPROM, memória interna não volátil, seu acesso é lento, porém
por ser não volátil mantém os dados mesmo que o circuito não
esteja energizado.
• Pinos de interrupção externa, responsáveis por desviar a
execução do programa para um endereço específico tratando o
evento no momento que ele ocorre.
2.5 INTERFACE SERIAL RS-232
A comunicação serial ou RS-232 é um padrão de troca de informações
bit a bit. Apesar de ser antiga, a padronização que ocorreu em 1969, continua
sendo usado devido a sua simplicidade.
A mensagem é composta por um byte de dados e dois bits de controle,
caso a verificação por paridade esteja desativada, ou três bits, se estiver
ativada.
Figura 1 - Um exemplo típico de pacote serial4
A comunicação pode ser síncrona, se houver um sinal de clock, ou
assíncrona, caso não exista clock.
O sincronismo, no caso da comunicação assíncrona, é feito a partir do
start bit que inicia a mensagem. Após o sincronismo os bits serão amostrados
4 CANZIAN, Edmur, disponível em http://www.capriconsultorios.com/Aula4-
Comun_serial.pdf.
16
em intervalo de tempo que varia de acordo com a taxa de transmissão
previamente configurada.
2.6 CARREGAMENTO INDUTIVO
A transmissão de energia sem contato elétrico não é um assunto novo,
em 1904 Nicolas Tesla publicou o artigo “The Transmission of Electric Energy
Without Wires”, o qual discorre a respeito da transmissão de energia sem fio,
além disso, Tesla fez uma demonstração acendendo uma lâmpada
remotamente. [17]
Nos dias atuais é possível ver exemplos práticos bem difundidos,
sendo que, um dos mais conhecidos é o caso da escova de dente elétrica que
são carregadas por acoplamento indutivo, porém há outro caso muito mais
comum, os cartões sem contato, possivelmente você já utilizou esta tecnologia
em algum lugar, neste caso há uma bobina na parte interna do cartão.
Os sistemas de transmissão de energia sem fio são formados por duas
partes, uma ativa, ligada à rede elétrica, e outra passiva, que recebe a energia.
No caso dos cartões sem contato não há baterias para armazenar a
energia, já para o caso da escova de dente elétrica, a energia transferida é
usada justamente para carregar a bateria interna, evitando a necessidade de
contato elétrico em um local onde a água é abundante e levaria a uma
degradação dos contatos com o tempo.
17
Figura 2 - Acoplamento indutivo da bobina L1 (ativa) com a bobina L2 (passiva) [18]
A Figura 2 mostra como as linhas de campo para o acoplamento
indutivo entre duas bobinas, a eficiência é fortemente influenciada pela
construção das duas bobinas, pela distância e alinhamento entre elas.
18
3 CONCEPÇÃO
O sistema será composto por dois circuitos conforme mostrado na
Figura 3. O circuito base, que ficará disponível em local de fácil acesso aos
atendentes, e o circuito do suporte, que será acoplado no suporte térmico da
bebida e ficará nas mesas junto com a garrafa.
Figura 3 - Diagrama macro do sistema
No circuito base será cadastrado o nome das bebidas disponíveis e
quais bebidas estão sendo consumidas em cada mesa. Este cadastramento
será feito através de três botões e um display de LCD.
Os dados configurados deverão ser mantidos em uma memória
EEPROM não volátil para que o circuito retorne ao estado anterior caso seja
reiniciado.
A comunicação sem fio se dará através de um receptor RF podendo ser
comunicação simplex, caso o fluxo de dados seja apenas do suporte para a
base ou half-duplex caso seja escolhido alguma solução com pacote ACK.
19
O circuito base também será responsável por carregar os circuitos do
suporte, através de acoplamento indutivo, para isto possuirá bobinas ativas.
O segundo circuito, doravante denominado circuito do suporte, terá um
botão ligado a um pino de interrupção para alternar entre o estado ativado e
desativado. A sinalização que está ativado será feita através de um LED que
piscará.
Caso esteja ativado o circuito do suporte irá analisar a quantidade de
líquido na garrafa. Esta medida será feita através de um sensor de peso, ligado
a um conversor analógico digital. Caso o valor lido seja inferior a um nível
mínimo, determinado na etapa de projeto, o circuito enviará uma requisição
para o circuito base informando o número da mesa.
O circuito do suporte possuirá uma bateria interna que será carregada
por acoplamento indutivo, possuindo para isto uma bobina passiva.
20
4 DESENVOLVIMENTO
Neste capítulo será apresentada a etapa de projeto dos dois circuitos,
seus componentes, à comunicação entre eles através de RF e a transmissão
de energia sem fio através de acoplamento indutivo.
4.1 CIRCUITO BASE
Para o projeto do circuito base foram listadas quais eram os
componentes e as funções necessárias. O desenvolvimento de cada uma delas
foi feito com uma primeira análise e uma proposta inicial que seria testada.
Tabela 1 - Lista de componentes e funções necessárias para o circuito base
Componentes necessários
Funções necessárias
Memória não volátil Interface para desenvolvimento
Receptor de RF Interface Homem ���� Máquina
Microcontrolador Carregamento sem fio
Algumas partes do circuito onde foram utilizadas soluções já
conhecidas pelo desenvolvedor deste projeto, não precisaram de alteração
como, por exemplo, o microcontrolador, a interface homem � máquina, a
memória não volátil, o programador do microcontrolador e interface para fins de
desenvolvimento. Outras soluções usadas pela primeira vez partiram de uma
solução inicial e foram alteradas para outras soluções até a obtenção de um
resultado que satisfizesse a necessidade do projeto.
21
4.1.1 Interface para desenvolvimento
Durante o desenvolvimento do código para os microcontroladores é
importante possuir uma interface que forneça informações sobre as condições
de funcionamento durante a execução do código. A interface será ligada a um
computador, pois assim será possível receber uma grande quantidade de
dados e salvar-los para uma análise aprofundada.
A interface serial RS232 foi escolhida dentre as interfaces disponíveis
pois é de fácil implementação. Como para este projeto ela será usada para fins
de desenvolvimento é importante que ela seja confiável e simples.
As configurações escolhidas estão listadas na tabela a seguir e não há
nenhum motivo específico para a velocidade escolhida, pois a quantidade de
dados a ser trafegada é baixa.
Tabela 2 - Configuração da serial
Configuração Valor
Velocidade 9600 bps Paridade Par Bits por palavra 8 Stop bit 1 Controle de fluxo Não
4.1.2 Memória não volátil
De acordo com a concepção do circuito base, todos os dados de
configuração deverão ser gravados em uma memória não volátil a fim de evitar
a necessidade de configurar toda vez que o circuito seja ligado.
As configurações a serem gravadas são a código da bebida, que está
associada a uma mesa, e nome das bebidas. Para o protótipo foi definido que
seriam no máximo 99 mesas podendo variar de 1 a 99, e nove bebidas
cadastradas com nome determinado por nove caracteres. Abaixo o cálculo da
22
quantidade de posições necessárias em uma memória não volátil para salvar
estes dados.
Tabela 3 - Cálculo de posições para memória não volátil
Dado Quantidade Bytes por unidade Total
Mesa ���� Bebida 99 1 byte 99 bytes
Nome de bebida 9 9 bytes 81 bytes
TOTAL 180 bytes
Conforme a tabela acima serão necessários 180 bytes para armazenar
os dados de configuração.
Para esta quantidade é possível usar apenas a memória EEPROM
interna do microcontrolador evitando a necessidade de uma memória externa.
Para satisfazer esta condição deverá ser usado um microcontrolador
com no mínimo 180 bytes de memória EEPROM interna.
4.1.3 Receptor de RF
Diferente dos dois itens anteriores a comunicação sem fio digital nunca
havia sido aplicada pelo desenvolvedor.
A primeira solução para a comunicação sem fio escolhida foi um
sistema de modulação, que possuísse uma saída digital no receptor, ou seja
apenas um canal, que não fosse microcontrolado a fim de evitar configurações
complexas. Seguindo esta linha de raciocínio foram encontrados os módulos5:
- KeyMark 433: Modulação ASK, frequencia de operação: 433,92 MHz.
- KeyMark 315: Modulação ASK, frequencia de operação: 315 MHz.
Como o funcionamento de ambos é muito similar, o fator de escolha
entre os dois foi o tamanho da antena. Para uma antena de um quarto de
5 Dados retirados do manual dos módulos. Disponível em: http://tato.ind.br/produtos.php?idcategoria=10 acesso em 25/04/13.
23
comprimento de onda, teríamos 17.2 cm para o módulo 433 e 22,6 cm para o
módulo 315. Para minimizar o espaço necessário foi escolhido o módulo 433.
O receptor apenas demodula os dados, sendo assim será necessário
um protocolo para a comunicação. Como existe apenas um canal modulado é
necessário um que seja um protocolo sem pinos de controle ou clock. O
protocolo RS232 foi o escolhido.
O módulo receptor será ligado na entrada de dados serial (RX), porém
este terminal também está sendo usado para a interface de desenvolvimento,
portanto foi colocado um jumper6 seletor, funcionando um de cada vez.
Os testes foram realizados com o módulo receptor ligado a entrada de
dados da serial e um transmissor ligado a uma saída serial e mostraram que
nem sempre os dados eram recebidos corretamente, após várias tentativas e
pesquisas, foram encontradas algumas informações a respeito deste tipo de
trasmissão7:
- O sinal não deve ter nível médio, caso tenha tenderá a perder a
sincronia da portadora.
- O sincronismo entre transmissor e receptor não ocorre no primeiro
byte transmitido, para este sincronismo ser efetivo deve-se enviar bytes de
sincronismo formados pelos bits 01010101 ou 10101010, pois possuem o
maior número de transições possíveis para um byte.
A aplicação da primeira questão foi obtida usando a codificação
Manchester que, conforme mostrado Figura 4, codifica um bit em dois, sendo
que o par de bits 01 é considerado bit 0 e o par 10 é considerado bit 1.
6 Peça que conecta dois pinos consecutivos. 7 Informações retirada de um forum, disponível em (em inglês), http://www.picaxeforum.co.uk/archive/index.php/t-20331.html, acesso em 8/12/2012.
24
Figura 4 - Exemplo de codificação Manchester8
Para atender a segunda questão, antes dos dados foram adicionados
dois bytes de sincronismo.
Como o módulo não possui nenhum controle de erros optou-se por
usar a codificação Manchester para detectar se houve ou não colisão durante a
transmissão, caso se detectasse uma sequencia de bits 00 ou 11 o dado seria
descartado, além disto, para determinar se o sincronismo estava correto foram
adicionados dois bits seqüenciais no início de cada um dos bytes que
continham dados.
Os dados a serem transmitidos são; um número seqüencial, que
variava a cada solicitação, e o número da mesa.
O número sequencial foi usado devido à comunicação ser simplex,
impossibilitando o uso de pacote ACK. O transmissor não podia determinar se
a transmissão foi bem sucedida e iria transmitir o pacote repetidamente até
receber uma nova garrafa de bebida, portanto ao receber um número
sequencial diferente o receptor entenderia que se tratava de uma nova
solicitação e não de uma repetida.
O segundo dado contido no pacote é o número da mesa dividido em
sete bits, indicados pelo prefixo M seguido do índice na Figura 5. Para alcançar
7 bits foi necessário enviar os dois últimos sem codificação Manchester, o que
não causará problema pois são os dois últimos e a sincronia não será mais
necessária após eles.
8 Imagem obtida em http://coelhorede.blogspot.com.br/2009/06/codificacao-
manchester-ethernet.html
25
Figura 5 - Pacote de dados
Prosseguindo os testes com o pacote definido foi observado que, apesar
de existir certa melhora, a transmissão não era confiável, principalmente em
distância a partir de 5 metros.
Uma análise mais detalhada mostrou que, apesar do sincronismo
ocorrer, ele ocorre em momentos diferentes a cada transmissão. A interface
serial sempre irá considerar que se trata de um start bit quando detectar a
primeira borda de descida. Ao detectar o start bit erroneamente todos os
próximos dados recebido são interpretados de maneira incorreta.
Figura 6 - Em rosa o enviado e azul o recebido, neste caso a sincronia ocorreu no 6º bit do 1º byte
O problema acima levou ao abandono desta solução, pois toda a
correção dos dados precisaria ser feita por software. Este desenvolvimento
seria muito complexo e demorado, devido a isto o foco mudou de um módulo
de comunicação simples para um módulo mais robusto.
26
A segunda solução encontrada foi o transceptor nRF24L01 da Nordic,
que trabalha na faixa de frequencia de 2,4 GHz e com uma banda de até 2
Mbps. A utilização deste módulo elimina a necessidade de controle de erro por
software do microcontrolador e múltiplas transmissões, pois o módulo
microcontrolado já garante a execução destas tarefas com CRC e pacote ACK
respectivamente.
Figura 7 - Módulo nRF24L01P da Nordic9
O módulo opera em 2,4 GHz com a possibilidade de escolher entre 128
canais diferentes, com até seis enlaces de comunicação isolados por
endereçamento, todos no mesmo canal. Para este caso não houve a
necessidade de mais de um enlace.
A comunicação entre o microcontrolador e o módulo nRF24L01 é feita
através de SPI e mais dois terminais de controle, um para interrupção e outro
para ativar o módulo ou deixá-lo em stand-by [6].
Figura 8 - Operação do SPI [6]
9 Imagem obtida em http://www.sainsmart.com/arduino-compatibles/module/wireless-
3g-module/nrf24l01-wireless-transceiver-module-2-4ghz-ism-band.html
27
A Figura 8 retirada do datasheet [6] mostra como os bits devem ser
enviados, iniciando pelo bit mais significativo. Apesar de o microcontrolador
possuir SPI não seria possível usar o controlado por hardware, pois o terminal
MISO é o mesmo usado para a transmissão de dados serial.
A solução encontrada foi uma interface SPI por software, que tem seu
fluxograma mostrado na Figura 9.
Figura 9 - Fluxograma de envio de dados por SPI através de software [6]
No desenvolvimento deste projeto não foi encontrada nenhuma
biblioteca pronta para o microcontrolador PIC, sendo necessário desenvolver
com base nas informações do datasheet.
A Figura 10 mostra o padrão de pacote do módulo nRF24L01, conforme
a tentativa anterior com módulo 433 o pacote também possui um byte de
28
sincronismo definido como preamble. Além disto, também há um campo para
CRC garantindo a validação dos dados recebidos. O tamanho máximo do
pacote que pode ser transmitido pelo módulo é de 32 bytes, porém esta
aplicação usará apenas 1 byte, mesmo assim a biblioteca desenvolvida está
habilitada para usar a capacidade total de 32 bytes.
Figura 10 - Pacote padrão nRF 24L01P [6]
Após a validação do CRC o receptor envia ao transmissor um pacote
ACK, que pode ou não conter até 5 bytes de dados do receptor para
transmissor, porém não houve necessidade deste fluxo inverso para este
projeto.
Figura 11 - Fluxo temporal de confirmação de recebimento (ACK) com dados (PAY) do receptor para o transmissor, exemplo para dois pacotes [6]
A Figura 11 mostra como é feita a comunicação com a possibilidade de
dados, identificado como PAY no pacote ACK.
A inicialização do módulo é apresentada através de um fluxograma a
seguir, comum ao transmissor e receptor. A operação foi escolhida de modo a
maximizar a potência transmissão (0 dBm), com comunicação a 1 Mbps com 2
bytes para CRC no canal 76 com dados fixos de 32 bytes [6].
29
Figura 12 - Fluxograma de inicialização do módulo
Após a inicialização do módulo é necessário configurá-lo como
receptor. Esta configuração é mostrada na figura a seguir.
30
Figura 13 - Fluxograma para colocar módulo em modo receptor
Além da inicialização e configuração para receptor, cada dado recebido
deve ser tratado este tratamento é mostrado na Figura 14.
31
Figura 14 - Ler dado recebido
A leitura de um pacote recebido não precisa ser de todos os 32 bytes
mesmo que a inicialização tenha sido feita desta forma. A instrução de leitura
pode ser finalizada assim que tiver lido os bytes de interesse. O dado será
descartado após o comando de leitura e não poderá ser lido novamente. É
importante lembrar que a interrupção continuará ativa até que seja resetada,
mesmo que o pacote já tenha sido lido.
32
4.1.4 Interface Homem � Máquina
Para exibir os dados para o usuário foi utilizado um LCD 4 linhas e 20
colunas com processador HD44780 da Hitachi. Ele será ligado a seis fios,
quatro para dados e dois para controle.
Figura 15 - Display LCD 4 linhas e 20 colunas
A biblioteca usada foi baseada na disponível no livro “Programação de
PIC em C” de Fábio Pereira [2] disponível no site da Editora Érica. Foram feitas
algumas alterações, a versão final atualizada está disponível no blog do PET
Elétrica no artigo “Eletrônica por Paixão – LCD” [3].
Foram desenvolvidos oito menus para o LCD, apresentados na Figura
16. Ao iniciar o protótipo será apresentada a tela (a) que tem como objetivo
identificar o projeto enquanto inicializa o módulo RF e lê os dados da memória
EEPROM.
Após a inicialização a tela inicial (b) é apresentada, onde as requisições
serão exibidas ordenadamente, da mais antiga para a mais nova. Para marcar
como atendida usa-se os botões “acima” e “abaixo” para selecionar a
requisição e aciona-se o botão central por mais de um segundo.
O menu de opções é formado pela tela (c) e (d). A primeira opção ,
configuração de porta bebida, é feita na tela (e). A segunda opção, adicionar ou
verificar as bebidas cadastradas, é feita na tela (f). A terceira opção, Apagar
bebida, é feita na tela (g). A quarta e última opção, apagar mesa, é feita na tela
(h).
33
Algumas telas precisam de algum cadastro anterior para funcionar como
é o caso da tela (e) e (g) que precisam de uma bebida cadastrada e da tela (h)
que precisa de ao menos uma mesa e bebida configurada.
O campo bebida da tela (e) só exibe os códigos que possuem bebidas
cadastradas e sua descrição na terceira linha. As telas (g) e (h) só exibem
respectivamente as bebidas e as mesas cadastradas, não necessitando que o
usuário digite o valor.
Figura 16 - Telas desenvolvidas
Caso as condições de cadastro prévio não estejam satisfeitas o usuário
receberá uma das seguintes mensagens conforme o abaixo.
Figura 17 - Telas de erro
34
Para facilitar a digitação do usuário, a tela (f) que necessita que seja
digitado o nome da bebida, foi desenvolvida para buscar caracteres de modo
crescente e decrescente, ou seja, pode-se ir de A até Z e de Z até A.
A qualquer momento o botão central pode ser acionado por mais de 1
segundo para voltar para a tela (b) descartando as configurações feitas no
menu corrente.
Abaixo um exemplo com uma parte do código para a seleção de menus
do LCD, a função switch foi usada para facilitar a escrita e o entendimento do
código.
Para o caso da função acima, que imprime o menu do LCD, há apenas
um nível de switch, para receber os dados do usuário, cada menu possui uma
instância de função switch e a posição do dado a ser digitado é um segundo
nível de função switch.
Para receber comandos do usuário foram usados três botões, todos
ligados em pinos de interrupção externa. As funções executadas são
MAIS/ACIMA (botão um), OK ou CANCELAR (botão dois) e MENOS/ABAIXO
(botão três).
void lcd_menu(int c)
{
int i;
menu_ativo = c;
switch (c)
{
case 1: lcd_pos_xy(1,1);
lcd_escreve(" PROJETO TOME MAIS ");
lcd_pos_xy(1,2);
lcd_escreve(" ");
lcd_pos_xy(1,3);
lcd_escreve(" Inicializando... ");
lcd_pos_xy(1,4);
lcd_escreve(" Versao 0.1 ");
lcd_cursor_off();
break;
}
}
35
A diferenciação entre OK e CANCELAR no botão dois é feita através do
tempo em que o botão fica pressionado, se o tempo for menor que 1 segundo
será entendido como OK, caso contrário como CANCELAR.
Ao pressionar algum dos botões o nível alto é enviado para o
microcontrolador acionando a interrupção. Caso o botão esteja aberto, um
resistor de pull-down garantirá o nível lógico baixo no pino.
4.1.5 Microcontrolador
Para o circuito da base foi escolhido o microcontrolador PIC 18F4550,
devido à experiência prévia e por ter disponível todos os equipamentos
necessários para programação e debug.
Este microcontrolador possui 40 pinos sendo 35 deles entrada ou saída
digitais, oscilador interno de 8 MHz, módulo UART interno, 256 bytes de
EEPROM e 32 Kbytes de memória de programa.
Figura 18 – Pinos do PIC 18F4550 [9]
36
Para a programação e debug foram disponibilizados cinco pinos para
ICSP10 usado nos programadores PICKIT®11.
Figura 19 - Circuito base completo
10 ICSP, In Circuito Serial Program, tipo de programador usado. 11 PICKIT é uma criação da empresa Microchip Technology Inc.
37
4.1.6 Carregamento sem fio
O carregamento indutivo irá facilitar o uso diário do sistema, eliminando
a necessidade de troca de baterias ou conexões mecânica entre o circuito da
base e o circuito do suporte. Além de eliminar os problemas por oxidação visto
que o suporte é lavado frequentemente.
Dentre as poucas informações encontradas durante a etapa de
pesquisa, não foi encontrado nenhuma referência sobre bobinas comerciais.
Decidiu-se então utilizar smartcard de duas interfaces que possuem bobinas no
seu interior, este caso apresentava maior facilidade em obter as bobinas, pois o
desenvolvedor deste projeto trabalhava em uma fábrica de smartcard na
ocasião.
Figura 20 - Detalhe da conexão entre antena e chip do smartcard
A proposta inicial era utilizar duas bobinas de smartcard, uma para
gerar o campo variável (componente ativo) e outro para receber o campo
(componente passivo).
As bobinas seriam obtidas de smartcards de duas interfaces, também
conhecido por COMBI (contato e sem fio). Este cartão tem apenas um chip que
controla tanto a interface de contato quanto a sem contato. Para conectar a
parte sem contato com o chip é usinada uma cavidade no cartão expondo cada
38
um dos terminais da antena, os quais são ligados ao chip através de uma cola
condutiva conhecido como Silver Glue.
Durante os testes verificou-se que a cola condutiva polimerizada não
tinha boa adesão mecânica ao cartão, sendo removida com facilidade com o
movimento leve no fio. Esta fragilidade impossibilitava o trabalho.
Ainda com a bobina de smartcard também foi testada a utilização de
estanho, porém como o corpo do cartão é de PVC o condutor era empurrado
para o interior do plástico quando aquecido.
A solução posterior foi a compra de um equipamento de carregador
indutivo para controle do video-game Wii fabricado pela empresa Energizer.
O equipamento possuía tanto a parte ativa quanto a parte passiva,
porém este equipamento foi comprado em um site de produtos usados e estava
danificado.
Figura 21 - Equipamento de carregamento indutivo para Nintendo Wii12
O circuito eletrônico comprado não respondia quando era alimentado,
não sendo possível determinar qual a frequencia de trabalho das bobinas. Este
problema foi solucionado injetando um sinal senoidal na bobina com um
gerador de função na parte ativa e verificando o que era induzido na a parte
passiva através de um osciloscópio.
12 Imagem obtida em http://techcrunch.com/2009/12/01/review-energizer-flatpanel-2x-
charging-system-for-wii/
39
O melhor resultado ocorreu em 130 kHz, as figuras abaixo mostram o
sinal em 120 kHz, 130 kHz e 140 kHz. Percebe-se que as duas bobinas são
influenciadas pela variação de frequência e que a tensão induzida na bobina
passiva pode ser maior que da ativa, devido existir diferenças construtivas.
Figura 22 - Bobina ativa 2.05 V (amarelo) e Bobina passiva 3.14 V (verde) a 120 kHz
Figura 23 - Bobina ativa 1.69 V (amarelo) e Bobina passiva 3.70 V (verde) a 130 kHz
40
Figura 24 - Bobina ativa 0.72 V (amarelo) e Bobina passiva 2.53 V (verde) a 140 kHz
Todos os testes foram feitos utilizando gerador de função com onda
senoidal e osciloscópio. Para simplificar o circuito foi usada uma ponte H,
chaveando uma tensão induzida de 9 Volts a 130 kHz. Nos testes a tensão
induzida na bobina passiva era 21 Vpp, tensão maior que a senoidal, pois a
onda quadrada tem uma taxa variação maior que a senoidal.
Quando testado o circuito para a carga da bateria, verificou-se que,
apesar de existir uma indução de tensão, a corrente que poderia ser obtida era
mínima, insuficiente para carregar a bateria. Os testes foram realizados com
um potenciômetro e um osciloscópio. Os dados obtidos estão na tabela abaixo.
Tabela 4 - Resultados para o carregamento indutivo
Característica Onda Quadrada
Circuito aberto Corrente = 0 A Tensão = 21,2 Vpp
Carga para 4,313 Vpp Carga = 4,8 K Ohms Corrente = 448 µAmax
4.1.7 Resumo do Circuito Base
13 Tensão da bateria 3,6 Volts + 0,7 Volts de queda no diodo.
41
Conforme mostrado na Figura 25 o circuito da base tem quatro entradas,
os três botões que estão ligados em pinos de interrupção externa e o módulo
RF e duas saídas, o LCD e uma saída serial para fins de testes durante o
desenvolvimento. Como o módulo RF é microcontrolado não há a necessidade
de solicitar o envio do pacote ACK, isto é feito automaticamente quando o
pacote recebido tem o CRC validado.
Figura 25 - Entradas e saídas do circuito da base
A Figura 26 mostra o funcionamento simplificado do circuito da base. O
laço principal é apenas para inicializar o LCD e o microcontrolador, todos os
outros laços são iniciados por interrupções externas, no caso dos três botões e
interrupção de recebimento de dado serial, no caso de entrada de dados.
42
Figura 26 - Fluxograma simplificado do funcionamento do circuito da base
4.2 CIRCUITO DO SUPORTE
Para o projeto do circuito do suporte foram listados quais eram as
funções necessárias. O desenvolvimento de cada uma delas foi feito com uma
primeira análise e uma proposta inicial que seria testada.
Tabela 5 - Lista de componentes e funções necessárias para o circuito do suporte
Lista de componentes/funções necessárias Sensor de peso
Microcontrolador Transmissor RF
Carregamento sem fio
43
4.2.1 Sensor de Peso
Um sensor de força/peso será necessário para quantificar a quantidade
de bebida da garrafa, não há necessidade de uma grande resolução, pois o
circuito usará um valor de referência para definir a garrafa deve se trocada.
Devido à falta de experiência com sensores deste tipo foi feito uma
pesquisa com pessoas que conheciam mais a respeito, como professores,
outros alunos e fóruns da internet, a opção mais mencionada foi o sensor
piezelétrico. Nenhum teste prévio foi feito para esta escolha.
Após testes com o sensor piezelétrico foi constatado que o sensor tem
mais sensibilidade na variação da força, ou seja, para obter a força em um
determinado instante, seria necessário integrar este sinal desde um instante
passado onde estivesse sem nenhuma força atuando nele até o instante
escolhido.
Figura 27 - Sensor piezelétrico14
Como a taxa de amostragem do circuito não garante que o valor da
integral seja exato, em longo prazo o sistema iria perder sua referência e
apresentar comportamento imprevisível.
Devido a esta dificuldade foi decidido pela troca do sensor de força, de
piezelétrico para um resistor de filme multicamadas que varia a resistência de
acordo com a força aplicada.
14 Imagem editada, original disponível em
http://img.photobucket.com/albums/v385/Fergo/PiezoElements.jpg.
44
Figura 28 - Sensor de pressão estática FRS-402 [13]
Figura 29 - Curva de resistência versus pressão para o sensor FRS-402 [13]
O sensor FRS-402 trabalha na faixa de interesse e fornece a força
estática em um instante qualquer. Sua resposta é logarítmica, porém o uso de
um valor de referência, entre a garrafa vazia e com líquido, simplifica o
processamento desta informação.
Durante o uso do suporte a garrafa poderá estar em movimento, quando
estiver servindo, por exemplo, para eliminar este problema foi desenvolvido
uma rotina que precisa de 30 leituras, isto só pode acontecer se o suporte
estiver parado durante 3 segundos.
A medição do peso da garrafa é feita a cada 100 ms, caso as últimas 30
leituras tenham valores aproximados o sistema considerará que este valor
45
aproximado é o peso da garrafa, caso uma das leituras seja diferente o
processo começa do zero. Ou seja, caso não tenha variação de força em 3
segundos o sistema assume que este é o valor que deve ser considerado.
Se a medida obtida for menor que um limiar pré-determinado o sistema
irá iniciar do dado que informa uma nova solicitação.
4.2.2 Microcontrolador
Para o circuito do suporte foi escolhido o microcontrolador PIC 18F2550,
devido à experiência prévia e por ter disponível todos os equipamentos
necessários para programação e debug.
Este microcontrolador tem 28 pinos sendo 24 deles entrada ou saída
digitais, oscilador interno de 8 MHz, módulo UART interno, 256 bytes de
EEPROM, 32 Kbytes de memória de programa e conversor analógico digital de
10 bits integrado.
Figura 30 – Pinos do PIC 18F2550 [9]
46
Figura 31 - Circuito do suporte completo
4.2.3 Transmissor RF
A transmissão por RF será feita com o módulo nRF24L01, já citado
anteriormente. A rotina de inicialização do módulo é a mesma usada para o
receptor, mostrada na Figura 12. A diferenciação é feita ao configurar o módulo
como transmissor mostrado na Figura 32 e a maneira de enviar dados.
Para o correto funcionamento da função de retransmissão e validação
de recepção via ACK, o módulo exige que o transmissor tenha endereço de
recepção e transmissão idênticos, caso contrário o pacote ACK não será
identificado.
47
Figura 32 - Fluxograma para configurar o módulo como TX
Como o envio de dados com tamanho variável foi desativado, o dado a
ser enviado deve ter exatamente 32 bytes, caso seja menor, o código do
usuário deve adequar para que tenha o tamanho definido no fluxograma da
Figura 33Erro! Fonte de referência não encontrada., mesmo que os outros
bytes sejam descartados posteriormente.
Figura 33 - Envio de dado
48
4.2.4 Carregamento sem fio
Conforme informado no item 4.1.6, o carregamento indutivo foi excluído
do projeto.
4.2.5 Resumo do circuito do suporte
O circuito do suporte base tem apenas duas entradas, um botão para
ligar ou desliga e o sensor de pressão, as saídas são o LED indicativo para o
usuário saber se esta ligado ou desligado e o módulo RF.
Figura 34 - Entradas e saídas do circuito do suporte
Na Figura 35 é mostrado o fluxograma simplificado do circuito do
suporte, este tem dois estados, ligado ou desligado, se estiver desligado o
microcontrolador vai para um modo de baixo consumo de 2 µA (modo sleep),
caso esteja ligado o circuito fica verificando constantemente o peso da garrafa
conforme mostrado.
49
O módulo RF fica em modo standby até que seja acionado para enviar
um dado, caso não tenha nenhum envio pendente ele irá consumir apenas 26
µA conforme informado no datasheet.
Para retornar do modo sleep é necessário uma interrupção, para isto o
botão foi ligado a uma porta de interrupção externa.
Figura 35 - Fluxograma simplificado do funcionamento do circuito do suporte
50
4.3 PROPOSTA DE GABINETE
O sistema precisará de dois circuitos diferentes, um deles deverá ser
adaptado ao padrão de suportes térmicos para garrafas e o outro tem formato
indefinido, abaixo uma proposta desenvolvida no software SolidWork.
A proposta contempla duas posições para encaixar o suporte para o
carregamento indutivo local para o LCD e três botões.
O gabinete proposto não foi usado no protótipo devido, ao alto custo
para produção de apenas uma peça, ao invés disto foram usadas duas placas
de vidro e uma caixa plástica.
Figura 36 – Proposta de gabinete desmontado
51
Figura 37 - Proposta de gabinete montado
52
5 PROTOTIPAGEM
5.1 SIMULAÇÕES, ESQUEMÁTICOS E LAYOUT
A etapa de simulação precedeu a confecção dos protótipos, para o caso
dos circuitos de interface e de obtenção do peso da garrafa, pois todos os
componentes estavam disponíveis no simulador. A simulação ajudou a reduzir
as interações no circuito garantindo que a placa seja confeccionada na forma
mais próxima da placa final.
Para a simulação e confecção das placas foi usado o conjunto de
aplicativos Proteus, que possui o programa ISIS, usado nas simulações e na
criação de diagramas esquemáticos, e o programa ARES para a confecção do
layout da placa de circuito impresso.
O software ISIS tem a capacidade de simular microcontroladores
Microchip da família PIC e display de LCD, facilitando o desenvolvimento do
software para o circuito da base e seus menus.
Após a conclusão dos testes no programa ISIS os componentes e as
conexões foram exportados do esquemático para o software de PCB
denominado ARES.
O ARES possui as funções autoplace e auto-route, a primeira posiciona
os componentes da melhor de maneira e a segunda desenha as rotas de
acordo com as regras definidas pelo usuário. Além destas duas ferramentas há
a possibilidade de qualquer alteração no ISIS e ter atualização no ARES, sem
perder o trabalho despendido na criação da parte do layout que não teve
alterações.
5.2 TRANSFERÊNCIA DE LAYOUT – PROCESSO SERIGRÁFICO
Munido do layout desenvolvido no ARES, o próximos passo era
encontrar uma solução para a transferência do desenho para a placa. O
53
método a ser aplicado deveria ser bom suficiente para garantir trilhas finas e
que algumas pudessem passar entre os terminais do microcontrolador com o
devido isolamento.
Em uma rápida pesquisa a respeito encontrou-se a solução de serigrafia,
no artigo CIRCUITO IMPRESSO DE QUALIDADE COM BAIXO CUSTO [1] do
INAPE (Instituto de Astronomia e Pesquisas Espaciais) escrito por Leocádio
Benez Neto, este artigo explica como fazer circuitos usando serigrafia.
Diferente do processo serigráfico convencional, que se usa telas com
fios entrelaçados e tinta, este processo a emulsão serigráfica é aplicada
diretamente na placa de circuito impresso, ao invés da criação de uma matriz
prévia. O benefício é que não há necessidade de comprar tela de serigrafia e
tinta para o processo.
O processo de revelação serigráfica se inicia emulsionando uma placa
cobreada que foi previamente limpa. A emulsão preparada é resultado da
mistura de 3 ml de emulsão fotográfica e 4 gotas de bromato (sensibilizante),
este processo deve ser feito em local com baixa luminosidade. Após a
aplicação na placa é necessário de 4 a 6 horas para a secagem.
Figura 38 - Aplicando emulsão na placa [1]
Após a secagem usa-se uma imagem negativa do circuito, impressa em
transparência, fixada sob a placa. Com a emulsão já seca, coloca-se o
desenho e a placa entre dois pedaços de vidro, pressionando o desenho contra
a placa. Com um refletor de 500 Watts a 30 cm ilumina-se a placa por 180
segundos, após isto a placa é mergulhada em água e percebe-se que a parte
54
exposta a luz não absorve água ficando fixa enquanto a parte que não recebeu
luz sai com facilidade devido ao enrugamento causado pela absorção da água.
Figura 39 - Transferência do layout [1]
Ao final do processo acima se percebe que a imagem transferida do
circuito está conforme o esperado, sem necessidade de retoque.
Figura 40 - Revelação [1]
55
5.3 CORROSÃO – PROCESSO SERIGRÁFICO
A corrosão deve durar entre 5 e 7 minutos em uma solução com pouco
uso e temperatura ambiente. Em todas as tentativas percebeu-se que havia
uma parte de cobre que deveria, mas não havia sido removida, sendo este
efeito conhecido como véu nas indústrias gráficas. Consiste em uma parte
transparente da emulsão que também fora polimerizada.
Para contornar este problema foi feita uma tentativa de estender o tempo
recomendado de corrosão, porém surgiu um segundo problema as trilhas
começam a enrugar, se desprender e deslizar pela placa, possibilitando a
corrosão do circuito.
Antes da corrosão não é possível determinar que área possui o
chamado véu e que área está sem ele, desta forma não há como prevenir
deste problema. O efeito véu pode surgir devido a varias causas, emulsão de
baixa qualidade, excesso de sensibilizante ou aquecimento da placa durante o
processo.
Foram feitas várias tentativas variando a quantidade de sensibilizante, o
tempo de exposição versus distância do refletor, porém não foi possível
eliminar o efeito véu, após estas tentativas este método foi abandonado.
5.4 TRANSFERÊNCIA DE LAYOUT – PROCESSO TÉRMICO COM FOLHA
DE ADESIVO
O segundo método testado para transferência de layout foi a
transferência térmica, usando uma folha lisa onde os adesivos vem colados
antes do uso. A adesão do tonner da impressora laser neste tipo de folha é
muito baixa, facilitando a transferência para o cobre.
56
Depois de testes foi constatado que este processo funciona bem para
circuitos pequenos e com trilhas largas, mas não para circuitos maiores que 10
cm.
Há problemas na impressão, pois os rolos de transporte da impressora
acabam retirando a camada de tonner por onde passam. Esta dificuldade levou
ao abandono deste processo, pois ao final da transferência era necessário
corrigir manualmente muitas partes do circuito.
Lembrando que cada impressora tem um sistema de transporte de folha
diferente, o que poderá levar a resultados diferentes. Como só havia uma
impressora laser para estes testes não foi possível dar continuidade. Outras
empresas de fotocópia se negaram a tentar imprimir alegando que a folha
poderia danificar a máquina.
5.5 TRANSFERÊNCIA DE LAYOUT – PROCESSO TÉRMICO COM FOLHA
DE REVISTA
A terceira tentativa foi o uso de folha de revista ao invés de folha de
adesivo, esta foi uma recomendação de outros alunos que confeccionavam
protótipos. Este método consiste em recortar uma folha de revista em tamanho
similar ao A4, imprimir o layout a ser usado e com um ferro de passar, fundir o
tonner à placa.
Após várias tentativas foi descoberto que o uso do plano terra facilitava a
adesão do tonner, pois a tendência é falhar nas bordas, como o plano terra não
possui detalhes mesmo se falhar a correção é mais fácil do que em trilhas.
57
Figura 41 - Layout impresso em folha revista
Munido do layout impressos em folha de revista, fixa-se o desenho na
placa através de fita adesiva e com um ferro de passar esquenta-se a placa
com o desenho por cerca de um minuto e meio. Após isto se mergulha a placa
em água e retirando as partes sem tonner que não foram aderidas.
Figura 42 - Resultado após retirar as partes não aderidas, a parte inferior esquerda apresenta uma falha de transferência no plano terra.
5.6 CORROSÃO – PROCESSO TÉRMICO COM FOLHA DE REVISTA
Após pequenos reparos no layout usando caneta de retroprojetor, a
corrosão é feita mergulhando a placa em percloreto de ferro por 5 a 7 minutos
em solução com pouco uso na temperatura ambiente.
58
Figura 43 - Resultado após retoque com caneta para retroprojetor
Após a corrosão usa-se lã de aço para remover o tonner que continua
fortemente aderido a placa. No plano terra é possível perceber alguns pontos
que foram levemente corroídos resultando em uma textura fosca.
Figura 44 - Resultado após corrosão
59
6 RESULTADOS
6.1 CIRCUITO DA BASE
O circuito da base foi finalizado e está funcional, porém sem o gabinete
sugerido sendo para o protótipo foi usado placas de vidro e caixa plástica,
abaixo a imagem. Durante o desenvolvimento o LCD apresentou um defeito
nas duas primeiras linhas onde a sexta coluna apresenta os caracteres sem a
primeira coluna de pixels, por não afetar a apresentação do protótipo não foi
substituído por um novo.
Figura 45 - Imagem do protótipo do circuito base montado
6.2 CIRCUITO DO SUPORTE
O circuito do suporte foi montado em um suporte térmico para bebida de
um litro de capacidade que fora modificado, a imagem a seguir mostra o
detalhe do LED indicativo e do botão.
60
Figura 46 - Imagem do protótipo do circuito do suporte montado
6.3 COMUNICAÇÃO SEM FIO
A comunicação sem fio apresentou bom desempenho para a distância
de 30 metros em linha reta sem obstáculo, com uma parede a distância caiu
para 15 metros aproximadamente, por tal motivo é recomendado que o circuito
base esteja preferencialmente no centro do estabelecimento, havendo a
possibilidade de adaptar para o receptor ficar fora da caixa melhorando a
comunicação.
6.4 SENSOR DE PESO
O sensor de força se mostrou adequado para a aplicação em questão,
não houve necessidade de linearizar a resposta, pois foi usado um valor de
threshold.
61
6.5 CARREGAMENTO INDUTIVO
A função de carregamento indutivo infelizmente teve que ser
abandonada, pois seu funcionamento possui muitas variáveis tais como função
usada para geração, posicionamento da bobina, circuito retificador entre outros.
Devido a isto não houve tempo hábil para o desenvolvimento.
6.6 ANÁLISE DE CUSTOS
Durante o desenvolvimento muitas vezes o custo foi uma das
preocupações além dos custos do protótipo também há outros custos a serem
levados em consideração no projeto global, abaixo uma relação dos custos
primeiramente do protótipo e em seguida do projeto.
Tabela 6- Custos do protótipo para o circuito da base
Quantidade Componente Custo Total 1 LCD 20x4 R$ 52,32 1 PIC 18F4550 R$ 24,98 3 BOTÃO R$ 3,96 1 CAIXA PLÁSTICA R$ 12,50 2 VIDRO R$ 10,00 3 RESISTOR R$ 0,90 1 DIODO R$ 1,35 2 PLACA DE FENOLITE COBREADA R$ 5,00 1 LED R$ 0,10 1 BARRA DE PINOS MACHO R$ 1,20 1 BARRA DE PINOS FÊMEA R$ 1,20 2 MODULO nRF24L01P R$ 19,89 1 CABO FLAT R$ 2,00 2 PAR DE CONECTOR PARA CABO FLAT 14 VIAS R$ 6,48
TOTAL GERAL R$ 141,88
Tabela 7 - Custos do protótipo para o circuito do suporte
Quantidade Componente Custo Total 1 PIC 18F2550 R$ 22,55 1 BOTÃO R$ 1,32 1 BATERIA R$ 27,72 3 RESISTOR R$ 0,90
62
1 PLACA DE FENOLITE COBREADA R$ 2,00 1 LED R$ 0,10 1 BARRA DE PINOS MACHO R$ 1,20 1 BARRA DE PINOS FÊMEA R$ 1,20 2 MODULO nRF24L01P R$ 19,89 1 SENSOR FRS-402 R$ 5,85
TOTAL GERAL R$ 82,73
Tabela 8 - Custos de projeto
Quantidade Componente Custo Total 1 PROGRAMADOR PICKIT 3 R$ 129,90 2 ARDUINO NANO R$ 79,80
250 HORAS TÉCNICAS R$ 6.250,00 1 DIVERSOS (estanho, ferro de solda, etc) R$ 50,00 1 CARREGADOR COM DEFEITO PARA WII R$ 40,00 1 TOTAL DO PROTÓTIPO R$ 224,61
TOTAL GERAL R$ 6.774,31
O custo do protótipo em 224,61 reais é um custo elevado que inviabiliza
o uso em pequena escala, para reduzir os custos deve-se produzir em grande
quantidade baixando o custo individual. Vale ressaltar que para cada
estabelecimento será necessário apenas um circuito base e múltiplos circuitos
para suporte.
6.8 CÓDIGO E PLACAS FINALIZADAS
Devido ao código completo do circuito base e do circuito do suporte ser
muito grande não será disponibilizado neste trabalho. Esta documentação
estará disponível no endereço goo.gl/16ZQ4. As rotinas de inicialização dos
módulos nRF24L01 estão disponíveis tanto no endereço eletrônico citado
quando nos apêndices I e II.
63
7 CONCLUSÃO
O projeto criou um sistema de comunicação sem fio com funções de
alcançando a maior parte dos objetivos traçados. Apenas o carregamento sem
fio foi eliminado do protótipo por se mostrar mais complexo que o inicialmente
previsto.
O protótipo concluído se mostrou funcional, porém comercialmente
inviável na sua primeira versão devido ao seu alto custo. O custo foi agravado
pelo super dimensionamento dos microcontroladores e pela troca da solução
de comunicação sem fio para um módulo mais robusto. Para uma possível
comercialização também se faz necessário uma análise dos tributos. Tal
análise poderia refletir em alterações no circuito devido ao incentivo para uso
de componentes nacionais.
Por fim algumas sugestões de funções que podem ser adicionadas
explorando a base criada, como por exemplo:
- Requisições diferentes, não se limitando a bebidas.
- Conclusão do sistema de carregamento sem fio analisando o
acoplamento entre circuito e bobina.
- Expansão para todos os tipos de bebidas, não limitando a bebida ao
formato do recipiente.
- Programação do código de identificação do circuito suporte por RF.
64
REFERÊNCIAS
[1] NETO, B LEOCÁDIO. Circuito Impresso de qualidade com baixo
custo. 2010. Disponível em: http://www.inape.org.br/eletronica/circuito-
impresso-de-qualidade-com-baixo-custo.
[2] DOS SANTOS, B Reinaldo, “Funcionamento das TV´s” disponível
em http://www.ava7.com.br/tv/lcd.jsp acesso em 25/04/13.
[3] LEGG, P Andrei, “Comunicação de dados: Modulações digitais”,
2012. Disponível em
http://coral.ufsm.br/gpscom/professores/andrei/Comunicacao/aula_08.pdf
acesso em 25/04/13.
[4] ANDRE, Fábio, “Transmissões Simplex, Half-Duplex e Full-
Duplex”, 2007. Disponível em http://fabio-
andre.blogspot.com.br/2007/10/transmisses-simplex-half-duplex-e-full.html,
acesso em 25/04/13.
[5] Autor desconhecido, “Comunicação SPI”, 2013. Disponível em
http://microcontrolandos.blogspot.com.br/2013/03/comunicacao-spi.html,
acesso em 25/04/13.
[6] NORDIC SEMICONDUCTOR. nRF24L01P Datasheet. [20__].
Disponível em: http://www.nordicsemi.com/kor/Products/2.4GHz-
RF/nRF24L01P
[7] PRADO, C GABRIEL. nRF24L01 – Teste Iniciais. Disponível em:
http://futebol-uff.blogspot.com.br/2012/12/nrf24l01-testes-iniciais.html
[8] SYSTRONIX. Systronic 20x4 LCD Brief Technical Data. 2000.
Disponível em:
http://www.systronix.com/access/Systronix_20x4_lcd_brief_data.pdf
[9] MICROCHIP. PIC18F2455/2550/4455/4550 Data Sheet. Disponível
em: http://ww1.microchip.com/downloads/en/devicedoc/39632c.pdf
65
[10] TATO EQUIPAMENTOS ELETRÔNICOS. MANUAL
TRANSMISSOR E RECEPTOR RF 433. Disponível em:
http://www.tato.ind.br/detalhe_produto.php?codigo_chave=31
[11] PAIXÃO, MARCOS V L. Eletrônica – LCD. Disponível em:
http://peteletrica.blogspot.com.br/2009/10/eletronica-lcd.html.
[12] EDIRIWEERA, K, ATHURALIYA J P D S. Design of Data Display
Boards With Wireless Control. Disponível em:
http://www.accimt.ac.lk/wddb_tech_paper.pdf.
[13] INTERLINK ELETRONICS. FSR 402 Data Sheet. Disponível em:
http://www.interlinkelectronics.com/FSR402.php.
[14] DYTRAN INSTRUMENTS. Introduction to Piezoelectric Force
Sensor. Disponível em: http://www.dytran.com/img/tech/a4.pdf.
[15] MICROCHIP. PICKIT 3 Programmer/Debugger User´s Guide.
Disponível em:
http://ww1.microchip.com/downloads/en/DeviceDoc/PICkit_3_User_Guide_517
95A.pdf.
[16] CCS INC. PIC C COMPILER V4 HELP. Sem data.
[17] WILSON, V TRACY. “Como funciona a energia elétrica sem fio”.
Disponível em http://ciencia.hsw.uol.com.br/eletricidade-sem-fio.htm, Acessado
em 07/11/12.
[18] SABER ELETRÔNICA, “Wireless Power Transmission:
Transmissão de energia sem fio”. Disponível em:
http://www.sabereletronica.com.br/secoes/leitura/1580, Acessado em 07/11/12.
66
APÊNDICES
APENDICE I – CÓDIGO DO TRANSMISSOR RF
APENDICE IV – CÓDIGO DO RECEPTOR RF
67
APENDICE I – CÓDIGO DO TRANSMISSOR RF
int8 vspi_writebyte(int8 dataout) {
int8 i,datain=0;
for(i=8;i>=1;i--) {
if(bit_test(dataout,i-1)) output_high(MOSI);
else output_low(MOSI);
output_high(SCK);
delay_us(2);
if(input(MISO)) bit_set(datain,i-1); else
bit_clear(datain,i-1);
output_low(SCK); }
output_low(MOSI);
return(datain); }
int8 vspi_sendpacket(int8 command, char
*data) {
int8 a,b,i=0;
output_low(CSN);
b=vspi_writebyte(command);
//printf("\n\r C:%X Data:",command);
for(i=0;data[i]!='\0';i++) {
a=vspi_writebyte(data[i]);
// printf("%X@%X ",data[i],a); }
//printf("Status:%X",b);
output_high(CSN);
return(b); }
int8 vspi_sendpacket(int8 command, int data) {
int8 a,b,i=0;
output_low(CSN);
b=vspi_writebyte(command);
//printf("\n\r C:%X Data:",command);
a=vspi_writebyte(data);
//printf("%X@%X",data,a);
//printf("Status:%X",b);
output_high(CSN);
return(b); }
int8 vspi_status() {
int b;
output_low(CSN);
b=vspi_writebyte(0xFF);
output_high(CSN);
return(b); }
int8 vspi_read(int a) {
int b;
output_low(CSN);
vspi_writebyte(a);
b=vspi_writebyte(0xFF);
output_high(CSN);
return(b); }
void flush_rx() {
output_low(CSN);
STS = vspi_read(0x06);
STS = (STS | 0b00000110)&0b11010111;
vspi_sendpacket(0x26,STS);
STS = vspi_read(0x00) & 0b11110011;
STS = STS | 0b00001100;
vspi_sendpacket(0x20,STS);
vspi_sendpacket(0x3C,0);
vspi_sendpacket(0x27,0b01110000);
vspi_sendpacket(0x25,76);
flush_rx();
flush_tx(); }
void vspi_openpipe() {
int STS;
output_low(CSN);
vspi_writebyte(0x2A);
vspi_writebyte(0xE1);
vspi_writebyte(0xF0);
vspi_writebyte(0xF0);
vspi_writebyte(0xE8);
vspi_writebyte(0xE8);
output_high(CSN);
output_low(CSN);
vspi_sendpacket(0x31,32);
output_high(CSN);
STS = vspi_read(0x02);
STS = STS | 0b00000001;
output_low(CSN);
vspi_sendpacket(0x22,STS);
output_high(CSN); }
void vspi_listening() {
int STS;
STS = vspi_read(0x00)| 0b00000011;
output_low(CSN);
vspi_sendpacket(0x20,STS);
output_high(CSN);
output_low(CSN);
vspi_sendpacket(0x27,0b011110000);
output_high(CSN);
flush_rx();
flush_tx();
output_high(CE);
delay_us(130); }
int vspi_available() {
int STS;
STS = vspi_status() & 0b01000000;
// vspi_sendpacket(0x27,0b01000000);
return(STS); }
void vspi_getdata(int *buf) {
int status;
68
APENDICE II – CÓDIGO DO RECEPTOR RF
int8 vspi_writebyte(int8 dataout) {
int8 i,datain=0;
for(i=8;i>=1;i--) {
if(bit_test(dataout,i-1)) output_high(MOSI);
else output_low(MOSI);
output_high(SCK);
delay_us(2);
if(input(MISO)) bit_set(datain,i-1); else
bit_clear(datain,i-1);
output_low(SCK); }
output_low(MOSI);
return(datain); }
int8 vspi_sendpacket(int8 command, char
*data) {
int8 a,b,i=0;
output_low(CSN);
b=vspi_writebyte(command);
for(i=0;data[i]!='\0';i++) {
a=vspi_writebyte(data[i]); }
output_high(CSN);
return(b); }
int8 vspi_sendpacket(int8 command, int data) {
int8 a,b,i=0;
output_low(CSN);
b=vspi_writebyte(command);
//printf("\n\r C:%X Data:",command);
a=vspi_writebyte(data);
//printf("%X@%X",data,a);
//printf("Status:%X",b);
output_high(CSN);
return(b); }
int8 vspi_status() {
int b;
output_low(CSN);
b=vspi_writebyte(0xFF);
output_high(CSN);
return(b); }
int8 vspi_read(int a) {
int b;
output_low(CSN);
vspi_writebyte(a);
b=vspi_writebyte(0xFF);
output_high(CSN);
return(b); }
void flush_rx() {
output_low(CSN);
vspi_writebyte(0xE2);
output_high(CSN); }
void flush_tx() {
STS = vspi_read(0x00) & 0b11110011;
STS = STS | 0b00001100;
vspi_sendpacket(0x20,STS);
vspi_sendpacket(0x3C,0);
vspi_sendpacket(0x27,0b01110000);
vspi_sendpacket(0x25,76);
flush_rx();
flush_tx(); }
void vspi_openpipe() {
int STS;
output_low(CSN);
vspi_writebyte(0x2A);
vspi_writebyte(0xE1);
vspi_writebyte(0xF0);
vspi_writebyte(0xF0);
vspi_writebyte(0xE8);
vspi_writebyte(0xE8);
output_high(CSN);
output_low(CSN);
vspi_writebyte(0x30);
vspi_writebyte(0xE1);
vspi_writebyte(0xF0);
vspi_writebyte(0xF0);
vspi_writebyte(0xE8);
vspi_writebyte(0xE8);
output_high(CSN);
vspi_sendpacket(0x31,32); }
int vspi_senddata(int *buf) {
int STS,status;
int i = 0;
STS = vspi_read(0x00);
STS = (STS | 0b00000010)&0b11111110;
vspi_sendpacket(0x20,STS);
delay_us(150);
output_low(CSN);
vspi_writebyte(0xA0);
for(i=0;buf[i]!='\0'&&i<32;i++) {
vspi_writebyte(buf[i]);
printf("%u:%u\n\r",i,buf[i]); }
while(i<32) {
vspi_writebyte(0x00);
i++; }
output_high(CSN);
output_high(CE);
delay_us(15);
output_low(CE);
for(i=0;i<251&(vspi_read(0x07&
0b00110000));i++) {
delay_ms(2); }