Índice:

Rádio bidirecional NRF24 para telemetria: 9 etapas (com fotos)
Rádio bidirecional NRF24 para telemetria: 9 etapas (com fotos)

Vídeo: Rádio bidirecional NRF24 para telemetria: 9 etapas (com fotos)

Vídeo: Rádio bidirecional NRF24 para telemetria: 9 etapas (com fotos)
Vídeo: nRF24L01 Telemetry with Arduino Data Logger Shield with RTC Time Stamp || Demo 3 of 4 2024, Julho
Anonim
Rádio bidirecional NRF24 para telemetria
Rádio bidirecional NRF24 para telemetria

Olá pessoal, meu nome é Pedro Castelani e trago para vocês meu primeiro instrutível: construir um rádio bidirecional com arduino para, enfim, o que for preciso.

Neste projeto, faremos dois circuitos separados que atuarão como receptor e transmissor. Os componentes mais importantes são duas placas arduino (todas funcionam) e dois módulos transciever nrf24. No meu caso, eu controlo um servo com um potenciômetro do outro arduino e envio as tensões de uma bateria lipo de duas células de volta para o primeiro.

Pretendo usá-lo como um add-one para o meu drone, que não possui telemetria nem controle servo-cardan. Você pode, no entanto, usá-lo para outras coisas, como construir seu próprio quadricóptero, avião, carro rc, etc. A partir do código fornecido, você também pode fazer as modificações que desejar de acordo com suas necessidades. Também tentarei explicar como modificá-lo corretamente (o que me levou algum tempo para aprender sozinho, pois estava acostumado a outro tipo de uso do chip nrf24).

Etapa 1: Materiais

Materiais
Materiais
Materiais
Materiais
Materiais
Materiais

Para iniciar nosso projeto, precisamos conhecer todas as peças necessárias. Abaixo está uma lista dos básicos necessários. Comprei a maioria deles em uma loja de eletrônicos local onde moro, então não poderei recomendar nenhum lugar para comprá-los. Você pode experimentar a Amazon ou qualquer outro lugar. Não estou dizendo que você deve encomendá-los lá, mas é apenas uma sugestão.

  1. Duas placas Arduino (qualquer um deve funcionar. Tenho duas arduino pro mini, que gosto muito porque têm 13 pinos digitais e 8 analógicos, enquanto o Uno só tem 6 analógicos).
  2. Dois módulos Nrf24. Existem alguns com antenas externas que têm maior alcance de transmissão. Escolha o que você mais gosta.
  3. Cabos de jumper Fêmea-Fêmea e Fêmea-Macho.
  4. Placa de prototipagem.
  5. Programador Arduino (para arduino pro mini, se você tiver um com conexão USB, não será necessário).
  6. Arduino IDE (Software). Baixe aqui.
  7. No meu caso, também usei:
  • Servo. Qualquer um que você conseguir. Eu gosto do SG90, um pequeno projetado para o Arduino.
  • Potenciômetro (entre 10k e 20k ohms). Pode ser comprado em uma loja de eletrônicos local ou você pode usar o joystick feito para o Arduino. Existem algumas imagens das que tenho. Eu também ganhei um de um controlador rc drone quebrado, só para dar algumas idéias
  • 4 resistores normais iguais. Usei 10k que comprei na casa do meu avô. Estou usando-os como divisores de voltagem.
  • Perfboard de almofada de cobre pequeno (que eu também ganhei do meu avô) para soldar os resistores juntos.
  • Alfinetes. Usado para conectar os cabos jumper do arduino aos resistores facilmente.
  • Bateria lipo 2s. Eu o uso para alimentar um de meus arduinos. Os resistores são conectados a ele e leem suas tensões. Pretendo que meu arduino seja conectado à bateria 2s do meu drone, já que ele não precisará de uma fonte de alimentação externa e ao mesmo tempo me diga quanta bateria resta.
  • Ferro de soldar e solda. Necessário para soldar os resistores, o perfboard e os pinos juntos.

Etapa 2: Função e código

Função e Código
Função e Código

Uma vez que todos os materiais foram mencionados, vamos começar a falar sobre a função dos módulos.

Como funciona: Vamos chamar um arduino de "A" e o outro de "B". No meu caso, depois de programar ambos, eu os conectei ao chip de rádio correspondente e adicionei o potenciômetro ao arduino A e os resistores e servo ao arduino B. O módulo A envia valores para B e move o servo. B lê as tensões da bateria 2s e as envia de volta para A. Então, todo o círculo começa novamente. Como A recebe valores que não são expressos mecanicamente, ele é conectado ao programador, por meio do qual podemos lê-los com um monitor serial (incluído no IDE do Arduino)

Código: Eu chamo o esboço do arduino A (conectado com o programador e o potenciômetro) TwoWayRadio_1, e o esboço do arduino B TwoWayRadio_2WithServo

TwoWayRadio_1 e TwoWayRadio_2WithServo podem ser encontrados logo abaixo deste parágrafo. Existe uma explicação dentro de cada código apenas para tornar tudo mais fácil de entender.

Etapa 3: Módulos de solda: divisor de tensão e potenciômetro

Módulos de solda: divisor de tensão e potenciômetro
Módulos de solda: divisor de tensão e potenciômetro
Módulos de solda: divisor de tensão e potenciômetro
Módulos de solda: divisor de tensão e potenciômetro
Módulos de solda: divisor de tensão e potenciômetro
Módulos de solda: divisor de tensão e potenciômetro
Módulos de solda: divisor de tensão e potenciômetro
Módulos de solda: divisor de tensão e potenciômetro

Esta etapa é opcional, já que você pode querer usar apenas o joystick do potenciômetro projetado especificamente para o Arduino e usar outro módulo em vez do divisor de tensão. Eu, no entanto, planejei tudo (códigos incluídos) para esses módulos.

Potenciômetro:

Esta parte é praticamente a mais fácil na etapa de soldagem. Você só terá que soldar alguns cabos de ligação ao seu potenciômetro. Se quiser, você pode primeiro soldar o potenciômetro ao perfboard e depois soldar alguns dos pinos. Quando precisar usá-lo, basta conectar os cabos jumper ao arduino e depois aos pinos da perfboard. Quando não estiver em uso, você pode remover os cabos e usá-los para outro projeto. Se, no entanto, você fizer como eu fiz, você pode deixar o potenciômetro soldado diretamente aos cabos

  • Se você estiver fazendo como eu, pegue três cabos jumper fêmea-fêmea, corte uma das pontas e remova o isolamento de lá, deixando um pequeno pedaço de fiação de cobre em cada fio.
  • Aqueça o ferro de solda e solde os jumpers modificados nos pinos dos potenciômetros. Se puder, tente obter cores diferentes para lembrar qual é vcc, gnd e a de "sinal" (a do meio). Conecte esses cabos aos pinos analógicos correspondentes no arduino. Existem algumas imagens no início da etapa sobre como ficou. O potenciômetro não é regular; na verdade, é uma pequena roda com cinco pinos. Levei algum tempo para descobrir qual era qual. Tente facilitar e use um potenciômetro normal conforme mostrado na etapa MATERIAIS.
  • Se você estiver soldando em um perfboard, pegue o potenciômetro e o perfboard e solde-os junto com o seu ferro de solda.
  • Pegue os pinos (três) e coloque-os da maneira mais conveniente. Use solda para fazer uma conexão entre cada pino e os pinos do potenciômetro. Não faça uma conexão entre mais de dois pinos ou não funcionará (atuará como um curto-circuito).
  • Pegue alguns fios de jumper fêmea-fêmea ou fêmea-macho e conecte-os do seu arduino ao seu novo módulo de potenciômetro (lembre-se de qual é qual).

2. Divisor de tensão:

  • Esta parte é um pouco mais complicada. Você precisará obter os quatro resistores, os cinco pinos e o perfboard. Eu projetei o código para ser usado por uma bateria de 2s (duas células), mas você também poderia usá-lo para uma bateria de 1s mudando um pouco o esboço do arduino e o hardware. Incluí fotos de dois divisores de tensão que fiz, um com apenas 2 resistores (para baterias de 1s) e outro com quatro (adivinhou: baterias de 2s).
  • Vamos começar com o 2s. Não tenho imagens do processo de construção desde que comecei a pensar neste instrutível um bom tempo depois de terminar de soldá-lo. Eu incluo imagens do resultado final, então tentarei ser o mais claro possível.
  • Comece obtendo o perfboard e 5 pinos. Solde-os perto do lado e não deixe que se toquem.
  • Solde os resistores como mostrado na última imagem no início da etapa (o pequeno diagrama de circuito). As conexões entre cada resistor e pino são feitas com solda. Tente ocupar o mínimo de espaço possível.
  • Quando terminar, ele deve se parecer com as fotos do divisor de tensão acabado que postei acima.
  • O divisor de tensão 1s é basicamente o mesmo, exceto que você usa apenas três pinos e dois resistores. Incluí imagens de como fica quando acabado. Basta olhar para o diagrama do 2s e imaginá-lo sem o fio de sinal 1, o fio do meio e os resistores r2 e r3 e pronto!
  • Então, se você quiser um divisor de tensão de 1s, pode ser um pouco mais complicado do que apenas usar um de 2s.

Etapa 4: Programando Seu Arduino

Programando Seu Arduino
Programando Seu Arduino
  1. Estamos quase terminando!
  2. Depois de baixar o software Arduino IDE do site vinculado na etapa MATERIAIS, baixe os esboços da etapa FUNÇÃO E CÓDIGO.
  3. Em seguida, abra-os no IDE do Arduino.
  4. Abra "Ferramentas" em qualquer uma das guias e clique em "Quadros". Escolha sua placa na lista. Clique em "Processador" e depois em "Programador", selecionando cada um de acordo com sua placa. Em seguida, volte ao esboço. É bastante conveniente consultar as informações do seu conselho na Internet. Basta procurar o nome e ver as especificações.
  5. Clique em "esboço" (em cima), depois em "incluir biblioteca" e em "gerenciar bibliotecas". Uma pequena janela deve ser aberta no centro da tela. Entre na opção de pesquisa "rf24". Baixe a biblioteca que você deseja. Será necessário fazer o upload do código para a placa arduino.
  6. Só para ter certeza, clique no símbolo "Tick" (acima à esquerda) para verificar se não há erros. Em seguida, faça o upload pressionando a seta apontando para a direita, ao lado do símbolo "Tick".
  7. Se a sua placa for uma Pro Mini, explicarei em breve como conectar tudo. Se não estiver, basta carregá-lo e, ao terminar de programar os dois arduinos, passe para a próxima etapa, após ler o aviso abaixo.
  8. Como você tem duas placas, LEMBRE-SE com qual código cada uma foi programada, para evitar problemas futuros.
  9. Portanto, se você tiver um Pro Mini, precisará de um programador. Existem dois tipos de programadores: os de 5 pinos e os de 6 pinos. Vou me concentrar em 5 pinos, uma vez que são os que eu tenho. As conexões são as seguintes (o primeiro pino é do programador, depois o arduino): Gnd - Gnd; 5v-Vcc (exceto se o seu Pro Mini for 3.3v, neste caso é 3.3v - Vcc); Rxd - Txo; Txd - Rxi. Incluí uma imagem da placa e do programador, caso precise verificar.
  10. Conecte seu arduino ao programador e o programador ao seu computador. Abra o IDE e clique no botão de upload. Se você olhar na parte inferior esquerda da tela, verá uma mensagem que diz "compilando". No momento em que essa mensagem se transformar em "upload", pressione o botão reset no arduino Pro Mini. Depois de um tempo, o esboço terminará e uma mensagem aparecerá dizendo "Upload concluído". Quando isso acontecer, você estará pronto para passar para a próxima etapa.

Etapa 5: conectando tudo

Conectando tudo
Conectando tudo
Conectando tudo
Conectando tudo
Conectando tudo
Conectando tudo
Conectando tudo
Conectando tudo
  1. Depois de programar os dois arduinos, precisamos conectar tudo para que funcione. Aqui vamos precisar de tudo o que foi mencionado antes: os arduinos, módulos nrf24, cabos, servo, programador, divisor de tensão, potenciômetro, etc.
  2. Primeiro vamos conectar o arduino que funciona com o programador. No início da etapa estão as imagens das conexões do nrf24. O pino irq, que dizem ir ao pino 8 no arduino, não está conectado de forma alguma. O resto é como na imagem para os dois arduinos (você pode ler as notas dentro das imagens para mais informações)
  3. O Vcc para o rádio pode ser conectado a 3,3 ou 5v. Às vezes, só funciona com um deles. Tente com 3.3 e, em seguida, 5 se não funcionar. Para 3.3, use o pino 3.3v do programador. Tive que fazer isso, como vocês verão nas imagens do produto acabado.
  4. Conecte o programador ao arduino conforme dito na etapa anterior.
  5. Conecte o cabo de "sinal" do potenciômetro ao pino analógico A0.
  6. Conecte o "Positivo" do potenciômetro ao Vcc (apenas 5v, não 3,3) e "Negativo" ao Gnd.
  7. Passe para o outro arduino.
  8. Conecte o rádio como disse antes, de acordo com as imagens.
  9. Conecte o cabo de sinal do servo (laranja-amarelo-branco. Verifique as especificações do servo) ao pino digital 2, e seu gnd ao Gnd do arduino e seu positivo ao Vcc do arduino.
  10. Conecte o cabo de sinal 1 do divisor de tensão ao pino A0 e o fio de sinal 2 ao pino A1.
  11. Conecte, usando o protoboard, o cabo negativo do divisor de tensão, o gnd do arduino e o gnd da bateria (cabo preto no plugue jst).
  12. Conecte o "cabo do meio" do divisor de tensão ao do meio da bateria, entre os cabos vermelho e preto do plugue jst (cor branca).
  13. Conecte o cabo "positivo" do divisor de tensão ao terminal positivo da bateria e ao Raw do arduino. Não conecte diretamente ao Vcc, pois este pino é específico para 5v. O pino Raw usa qualquer tensão acima de 3,3 ou 5v a 12v e a regula Os pinos Vcc tornam-se então saídas com 5v.

Você está quase pronto! Seus produtos acabados devem ser semelhantes às imagens acima. Verifique novamente todas as conexões para evitar curto-circuitos.

Etapa 6: Energize Seu Projeto

  • Seu arduino com o servo foi alimentado na última etapa quando você conectou a bateria a todo o circuito. Então, você só precisa conectar o outro arduino a uma porta USB e pronto!
  • Mova o potenciômetro e você verá como o servo também se move. No meu caso, o servo é acoplado a um gimbal de câmera de 1 eixo, o que limitava o ângulo, então tive que ajustar os parâmetros. Você encontrará isso no código, de qualquer maneira.
  • Para ver as tensões, depois de conectar o programador ao computador, abra o software arduino e pressione "Ctrl + Shift + m". Uma janela que diz "Monitor serial" será aberta. Na parte inferior desta janela está uma opção que diz "(número) baud". Clique nele e selecione "9600". Feche o monitor e abra-o novamente pressionando as mesmas teclas e você deve começar a ver muitos valores entrando. Você não será capaz de ver quais são esses valores devido à velocidade com que eles estão vindo, mas se você desconectar o programador eles vão parar e você pode lê-los. Estou tentando obter algo para representá-los automaticamente para visualizar as tensões ou representá-los com leds, mas isso ainda está em processo.
  • Mesmo que você não veja os valores claramente, já que eles estão passando muito rápido, saiba que finalmente funciona e que você pode modificá-los para acomodar suas necessidades!

Etapa 7: demonstração

Bem, este é o vídeo em que estou ligando e usando apenas um pouco para mostrar como deveria funcionar.

Etapa 8: Mais idéias sobre como usar este projeto

Mais ideias sobre como usar este projeto
Mais ideias sobre como usar este projeto
Mais ideias sobre como usar este projeto
Mais ideias sobre como usar este projeto
Mais ideias sobre como usar este projeto
Mais ideias sobre como usar este projeto

Aqui estão algumas idéias que você pode construir usando isso como base. Diga-me se você faz um deles ou se você tenta e não consegue, então eu posso ajudar!

  • Em vez de ler tensões, modifique o código para que ele envie de volta a temperatura, pressão, altura, etc. Achei o chip BMP180 bastante útil para isso.
  • Meça distâncias com o módulo HC-SR04 e envie-as de volta para o primeiro arduino. Use o servo para apontar o sensor para onde quiser.
  • Adicione outro canal servo para mover uma câmera para cima e para os lados; por exemplo, em um carro rc.
  • Adicione três outros canais servo (ou mais!) E faça seu próprio transmissor e receptor rc para um quadricóptero, avião, helicóptero, carro rc, etc!
  • Troque o servo por um holofote e adicione-o ao seu drone! Você também será capaz de controlar a intensidade da luz (pode ser necessário alguns transistores e algumas alterações de código)
  • Em vez de ler as tensões em um computador, seja criativo e adicione um módulo LCD, ou você pode fazer uma placa de 6 led (dois verdes, dois amarelos e dois vermelhos) que os desligará um por um conforme a bateria diminui e começará a piscar quando o nível da bateria cair abaixo da tensão escolhida. Fiz este pequeno quadro e postei uma imagem no início da etapa.

Só para deixar tudo claro, se você vai fazer um desses projetos, tenha em mente que terá que modificar os dois códigos e talvez algumas conexões. Por favor, tente se lembrar de não fritar sua prancha fazendo algo estúpido.

Se você tiver mais ideias ou precisar de ajuda para realizar um desses projetos, poste na seção de perguntas!

Etapa 9: Solução de problemas

Solução de problemas
Solução de problemas

Para dizer a verdade, a maioria dos problemas que encontrei até agora estavam relacionados à parte do esboço, que você já resolveu. Vou tentar te contar o máximo de problemas que puder para te ajudar ao máximo.

Primeiro, se você está tentando fazer o upload do esboço e não pode, tente o seguinte:

Certifique-se de baixar as bibliotecas necessárias (e as corretas!).

Certifique-se de ter escolhido a placa, processador e programador corretos.

Certifique-se de que a conexão entre o pc e o programador e o programador e o arduino é boa.

Se você estiver usando um mini pro, tente pressionar o botão reset assim que puder depois que a mensagem "fazendo upload" for exibida.

Todas essas coisas são faladas na etapa PROGRAMANDO SEU ARDUINO.

Em segundo lugar, verifique todas as conexões entre tudo:

Se o seu arduino não ligar, é claramente um problema de tensão. Verifique se os cabos não estão conectados corretamente e se há um curto-circuito.

Se ligar, mas não funcionar, certifique-se de que todas as conexões estão onde deveriam estar, que o arduino programado para ser conectado ao servo e divisor de tensão está realmente conectado a eles (em outras palavras, certifique-se de não misturar para cima), tente pressionar o botão de reinicialização em ambos e ver o que acontece. Em casos extremamente raros, toda a culpa pode ser do módulo NRF24. Encontrei um meu que só funciona em 5 volts e outro que só funciona em 3,3v. Verifique se isso resolve alguma coisa. Também me aconteceu que apenas um arduino funcionava com o rádio 3.3v e o outro só funcionava com o 5v. Surpreendente, não é?

Terceiro, se você pode mover o servo, mas as tensões estão erradas, verifique se as conexões com o divisor de tensão estão como no diagrama da etapa 3 e a conexão com o arduino. Se, por outro lado, você obtém as tensões, mas não consegue mover o servo corretamente, verifique o potenciômetro e suas conexões, a conexão do servo ao pino digital e ao Vcc e Gnd, e se o servo está preso, quebrado ou em um curto-circuito. Tente trocá-lo por outro servo. Certifique-se de que o pino digital seja o mesmo especificado no código

Bem, essas são todas as coisas que podem vir à minha mente sobre os problemas que você pode encontrar. Espero que nunca aconteçam e projetos felizes!

Obrigado por ler meu Instructable! Por favor, compartilhe e vote no Concurso de AUTOR DA FIRST TIME!

Recomendado: