Índice:

NearBot versátil: 11 etapas (com imagens)
NearBot versátil: 11 etapas (com imagens)

Vídeo: NearBot versátil: 11 etapas (com imagens)

Vídeo: NearBot versátil: 11 etapas (com imagens)
Vídeo: Best Robot Vacuum 2020 #TechTitans #DEEBOTGotThis #RobotVacuum #BestRobotVacuum 2024, Novembro
Anonim
Image
Image

Este instrutível mostrará como construir um gatilho de robô versátil que pode mover algo como um botão, interruptor ou discar em vários dispositivos quando você (com seu telefone ou um farol no bolso) está por perto. Isso significa que ele pode destravar e travar automaticamente a trava da porta quando * apenas você * passar, desligar uma válvula de sprinkler para que você possa passar pela água ileso como uma espécie de Moisés suburbano, diminuir o volume do alto-falante enquanto estiver na garagem sala de banda, acione um iPod tocando uma melodia dramática de entrada ou conte uma piada (tweet de Jaden Smith?) enquanto estiver na sala, ou pause um filme ao se levantar para usar o banheiro.

Este projeto não requer solda ou ferramentas especiais

Se você gosta deste instrutível o suficiente, considere votar nele no concurso de Robótica 2017!

Etapa 1: Adquira as peças de hardware

Você vai precisar de:

  • NodeMCU v2 ou V3
  • Micro 9G Servo Motor cerca de $ 1,40 USD frete grátis no eBay ou Aliexpress
  • Arduino Jumper Wires Feminino para Masculino.
  • Uma caixa para o NearBot - usei uma caixa de plástico que encontrei.
  • Cabo de dados micro USB (peças do telefone de sucata)
  • Fonte de alimentação USB (carregador de telefone de sucata)

Se você não tiver um smartphone com um recurso de ponto de acesso móvel, também precisará:

  • Módulo ESP-01 sobre $ 2,50 USD frete grátis no DealExtreme, GearBest, Ebay ou Aliexpress.
  • 1 par de pilhas AAA
  • suporte de bateria AAA duplo com interruptor

Etapa 2: Início Rápido

Esta etapa contém um guia de início rápido, caso você goste desse tipo de coisa. O restante deste instrutível vai passo a passo e adiciona informações mais detalhadas

// Lista de compras: // Microcontrolador NodeMCU V3 (Lolin) ESP8266

// Servo motor SG90 9G

// USB Power Bank ou adaptador de parede USB.

// Dados Micro USB / cabo de carga

// Fios de jumper do tipo macho para fêmea do Arduino

//ANTES QUE VOCÊ COMECE:

// 1. Se você ainda não baixou o IDE do Arduino, obtenha-o gratuitamente (doação opcional) em:

// 2. abra o IDE do Arduino (se ainda não estiver lendo isso no IDE do Arduino!) …

// 3. Vá para arquivos e clique na preferência no IDE do Arduino …

// 4. copie o código abaixo no Gerenciador de placas adicionais: //https://arduino.esp8266.com/stable/package_esp8266com_index.json

// 5. clique em OK para fechar a guia de preferências …

// 6. Vá para ferramentas e quadro e selecione o gerente do quadro …

// 7. Navegue para esp8266 pela comunidade esp8266 e instale o software para Arduino…

// 8. Pode ser necessário baixar e instalar o driver CH340 se não conseguir fazer o NodeMCU se comunicar com o seu IDE Arduino:

// Uma vez que todo o processo acima foi concluído, somos lidos para programar nosso microcontrolador NodeMCU esp8266 com o IDE Arduino.

//9.selecione NodeMCU V1.0 ESP12E no menu da placa /

/ 10. Selecione a porta COM que você está usando.

// 11. selecione o código (faça download em www.makersa.ga) e clique em upload. /

/ 12. Conecte o servo no NodeMCU usando fios de jumper. D0 para sinalizar, aterrar para aterrar, + VCC para VO ou 3V. /

/ 13. Ajuste o chifre do servo usando uma chave de fenda.

// 14. Ajuste os graus máximo e mínimo de movimento usando o código.

// 15. Faça o upload novamente para o NodeMCU sempre que o código for atualizado.

// Você pode achar importante descobrir qual versão do NodeMCU você possui. Aqui está um guia de comparação:

frightanic.com/iot/comparison-of-esp8266-no… // Diagrama de pinagem NodeMCU v1: https://frightanic.com/iot/comparison-of-esp8266-no… // Diagrama de pinagem NodeMCU v2: https://frightanic.com/iot/comparison-of-esp8266-no… // Diagrama de pinagem do NodeMCU v3:

// Explicação das plataformas:

// Feito de microcontrolador NodeMCU ESP8266, bateria ou fonte de alimentação USB e servo SG90

// Você pode usar um segundo módulo esp8266 não modificado como um ponto de acesso de beacon AP em vez de usar um smartphone, sem necessidade de programação.

Etapa 3: Adquira as peças de software

Você precisa primeiro fazer o download do Arduino IDE gratuito

O Arduino Web Editor não funciona com o NodeMCU no momento em que estou escrevendo isto, então você terá que instalar o IDE em seu computador.

Você também precisará obter os arquivos NearBot de www. MakerSa.ga - O link para download do arquivo para este projeto está listado nesse site.

Etapa 4: instalar drivers e perfis de placa

Algumas informações úteis
Algumas informações úteis

Dentro do zip NearBot que você baixou e descompactou estarão os drivers para o módulo NodeMCU. Instale-os no seu computador.

Se eles não funcionarem para você, você pode encontrar os drivers CH340G em wemos.cc/downloads

Seu NodeMCU pode não usar o chip CH340G, então você pode precisar comentar com o driver que está procurando e responderei com o link de download desse driver.

  1. Em seguida, abra o IDE do Arduino e vá para Preferências de arquivo Gerenciador de placas adicionais no IDE do Arduino.
  2. Cole o seguinte código lá:
  3. Clique em OK para fechar a guia de preferências.
  4. Vá para ferramentas e quadro e selecione o gerente do quadro.
  5. Navegue até "esp8266 pela comunidade esp8266" e instale o software para Arduino.

Assim que todo o processo acima for concluído, estamos prontos para programar nosso microcontrolador NodeMCU esp8266 com o IDE Arduino!

Etapa 5: algumas informações úteis

Algumas informações úteis
Algumas informações úteis
Algumas informações úteis
Algumas informações úteis

Você pode achar útil descobrir qual versão do NodeMCU você possui. Aqui está um guia de comparação:

frightanic.com/iot/comparison-of-esp8266-nodemcu-development-boards/

Cada versão possui diferentes arranjos de pinos. Eu comprei a versão v3 (Lolin) porque ela tem pinos de saída de 5V para alimentar o servo motor. Por fim, usei os pinos de alimentação de 3 volts por segurança (os pinos de E / S do NodeMCU não são tolerantes a 5 V), mas você pode querer usar os pinos de 5 V porque tecnicamente esses tipos de servo motores são especificados para alimentação de 4,5 a 5 volts.

Etapa 6: carregar o código no NodeMCU

Carregue o código no NodeMCU
Carregue o código no NodeMCU
Carregue o código no NodeMCU
Carregue o código no NodeMCU
  1. Conecte o NodeMCU em seu computador usando qualquer cabo micro USB.
  2. Abra o IDE do Arduino e, em "Placas", selecione "ESP12E" e a porta COM para o NodeMCU.
  3. No IDE, vá para FileOpen e navegue na pasta zip baixada anteriormente de makersa.ga para abrir o esboço do Arduino chamado "ProximityActuator013017DonovanMagryta.ino"
  4. Em seguida, edite a linha de código que o contém para adicionar o nome e a senha do seu WiFi beacon. Mais sobre isso abaixo! Por exemplo:

const char * ssid = "mywifi"; // Coloque o nome do seu ponto de acesso entre aspas

const char * password = "mywifipassword"; // Coloque sua senha de ponto de acesso entre aspas

Em seguida, clique em "upload" para piscar o código na placa NodeMCU.

O NearBot usa um farol WiFi portátil para identificá-lo e estimar a distância. Assim como as chaves de proximidade de alguns carros mais novos, que destravam a porta do carro conforme você se aproxima.

Você pode usar o hotspot móvel do smartphone como um farol ou, alternativamente, usar um módulo de WiFi ESP-01 barato alimentado por um par de baterias AAA ou uma pequena bateria de lítio 3,7v. Não há necessidade de programar o ESP-01, ele padroniza para estoque no modo hotspot quando é ligado. O diagrama de circuito para isso é mostrado nesta etapa.

Etapa 7: Anexe o Servo ao NodeMCU

Você precisará de alguns fios de jumper para conectar o servo ao NodeMCU V3.

O diagrama do circuito é simples.

Pino D0 para o sinal em chumbo (fio de cor mais clara no servo. Geralmente amarelo ou branco).

Pino 3V ou pino VO ao condutor de entrada de 5V (segundo fio de cor mais clara no servo, geralmente vermelho ou laranja).

Pino GND ao fio terra (fio de cor mais escura no servo, geralmente marrom ou preto).

Etapa 8: ajuste o NearBot

O código converte a intensidade do sinal em estimativa de distância. Ele funciona de forma confiável para distâncias de reação inferiores a 2 metros ou 6,5 pés. Por ser uma conversão direta, não é tão suave para distâncias superiores a 3 metros como poderia ser com um método de cálculo melhor. Mais sobre isso mais tarde.

Você pode querer ajustar onde o chifre do servo (o pequeno braço branco que se move) está posicionado. Isso é feito simplesmente desparafusando o braço do servo com uma chave de fenda e reposicionando-o.

A próxima parte é ajustar os graus máximo e mínimo de movimento usando o código.

Isso pode ser feito alterando os números contidos nas linhas que se parecem com isto:

myservo.write (10); // move o braço do servo para uma rotação de 10 graus

Você também pode ajustar a sensibilidade da intensidade do sinal alterando os números negativos em linhas que se parecem com isto:

if (rssi> -30 && rssi <-5) {// Se a intensidade do sinal for mais forte que -30 e mais fraca que -5. então faça o seguinte …

Etapa 9: como funciona

  1. O NearBot primeiro se conecta ao hotspot com antecedência conforme o usuário se aproxima.
  2. Ele verifica o RSSI (intensidade do sinal recebido) e o converte para uma distância aproximada.
  3. Enquanto a distância está dentro da faixa especificada, ele move o braço do servo motor para a posição 1.
  4. Caso contrário, o servo motor é movido para a posição 2.

Quando testei isso, esse ajuste RSSI (-50) move o servo para a posição 1 enquanto a distância é de 0 a 1,5 metros com o farol ESP-01 ou ponto de acesso do telefone no bolso.

O RSSI normalmente está dentro de uma faixa de -90 a -20, com -20 sendo a força de sinal mais forte.

Se você abrir o Arduino IDE Serial Monitor enquanto o NearBot estiver conectado ao computador, ele exibirá a intensidade do sinal e os pontos de acionamento em tempo real para que você tenha um feedback prático.

Aqui está o código completo:

//ANTES QUE VOCÊ COMECE:

// 1. Se você ainda não baixou o IDE do Arduino, obtenha-o gratuitamente (doação opcional) em: https://www.arduino.cc/en/Main/Software // 2. abra o IDE do Arduino (se ainda não estiver lendo isso no IDE do Arduino!)… // 3. Vá para arquivos e clique na preferência no IDE do Arduino… // 4. copie o link abaixo no Gerenciador de placas adicionais: //https://arduino.esp8266.com/stable/package_esp8266com_index.json // 5. clique em OK para fechar a guia de preferências… // 6. Vá para ferramentas e quadro e selecione o gerenciador do quadro… // 7. Navegue para esp8266 pela comunidade esp8266 e instale o software para Arduino… // 8. Você pode precisar baixar e instalar o driver CH340 se você não conseguir fazer o NodeMCU se comunicar com o seu IDE Arduino: https://www.arduino.cc/en/Main/Software // Assim que todo o processo acima for concluído, estamos leia para programar nosso microcontrolador NodeMCU esp8266 com o IDE Arduino. Você pode querer descobrir qual versão do NodeMCU você possui. Aqui está um guia de comparação: https://www.arduino.cc/en/Main/Software // Feito de NodeMCU ESP8266 microcontrolador, bateria ou fonte de alimentação USB e SG90 Servo // Você pode usar um segundo módulo esp8266 não modificado como um farol hotspot AP em vez de usar um smartphone. // Circuito NearBot: // Pino D0 para fio de sinal Servo (fio da cor mais clara) // Pino 3V para fio servo 5v (fio do meio) (emendado em paralelo ao cabo usb ou pino VO no NodeMCU se você tiver V3. / / Alimentação USB para plugue USB no NodeMCU // pino GND para fio terra do servo (fio de cor mais escura) // As linhas das notas começam com duas barras e são ignoradas pelos computadores. As notas são apenas para nós, humanos! #Include #include // Pode ser necessário para impressão serial. #Include // Biblioteca Servo #define D0 16 // Define pinos para facilitar a atribuição de pinos. #Define D1 5 // I2C Bus SCL (relógio) #define D2 4 // I2C Bus SDA (dados) #define D3 0 #define D4 2 // O mesmo que "LED_BUILTIN", mas com lógica invertida #define D5 14 // Barramento SPI SCK (relógio) #define D6 12 // Barramento SPI MISO #define D7 13 // SPI Bus MOSI # define D8 15 // SPI Bus SS (CS) # define D9 3 // RX0 (console serial) #define D10 1 // TX0 (console serial) Servo myservo; // Cria um objeto servo chamado myservo // Phone ou módulo ESP8266 adicional definido para o modo AP de ponto de acesso: const ch ar * ssid = ""; // Coloque o nome do seu ponto de acesso entre aspas const char * password = ""; // Coloque sua senha de ponto de acesso entre aspas void setup () {Serial.begin (115200); // define a taxa de transmissão serial para que o microcontrolador possa se comunicar com a interface de impressão serial no IDE do Arduino - pode ser necessário alterá-lo para 9600! myservo.attach (D0); // anexa o servo no pino D0 também conhecido como GPIO16 ao objeto servo - Veja mais em: https://www.esp8266.com/viewtopic.php?f=32&t=8862#… myservo.write (10); // move o braço do servo para uma rotação de 10 graus Serial.println ("Locked"); // envia ao monitor serial a palavra "Locked" WiFi.mode (WIFI_STA); // Define o wi-fi para o modo Estação WiFi.begin (ssid, senha); // Conecta-se ao beacon do ponto de acesso} void loop () {// O loop é executado repetidamente rapidamente if (WiFi.status ()! = WL_CONNECTED) {// Se o wi-fi NÃO estiver conectado, faça o seguinte… Serial.println ("Não foi possível obter uma conexão wi-fi"); myservo.write (10); // Move o braço do servo para 10 graus Serial.println ("Locked"); } else {// Se o WiFi estiver conectado, faça o seguinte… long rssi = WiFi. RSSI (); // Cria uma variável chamada rssi e a atribui à função que retorna a leitura da intensidade do sinal do hotspot beacon Serial.print (rssi); // envia a leitura de rssi para o monitor serial if (rssi> -50 && rssi <-5) {// Se a intensidade do sinal for mais forte que -50 e mais fraca que -5. em seguida, faça o seguinte… myservo.write (170); // Girar o braço do servo em 170 graus Serial.println ("Unlocked"); } else {// Se as condições acima não forem atendidas, faça o seguinte… myservo.write (10); // Gira o braço do servo de volta para 10 graus. Serial.println ("Bloqueado"); }}}

Etapa 10: Você deve saber …

Isenção de responsabilidade:

A iteração atual do código NearBot funciona de forma confiável para distâncias menores que 2 metros ou 6,5 pés. Além disso, fica menos preciso, mas ainda funciona.

Isso pode ser consertado, mas no momento não sei como fazer isso. Eu adoraria se alguém trabalhasse comigo para que eu possa atualizar este instructables com um método mais preciso de cálculo de distância!

Esses links podem ser úteis: YouTuber CNLohr desenvolveu um firmware de detecção de distância e posição para o ESP8266 com sucesso limitado:

A Espressif desenvolveu uma função de detecção de distâncias de tempo de vôo que funcionaria com o IDE do Arduino para o ESP8266, mas nunca a lançou:

O sistema de posicionamento SubPos usa módulos ESP8266 e cálculo de perda de caminho, que não sei como implementar no IDE do Arduino:

Encontrei um exemplo na linguagem Java, mas não sei como replicar isso é o IDE do Arduino:

distância dupla = Math.pow (10,0, (((duplo) (tx_pwr / 10)) - rx_pwr - 10 * Math.log10 (4 * Math. PI / (c / frequência))) / (20 * mu));

Etapa 11: Isso é tudo

Se você faz seu próprio NearBot, poste seu "Eu fiz" nos comentários abaixo!

Se você tiver mais ideias sobre como usar a plataforma Versatile NearBot, por favor, comente suas ideias! Pode ser uma grande inspiração para outros usuários instructables!

Se você gosta deste tutorial, por favor, considere votar neste instrutível em concursos!

Recomendado: