Índice:
- Suprimentos
- Etapa 1: impressão 3D do invólucro, tampa e placa eletrônica
- Etapa 2: adicionar motores, rodas e fita adesiva ao invólucro
- Etapa 3: preparar a placa eletrônica
- Etapa 4: Circuito Eletrônico
- Etapa 5: prepare a cabeça e os olhos
- Etapa 6: Faça upload do código e instale a estação do driver
- Etapa 7: iniciar o HeadBot e ajustar os valores PID
Vídeo: HeadBot - um robô de auto-equilíbrio para aprendizado e divulgação STEM: 7 etapas (com imagens)
2024 Autor: John Day | [email protected]. Última modificação: 2024-01-30 11:36
Headbot - um robô de 60 centímetros de altura que se equilibra - é uma criação da South Eugene Robotics Team (SERT, FRC 2521), uma equipe competitiva de robótica do ensino médio na FIRST Robotics Competition, de Eugene, Oregon. Este popular robô de divulgação faz aparições regulares em escolas e eventos comunitários, onde atrai multidões de adultos e crianças. Como o robô é durável e fácil de operar usando um telefone ou tablet Android, crianças a partir dos três anos podem dirigi-lo com sucesso. E porque o bot pode vestir uma grande variedade de chapéus, máscaras e outras fantasias, é uma adição divertida para praticamente qualquer reunião. Os membros da SERT usam o bot para recrutar novos membros para a equipe e para inspirar um interesse geral por STEM na comunidade.
O custo total do projeto é de aproximadamente US $ 200 (supondo que você tenha uma impressora 3D e um dispositivo Android), embora possa ser reduzido para menos de US $ 100 se você tiver uma loja de eletrônicos bem abastecida com fácil acesso a solda, tubo termorretrátil, fios de jumper, resistores, capacitores, baterias e um cabo micro USB. A construção é simples se você já tiver alguma experiência em eletrônica e oferece uma grande oportunidade para aqueles que desejam aprender. Para aqueles com um interesse específico em robótica, o Headbot também fornece uma boa plataforma para desenvolver habilidades em ajuste Proporcional-Integral-Derivativo (PID) para controle de feedback.
Suprimentos
Observe que a lista de peças abaixo indica o número de peças necessárias de cada tipo, não o número de pacotes. Alguns links referem-se a páginas onde várias peças podem ser adquiridas como um pacote (o que proporciona algumas economias de custo) - certifique-se de adquirir o número de pacotes necessário para obter o número apropriado de peças.
Componentes eletrônicos
- 1x microcontrolador ESP32
- 2x motores de passo
- 2x A4988 Stepper Motor Drivers
- 1x MPU-6050 Giroscópio / Acelerômetro
- 1x capacitor 100uF
- 1x UBEC (Circuito de Eliminação de Bateria Universal)
- 1x Divisor de Tensão (1x 10kohm e 1x resistor de 26,7kohm)
- 2 lâmpadas LED RGB de ânodo comum de 5 mm
- 6x resistores de 220 ohms
- Fios de ligação (macho-macho e fêmea-fêmea)
- Fio elétrico
- 3 plugues do conector JST SM
- 2x estojo de 4 baterias
- Termoencolhível
- Solda
Hardware
- 1x Invólucro impresso em 3D, tampa e quadro elétrico (consulte as instruções abaixo)
- 2 rodas de disco de precisão de 5"
- 2 cubos de roda de 0,770 "com furo de 5 mm
- 8 baterias recarregáveis AA e carregador
- 1 cabeça de isopor
- 1x 2,5 "pedaço de tubo de PVC de 3/4" (para conectar a cabeça)
- 8 arruelas de travamento M3 (para montar motores)
- 8x Parafusos M3 x 8mm (para montar motores)
- 8x 6-32 x 3/8 "Parafusos (para montar as rodas nos cubos)
- 2 zipties
- Fita adesiva ou de arpão
- 2x hastes de metal rígidas ou fios resistentes (por exemplo, corte de cabides de arame) aprox. 12”de comprimento
Ferramentas Recomendadas
- Decapador de Arame
- Cortador de fio
- Ferro de solda
- Pistola de calor
- Furadeira elétrica
- 1 "x 16" Spade Bit
- Conjunto de chave hexagonal
- Pistola de cola quente
- Cabo Micro USB com Plugue Angulado
Etapa 1: impressão 3D do invólucro, tampa e placa eletrônica
Impressão 3D do invólucro, tampa e placa eletrônica. Baixe os arquivos stl aqui. As peças devem ser impressas com PLA com resolução de 0,25 mm e preenchimento de 20%, sem a necessidade de jangadas ou suportes.
Etapa 2: adicionar motores, rodas e fita adesiva ao invólucro
Motores: Coloque os motores de passo na parte inferior da caixa (com os fios saindo da parte superior dos motores) e prenda com parafusos M3x8mm e arruelas de contraporca M3, usando uma chave sextavada ou chave de fenda apropriada. Coloque os cubos das rodas nos eixos e fixe apertando os parafusos de fixação na parte plana do eixo.
Rodas: estique os anéis de borracha ao redor do disco da roda. Prenda as rodas nos cubos das rodas com os parafusos 6-32x3 / 8”. (As rodas podem se encaixar bem ao redor do cubo. Nesse caso, posicione o melhor possível e, em seguida, aperte lentamente os parafusos um pouco de cada vez, movendo de parafuso em parafuso e repetindo, para permitir que os parafusos puxem a roda no lugar.)
Prepare a tampa e o tubo de PVC: Adicione fita adesiva ou fita adesiva ao topo do invólucro para que a tampa deslize com um encaixe firme e seguro. Adicione fita adesiva a uma extremidade do pedaço de 2,5”do tubo de PVC de ¾” de modo que ele deslize para dentro do orifício da tampa com um encaixe firme e seguro. Se necessário, a fita também pode ser adicionada à outra extremidade do PVC para garantir um ajuste confortável no orifício na base da cabeça.
Etapa 3: preparar a placa eletrônica
Aplique fita adesiva na placa eletrônica: Adicione fita adesiva ou fita adesiva nas laterais da placa eletrônica para que ela deslize nos trilhos na parte interna da caixa com um encaixe confortável.
Giroscópio / acelerômetro MPU-6050: Solde os pinos no giroscópio / acelerômetro MPU-6050, com o lado comprido dos pinos no mesmo lado da placa de circuito que os chips. Use uma grande quantidade de cola quente para prender o MPU à pequena prateleira que se projeta da base da placa de elétrons, orientada de forma que os pinos fiquem à esquerda da placa quando você ficar de frente para a prateleira.
Chave de motor de passo A4988: Use uma pequena chave de fenda para girar o pequeno potenciômetro limitador de corrente em cada chave de motor de passo A4988 no sentido horário até o fim. Retire o papel da fita nos dissipadores de calor para os drivers do motor e aplique para cobrir os chips no meio da placa de circuito. Use bastante cola quente para prender os drivers do motor (com os potenciômetros voltados para cima) ao lado da placa eletrônica oposta à prateleira com o MPU, com os pinos projetando-se através dos dois pares de fendas verticais na parte superior da placa eletrônica (tome cuidado para não deixar cola nos pinos, que devem ficar salientes do mesmo lado que o MPU). Passe um zíper através dos pequenos orifícios acima de cada driver do motor para prendê-lo ainda mais no lugar.
Microcontrolador ESP32: coloque um cabo micro USB no plugue do microcontrolador ESP32 (ele será usado para manter a extremidade da placa de circuito a uma pequena distância da placa eletrônica, para que o acesso ao plugue possa ser garantido após o ESP32 ser colado no lugar). Posicione o ESP32 com o plugue à direita quando você estiver de frente para o lado do chip e use bastante cola para prendê-lo na placa de circuito, com os pinos projetando-se através das fendas horizontais no meio da placa ao lado do MPU (pegue cuidado para não sujar os pinos ou o cabo USB). Depois que a cola endurecer, remova o cabo USB.
Etapa 4: Circuito Eletrônico
Instruções gerais: Siga o diagrama do circuito (baixe o pdf abaixo para uma versão em alta resolução) para criar os chicotes de fios necessários para conectar os componentes eletrônicos. As conexões entre dois pinos podem ser feitas diretamente com fios de jumper fêmea-fêmea. As conexões entre 3 ou mais pinos podem ser feitas com os chicotes de fios mais complexos descritos abaixo. Os chicotes podem ser criados cortando-se os jumpers fêmea-fêmea ao meio e, em seguida, soldando-os com outros componentes (resistores, capacitor, plugues, fios curtos) conforme apropriado. Em todos os casos, use tubos termorretráteis para isolar a junta de solda.
Pacotes de bateria: Certifique-se de que os pacotes de bateria podem deslizar nas ranhuras na base da caixa impressa em 3D. Se eles não couberem, use uma lima para modelá-los até que se encaixem. Prenda os fios de dois dos plugues conector JST SM fêmea (deixando cerca de uma polegada) e solde um aos terminais de cada pacote de bateria.
Chicote de energia principal: O chicote de energia principal recebe entrada de dois plugues conector JST SM macho, com o cabo + de um plugue se juntando ao cabo - do outro para conectar os dois conjuntos de bateria em série (resultando em uma entrada combinada de 12v) Os outros fios são unidos através do capacitor de 100uF (para amortecer picos de tensão; a perna mais curta desse capacitor se conecta ao fio -, enquanto a perna mais longa se conecta ao fio de + 12v) e com um divisor de tensão composto de um resistor de 10kohm (conectado ao cabo -) e um resistor de 26,7 kohm (conectado ao cabo de + 12 V), com um jumper fêmea entre os resistores indo para o pino SVP no ESP32 (isso fornece uma entrada escalonada com um máximo de 3,3 V que é usado para fornecer uma leitura da tensão restante nas baterias). Jumpers fêmea adicionais fornecem entradas de + 12v (2 jumpers) e - (2 jumpers) para os pinos VMOT e GND vizinhos, respectivamente, nos drivers de passo. Além disso, um Universal Battery Elimination (UBEC) é soldado aos condutores de + 12v e - do chicote de alimentação principal (a entrada para o UBEC é o lado com o capacitor em forma de barril), com as saídas de + 5v e - do UBEC soldadas a um plugue JST SM fêmea.
Entrada 5v para o ESP32: Solde um plugue conector JST SM macho a dois plugues jumper fêmeas, para fornecer entradas para as entradas 5v e GND para o ESP32 do UBEC (este plugue permite uma fácil desconexão quando o ESP32 está sendo alimentado pelo entrada micro USB, para quando o código está sendo carregado no microcontrolador).
Chicote de energia de 3,3 V: Solda 7 jumpers fêmea para conectar o pino de 3,3 V no ESP32 ao pino VCC no MPU, os pinos VDD e MS1 em cada um dos drivers de motor de passo e ao jumper macho fornecendo energia para os olhos de LED (permitindo uma fácil desconexão da energia para os olhos, quando o ESP32 está sendo alimentado do micro USB enquanto o código está sendo carregado).
Chicote de aterramento: Solde 3 jumpers fêmea para conectar um pino GND no ESP32 aos pinos GND (próximo ao pino VDD) em cada um dos drivers do motor de passo.
Chicote de habilitação de passo: Solde 3 jumpers fêmea para conectar o pino P23 no ESP32 aos pinos ENABLE em cada um dos drivers do motor de passo.
Conectores de jumpers simples: jumpers simples são usados para fazer as seguintes conexões:
- GND no ESP32 para GND no MPU
- P21 no ESP32 para SCL no MPU
- P22 no ESP32 para SDA no MPU
- P26 no ESP32 para DIR no driver de passo esquerdo
- P25 no ESP32 para STEP no driver de passo esquerdo
- Jumper SLEEP e RESET no driver de passo esquerdo
- P33 no ESP32 para DIR no driver de passo correto
- P32 no ESP32 para STEP no driver de passo correto
- Jumper SLEEP e RESET no driver direito de passo
Conecte o UBEC: O plugue JST SM fêmea na saída do UBEC pode ser conectado ao plugue macho correspondente que fornece energia e aterramento para as entradas de 5v e GND no ESP32. No entanto, este plugue deve ser desconectado quando o ESP32 está sendo alimentado por um micro USB (por exemplo, durante o carregamento do código), ou então uma corrente reversa do ESP32 para o chicote de energia principal irá interromper o funcionamento adequado do ESP32.
Instale a placa eletrônica: Deslize a placa eletrônica nos trilhos na parte interna da caixa.
Conecte os cabos do motor: Conecte os fios do motor esquerdo ao driver de passo esquerdo, com os fios azul, vermelho, verde e preto conectando-se aos pinos 1B, 1A, 2A e 2B, respectivamente. Conecte os cabos do motor direito ao driver de passo direito, com os fios azul, vermelho, verde e preto conectando-se aos pinos 2B, 2A, 1A e 1B, respectivamente (observe que os motores são conectados em forma de imagem espelhada, uma vez que eles têm orientações opostas). Coloque o excesso de fiação do motor na parte inferior da caixa.
Conecte os conjuntos de bateria: Deslize os conjuntos de bateria em seus bolsos no invólucro e conecte seus plugues conector JST SM fêmea aos plugues machos correspondentes na entrada do chicote de alimentação principal (os cabos do conjunto de bateria frontal podem ser guiados através do orifício no centro da placa eletrônica para obter acesso ao plugue na parte traseira). As baterias podem ser desconectadas para permitir a fácil inserção de baterias novas. Colocar a chave liga / desliga de qualquer bateria na posição desligada desconectará a energia do circuito (uma vez que as baterias estão em série) - as chaves nas costas do robô devem estar ligadas para que o circuito seja energizado.
Etapa 5: prepare a cabeça e os olhos
Aumente o furo na base da cabeça: Use a broca pá de 1”para aumentar a profundidade do furo na parte inferior da cabeça, de modo que termine acima da altura dos olhos (é útil colocar uma pequena peça de fita em um local apropriado no eixo da broca para indicar quando uma profundidade apropriada foi atingida). Empurre a broca 2-3 no orifício antes de perfurar para não danificar a abertura do orifício (você vai querer um encaixe apertado no tubo de PVC que irá prendê-lo à tampa do invólucro). Guarde alguns dos pedaços maiores de isopor para encher os olhos mais tarde.
Crie ganchos para empurrar / puxar os fios: em uma extremidade de uma haste de metal rígida, dobre uma pequena forma de N (isso será usado para empurrar os fios para alimentar os olhos de LED através da cabeça de isopor). Dobre um pequeno gancho na extremidade da outra haste de metal dura (ela será usada para retirar o arame do buraco na parte inferior da cabeça).
Passe os fios: dê laços grandes nas pontas dos fios vermelho, amarelo, verde e azul, usando nós apertados. Trabalhando com um fio de cada vez, prenda o laço na extremidade do gancho em forma de N e empurre-o através do olho da cabeça, mantendo o caminho horizontal e apontando para o orifício no centro da cabeça. Quando o fio é empurrado para dentro do buraco, use a haste em forma de gancho para agarrar o laço da parte inferior da cabeça e puxe-o do buraco, extraindo a outra haste do olho também (deixando 2-3 polegadas de fio no parte inferior da cabeça e saindo do olho). Repita o processo com os outros três fios coloridos, seguindo o mesmo caminho do olho até o orifício central (use um zíper rotulado para prender esses fios juntos e indicar qual olho eles controlam). Repita com mais 4 fios no segundo olho.
Anexe LEDs RGB: encurte os fios nos LEDs RGB, certificando-se de marcar o ânodo comum (o fio mais longo e observe a localização do R (o fio único em um lado do ânodo, conforme mostrado no diagrama de circuito) e Condutores G e B (os dois terminais do outro lado do ânodo). Solde os fios apropriados que estão pendurados em um dos olhos até o LED (vermelho para o ânodo, amarelo para R, verde para G e azul para B), isolando as conexões com tubo termorretrátil. Empurre os terminais do LED na cabeça, mas deixando-o um pouco saliente até que possa ser testado. Repita o processo com o outro LED e os fios do outro olho.
Conecte os fios de jumper: solde um resistor de 220 ohms e um fio de jumper com conector fêmea em cada um dos fios amarelo, verde e azul que se projetam da parte inferior do cabeçote. Junte os dois fios vermelhos e solde a um jumper com um conector macho (nota: este é o único jumper macho necessário no circuito).
Conecte os jumpers e conecte o cabeçote: Passe os jumpers através do tubo de PVC na tampa e deslize o PVC no orifício na cabeça, prendendo-o à tampa. Conecte o jumper de alimentação macho a um jumper fêmea no chicote de alimentação de 3,3 V e os jumpers RGB fêmea ao ESP32 (fios amarelo, verde e azul do olho esquerdo para P4, P0 e P2, respectivamente, e amarelo, verde e azul fios do olho direito para P12, P14 e P27, respectivamente). Finalmente, coloque a cabeça / tampa na caixa principal.
Etapa 6: Faça upload do código e instale a estação do driver
Instalando o código HeadBot no ESP32: Baixe e instale o Arduino IDE em seu computador. Visite https://github.com/SouthEugeneRoboticsTeam/ursa e clique em “Download Zip” sob o botão verde “Clone or Download”. Mova a pasta compactada dentro para qualquer lugar em seu computador e renomeie-a para “ursa”
Abra o ursa.ino usando o IDE do Arduino. No menu de preferências em “Arquivo”, adicione https://dl.espressif.com/dl/package_esp32_index.json aos “URLs adicionais do gerenciador de placas”. Instale esp32boards da Espressif Systems em Tools> Board manager. Escolha “esp32 dev module” em Tools> Board. Instale a biblioteca PID by Brett Beauregard clicando em “Gerenciar Bibliotecas” no menu “Sketch”.
Conecte ao ESP32 usando o cabo USB-MicroUSB. Selecione a placa em Ferramentas. Pressione e segure o pequeno botão "I00" próximo ao conector micro USB no ESP32, pressione o botão de upload no IDE do Arduino e libere o "I00" quando o IDE do Arduino disser que está "Conectando …". Após a conclusão do upload, o cabo MicroUSB pode ser desconectado.
Instalando a estação de driver HeadBot: Baixe e instale o Processing em seu computador. Visite https://github.com/SouthEugeneRoboticsTeam/ursa-ds-prototype e baixe o código. Abra "ursaDSproto.pde" usando o IDE de processamento. Instale as bibliotecas Ketai, Game Control Plus e UDP por meio do gerenciador de bibliotecas do Processing (Sketch> Import Library). Se você estiver executando a estação de unidade em seu computador, selecione Modo Java no menu suspenso no canto superior direito da janela Processamento; para executá-lo no Android, instale o Android Mode for Processing clicando no menu suspenso "Java" no canto superior direito. Em seguida, conecte o dispositivo, ative a depuração USB e selecione Modo Android. Para executar a estação de acionamento, clique em “Executar Sketch”. Se o seu computador estiver conectado a um dispositivo Android, a estação do driver será instalada nele.
Etapa 7: iniciar o HeadBot e ajustar os valores PID
Inicializando: Certifique-se de que as baterias estão conectadas e que a saída UBEC está conectada ao conector de entrada ESP32. Com o Headbot deitado de lado em uma posição estável, ligue-o deslizando o botão liga / desliga de ambas as baterias para a posição ON, deixando o Headbot parado por alguns segundos enquanto o giroscópio é inicializado. Após um pequeno atraso, você deverá conseguir ver o sinal Wi-Fi do Headbot (SERT_URSA_00) no dispositivo que usará para controlar o bot - selecione-o e digite a senha “Headbot”. Depois que uma conexão for feita, execute o aplicativo drive station em seu telefone / tablet ou execute o script de drive station em Processando em seu computador. Depois que o programa é iniciado e uma conexão é feita, você deve ver o valor "pitch" começar a responder, mostrando a inclinação do Headbot.
Configurando valores PID: para poder controlar o Headbot, você precisará ajustar os valores PID. Para a versão do Headbot descrita aqui. Clicar no quadrado no canto superior esquerdo da estação de acionamento exibirá controles deslizantes para ajustar os valores. Os três primeiros controles deslizantes são para ajustar P, I e D para o ângulo (PA, IA e DA) - esses valores são de fundamental importância para permitir que o Headbot mantenha seu equilíbrio. Os três controles deslizantes inferiores são para ajustar P, I e D para a velocidade (PS, IS e DS) - esses valores são importantes para permitir que o Headbot ajuste corretamente sua velocidade de direção de acordo com a entrada do joystick. Bons valores iniciais com esta versão do Headbot são PA = 0,08, IA = 0,00, DA = 0,035, PS = 0,02, IS = 0,00 e DS = 0,006. Depois de definir esses valores, clique na caixa “Salvar configuração” no canto superior esquerdo da estação de unidade (isso salva as configurações de uma forma mais durável que sobreviverá a uma reinicialização do bot).
Experimentando: Clique na barra Green Joystick no canto superior direito da unidade para abrir um joystick para controlar o robô. Levante o Headbot em uma orientação quase equilibrada e pressione o quadrado Ativar verde escuro no canto superior direito (pressionar a caixa vermelha vizinha desativará o bot). Se tudo correr bem, você terá um Headbot com autobalanceamento, mas é mais do que provável que você precise ajustar os valores PID. Geralmente há pouco I ou D em comparação com P, então comece por aí. Muito pouco e não responderá. Muito e vai oscilar para a frente e para trás. Comece Comece com os valores Angle PID, fazendo pequenas alterações para ver como as coisas são afetadas. Algum termo D para o loop de ângulo pode ajudar a minimizar as oscilações, mas uma pequena quantidade pode trazer rapidamente muito jitter, então use com moderação. Se os valores do ângulo estiverem corretos, o Headbot deve resistir a alguns empurrões suaves sem cair. Pequenos espasmos são esperados enquanto o Headbot está equilibrado, uma vez que os motores de passo estão se movendo em meio-passos de 0,9 graus com cada ajuste.
Uma vez que o equilíbrio for alcançado, tente dirigir fazendo pequenos movimentos do joystick, fazendo pequenos ajustes nos valores do PID de velocidade para que o robô responda de maneira suave e elegante. Aumentar o termo I pode ser útil para impedir o robô que não está aderindo à velocidade definida. Porém, esteja avisado - as alterações nos valores do PID de velocidade exigirão ajustes adicionais nos valores do PID do ângulo (e vice-versa), uma vez que os loops PID interagem.
Alterações no peso geral e na distribuição de peso do Headbot (como ao usar óculos, máscaras, perucas ou chapéus) exigirão ajustes adicionais dos valores PID. Além disso, se as fantasias desequilibram demais, você pode precisar ajustar o valor inicial pitchOffset no código ursa.ino e recarregar o código no ESP32.
Vice-campeão no concurso de robótica
Recomendado:
Rpibot - Sobre o aprendizado de robótica: 9 etapas
Rpibot - Sobre Aprendizagem de Robótica: Sou engenheiro de software embarcado em uma empresa automotiva alemã. Iniciei este projeto como uma plataforma de aprendizagem para sistemas embarcados. O projeto foi cancelado cedo, mas gostei tanto que continuei no meu tempo livre. Este é o resultado … Eu
Transfira o aprendizado com NVIDIA JetBot - Diversão com cones de trânsito: 6 etapas
Transfira o aprendizado com NVIDIA JetBot - Divirta-se com cones de tráfego: ensine seu robô a encontrar um caminho em um labirinto de cones de tráfego usando a câmera e o modelo de aprendizado profundo de última geração
Como detectar doenças de plantas usando aprendizado de máquina: 6 etapas
Como detectar doenças em plantas usando aprendizado de máquina: O processo de detecção e reconhecimento de plantas doentes sempre foi um processo manual e tedioso que exige que os humanos inspecionem visualmente o corpo da planta, o que muitas vezes pode levar a um diagnóstico incorreto. Também foi previsto que, como global w
Previsão da temperatura ambiente via sensor LM35 e aprendizado de máquina: 4 etapas
Previsão de temperatura ambiente via sensor LM35 e aprendizado de máquina: introdução Hoje estamos focados na construção de um projeto de aprendizado de máquina que prevê a temperatura por meio de regressão polinomial. O aprendizado de máquina é um aplicativo de inteligência artificial (IA) que fornece aos sistemas a capacidade de aprender automaticamente
Circuitos loucos: um sistema de aprendizado eletrônico de código aberto: 8 etapas (com imagens)
Circuitos loucos: um sistema de aprendizado eletrônico de código aberto: O mercado educacional e doméstico é inundado com sistemas eletrônicos modulares de 'aprendizado' projetados para ensinar a crianças e adultos os principais conceitos de STEM e STEAM. Produtos como LittleBits ou Snapcircuits parecem dominar todos os guias de presentes de Natal ou blogs pais