Índice:

Classificador de lixo CPE 133: 14 etapas
Classificador de lixo CPE 133: 14 etapas

Vídeo: Classificador de lixo CPE 133: 14 etapas

Vídeo: Classificador de lixo CPE 133: 14 etapas
Vídeo: Projeto Separação do Lixo - Empresa C.P.E. 2024, Novembro
Anonim
CPE 133 Trash Sorter
CPE 133 Trash Sorter

Para nossa aula de CPE 133 na Cal Poly, fomos instruídos a criar um projeto VHDL / Basys 3 que ajudasse o meio ambiente e fosse simples o suficiente para que pudéssemos implementá-lo com nosso novo conhecimento de design digital. A ideia por trás do nosso projeto de que, em geral, as pessoas não pensam onde jogam o lixo. Decidimos criar uma máquina que obrigasse as pessoas a pensar onde colocar o lixo. Nosso classificador de lixo recebe a entrada do usuário por meio de três interruptores, cada um representando lixo, reciclagem ou compostagem. Assim que o usuário selecionar o tipo de resíduo (s) que gostaria de eliminar, ele pressiona um botão. Este botão fará com que as tampas do recipiente correspondente sejam abertas. A máquina também usou o display no Basys 3 para indicar se alguma das tampas está aberta no momento. Quando o botão é liberado, as tampas se fecham novamente para que a máquina esteja pronta para o próximo usuário.

Etapa 1: Materiais

Materiais
Materiais
Materiais
Materiais
Materiais
Materiais

Os materiais necessários para este projeto são:

Tabuleiro Basys 3

Computador com Vivado instalado

3x servo *

Fio de cobre de 3 pés

Cortador de fio / descascador

Ferro de solda e solda

* porque os servos são caros e somos estudantes universitários, substituímos um resistor de 68 ohms e LED para cada servo como um protótipo (o código funciona da mesma maneira)

Etapa 2: Começando a codificação

Codificação inicial
Codificação inicial
Codificação inicial
Codificação inicial
Codificação inicial
Codificação inicial

Há muito código a ser escrito para este projeto. Estaremos usando código VHDL escrito em Vivado. Para começar, queremos criar um novo projeto. Primeiro, você nomeará o projeto e especificará o tipo de projeto. Certifique-se de selecionar as mesmas configurações da ilustração. Quando você chegar à tela de fontes, você desejará adicionar seis fontes chamadas "top", "flip_flop", "segmentos", "servo_top", "servo_sig" e "clk_div". Certifique-se de selecionar VHDL para o idioma de cada arquivo, não Verilog. Na tela de restrições, você deve criar um arquivo para a atribuição do pino. O nome deste arquivo não é importante. Em seguida, será solicitado que você selecione o tabuleiro que usará. Certifique-se de selecionar o correto. Fotos de referência para seleção correta. A última etapa solicitará que você especifique as entradas e saídas de cada arquivo de origem. Esta etapa pode ser codificada posteriormente, então clique em Avançar.

Etapa 3: Arquivo de restrições

Arquivo de restrições
Arquivo de restrições
Arquivo de restrições
Arquivo de restrições

Nesta etapa, escreveremos o arquivo de restrições. Isso informa ao Vivado quais pinos enviarão / receberão quais sinais do circuito. Precisaremos do relógio, três interruptores, o display de sete segmentos (sete cátodos e quatro ânodos), um botão e os três pinos PMOD de saída que o servo / LED usará. Fotos de referência de como o código deve ser.

Etapa 4: Arquivo Flip Flop

Arquivo Flip Flop
Arquivo Flip Flop

O próximo arquivo que iremos escrever é o arquivo fonte flip_flip. Esta será uma implementação VHDL de um D flip-flop. Em outras palavras, ele só passará sua entrada para a saída na borda ascendente do sinal de clock e quando o botão for pressionado. Terá o relógio, D e o botão como uma entrada e produzirá Q. consulte as fotos para obter o código. O objetivo deste arquivo é permitir que as caixas abram apenas quando o botão é pressionado, em vez de abrir diretamente cada vez que a chave é virada e fechando apenas quando a chave é virada de volta.

Etapa 5: Arquivo de segmentos

Arquivo de segmentos
Arquivo de segmentos

O próximo arquivo a ser gravado é o arquivo de segmentos. Isso levará o botão como em valores de entrada e saída para os sete cátodos e quatro ânodos do display de sete segmentos do Basys 3. Este arquivo faz com que a exibição de sete segmentos mostre um "C" quando as caixas estão fechadas e um "O" quando as caixas estão abertas. Para ver o código, consulte a foto em anexo.

Etapa 6: Arquivo do divisor de relógio

Arquivo de divisor de relógio
Arquivo de divisor de relógio

Os servos funcionam tomando um sinal PWM com uma frequência de 64k Hz enquanto o relógio embutido no Basys 3 funciona a 50MHz. O arquivo divisor de relógio converterá o relógio padrão em uma freqüência amigável para o servo. O arquivo terá o relógio e um sinal de reinicialização como entrada e produzirá um novo sinal de relógio. Veja a foto em anexo para obter o código.

Etapa 7: Arquivo de sinal servo

Arquivo de sinal servo
Arquivo de sinal servo

O arquivo de sinal do servo terá uma entrada de relógio, uma entrada de reset e uma entrada de posição desejada. Ele emitirá um sinal PWM que conduzirá o servo à posição desejada. Este arquivo usa o sinal de clock criado no último arquivo para criar um sinal PWM para o servo com diferentes ciclos de trabalho dependendo da posição desejada. Isso nos permite girar os servos que controlam as tampas das lixeiras. Veja a foto em anexo para obter o código.

Etapa 8: Arquivo Servo Top

Servo Top File
Servo Top File

O objetivo deste arquivo é compilar os dois últimos arquivos em um driver servo funcional. Isso levará um relógio, um reset e uma posição como uma entrada e produzirá o sinal do servo PWM. Ele usará o divisor de relógio e o arquivo de sinal do servo como componentes e incluirá um sinal de relógio interno para passar o relógio modificado do divisor de relógio para o arquivo de sinal do servo. Veja as fotos em

Etapa 9: Arquivo principal

Arquivo Principal
Arquivo Principal
Arquivo Principal
Arquivo Principal
Arquivo Principal
Arquivo Principal
Arquivo Principal
Arquivo Principal

Este é o arquivo mais importante do projeto, pois envolve tudo o que criamos juntos. Ele terá o botão, os três interruptores e o relógio como entradas. Ele dará os sete cátodos, os quatro ânodos e os três sinais servo / LED como saídas. Ele usará flip-flop, segmentos e arquivos servo_top como componentes e terá uma chave interna e um sinal de servo interno.

Etapa 10: Teste no Vivado

Executar Síntese, implementação e gravação de bitsream no Vivado. Se você encontrar qualquer mensagem de erro, encontre o local do erro e, em seguida, compare com o código fornecido. Trabalhe nos erros até que todas essas execuções sejam concluídas com êxito.

Etapa 11: Criação de introdução de hardware

Nesta etapa, você criará o hardware de LED que usamos em nosso protótipo. Se estiver usando servos, o projeto deve estar pronto para funcionar, desde que os pinos corretos sejam usados. Se estiver usando LEDs, siga as etapas abaixo.

Etapa 12: Preparação

Corte o fio em seis pedaços iguais. Retire as pontas de cada pedaço de fio o suficiente para que a soldagem possa ocorrer. Separe LEDs, resistores e fios em três grupos. Aqueça o ferro de soldar.

Etapa 13: Solda

De solda
De solda
De solda
De solda

Solde cada um dos resistores de 68 ohm no lado negativo de seu LED correspondente. Solde um fio no lado positivo do LED e outro fio no lado do resistor não soldado ao led. Você deve ter três das engenhocas de LED na foto acima.

Etapa 14: Final

Final
Final

Insira cada fio positivo no pino PMOD correspondente e cada fio negativo em um pino PMOD aterrado. Opcionalmente, adicione latas de papelão para representar as lixeiras e esconder sua bagunça de solda. Depois que os fios estiverem conectados corretamente e o código for carregado corretamente na placa, sem erros, a máquina deve funcionar conforme o esperado. Se algo estiver errado, volte às etapas anteriores para solucionar o problema. Divirta-se com o seu novo "classificador de lixo".

Recomendado: