Índice:

Carro robô com Bluetooth, câmera e MIT App Inventor2: 12 etapas (com imagens)
Carro robô com Bluetooth, câmera e MIT App Inventor2: 12 etapas (com imagens)

Vídeo: Carro robô com Bluetooth, câmera e MIT App Inventor2: 12 etapas (com imagens)

Vídeo: Carro robô com Bluetooth, câmera e MIT App Inventor2: 12 etapas (com imagens)
Vídeo: App controle remoto para robô - MIT App Inventor 2 2024, Novembro
Anonim
Image
Image
Peças e Software
Peças e Software

Você sempre quis construir seu próprio carro-robô? Bem, esta é sua chance!!

Neste Instructable, irei ensiná-lo a fazer um Robot Car controlado via Bluetooth e MIT App Inventor2. Esteja ciente de que sou um novato e que este é meu primeiro instutável, portanto, seja gentil em seus comentários.

Existem muitos instructables por aí, mas neste eu tentei combinar muitos recursos como: streaming de câmera, prevenção de obstáculos, sensor de alcance ultrassônico, scanner Larson (com charlieplexing) e monitoramento de bateria para um aplicativo Android !!

Então, vamos começar e conhecer Frankie (ele usa ideias de muitos lugares … portanto, Robo Frankenstein)

Etapa 1: Peças e Software

Peças e Software
Peças e Software
Peças e Software
Peças e Software

Aqui, na minha cidade natal, é difícil conseguir todas as peças, portanto, consegui a maioria em www.aliexpress.com

Eu estimo que o projeto possa ser construído por US $ 25 - 30 sem considerar o celular antigo.

  • Chassi do carro: 3 rodas, 2 motores 6V (US $ 9)
  • Arduino Nano (US $ 2)
  • Bluetooth HC-05 (USD 3 a 4)
  • Motorista L293D para motores de roda motriz (USD 1,50 para um lote de 5 peças)
  • Celular antigo com câmera e Wi-Fi
  • Sensor ultrassônico HC-SR04 para medição de um objeto próximo (US $ 1)
  • 6 LEDs para scanner Larson
  • ATtiny85 para scanner Larson (US $ 1)
  • Breadboard (US $ 1)
  • Fios
  • Resistor de 100K Ohm (4)
  • Resistência de 1K Ohm (2)
  • Resistor de 2K Ohm (1)
  • Resistor de 270 Ohm (3)
  • Campainha

Programas:

  • IDE Arduino
  • Webcam IP (para celular Android antigo)
  • MIT App Inventor2: este aplicativo é ótimo, mas funciona apenas para o sistema operacional Android (sem Iphones … desculpe!)

Etapa 2: Processo de construção

Processo de construção
Processo de construção
Processo de construção
Processo de construção
Processo de construção
Processo de construção
Processo de construção
Processo de construção

O chassi do carro é muito fácil de montar; Possui 2 motores 6V que acionam as rodas traseiras e 4 baterias.

O carro do robô é controlado via Bluetooth e Wi-Fi. O Bluetooth controla as comunicações seriais entre o carro e o MIT App inventor2 e o Wi-Fi é usado para se comunicar com a câmera (celular antigo) instalada na frente do carro.

Para este projeto, usei dois conjuntos de baterias: o arduino é alimentado por uma bateria de 9 V e os motores do carro por 6 V (quatro baterias AA de 1,5 V).

O Arduino Nano é o cérebro desse projeto que controla o carro, buzzer, sensor ultrassônico HC-SR04, Bluetooth HC-05, scanner Larson (ATtiny85) e monitora as baterias. A bateria de 9 V vai para Vin (pino 30) e o pino 27 do Arduino fornece energia regulada de 5 V para a placa de ensaio. Precisa ligar todos os aterramentos de todos os ICs e baterias juntos.

Em anexo, o diagrama de circuito foi feito em Excel (desculpe … da próxima vez, tentarei o Fritzing). Eu conectei tudo usando placa de ensaio e conectores de fio macho a macho, o meu parece um ninho de rato.

Etapa 3: Driver do motor L293D

Driver do motor L293D
Driver do motor L293D
Driver do motor L293D
Driver do motor L293D

O L293D é um driver de meia H de alta corrente quádruplo projetado para fornecer correntes de drive bidirecionais de até 600 mA em tensões de 4,5 V a 36 V. É usado para movimentar as rodas do carro.

Ele é alimentado por uma bateria de 6 V (quatro 1,5 V AA) para os motores e usa 5 V para a lógica que vem regulada de 5 V (pino 27) no Arduino Nano. As conexões são mostradas no esquema anexo.

Não houve necessidade de instalá-lo em um dissipador de calor.

Etapa 4: HC-05 Bluetooth

HC-05 Bluetooth
HC-05 Bluetooth

O HC-05 Bluetooth é alimentado por 5V (arduino pino 27), mas é importante entender que o nível lógico é 3,3V, ou seja, comunicações (Tx e Rx) com 3,3V. É por isso que Rx deve ser configurado com no máximo 3,3 V, o que pode ser obtido com um conversor de deslocamento de nível ou, como neste caso, com um divisor de tensão usando resistores de 1K e 2K como vistos no circuito.

Etapa 5: Monitor de bateria

Para monitorar os níveis da bateria, configurei divisores de tensão para trazer os níveis de tensão abaixo de 5 V (faixa máxima do Arduino). O divisor de tensão diminui a tensão que está sendo medida dentro da faixa das entradas analógicas do Arduino.

São utilizadas as entradas analógicas A4 e A6 e resistências altas (100K ohms) para não esgotar muito as baterias no processo de medição. Precisamos chegar a um acordo, se os resistores estão muito baixos (10K ohms), menos efeito de carregamento, a leitura da tensão é mais precisa, mas mais consumo de corrente; se eles estiverem muito altos (1M ohms), mais efeito de carregamento, a leitura da tensão é menos precisa, mas menos consumo de corrente.

O monitoramento da bateria é feito a cada 10 segundos e exibido diretamente no seu celular controlador.

Tenho certeza de que há muito espaço para melhorias nesta parte, já que estou lendo dois pinos analógicos e o MUX interno está trocando entre eles. Não estou calculando a média de várias medições e talvez seja isso que eu deveria estar fazendo.

Deixe-me explicar a seguinte fórmula:

// Lê a tensão do pino analógico A4 e faz a calibração do Arduino:

voltagem1 = (analogRead (A4) * 5,0 / 1024,0) * 2,0; //8,0V

A placa Arduino nano contém um conversor analógico para digital de 8 canais e 10 bits. A função analogRead () retorna um número entre 0 e 1023 que é proporcional à quantidade de tensão aplicada ao pino. Isso produz uma resolução entre as leituras de: 5 volts / 1024 unidades ou 0,0049 volts (4,9 mV) por unidade.

O divisor de tensão divide a tensão pela metade e, para obter a tensão verdadeira, precisa multiplicar por 2 !!

IMPORTANTE: Tenho certeza de que existe uma maneira mais eficiente de alimentar um arduino do que a que estou fazendo !! Como um novato, aprendi da maneira mais difícil. O pino Arduino Vin usa um regulador de tensão linear, o que significa que, com uma bateria de 9 V, você queima uma grande parte da energia do próprio regulador linear! Não é bom. Fiz assim porque era rápido e só porque não conhecia bem … mas tenha certeza que no Robo Frankie versão 2.0 com certeza farei diferente.

Estou pensando (em voz alta) que uma fonte de alimentação chaveada DC DC e uma bateria recarregável de íon de lítio podem ser a melhor maneira. Sua gentil sugestão será mais do que bem-vinda …

Etapa 6: Sensor Ultrasonic Range HC-SR04

Sensor de alcance ultrassônico HC-SR04
Sensor de alcance ultrassônico HC-SR04

HC-SR04 é um sensor ultrassônico. Este sensor fornece medições de 2 cm a 400 cm com uma precisão de até 3 mm. Neste projeto, ele é utilizado para evitar obstáculo quando atingir 20cm ou menos e também para medir a distância a qualquer objeto, que é enviado de volta para o seu celular.

Existe um botão na tela do seu celular que precisa ser clicado para solicitar a distância de um objeto próximo.

Etapa 7: Scanner Larson

Larson Scanner
Larson Scanner
Larson Scanner
Larson Scanner
Larson Scanner
Larson Scanner

Eu queria incluir algo divertido, então incluí o scanner Larson que se parece com K. I. T. T. de Knight Rider.

Para o scanner Larson, usei ATtiny85 com charlieplexing. Charlieplexing é uma técnica para acionar uma tela multiplexada na qual relativamente poucos pinos de I / O em um microcontrolador são usados para acionar uma série de LEDs. O método usa os recursos lógicos de três estados de microcontroladores para ganhar eficiência em relação à multiplexação tradicional.

Neste caso, estou usando 3 pinos de ATtiny85 para acender 6 LEDs !!

Você poderia acender LEDs "X" com N pinos. Use a seguinte fórmula para derivar quantos LEDs você pode acionar:

X = N (N-1) LEDs com N pinos:

3 pinos: 6 LEDs;

4 pinos: 12 LEDs;

5 pinos: 20 LEDs … você entendeu;-)

A corrente flui de positivo (ânodo) para negativo (cátodo). A ponta da seta é cátodo.

É importante observar que o pino 1 (no código IDE do Arduino) se refere ao pino físico 6 no ATtiny85 (consulte a pinagem anexada).

Em anexo, encontre o código que precisa ser carregado no ATtiny85 que controla o scanner Larson. Não estou descrevendo como fazer upload de um código no ATtiny85, pois há muitos instructables que fazem isso como este.

Etapa 8: Código

Código
Código

Estou anexando o código que precisa ser carregado no ATtiny85 que controla o scanner Larson e o código do Arduino nano.

Quanto ao Arduino nano, usei parte dos códigos de outros instructables (aqui) e fiz alterações para atender às minhas necessidades. Eu incluí um fluxograma (também no word para uma imagem mais clara) do código para entender melhor como o Switch - Case funciona.

Importante: Para fazer upload do código CarBluetooth no Arduino nano, você precisa desconectar Rx e Tx do módulo Bluetooth HC-05!

Etapa 9: Câmera

Câmera
Câmera
Câmera
Câmera

O aplicativo IP Webcam precisa ser baixado da Play Store e instalado no seu celular antigo. Verifique as preferências de vídeo, ajuste a resolução de acordo e, finalmente, vá até o último comando “Iniciar servidor” para iniciar a transmissão. Não esqueça de ligar o wi-fi no celular !!

Etapa 10: MIT App Inventor2

MIT App Inventor2
MIT App Inventor2

MIT App inventor2 é uma ferramenta baseada em nuvem que ajuda a construir aplicativos em seu navegador da web. Este aplicativo (apenas para celular baseado em Android) pode então ser carregado em sua célula e controlar seu carro robô.

Estou anexando o código.apk e.aia para que você possa ver o que fiz e modificá-lo como desejar. Usei um código da internet (MIT App) e fiz minhas próprias modificações. Este código controla o movimento do carro robô, recebe o sinal do sensor ultrassônico, acende as luzes e emite um bipe. Ele também recebe sinal das baterias nos informando o nível de tensão.

Com este código poderemos receber dois sinais diferentes do carro: 1) distância a um objeto próximo e 2) voltagem do motor e baterias do Arduino.

Para identificar a string serial recebida, incluí um sinalizador no código do Arduino que especifica o tipo de string enviada. Se o Arduino enviar a distância medida do sensor ultrassônico, ele enviará um caractere “A” na frente da string. Sempre que o Arduino envia níveis de bateria, ele envia um sinalizador com um caractere “B”. No código do MIT App inventors2, analisei a string serial proveniente do Arduino e verifiquei esses sinalizadores. Como eu disse, sou um novato e tenho certeza de que existem maneiras mais eficientes de fazer isso e espero que alguém possa me esclarecer de uma maneira melhor.

Envie Arduino_Bluetooth_Car.apk para o seu celular (por e-mail ou Google Drive) e instale-o.

Etapa 11: conecte o celular ao carro RC

Conecte seu celular ao seu carro RC
Conecte seu celular ao seu carro RC
Conecte seu celular ao seu carro RC
Conecte seu celular ao seu carro RC

Em primeiro lugar, ligue o wi-fi no celular antigo (o do robô RC).

No seu celular controlador, ligue o wi-fi, Bluetooth e abra o Arduino_Bluetooth_Car.apk que acabou de instalar. No final da tela (role para baixo se não conseguir vê-lo), você verá dois botões: Dispositivos e CONNECT. Clique em Dispositivos e selecione o Bluetooth do seu carro RC (deve ser algo HC 05), clique em CONECTAR e você deverá ver a mensagem CONECTADO na parte inferior esquerda da tela. Na primeira vez, será solicitada uma senha (digite 0000 ou 1234).

Existe uma caixa onde você precisa digitar o endereço IP do seu celular antigo (celular que está no seu carro RC), no meu caso é

Este número de IP pode ser detectado em seu roteador Wi-fi. Você precisa entrar na configuração do seu roteador, selecionar Lista de dispositivos (ou algo parecido, dependendo da marca do seu roteador) e você deve ser capaz de ver o seu dispositivo de celular antigo, clique nele e insira este número de IP nesta caixa.

Em seguida, selecione CAMERA e você deve começar a ver o streaming da câmera do seu carro RC.

Etapa 12: Pronto

Você terminou!
Você terminou!

Você terminou! Comece a brincar com isso

Mudanças futuras: Vou trocar a bateria de 9V por baterias de íon-lítio para recarregá-las e usar um regulador de tensão DC-DC, também quero melhorar o monitor da bateria incluindo suavização (média) das leituras analógicas. Não planejando incluir I. A. ainda …;-)

Entrei no meu primeiro concurso instrutível … então, vote;-)

Recomendado: