Índice:

Sistema de semáforo de 4 vias usando 5 Arduinos e 5 módulos sem fio NRF24L01: 7 etapas (com imagens)
Sistema de semáforo de 4 vias usando 5 Arduinos e 5 módulos sem fio NRF24L01: 7 etapas (com imagens)

Vídeo: Sistema de semáforo de 4 vias usando 5 Arduinos e 5 módulos sem fio NRF24L01: 7 etapas (com imagens)

Vídeo: Sistema de semáforo de 4 vias usando 5 Arduinos e 5 módulos sem fio NRF24L01: 7 etapas (com imagens)
Vídeo: Semáforo com Arduino 2024, Novembro
Anonim
Image
Image
Ambicioso? Pode ser!
Ambicioso? Pode ser!

Há pouco tempo, criei um Instructable detalhando um único par de semáforos em uma placa de ensaio.

Eu também criei outro Instructable mostrando a estrutura básica para usar um módulo wireless NRF24L01.

Isso me fez pensar!

Existem muitos amadores ao redor do mundo que constroem cidades-modelo e ferrovias, e quase sempre têm semáforos de alguma descrição.

Alguns são modelos funcionais e outros apenas para fins estéticos.

Posso criar um modelo funcional de um sistema de semáforos de quatro vias e conectá-los sem fio?

Sentei-me e pensei sobre minha lista de possíveis requisitos. Que foi um pouco assim.

Controle 4 direções de tráfego, como uma encruzilhada.

Cada direção tem duas luzes; e cada par recebendo instruções sem fio de algum tipo de unidade de controle.

Ser capaz de definir e modificar a sequência de operação das luzes,

  • 1, 2, 3, 4 - sentido horário
  • 1, 3, 4, 2
  • 1, 4, 2, 3
  • 1, 4, 3, 2 - anti-horário
  • 1, 2, 4, 3
  • 1, 3, 2, 4
  • 1 + 3, 2 + 4 - 2 ligado 2 desligado
  • 1 + 3, 2, 4
  • 1, 3, 2 + 4

Todo o sequenciamento deve ser controlado por uma única unidade de controle, e as unidades de recepção apenas ligando e desligando as luzes.

Quando eu disse fazer um modelo, quis dizer, faça um modelo real, nada muito sofisticado, mas algo que realmente se parecesse com a coisa real, possivelmente, talvez ish.

Etapa 1: Ambicioso? Pode ser

Requisitos de peças principais:

Uma unidade de controle e quatro conjuntos de luzes = cinco Arduinos e cinco módulos sem fio. AliExpress para o resgate (de novo).

Oito carrinhos de semáforo. Eu tenho uma imitação pobre de uma impressora 3D, que tende a fornecer mais forragem do que produtos utilizáveis, mas pensei que daria uma chance de qualquer maneira. Eu encontrei alguns no Thingiverse, www.thingiverse.com/thing:2157324

Este modelo parecia o menos complexo para minha impressora. Eu queria oito, então ainda estava abusando da sorte. No final das contas, descobri que, após algumas tentativas fracassadas, se eu orientasse o modelo em uma determinada direção (da frente para trás), obtive resultados razoáveis. No total, imprimi treze e consegui oito utilizáveis.

Essa foi a lista de peças principais classificada. As partes restantes, eu já tinha.

A lista de peças completa é

  • 5 x Arduino UNOs
  • 5 placas sem fio NRF24L01
  • 5 placas de breakout YL-105 (ou similar) para os NRF24L0s
  • 8 x LEDs vermelhos
  • 8 x LEDs amarelos (não tenho nenhum LED laranja)
  • 8 x LEDs verdes
  • 4 LEDs RGB
  • Resistores de 28 x 220 Ohm
  • Placas de ensaio / PCBs ??
  • 8 x semáforos modelo
  • 6 x 8 cabeçotes de pinos longos (o sexto era para espaçamento na placa de controle, veja o vídeo)
  • Tubo retrátil
  • Fios de ligação
  • Pedaço de cartão ou algo plano
  • Outras peças de madeira ??
  • Pintar ??
  • Cola quente
  • Tempo, paciência e álcool de escolha

Etapa 2: escrever o código para a unidade de controle

Esta é a parte que eu tive que fazer primeiro, apenas no caso de não conseguir realmente administrá-la, o que teria sido um empecilho.

Esta foi de longe a parte mais complexa do projeto, mas também a mais interessante para mim.

Eu tive que sentar e definir todas as combinações possíveis de mudanças de luz e como elas funcionariam juntas de forma síncrona.

Como todo bom design, ele começou, no papel, com uma lista muito longa de números e, como eu queria ter várias sequências de operação possíveis, a lista ficou ainda mais longa.

Mas, uma vez que fiquei feliz por ter tudo o que pensei ser necessário e, depois de olhar as páginas de números por um tempo, meu TOC começou e comecei a ver padrões.

Organizando os padrões, consegui agrupar todo o sequenciamento em uma única matriz tridimensional e duas matrizes bidimensionais.

Tudo o que eu precisava fazer agora é encontrar uma maneira de manipular essas matrizes para criar o sequenciamento correto e as etapas de luz.

Demorou um pouco, mas consegui fazer isso em menos de cinquenta linhas de código, incluindo comentários etc.

O código para isso não é para os medrosos, mas se você entende matrizes multidimensionais, não deve ser muito difícil de seguir. Ou uma curva de aprendizado para o resto.

O que quero dizer é que acredito que funciona e, de qualquer maneira, não deveria ser necessário mudar. Mas…………

Etapa 3: NRF24L01 Mod Breakout Board

NRF24L01 Breakout Board Mod
NRF24L01 Breakout Board Mod
NRF24L01 Breakout Board Mod
NRF24L01 Breakout Board Mod
NRF24L01 Breakout Board Mod
NRF24L01 Breakout Board Mod
NRF24L01 Breakout Board Mod
NRF24L01 Breakout Board Mod

O módulo NRF24L01 e a placa breakout YL-105, infelizmente, não são muito amigáveis à placa de ensaio.

A placa de breakout parte do caminho para corrigir o problema e, mais importante, tornando-a tolerante a 5v, mas ainda não é amigável à placa de ensaio.

Então eu fiquei um pouco inventivo.

Em minha coleção de ‘coisas’, tenho vários cabeçalhos de 6 pinos com pinos longos. O tipo necessário para fazer Escudos Arduino.

Peguei um deles e dobrei os pinos em 90 graus.

Tirei um dos trilhos de alimentação de uma placa de ensaio e conectei o conector na borda da placa de ensaio.

Isso deixou os pinos de alimentação na placa de breakout. Eles estão agora no caminho.

Portanto, removi-os e coloquei-os do outro lado da placa de divisão de forma que agora fiquem salientes na parte traseira da placa.

Para os fins deste Instructable, necessito de cinco módulos NRF24L01, então montei todos ao longo da placa de ensaio e fixei o barramento de alimentação ao longo de todos os pinos de alimentação na placa breakout.

Parecia bem organizado até que eu conectei os Arduinos e ficou um pouco lotado.

Além disso, que é a parte importante, uma vez que o barramento de alimentação fosse conectado, todos os Arduinos seriam conectados à mesma fonte e era isso que eu estava tentando evitar, então desmontei a maior parte novamente.

Vou manter a placa com alguns módulos NRF24L01 para prototipagem no futuro, portanto, não é uma perda de tempo completa.

Etapa 4: Unidades de semáforo

Unidades de semáforo
Unidades de semáforo
Unidades de semáforo
Unidades de semáforo
Unidades de semáforo
Unidades de semáforo

Eu encontrei algumas pequenas placas de ensaio de 170 pontos de amarração. Estes não têm um barramento de força, então minha placa de breakout modificada ainda caberia. Embora em um pequeno ângulo devido à altura da placa de divisão.

Eu construí os quatro controles de semáforo da mesma cor, fios da mesma cor, posicionamento, etc. Eles agora são verdadeiramente autônomos.

Para a unidade de controle, coloquei o módulo NRF24L01 em uma placa de circuito impresso com os LEDs RGB. Usei RGB porque, embora não precise ver todas as luzes, apenas o vermelho e o verde, eles ocupam menos espaço.

Conectou os LEDs ao Arduino da maneira normal e adicionou um pouco de código para exibir o status vermelho ou verde de cada conjunto de semáforos.

Tentei ser consistente com minhas cores de fiação para poder ver facilmente se havia feito algo diferente em uma das placas.

Tenho alguns conjuntos curtos de condutores Dupont e, como os condutores estão presos, isso tornou essa parte muito fácil.

NRF24L01:

  • CE Orange para Arduino pino 10 (definido no código)
  • CSN Amarelo para Arduino pino 9 (definido no código)
  • SCK Verde para Arduino pino 13 (obrigatório)
  • MOSI Blue para Arduino pino 11 (obrigatório)
  • MISO roxo para Arduino pino 12 (obrigatório)
  • Vcc Vermelho para 5v. Se você não estiver usando as placas de breakout, deve ser 3,3v.
  • GND Brown para Arduino GND

Unidades de luz e pinos Arduino para LEDs:

  • Vermelho para LED vermelho
  • Laranja para o LED amarelo (não tenho LEDs laranja)
  • Verde para o LED verde
  • Preto para GND

Meu único desvio disso foi quando conectei o Arduino de controle aos LEDs RGB. Usei fios brancos e cinzas porque não havia mais fios vermelhos.

Etapa 5: semáforos e testes

Image
Image
Semáforos e testes
Semáforos e testes
Semáforos e testes
Semáforos e testes

Esse é o código concluído e cada controle autônomo também concluído. Agora só preciso dos próprios semáforos.

Como eu disse antes, encontrei um modelo simples no Thingiverse e consegui imprimir oito que não parecia tão ruim.

Eu instalei os LEDS com o resistor de 200 Ohm necessário e um link e fio terra.

Encolher os condutores e colá-los a quente no lugar.

Decidi pintá-los de preto depois que todos os LEDs foram colocados. Má ideia, eu deveria ter feito isso primeiro.

Eu conectei tudo para um teste antes de prosseguir.

Etapa 6: a encruzilhada

A encruzilhada
A encruzilhada
A encruzilhada
A encruzilhada
A encruzilhada
A encruzilhada
A encruzilhada
A encruzilhada

Decidi montá-los todos em uma prancha, então agora eu tinha que criar algum tipo de encruzilhada parecida com uma encruzilhada.

Eu moro no Reino Unido, então dirigimos do lado errado da estrada aqui e, portanto, fiz minha encruzilhada tão amigável no Reino Unido quanto minhas poucas habilidades artísticas permitiram.

Isso era bastante direto, demorado; e tenho certeza de que não há encruzilhada que realmente se pareça com essa, mas a minha não tem buracos.

Eu não queria sacrificar permanentemente meus Arduinos para este projeto, então me comprometi preenchendo cada um com espaçadores de 10 mm e colando os espaçadores à base da placa a quente.

O que eu fiz, entretanto, foi colar a mini placa de ensaio ao lado do Arduino.

Em primeiro lugar, ele segurou o NRF24L01 e a placa de desagregação fora da base da encruzilhada, e, em segundo lugar, raramente uso um Arduino sem uma placa de ensaio de algum tipo, então eles ainda serão úteis assim.

Etapa 7: Tudo pronto

Tudo feito
Tudo feito
Tudo feito
Tudo feito

Todos os arquivos de código foram incluídos.

Não examinei o código aqui, pois este Instructable é longo o suficiente sem ele.

Espero que este tenha sido um Instructable útil, mesmo que apenas mostre como controlar uma série de outras placas Arduino sem fio com o NRF24L01 de preço muito razoável.

Se você tiver alguma dúvida, por favor, não hesite em fazer um comentário e eu farei o meu melhor para ajudar.

Recomendado: