Índice:

Controle seu avião RC com o acclerômetro do seu telefone: 15 etapas (com imagens)
Controle seu avião RC com o acclerômetro do seu telefone: 15 etapas (com imagens)

Vídeo: Controle seu avião RC com o acclerômetro do seu telefone: 15 etapas (com imagens)

Vídeo: Controle seu avião RC com o acclerômetro do seu telefone: 15 etapas (com imagens)
Vídeo: Qual o MELHOR SIMULADOR GRATÍS de AEROMODELO para CELULAR? - CTQV 2024, Julho
Anonim
Image
Image
Controle o seu avião RC com o acclerômetro do seu telefone
Controle o seu avião RC com o acclerômetro do seu telefone

Você já quis controlar seu avião RC por meio da inclinação de um objeto? Sempre tive essa ideia na cabeça, mas nunca a persegui até a semana passada. Minha ideia inicial era usar um acelerômetro de eixo triplo, mas então tive uma ideia…

A maioria de vocês tem telefones inteligentes, certo? E outra grande maioria de vocês, caras eletrônicos, usam Androids por causa de sua flexibilidade. Quer dizer, eu amo o iPhone, mas não é tão versátil no que diz respeito a conectá-lo via Bluetooth ou hardwire a um Arduino ou outro microcontrolador. Então, por que não apenas o acelerômetro do telefone? Então peguei a ideia e corri com ela. Duas semanas depois apresento a vocês este projeto!

Desculpe, usuários do IOS, este projeto pertence apenas a usuários do Android.

Agora, este projeto não tem controle sobre o leme ou o acelerador. Se você notar que eu adicionei um código para você usar um potenciômetro no pino A1 para controlar o acelerador, embora eu mesmo não o use. Vou apenas usar o acelerador do meu transmissor.

Se você gostaria de concluir este projeto, sugiro que você assista ao vídeo inteiro antes de começar a trabalhar. As habilidades eletrônicas necessárias para este projeto são mínimas, mas a parte difícil é trabalhar com o código. Então, pegue seu ferro de solda e o Arduino e vamos começar.

Custo do projeto: (gratuito, baixo, médio, lá em cima, sério?)

Dificuldade do projeto: (Breezy, Easy, Medium, Hard, Expert, Master)

Tempo do projeto: (durante uma xícara de café, médio, durante uma cafeteira, vários dias)

Abaixo está um vôo rápido que eu fiz antes, quando estava meio ventoso!

Etapa 1: assista ao vídeo completo

Image
Image

O vídeo e o texto abordam praticamente as mesmas coisas, exceto que o texto não inclui o processo passo a passo para construir o caso do projeto e conectar tudo. O texto torna um pouco mais analfabeto em parte da codificação envolvida.

Etapa 2: ATUALIZAÇÃO IMPORTANTE [16/07/18]

Na verdade, comecei a fazer este projeto alguns anos depois e tive que voltar a esta página para obter algumas informações: D

De qualquer forma, descobri que há um pequeno erro com o código, e vou mostrar para vocês consertar isso em alguns segundos. Se você baixar o código, ele não será compilado. Você deve entrar e mudar uma pequena linha.

Quando você compila, a linha 20 apresenta um erro.

int ppm [chanAmount];

Basta alterá-lo para:

int ppm [2];

E pronto! Aproveite o resto do tutorial, e se por acaso você fez este projeto, role para baixo até a parte inferior da página e clique no botão "Eu fiz" e carregue uma imagem!

Etapa 3: Ingredientes:

Transferências
Transferências

O que toda boa receita precisa? Ingredientes. Infelizmente, você pode precisar ir a outro lugar que não seja a mercearia da esquina para comprar isso.

Ingredientes:

  • Telefone Android
  • Arduino (Uno, Nano, Micro, realmente não importa)
  • Fonte de alimentação para o Arduino. Vou usar um pequeno LiPo de 500mAh de 2 células.
  • Módulo Bluetooth HC - 05 ou HC-06
  • FTDI Breakout Board (pode ser feito com o Arduino, mas não mostrarei como)
  • Plugue de áudio mono macho de 3,5 mm. Uma tomada estéreo NÃO FUNCIONARÁ! Eu tentei!
  • 2x LEDs e resistores correspondentes
  • Gabinete do Projeto
  • Fio de 2 núcleos (o fio do alto-falante funciona bem ou um cabo USB longo)
  • Termoencolhível ou fita isolante
  • Cabeçalhos de pinos femininos (para o escudo Arduino, se você escolher fazer um)
  • Placa de desempenho (para Arduino Shield, caso você escolha fazer uma.

Ferramentas:

  • Ferro de solda
  • Decapantes de fio
  • Tesoura
  • Perfure com várias brocas
  • Pistola de cola quente

Etapa 4: Downloads

Se quiser baixar um arquivo.zip com tudo o que você precisa para esta pasta, você pode encontrá-lo aqui. Caso contrário, leia abaixo.

Primeiro você precisa baixar o aplicativo Amarino e o Amarino Toolkit e obtê-los em seu telefone. Você pode fazer isso com um micro SD ou apenas usar seu site de hospedagem de arquivos favorito, como o Google Drive.

Em segundo lugar, você precisa baixar a biblioteca MeetAndroid para o IDE do Arduino. Para instalar a biblioteca, siga as etapas cuidadosamente.

PARA PC:

  1. Feche o IDE do Arduino.
  2. Descompacte a pasta MeetAndroid. Agora você deve ter uma pasta MeetAndroid_4 descompactada. Abra esta pasta e corte a pasta chamada MeetAndroid.
  3. Navegue até C: / Arquivos de programas (x86) Arduino / libraries e cole no MeetAndroid. Se você fez tudo corretamente, ela deve se parecer com a primeira foto.
  4. Abra novamente o IDE do Arduino e você verá nas bibliotecas em 'Contribuído' a biblioteca MeetAndroid.

PARA MAC

  1. Feche o IDE do Arduino.
  2. Descompacte a pasta MeetAndroid. Você deve agora e descompactar a pasta MeetAndroid_4. Abra esta pasta e copie a pasta chamada MeetAndroid.
  3. Navegue até o aplicativo Arduino, clique com o botão direito do mouse para mostrar o conteúdo do pacote e, em seguida, Conteúdo / Java / bibliotecas e cole na pasta MeetAndroid.
  4. Abra novamente o IDE do Arduino e você verá nas bibliotecas em 'Contribuído' a biblioteca MeetAndroid.

Por fim, baixe meus dois esboços do Arduino que estão anexados na parte inferior desta etapa (incluídos no.zip).

Etapa 5: Configurando o HC-06

Configurando o HC-06
Configurando o HC-06
Configurando o HC-06
Configurando o HC-06
Configurando o HC-06
Configurando o HC-06

Seu módulo Bluetooth HC-06 não sai da caixa pronto para ser usado neste projeto. Precisamos alterar apenas uma coisa simples: a taxa de transmissão. Dependendo de quem você compra, o seu pode ser definido em diferentes taxas de transmissão. Comprei dois HC-06s de dois vendedores diferentes e cada um estava funcionando a uma taxa de transmissão diferente. Precisamos alterá-lo para 115200 bits por segundo. Faça as seguintes conexões:

HC-06 ------- FTDI Breakout Board

| -------------- |

GND ----- GND

VCC ------ 3.3v

TX -------- RX (ou DRX)

RX -------- TX (ou DTX)

  1. Conecte a placa de breakout FTDI em seu computador.
  2. Abra o IDE do Arduino. Selecione qualquer porta de comunicação disponível. (certifique-se de que não haja nenhum Arduino ou qualquer outra coisa conectada ao computador).
  3. Abra o Monitor Serial (sem necessidade de código!)
  4. Selecione 9600 para a taxa de transmissão na parte inferior direita da janela de comunicação. Digite "AT" (TEM que ser maiúsculas) e clique em enviar. Se você não receber nada de volta, tudo bem. Isso significa que seu dispositivo está configurado com uma taxa de transmissão diferente. Tente uma taxa de transmissão de 115200 e digite "AT". Se você ainda não obtiver nada, tente cada taxa de transmissão e digite "AT" em todas elas até obter uma resposta. Se você não obtiver uma resposta, provavelmente não conectou o HC-06 corretamente. Verifique as conexões.
  5. Se você receber a resposta "OK", ótimo! Se você obtiver essa resposta em qualquer outra taxa de transmissão que não seja 115200, será necessário alterá-la para 115200. Para fazer isso, digite "AT + BUAD8". Você obterá a resposta "OK115200". Você terá que alterar a taxa de transmissão para 115200 para continuar a falar com o Bluetooth. Então você pode fazer coisas como mudar o nome digitando "AT + NAMERANDOM" aleatoriamente sendo o nome que você deseja. Agora você pode fechar o monitor serial.

Etapa 6: O circuito incompleto para teste

Este circuito é bastante simples. Você precisa ligar o Arduino (via USB, pois vamos precisar fazer o upload de algumas coisas nele) e, em seguida, conectar o HC-06. Basta conectar seguindo as conexões abaixo.

HC-05/6 --------- Arduino

|=============|

GND ------------ GND

VCC ------------- 5v

TX -------------- RX

RX -------------- TX

Etapa 7: Instalando o Amarino e o Amarino Toolkit

Instalando o Amarino e o Amarino Toolkit
Instalando o Amarino e o Amarino Toolkit
Instalando o Amarino e o Amarino Toolkit
Instalando o Amarino e o Amarino Toolkit
Instalando o Amarino e o Amarino Toolkit
Instalando o Amarino e o Amarino Toolkit

Você já deve ter baixado e transferido o aplicativo Amarino e o kit de ferramentas para o telefone. Mas antes de instalá-lo, você precisa alterar uma configuração em seu telefone. Seu telefone não permitirá que você instale o aplicativo primeiro porque não é um aplicativo certificado da Playstore Android. Portanto, precisamos permitir que o telefone instale aplicativos não certificados. Isso é muito simples.

  1. Navegue até Configurações / Segurança e role para baixo. Você deverá ver uma caixa que diz Fontes desconhecidas e uma pequena caixa ao lado dela. Toque na caixa e ative. Isso abrirá uma caixa de diálogo informando o quão arriscado isso é; soa bem, certo? Então, toque no botão OK. Veja as fotos 1, 2 e 3.
  2. Agora você pode abrir seu aplicativo Amarino e seguir as instruções na tela. Não é muito difícil, basta clicar em sim.
  3. Instale o Amarino Toolkit. Também não é muito difícil.

Etapa 8: Configurando o Bluetooth

Configurando Bluetooth
Configurando Bluetooth
Configurando Bluetooth
Configurando Bluetooth
Configurando Bluetooth
Configurando Bluetooth

Com seu projeto ligado (o chip Bluetooth está ligado) encontre as configurações de Bluetooth do seu telefone. Você precisa emparelhar seu telefone com o chip Bluetooth. Toque em procurar dispositivos e seu dispositivo deve aparecer como HC-05 ou HC-06, a menos que você tenha nomeado antes. Ele pedirá um número PIN, e será 1234. (Eu sei que sou um gênio para hackear o dispositivo e encontrar a senha ultrassecreta). Veja as imagens 1, 2 e 3. Certifique-se de que está emparelhado com o dispositivo e de que está pronto para a próxima etapa. NOTA: a luz no dispositivo Bluetooth não fica acesa quando você emparelha com o telefone! Descobri que no meu telefone tinha que reiniciá-lo após esse processo para que aparecesse no aplicativo Amarino, então vá em frente e reinicie o seu telefone.

Etapa 9: Amarino

Amarino
Amarino
Amarino
Amarino
Amarino
Amarino

É hora de abrir o Amarino. As notas de lançamento serão apresentadas a você e toque em OK. Obrigado Bonifaz Kaufman por criar este aplicativo maravilhoso. Os números abaixo correspondem ao número da imagem, por exemplo passo 1 = imagem 1.

  1. Tela de boas vindas. Toque em "Adicionar dispositivo".
  2. Seu dispositivo agora deve estar na lista; toque nele. Se não aparecer, tente reiniciar o telefone e certifique-se de que o dispositivo Bluetooth está conectado ao telefone.
  3. Agora você deve chegar a esta tela. Toque em "Conectar". Isso pode demorar alguns segundos.
  4. Se ele se conectar, a luz do dispositivo Bluetooth ficará sólida e você verá na parte superior "Conexões ativas: 1. Agora toque no nome do dispositivo e NÃO desconecte.
  5. Toque em "Mostrar eventos".
  6. Não deve haver eventos. Toque em "Adicionar evento".
  7. Uma lista aparecerá e você vai querer selecionar o acelerômetro. Lembre-se desses outros sensores integrados ao telefone. Eles podem ser úteis um dia para um projeto posterior!
  8. Aqui estão apenas algumas configurações para o acelerômetro. Certifique-se de que o controle deslizante esteja em "muito rápido" e que o visualizador de dados esteja em "Texto". Em seguida, toque em salvar.
  9. Se você vir números à direita do "Sensor do acelerômetro", você está bem. Você pode deixar seu telefone sozinho agora. Se você não vir os números, pressione e segure a área cinza para abrir um menu.
  10. Selecione "Forçar Ativação".
  11. Bingo! Números! Incline o telefone e sinta como os números correspondem ao acelerômetro.
  12. Agora você pode colocar seu telefone em uma superfície plana e se preparar para começar a programar!

Etapa 10: Ignorando o código

Ignorando o Código
Ignorando o Código

Portanto, se você não quer sujar as mãos com o código e deseja apenas fazer o upload e ir embora, você pode ter alguns problemas. Só usei meu telefone até agora, então não sei se os telefones de outras pessoas são iguais. Se você baixar o aplicativo SensoDuino e clicar na aba "Sensores Integrados", deverá encontrar o seu acelerômetro. Se seu acelerômetro é um MPU6050, então esse é o mesmo sensor que eu tenho, e você provavelmente não precisa fazer nenhuma edição de código. Se você tiver o mesmo sensor, tente o código carregado nesta etapa.

Caso contrário, provavelmente você terá que seguir as próximas etapas.

Etapa 11: Atribuição de dados do acelerômetro

Atribuição de dados de acelerômetro
Atribuição de dados de acelerômetro
Atribuição de dados de acelerômetro
Atribuição de dados de acelerômetro
Atribuição de dados de acelerômetro
Atribuição de dados de acelerômetro
Atribuição de dados de acelerômetro
Atribuição de dados de acelerômetro

Agora chegamos à parte divertida, mexer no esboço do Arduino! Se o seu esboço não compilar, consulte a última etapa deste instrutível.

Neste ponto, você deve ter seu Arduino conectado corretamente ao HC-06 e deve ter o Amarino enviando números para seu Arduino via Bluetooth. Verifique novamente para ter certeza de que o HC-06 ainda está ligado e carregue o seguinte esboço para o Arduino. (Anexado a esta etapa).

NOTA: Ao fazer o upload de esboços para o Arduino, você precisará desconectar o TX e o RX do HC-06 do Arduino. O Arduino não pode ser carregado enquanto o RX e o TX estão conectados a algo.

Após fazer o upload deste esboço para o Arduino, abra o monitor Serial. Você deverá ver três números misturados, separados por uma caixa (□). Exemplo: [0,01 □ 0,02 □□ 9,21] Os primeiros dois números são roll e pitch. Eu nem tentei descobrir o que era o terceiro: D. Seu telefone pode ou não ser semelhante a este. Para descobrir quais números são válidos e quais são válidos para o seu telefone, siga estas etapas.

  1. Coloque seu telefone em uma superfície plana. Oriente seu telefone de forma que a câmera / alto-falante esteja apontando para a esquerda e o microfone apontando para a direita. (foto 2).
  2. Incline o lado esquerdo do telefone para cima (imagem 3) (ao longo do eixo Z, consulte a imagem 1 para o eixo) em 45 graus. Observe qual número muda drasticamente no monitor serial. Este número será o seu rolo.
  3. Incline o telefone em sua direção (figura 4) (ao longo do eixo X, consulte a figura 1 para o eixo) a 45 graus.. Qualquer número que mude drasticamente é o tom. Grave isso.

Agora que sabemos quais são os dois conjuntos de números roll e pitch, podemos ir e alterar o código. Estaremos dando uma olhada na seção 2.

pitch = dados [0];

rolo = dados [1];

Se você olhou anteriormente no código, notará que os dados do acelerômetro são colocados em uma matriz. O array "dados" tem três 'pontos' chamados 'índices' para números, índice 0, índice 1 e índice 2. Agora que você sabe quais números representam pitch e roll, você pode atribuir o inteiro "pitch" e "roll" a os números corretos na matriz. Exemplo: se o terceiro conjunto de números mudou quando você inclinou seu telefone para a esquerda / direita, que é rolar, então mudaríamos o código para este:

rolo = dados [2];

E é tão simples quanto isso. Se o seu telefone for semelhante ao meu, o primeiro número será o pitch, o segundo número será o roll e o terceiro número será algum outro aspecto das três dimensões.

Etapa 12: Mapeando os Dados do Acelerômetro

Mapeando os Dados do Acelerômetro
Mapeando os Dados do Acelerômetro

Depois de atribuir "roll e" pitch "aos números corretos nos dados do array, podemos seguir em frente. Veja a figura 1 à esquerda. Estes são os dados brutos do seu acelerômetro. Mas não podemos usar esses números diretamente, precisamos remapea-los para um valor entre 1000 e 2000 com um ponto médio de 1500. Para aumentar os números, multiplicaremos "roll" e "pitch" por 1000. Isso eliminará todos os decimais e dê-nos uma resolução decente. Agora, se você olhar para os números na segunda coluna, poderá ver os 'novos' números. Vamos definir alguns pontos de entrada e saída!

  1. Incline o telefone para a esquerda 45 graus (role) e registre este número.
  2. Incline o telefone 45 graus para a direita (gire) e registre esse número.
  3. Incline o telefone 45 graus para a frente (inclinação) e registre esse número.
  4. Incline o telefone para trás 45 graus (inclinação) e registre esse número.

Se os dois números forem iguais para quando você inclinou o telefone 45 graus em ambas as direções, você pode descartar o segundo número e usar apenas o primeiro. Crie um segundo número tirando o negativo do primeiro número.

Exemplo: incline o telefone 45 graus para a direita. O número mostrado para o rolo é 5500. Para o segundo número, use -5500. Estes serão os nossos pontos de entrada e saída. Não queremos que nosso TX registre nada mais do que esses pontos. Em seguida, precisamos remapear esses valores para 1000-2000. No meu caso, -5500 a 5500 foram os números que obtive ao inclinar meu telefone em 45 graus e ao rolar meu telefone em 45 graus. Portanto, usei o seguinte código: NOTA: Agora é hora de excluir o / * e * / na seção 4 para habilitar este código. Exclua também toda a seção 3.

pitchval = map (pitch, -5500, 5500, 1000, 2000) -12;

rollval = map (roll, -5500, 5500, 1000, 2000) + 7;

Agora, o -12 e o +7 são ajustes para trazer "pitchval" e "rollval" para um centro de 1500. Certifique-se de que o telefone esteja em uma superfície plana ao fazer esses ajustes. Se o seu centro não estiver em 1500, seu avião pode desviar em uma direção, mesmo que você esteja no nível do seu telefone.

Precisamos restringir rollval e pitchval. Não queremos que eles durem mais do que 2.000 ou menos que 1.000 ou então as coisas começam a bagunçar! Então, nós digitamos isso…

pitchval = constrain (pitchval, 1000, 2000);

rollval = constrain (rollval, 1000, 2000);

A última coisa que precisamos fazer com esses números é garantir que eles correspondam corretamente à maneira como inclinamos nosso telefone. Verifique se o telefone está voltado para cima com a câmera à esquerda e o microfone à direita.

  • Quando você vira o telefone para a esquerda, rollval deve diminuir para 1000.
  • Quando você rola para a direita, deve aumentar para 2.000.
  • Quando você lança seu telefone para trás, o pitchval deve diminuir para 1000.
  • Quando você lança seu telefone para a frente, ele deve aumentar para 2.000.
  • Ambos os centros devem estar em 1500 quando você coloca o telefone em uma superfície plana.

Se ao rolar o telefone para a esquerda e rollval aumentar em vez de diminuir, mude o 1000 que você multiplicou "roll" por -1000 (na seção 2). O mesmo vale para o "pitch" se os números forem invertidos.

Código de exemplo para fixação do rolo no exemplo acima.

pitch = (pitch * -1000); // multiplique por 1000 para se livrar dos decimais

roll = (roll * -1000);

Portanto, se tudo estiver funcionando bem, podemos adicionar isso ao código final!

  1. Abra o esboço ReadRawAccel. Copie tudo sob o criador da página1.
  2. Abra o esboço TiltTX_Final. Role até a parte inferior, onde diz "cole a página 1 aqui" e substitua todo o código abaixo dela.
  3. Faça upload do esboço TiltTX_Final para o seu arduino.

Etapa 13: Tempo do circuito

Hora do circuito!
Hora do circuito!
Hora do circuito!
Hora do circuito!
Hora do circuito!
Hora do circuito!
Hora do circuito!
Hora do circuito!

Agora que acabamos com a parte difícil, é hora de fazer o circuito. Você pode optar por não fazer um escudo para economizar tempo e peças, mas sempre gosto de fazer meus projetos com escudos caso precise usar aquele Arduino com outro projeto. Para este projeto, usarei meu Arduino Nano porque quero que tudo caiba em uma pequena caixa. Mas você pode usar qualquer outro Arduino, de um Mega a um LilyPad. Portanto, estude o esquema, assista ao vídeo e comece a soldar! Não vou postar toda a foto aqui porque vou mostrar passo a passo como fazer no vídeo.

Etapa 14: Configurando o Trainer

Agora que você concluiu o circuito, ligue-o, conecte-o ao telefone e conecte o conector mono na porta de treinamento na parte traseira do rádio. Defina o multiplicador para 1,3 e coloque o telefone em uma superfície plana. Em seguida, calibre.

Observe, o canal 0 é acelerador, o canal 1 é roll e o canal 2 é pitch.

Se você quiser alterá-los, vá para o código aqui:

ppm [0] = acelerador;

ppm [1] = rollval; ppm [2] = pitchval;

Etapa 15: Conclusão

Algumas pessoas tiveram o problema do código não compilar. Por que eu não sei porque funciona bem para mim em ambas as plataformas, mas se você receber a mensagem de erro (erro não definido neste escopo), então você precisa colocar a linha 1 após o loop de erro void.

1. MeetAndroid meetAndroid (erro); // As coisas do bluetooth do Android. Não toque no erro this.void (sinalizador uint8_t, valores uint8_t) // mais coisas do bluetooth. {Serial.print ("Erro:"); Serial.println (sinalizador); }

Quando terminar, deve ficar assim:

void error (uint8_t flag, uint8_t values) // mais coisas bluetooth.

{Serial.print ("Erro:"); Serial.println (sinalizador); } MeetAndroid meetAndroid (erro); // As coisas do bluetooth do Android. Não toque nisso.

Eu realmente espero que você tenha achado este instrutível interessante e novo. Tentei me certificar de que fosse fácil de seguir. Se você for confundido com qualquer coisa, o vídeo apresenta um pouco mais de detalhes do que o instrutível. Se tiver algum problema, por favor contacte-me e terei todo o gosto em ajudar, contanto que a sua questão seja relevante. Por favor, dê um voto instrutível e poste uma imagem abaixo para sua replicação, e se você fez um vídeo, poste um link! Certifique-se de deixar um feedback abaixo!

HavocRC, ~ AJ

Recomendado: