Buscar

Conheça a PDB

Prévia do material em texto

Conheça a PDB - A placa didática open hardware
O acesso a placas de prototipagem, como o Arduino, é muito fácil. No entanto, com relação à kits didáticos a realidade é um pouco diferente.
 
Visando resolver este problema, foi desenvolvida a PDB, uma placa didática baixo custo, fácil construção (caseira inclusive) compatível com qualquer placa que tenha o footprint do Arduino (5V ou 3.3V). A PDB foi criada para transformar a placa de processamento (Arduino, Chipkit, etc) num ambiente de desenvolvimento pronto para aprender os conceitos básicos de um sistema embarcado em linguagem C, passando pelos periféricos e chegando nas arquiteturas de desenvolvimento.
 
A utilização de uma placa como a PDB, facilita o aprendizado de programação para sistemas embarcados. Isto se dá pois ela remove do processo os possíveis bugs ou erros de montagem do hardware. Deste modo a pessoa se preocupa apenas com o desenvolvimento do software.
Com relação aos periféricos, foi selecionado o conjunto listado abaixo. Esses periféricos abordam os conceitos que são básicos para o desenvolvimento de qualquer acionamento ou interface embarcada. Estes mesmos conceitos são abordados no livro Programação de Sistemas Embarcados (Elsevier), que, além de conter o projeto da placa, possui todas as suas atividades desenvolvidas com a PDB. A lista apresenta os periféricos embutidos na placa e os conceitos abordados com cada um deles.
Led RGB
Saídas digitais
Composição de bits
PWM
Display de 7 segmentos
Saídas digitais
Multiplexação temporal
LCD 16x2, compatível com HD44780
Saídas digitais paralelas
Protocolos de comunicação
Teclado matricial
Entradas digitais
Varredura
Debounce de teclas
Potenciômetro/LDR(sensor de luminosidade)/LM35(sensor de temperatura)
Elementos sensores diversos
Conversores analógico-digital
Buzzer
Emissão de sons
Controle de frequência
PWM
 
RTC DS1307
Comunicação serial (I2C)
Armazenamento de dados remotos
Operação com relógios
Periféricos internos
Timer
Conversores analógico-digital
Interrupção
Watchdog
 
A utilização do livro como guia auxilia aqueles que estão começando visto que o material percorre cada um dos sistemas partindo daqueles mais simples. Além disso cada periférico possui seu próprio capítulo, onde ele é explicado, primeiramente, com relação ao circuito eletrônico e depois o impacto que este circuito apresenta na utilização do periférico. Por fim o código de acesso ao periférico é discutido e construído, permitindo que o leitor possa utilizá-lo como fundamento para os próximos capítulos.
 
A placa foi desenvolvida utilizando o KiCAD e seu projeto já estará disponível no GitHub dos desenvolvedores, juntamente com os repositórios para as bibliotecas e exemplos (que estão sendo adicionados no decorrer do desenvolvimento. 
Como projetamos a placa didática open source (Build Report)
O desenvolvimento de atividades didáticas de laboratório em casa tem sido adotado por cada vez mais universidades, colégios técnicos e cursos online. Inicialmente essa prática era comum em cursos voltados exclusivamente para o uso ou desenvolvimento de software, mas com a queda dos preços e popularização dos kits de desenvolvimento de hardware, estes tem se tornado cada vez mais comuns. O uso de arquiteturas de hardware abertas é particularmente atraente por permitir que professores e instrutores possam adotar equipamentos prontos e modificá-los conforme suas necessidades, além de permitir que o estudante compreenda melhor os componentes e o funcionamento do equipamento. É importante que os kits de desenvolvimento domésticos tenham baixo custo, escalabilidade e possua poucas restrições quanto à interação do usuário com o equipamento ou outros usuários, e foi pensando nisso que criamos o projeto PDB 
Figura 1 - PQDB montada com todos os componentes
 
O objetivo foi criar uma placa de desenvolvimento didática de baixo custo, fácil fabricação (inclusive caseira) que atuasse como um shield para Arduino e placas compatíveis, tanto as de 5v quanto as de 3,3v. A placa desenvolvida deveria transformar a placa de processamento em um ambiente de desenvolvimento didático pronto para ensinar conceitos básicos e fundamentais de programação para sistemas embarcados em linguagem C, desde a utilização de periféricos até o estudo de diferentes arquiteturas de desenvolvimento, seguindo os conceitos abordados pelo livro Programação de Sistemas Embarcados (Elsevier), que tem o projeto da placa embutida nele. Para isso, foram selecionados os seguintes periféricos. Citados abaixo estão os conceitos que o estudante deve aprender:
 
Led RGB
Saídas digitais
Composição de bits
PWM
Display de 7 segmentos
Saídas digitais
Multiplexação temporal
LCD 16x2, compatível com HD44780
Saídas digitais paralelas
Protocolos de comunicação
Teclado matricial
Entradas digitais
Varredura
Debounce de teclas
Potenciômetro/LDR(sensor de luminosidade)/LM35(sensor de temperatura)
Elementos sensores diversos
Conversores analógico-digital
Buzzer
Emissão de sons
Controle de frequência
PWM
RTC DS1307
Comunicação serial (I2C)
Armazenamento de dados remotos
Operação com relógios
Periféricos internos
Timer
Conversores analógico-digital
Interrupção
Watchdog
 
Figura 2 - Livro que contém o projeto da base e aborda o ensino de programação embarcada
 
Uma das propostas foi deixar a placa base compatível com circuitos de 5 ou 3,3 volts. Esta providência foi tomada para poder abranger o maior número de placas e permitir o uso da placa base sem restrições. Para evitar a queima de componentes, a placa base não deverá sofrer nenhuma avaria se for utilizado uma placa de processamento com tensões de 5 volts e não poderá causar nenhum dano às placas de processamento de 3,3 volts. As soluções encontradas foram:
 
Alimentar todos os componentes externos da placa de desenvolvimento em 5 volts. A maioria dos componentes externos possui capacidade de operar em ambas as tensões fornecidas pela placa (5 e 3,3 volts). No entanto, alimentar os componentes em 3,3 volts e enviar sinais de controle em 5 volts poderia causar danos. O contrário, alimentar em 5 volts e enviar sinais de 3,3 volts não causa problemas físicos (queima);
Utilizar circuitos digitais que, mesmo alimentado sem 5 volts, aceitem a tensão de 3,3 volts como nível alto;
Os sinais digitais que sairão da placa de desenvolvimento serão todos em 3,3 volts, assim as placas de controle não serão afetadas. Mesmo as placas de controle alimentadas em 5 volts entendem o nível de 3,3 volts como alto. Os sinais digitais utilizarão um transistor para efetuar a mudança dos níveis de tensão para 3,3 volts;
Os sinais analógicos devem possuir valores que poderão variar entre zero e 3,3 volts. Quando for utilizada uma placa de processamento de 5 volts, será perdido um pouco da faixa de conversão, não utilizando toda a escala do conversor. Isto significa uma perda de resolução do sinal, o que, para aplicações didáticas, não compromete o uso.
 
Com relação ao projeto do layout da placa, este foi planejado para ser possível de ser fabricado em face única. Isto permite a confecção caseira da placa de modo rápido e simples. Além disso, todos os traços possuem a espessura mínima de 15 mils (0,381mm), com isolação de 30 mils (0,762mm). Isto reduz a possibilidade de curtos ou problemas de corrosão na fabricação caseira da placa. Por esse motivo algumas providências tiveram que ser tomadas para garantir essas premissas:
 
1.O LCD faz a comunicação através de um barramento de 4 bits. Isto reduz a quantidade de trilhas necessárias e facilita o roteamento;
 
2.Os leds do display de 7 segmentos estão conectados de acordo com o posicionamento dos terminais físicos. Por isso a sequência dos segmentos na saída do 74HC595 é dada por ed0cgafb, e não por 0gfedcba;
Figura 3 - Representação dos segmentos de um dígito do display
 
3.O footprint utilizado para os diodos foi alongado de modo que houvesse mais espaço entre os seus terminais. Deste modo, criou-se um caminholivre embaixo dos diodos que permitiu a passagem de sinais do lado esquerdo para o lado direito da placa;
 
4.Dois resistores de zero ohms foram adicionados (R601 e R602). Eles funcionam como jumpers para conectar as trilhas em regiões onde não foi possível contornar os caminhos dos sinais;
 
5.O espaço entre os terminais dos componentes não foi utilizado para a passagem de trilhas visando simplificar a fabricação da placa e respeitar os espaçamentos definidos;
 
6.Por limitações de terminais disponíveis no barramento das placas compatíveis com o barramento do Arduino, foi utilizado um circuito de expansão de terminais que faz a conversão de serial para paralelo.
 
Figura 4 - PDB de acordo com o projeto
 
Para simplificar o projeto, depuração, fabricação e montagem da placa, a numeração dos componentes segue um padrão. Todos eles são identificados por um conjunto de letras mais três dígitos numéricos. As letras indicam o tipo de componente. O primeiro dígito representa de qual circuito o componente faz parte. Os dois últimos dígitos são números sequenciais para diferenciar os componentes dentro do mesmo circuito. Os circuitos foram divididos em:
 
1.Entradas analógicas e saída PWM;
2.Entradas digitais;
3.Entradas analógicas e saída PWM;
4.Display de 7 segmentos;
5.Display de LCD;
6.Led RGB;
7.Conversor serial-paralelo (74HC595);
8.Circuito do RTC DS1307;
9.Shield com footprint do Arduino.
 
Os componentes utilizados foram:
15 Resistores 1kΩ;
10 Resistores 10kΩ;
2 Resistores (jumpers) 0Ω;
1 capacitor 10nF;
1 cristal 32,768kHz;
1 74HC595;
1 placa de controle Arduino/Chipkit/Freedom;
28 terminais macho, divididos em 4 barras: 6, 6, 8 e 8 pinos cada;
1 Led RGB;
7 transistores BC337;
10 chaves microswitch, 2 ou 4 terminais;
1 buzzer;
10 diodos 1N4148 ou similar;
1 display LCD 16x2 JHD162A ou compatível;
1 display quádruplo 7 segmentos, KW4-361 ou compatível;
1 LDR 10kΩ;
2 potênciômetros 10kΩ;
 
Figura 5 - Esquemático da PDB
 
A placa foi desenvolvida e testada com as diferentes placas de processamento propostas. Devido ao espaçamento dos componentes e espessura das trilhas, a placa se mostrou relativamente fácil de ser confeccionada artesanalmente. Além disso, a mesma foi adotada pelo livro Programação de Sistemas Embarcados, onde diversos exercícios foram propostos para ensinar desde linguagem C até o desenvolvimento de um sistema operacional embarcado

Continue navegando