Índice:

ICBob - um robô bípede inspirado em Bob: 10 etapas (com imagens)
ICBob - um robô bípede inspirado em Bob: 10 etapas (com imagens)

Vídeo: ICBob - um robô bípede inspirado em Bob: 10 etapas (com imagens)

Vídeo: ICBob - um robô bípede inspirado em Bob: 10 etapas (com imagens)
Vídeo: Bob Esponja | Todas as Vezes que o Bob Esponja Usa um Pequeno Clone! 🤏 | Bob Esponja em Português 2024, Novembro
Anonim
Image
Image
ICBob - um robô bípede inspirado em Bob
ICBob - um robô bípede inspirado em Bob

Somos o Teen Imagineering Club da Biblioteca Pública de Bridgeville Delaware. Fazemos projetos interessantes enquanto aprendemos sobre eletrônica, programação de computadores, design 3D e impressão 3D.

Este projeto é a nossa adaptação do BoB, o BiPed, um robô baseado em Arduino. Redesenhamos o corpo para tirar proveito de nossa fonte de energia Arduino favorita, o banco de energia do telefone Powerbot. Esta fonte de alimentação recarregável de 5 volts barata é ótima para alimentar nossos projetos Arduino e recarrega com qualquer carregador de parede USB. Também adaptamos os pés de 3 dedos do robô bípede Arduped apenas porque eles parecem INCRÍVEIS. Mostraremos onde conseguir as peças de que você precisa, como montar o robô e até mesmo daremos um código Arduino fácil para fazê-lo funcionar. Divertimo-nos muito fazendo nossos onze robôs ICBob. Continue lendo se quiser aprender como fazer um para você.

Etapa 1: Peças e ferramentas de que você precisará

Peças e ferramentas de que você precisará
Peças e ferramentas de que você precisará
Peças e ferramentas de que você precisará
Peças e ferramentas de que você precisará

ICBob é projetado para o seguinte conjunto de peças. Embora as substituições sejam possíveis, você pode precisar modificar o corpo para fazê-las funcionar. Nosso fornecedor favorito é Yourduino.com, mas para alguns itens, você precisará ir à Amazon ou ao Ebay.

Atualização de disponibilidade de produto - Yourduino não carrega mais o Micro Magician e diz que eles estão sendo descontinuados pela Dagu. O site Dagu ainda os tem disponíveis https://www.dagurobot.com/goods.php?id=137 e se eles não estiverem disponíveis, o controlador S4A EDU é uma queda em substituição e opera a 5 volts.

Peças

  • 1x- controlador MICRO Magician
  • 4x- SG 90 servo
  • 1x- Sensor ultrassônico HC-SR04
  • 1x- Powerbot power bank 2600mAh (o Powerbot 3000mAh é maior em diâmetro e não caberá)
  • 1x- Fêmea MICRO USB para quadro de avisos DIP de 5 pinos
  • 1x- extremidades fêmeas de cabo plano de 40 pinos de 20 cm
  • 1x- resistor de 10k
  • 4x- parafusos auto-roscantes 2-56 x 3/8 (cola quente alternativa)

Impressões 3D - Os arquivos stl estão disponíveis no Thingiverse: 1313344

  • 1x- corpo
  • 1x- concha
  • 2x- joelho
  • 1x- pé esquerdo
  • 1x- pé direito

Ferramentas

  • computador com Arduino IDE
  • Arduino add on library VarSpeedServo
  • Driver MICRO Magician (necessário para alguns sistemas operacionais)
  • Impressora 3D (ou peça para fazer as peças)
  • Ferramentas de limpeza de peças 3D
  • Kit de solda (apenas para os pinos do adaptador USB)
  • Pistola de cola quente
  • Chave de fenda Philips pequena
  • carregador USB

Este Instructable presume que você tenha um conhecimento básico do uso do Arduino. Se você é novo no Arduino, pode aprender mais em

Para o MICRO Magician, escolha a placa - Arduino Pro ou Pro Mini (3,3 V, 8 MHz) com ATmega328

Você precisará da biblioteca VarSpeedServo de Korman para usar nossos esboços. Você pode descobrir mais sobre sua biblioteca aqui, mas use nosso download abaixo, que é compatível com o IDE mais recente. Baixe o arquivo VarSpeedServo.zip abaixo e descompacte para a pasta arduino / bibliotecas.

Pode ser necessário instalar o driver MICRO Magician CP210x se o seu sistema não reconhecer o controlador. Este site pode ajudar com a instalação do driver

Etapa 2: vamos começar a construir - montar as pernas

Vamos começar a construir - montar as pernas
Vamos começar a construir - montar as pernas
Vamos começar a construir - montar as pernas
Vamos começar a construir - montar as pernas
Vamos começar a construir - montar as pernas
Vamos começar a construir - montar as pernas

Para esta etapa, você precisará de 2 - joelhos impressos em 3D e 4 pacotes de servo.

Comece limpando os joelhos. Os 2 orifícios da buzina do servo precisam se encaixar nas buzinas do servo de lado único. Nós os limpamos com uma broca do tamanho da letra L (0,290). O único orifício do pivô precisa se encaixar no pivô no pé. Nós os limpamos com uma broca de tamanho # 2 (0,220).

Encaixe os 4 chifres de servo nos joelhos. Prenda o chifre usando um dos parafusos maiores que vieram com o pacote do servo. Passe o parafuso pelo lado do joelho e aperte em um dos pequenos orifícios no chifre do servo. Para um parafuso, você terá que apertar com a chave de fenda em um ângulo, mas é possível. Você pode cortar as pontas dos parafusos que ficam para fora com um alicate de corte lateral, se desejar.

Os 4 servo eixos devem ser centralizados antes de serem fixados nos joelhos. Você pode fazer isso manualmente movendo suavemente o fuso em sua rotação para encontrar o ponto médio. A melhor maneira é anexar um servo ao pino 12. Baixe o arquivo icbob_servo_center.zip abaixo. Descompacte para o diretório do Arduino. Em seguida, execute este esboço do Arduino para cada servo.

Comece montando os servos do quadril (superior) até os joelhos. Sem mover o fuso, prenda o servo do quadril paralelo ao joelho com os fios voltados para o outro chifre do servo (frente). Prenda com um pequeno parafuso do pacote do servo. Repita para o outro joelho.

Agora, para os servos de tornozelo. LEMBRE-SE que você terá tornozelos direito e esquerdo, de modo que as pernas serão imagens espelhadas uma da outra. Você terá que afastar levemente o joelho para montar o servo de tornozelo, de modo que oriente o servo como na foto antes de apertá-lo. Lembre-se de não girar o fuso. Fixe com um pequeno parafuso. Repita com o outro joelho para terminar com uma perna direita e outra esquerda.

Etapa 3: construção - prenda as pernas ao corpo

Edifício - Anexe as pernas ao corpo
Edifício - Anexe as pernas ao corpo
Edifício - Anexe as pernas ao corpo
Edifício - Anexe as pernas ao corpo
Edifício - Anexe as pernas ao corpo
Edifício - Anexe as pernas ao corpo

Você precisará dos conjuntos de 2 pernas e da base impressa em 3D para esta etapa. Você também precisará de (4) parafusos auto-roscantes 2-56x3 / 8 ou cola quente.

O conjunto da perna se conecta à base por meio dos servos do quadril. Primeiro, passe os 2 fios do servo pela parte inferior da base. Cuidado com as direitas e esquerdas. Como mostra o desenho, o fio do tornozelo termina no recorte da meia-lua, mas você tem que colocar o fio do tornozelo antes que o servo seja conectado. Você tem que inclinar o servo para que o fio do quadril (onde ele entra no servo) passe primeiro pelo orifício retangular (para a frente). É um ajuste apertado, mas a extremidade traseira deve apenas deslizar para dentro. Agora vire a base e prenda o servo com 2 parafusos ou, alternativamente, cola quente deve funcionar. Repita o processo para a outra perna.

Etapa 4: construção - prenda os pés

Edifício - Prenda os Pés
Edifício - Prenda os Pés
Edifício - Prenda os Pés
Edifício - Prenda os Pés

Para esta etapa, você precisará de um pé esquerdo e um pé direito para adicionar à sua montagem. Eles são colados a quente, então use a pistola de cola.

Certifique-se de limpar bem as ranhuras nos pés. Teste suavemente o ajuste do servo ao pé após a limpeza. Certifique-se de que o orifício do pivô no joelho se encaixa no pino do pivô no pé. É melhor usar uma chave de fenda fina entre o servo e o pé para soltar o pé se ele estiver apertado. Depois de obter um bom ajuste de teste, coloque uma bola de cola quente do tamanho de uma moeda de dez centavos no pé e pressione o servo no pé. Evite colocar cola perto da área do pivô. Repita para o outro lado para que seu bot possa ficar em pé sozinho.

Etapa 5: Fiação - Servos e energia

Fiação - Servos e energia
Fiação - Servos e energia
Fiação - Servos e energia
Fiação - Servos e energia
Fiação - Servos e energia
Fiação - Servos e energia

Nesta etapa, você precisará do controlador MICRO Magician, a placa adaptadora micro USB com pinos de cabeçalho, o cabo plano e seu bot permanente. Você estará soldando e colando a quente nesta etapa, portanto, tenha essas ferramentas prontas.

O banco de energia Powerbot vem com um cabo USB curto para micro USB. Para carregar a bateria, o micro USB é conectado ao slot de carregamento da bateria e o USB vai para o carregador de parede. Você reutilizará este cabo para alimentar o ICBob. A saída da bateria é feita através do USB, portanto, conectamos através da placa adaptadora micro USB para fornecer energia ao bot.

Primeiro, vamos montar o adaptador. Consulte a foto para as próximas etapas. Você só usará os 2 pinos externos (gnd e V +) para alimentar o bot. Deslize cuidadosamente os 2 pinos externos no coletor de forma que o lado curto se projete cerca de 3/16 pol. Com um alicate, dobre os 2 pinos longos em 60 graus ou mais. Dobre antes de soldar, pois as placas são frágeis. Insira a plataforma conforme mostrado e solde todos os pinos nas costas para fortalecer. Prenda todos os pinos não utilizados o mais curto possível, tanto na frente quanto atrás. Antes de colar o adaptador ao cilindro, conecte o cabo micro USB para que fique com espaço suficiente. Coloque uma grande quantidade de cola quente na parte de trás do adaptador e coloque-o na posição mostrada no cilindro. Segure até que endureça.

Em seguida, conecte os 4 conectores servo ao controlador. Gostamos do MICRO Magician porque possui conectores de 3 pinos integrados para facilitar a fiação do servo. O fio de cor mais escura (marrom?) Vai em direção à borda da placa. Os esboços do Arduino incluídos usam os seguintes pinos.

  • Quadril Direito (RH) - pino 9
  • Tornozelo Direito (RA) - pino 10
  • Quadril Esquerdo (LH) - pino 11
  • Tornozelo Esquerdo (LA) - pino 12

Para a conexão de energia à placa, retire um par de fios do cabo plano. Você usará mais esse cabo plano para a fiação do sonar. Conecte uma extremidade do par ao adaptador micro USB. O pino que está mais próximo da frente do bot é o terra e o outro V +. A outra extremidade é conectada ao controlador próximo ao switch. O fio V + se conecta ao pino identificado como 'Battery IN' na documentação. Conecte o fio terra ao pino 'gnd' um pouco acima do pino 'Battery IN'.

IMPORTANTE! - Há um jumper 'V + select' logo acima do conjunto de pinos D1. Este jumper deve estar no conjunto DENTRO de pinos ou os servos não funcionarão.

Por fim, limpe o slot do controlador na base para que ele se encaixe perfeitamente. Você pode conectar a bateria e ligar o controlador para certificar-se de que liga.

Etapa 6: Programação - Código de calibração inicial

Algumas palavras sobre nossas opções de programação

Quando construímos o protótipo para este projeto, usamos o tutorial Como ensinar seu BoB Biped a mover em Let's Make Robots. O software Bob Poser era legal e nos divertimos brincando com ele. O problema era que mais de 600 linhas de código no esboço de navegação estavam bem acima do nível de conhecimento dos adolescentes. Para tornar este projeto mais uma experiência de aprendizado para eles, decidimos colher algumas idéias do código Poser e, em seguida, começar com uma página em branco. Os adolescentes já estavam usando a biblioteca VarSpeedServo enquanto aprendiam sobre servos em nossos laboratórios Arduino. Decidimos ver se VarSpeedServo poderia lidar com os deveres de tempo e velocidade para os servos para que pudéssemos apenas nos concentrar nas posições. O código resultante funciona muito bem e o esboço completo de walk_avoid_turn tem menos de 100 linhas de código. Os únicos novos conceitos que os adolescentes precisavam aprender eram matrizes bidimensionais e como acessar esses dados com código. Aproveitar!

Calibração de casa

Você centralizou os servo eixos ao montá-los. Agora você verá o quão perto você chegou e ajustará suas posições iniciais. Certifique-se de ter a biblioteca VarSpeedServo da etapa 1 instalada. Baixe o arquivo icbob_home_calibration.zip abaixo e descompacte para o diretório do Arduino. Abra o esboço no IDE do Arduino. Ligue o MICRO Magician com a bateria. Conecte o computador à placa e faça o upload do código. Provavelmente, as posições iniciais do servo não serão perfeitas. Encontre a seguinte seção no código. Continue ajustando e fazendo upload até acertar.

//…………………………………………………….

// Comece com os memmbers de array de 4 hm configurados para 90 graus. em seguida, ajuste // essas configurações para que os joelhos fiquem retos para a frente e os pés planos int hm [4] = {90, 90, 90, 90}; // array para manter a posição inicial para cada servo RH, RA, LH, LA // …………………………………………………….

Se algum de seus números for menor que 50 ou maior que 130, você precisa voltar e desmontar as pernas e colocar os fusos mais perto do centro.

Depois de obter uma boa posição inicial, anote os números. Você precisará desses números para o restante dos esboços.

Etapa 7: Programação - Mover Código do Gerador

Programação - Código do gerador de movimento
Programação - Código do gerador de movimento

Agora, para colocar seu bot em movimento. Baixe o arquivo icbob_move_generator.zip abaixo e descompacte para o diretório do Arduino. Abra o esboço no IDE do Arduino. Encontre a seguinte seção de código. Coloque as posições iniciais que você registrou para o seu bot no esboço.

// define os membros do array hm para as posições iniciais do seu robô

// eles podem ser encontrados usando o esboço icbob_home_calibration const int hm [4] = {95, 95, 85, 90}; // array para manter a posição inicial para cada servo RH, RA, LH, LA

A seção de código a seguir é onde as sequências de movimentação são inseridas. Cada linha possui posições para os 4 servos (RH, RA, LH, LA) em relação à posição inicial.

// dados do array mv. Cada linha é um 'quadro' ou posição definida para os 4 servos

// Múltiplas linhas criam um grupo de movimentos que podem ser repetidos para // criar andar, girar, dançar ou outros movimentos const int mvct = 6; // Torne este número igual ao número de linhas na matriz const int mv [mvct] [4] = {{0, -40, 0, -20}, // Esses números pré-carregados devem dar uma caminhada para a frente {30, -40, 30, -20}, {30, 0, 30, 0}, {0, 20, 0, 40}, {-30, 20, -30, 40}, {-30, 0, -30, 0},};

Este é o código que transforma os dados do array mv em servo slowmoves

void loop () // loop se repete para sempre

{// Mova a sequência para (int x = 0; x <mvct; x ++) {// percorre o número de RH.slowmove (hm [0] + mv [x] [0], svsp); // linhas 'frames' no array RA.slowmove (hm [1] + mv [x] [1], svsp); LH.slowmove (hm [2] + mv [x] [2], svsp); LA.slowmove (hm [3] + mv [x] [3], svsp); atraso (framedelay); }}

Faça upload para o bot. O bot irá para a posição inicial por 2 segundos e então iniciará um loop de caminhada para frente. Funciona melhor se a mesa não for muito escorregadia.

Quando se cansar de vê-lo andar, você pode tentar seus próprios movimentos. Use 'salvar como' para renomear o esboço. Em seguida, brinque com os números e veja o que você pode fazer. Mantenha os números entre +50 e -50 ou você pode forçar os servos. Lembre-se de que se você adicionar ou subtrair linhas, terá que alterar o valor mvct para refletir a alteração. Divirta-se!

Etapa 8: Fiação - Sensor de sonar HC-SR04 (olhos)

Fiação - Sensor de sonar HC-SR04 (olhos)
Fiação - Sensor de sonar HC-SR04 (olhos)
Fiação - Sensor de sonar HC-SR04 (olhos)
Fiação - Sensor de sonar HC-SR04 (olhos)

Para esta etapa, você precisará da impressão 3D icbob_shell, do sensor ultrassônico HC-SR04, do cabo plano fêmea e de um resistor de 10k ohm. Isso deve encerrar as peças de nossa lista. Isso!

Limpe primeiro os orifícios do sensor na carcaça para um ajuste médio apertado. Não coloque muita pressão no sensor durante o teste de encaixe. Remova da carcaça para fazer a fiação.

Em seguida, retire 4 fios do cabo plano. Conecte os 4 fios nos pinos do sensor HC-SR04.

O MICRO Magician funciona internamente com 3,3 volts e os pinos só podem receber um sinal de 3,3 volts. O problema é que o HC-SR04 opera a 5 volts. Ele pode usar uma entrada de 3,3 volts como o sinal de 'disparo', mas quando ele envia um sinal de 'eco', é de 5 volts e danificará a entrada do controlador se for conectado diretamente. Precisamos colocar um resistor limitador de corrente de 10k ohm no fio de 'eco' para proteger a entrada.

ATUALIZAÇÃO: Embora não tenhamos tido problemas apenas com o resistor de 10K embutido, foi apontado nos comentários que as melhores práticas indicam que um circuito divisor de tensão deve ser usado aqui. Além do resistor de 10K, um resistor de 15K deve ser colocado entre o 'eco' e o 'aterramento'.

Corte os condutores do resistor para 0,5 polegadas. O resistor vai para o fio de 'eco' em seu cabo plano. Colocamos uma gota de super cola na conexão para ajudá-la a ficar parada.

O esboço usa o pino 13 para gatilho e o pino 3 para eco. Use o grupo do pino 13 no controlador para 'gnd', 'vcc', 'trig' nessa ordem trabalhando da borda em direção ao centro. Você terá que cruzar alguns fios aqui para acertar. O fio de 'eco' com o resistor se conecta ao soquete do pino 3 fêmea.

Se quiser verificar o sensor antes de passar para a próxima etapa, você pode usar o primeiro esboço nesta página https://arduino-info.wikispaces.com/UltraSonicDistance para testá-lo. Você precisará da bateria conectada. Você pode ver a leitura de distância no monitor serial. Certifique-se de definir o 'trigger_pin' como 13 e o 'echo_pin' como 3 no esboço.

A melhor maneira de instalar o sensor no invólucro é com os pinos apontando para o topo e os fios dobrados e direcionados entre os 'olhos' do sensor e o invólucro.

Etapa 9: Programação - Código Walk_Avoid_Turn

Juntando tudo. Todas as peças são montadas. Estamos prontos para carregar o código completo, colocar o shell e vê-lo fazer seu trabalho.

Você conhece a rotina. Baixe o arquivo icbob_walk_avoid_turn.zip abaixo e descompacte para o diretório do Arduino. Abra o esboço no IDE do Arduino. Encontre a seguinte seção de código. Coloque as posições iniciais que você registrou para o seu bot no esboço.

// define os membros da matriz hm para as posições iniciais do seu robô

// eles podem ser encontrados usando o esboço icbob_home_calibration const int hm [4] = {95, 95, 85, 90}; // array para manter a posição inicial para cada servo RH, RA, LH, LA

Este esboço adiciona uma segunda matriz de movimento e um segundo conjunto de código de movimento lento para o movimento de 'volta'.

// encaminhar dados da matriz

const int fwdmvct = 6; // Faça este número igual ao número de linhas na matriz const int fwdmv [fwdmvct] [4] = {{0, -40, 0, -20}, // andar para frente mover quadros {30, -40, 30, -20}, {30, 0, 30, 0}, {0, 20, 0, 40}, {-30, 20, -30, 40}, {-30, 0, -30, 0},}; // transforma os dados do array const int trnmvct = 5; // Torne este número igual ao número de linhas na matriz const int trnmv [trnmvct] [4] = {{-40, 0, -20, 0}, // gire os quadros de movimento {-40, 30, -20, 30}, {0, 30, 0, 30}, {30, 0, 30, 0}, {0, 0, 0, 0},};

Adicionamos o código de detecção de obstáculos do sonar, bem como uma instrução 'if' 'else' para decidir se estamos indo em linha reta ou virando.

Montagem final e start-up

Deixe a bateria desconectada e carregue o esboço. Desconecte o cabo de programação. Certifique-se de que o botão liga / desliga do controlador esteja na posição "ligado" para baixo. Deslize cuidadosamente o invólucro na base com o cabo de alimentação USB enfiado no orifício superior. Coloque a bateria. Conecte-o. Seu ICBob deve começar a se mover e girar para evitar obstáculos com menos de 7 polegadas.

Etapa 10: Conclusão

Esperamos que você se divirta tanto construindo seu ICBob quanto nós construindo o nosso. Deixe-nos saber se você tiver alguma dúvida ou comentário. Se você construir um, informe-nos aqui ou no Thingiverse.

Recomendado: