Índice:

Micro educacional DIY: robô de bits: 8 etapas (com imagens)
Micro educacional DIY: robô de bits: 8 etapas (com imagens)

Vídeo: Micro educacional DIY: robô de bits: 8 etapas (com imagens)

Vídeo: Micro educacional DIY: robô de bits: 8 etapas (com imagens)
Vídeo: Introduction to the micro:bit V2 2024, Novembro
Anonim
DIY Educacional Micro: bit Robot
DIY Educacional Micro: bit Robot
DIY Educacional Micro: bit Robot
DIY Educacional Micro: bit Robot

Este instrutível mostrará como construir um robô relativamente acessível, capaz e barato. Meu objetivo ao projetar este robô era propor algo que a maioria das pessoas pudesse pagar, para ensinar ciência da computação de uma forma envolvente ou aprender sobre ela.

Depois de construir este robô, você pode desfrutar de sua variedade de sensores e atuadores para fazer coisas básicas, mas também bastante avançadas, dependendo da versão que você construir (irei fornecer duas versões). Com este robô você está dando olhos (visão de 180 °!) E pernas (com movimentos precisos possíveis!) Para o micro: bit enquanto o micro: bit oferece ótimos recursos como a matriz de LED, a comunicação de rádio, comunicação bluetooth, acelerômetro, compas, mas também acesso a todas essas coisas com MicroPython ou com uma linguagem de programação visual semelhante ao scratch (na verdade, também em C ++ e javascript, mas acho esses menos adequados para a educação).

Também irei trabalhar neste instrutível para que possa definir os leitores e fabricantes no caminho certo para descobrir mais sobre robótica móvel, eletrônica, design e corte de madeira. Para isso, projetei tudo para ser o mais modular possível. Por exemplo, não vou usar nenhuma cola para permitir montar e desmontar livremente, tornando as atualizações e também a depuração mais fáceis. Também farei as etapas o mais incrementais possível, para que você possa entender progressivamente o que está acontecendo, verificar se as coisas estão funcionando como deveriam e chegar ao fim com um robô que funcione.

Etapa 1: reunindo as peças

Juntando as peças
Juntando as peças

Para este projeto, o mínimo necessário é:

  • Madeira MDF de 5 mm de espessura e um cortador a laser para o esqueleto
  • 1 bateria de lítio 18650, 1 bateria de proteção para energia e um interruptor
  • 1x Micro: placa de bits e 1x Micro: placa de extensão de bits para o cérebro (embora ambas possam ser substituídas facilmente por um Arduino)
  • 2x28BYJ-5V motores de passo, 2xA4988 drivers de motor de passo e 2x placa de desenvolvimento para montar os drivers para as pernas
  • 1x TOF10120 e 1x servo motor Mini 9g para os olhos Alguns cabos e parafusos
  • 1x roda universal, altura = 15 mm

Entre eles, apenas três partes não são padrões, portanto, aqui estão os links para encontrá-los: encontre a placa de extensão que usei aqui (mas eu recomendo que você use esta para a versão legal do robô. Você terá que mude quase nada no design e tornará a fiação muito mais simples com os conectores dobrar fêmea-fêmea), a blindagem da bateria aqui e a roda universal aqui.

Idealmente, você também terá à sua disposição:

  • Um multímetro
  • Uma placa de ensaio
  • Um ferro de solda

Para aqueles, assim como para o cortador a laser, verifique se você tem algum fablab em torno de sua casa! Esses são ótimos lugares para conhecer alguns criadores inspiradores!

Etapa 2: Preparando as pernas

Preparando as pernas
Preparando as pernas
Preparando as pernas
Preparando as pernas
Preparando as pernas
Preparando as pernas
Preparando as pernas
Preparando as pernas

Sua primeira missão, se você aceitar, será fazer nosso motor de passo girar usando o micro: bit como um controlador! Por que um motor de passo? Eu poderia ter optado por um motor DC com redutores, mas tentei e acho difícil fazer motores baratos funcionarem em baixa velocidade. Também pensei que seria bom saber precisamente a que velocidade minhas rodas estão girando. Por essas razões, os motores de passo eram a melhor opção.

Então agora, como controlar um motor 28BYJ usando um driver 4988? A resposta é … um pouco longa. Não consegui encaixar perfeitamente neste instrutível, então fiz outro apenas para esse fim que você encontrará aqui. Convido você a seguir esses passos até o final com a criação de uma pequena placa de prototipagem 26x22mm grande com 2x2mm orifícios 17mm aparte para montá-la nas laterais como mostrado na imagem acima (Observe que conforme indicado no artigo referenciado o fio amarelo à esquerda, destacando-se apenas para lembrá-lo de soldar SLP e RST juntos).

Depois de fazer isso funcionar com um motor com a placa de prototipagem, também projetei minha própria placa de circuito impresso para deixar as coisas um pouco mais organizadas. Anexei o arquivo easyEDA correspondente. É um arquivo txt, mas você ainda pode abri-lo com a plataforma de edição online gratuita easyEDA.

Etapa 3: Eu vejo a luz !! (Opcional)

Eu vejo a luz !! (Opcional)
Eu vejo a luz !! (Opcional)
Eu vejo a luz !! (Opcional)
Eu vejo a luz !! (Opcional)
Eu vejo a luz !! (Opcional)
Eu vejo a luz !! (Opcional)

Se você deseja apenas construir e nada mais, pule para o anterior ao último parágrafo desta etapa para ver como conectar um TOF10120 ao micro: bit. Se não seguir em frente.

Como o nosso micro: bit não vem com nenhuma câmera ou sensor de proximidade, ele fica meio cego para qualquer aplicação de robótica móvel. Ele vem com um emissor e receptor de rádio que nos permitiria construir o esqueleto sobre o que já temos e obter um robô controlado remotamente. Mas não seria ótimo tornar nosso robô autônomo? Sim, seria! Então, vamos ver como chegar lá.

O que nos interessa agora é equipar nosso robô com sensores, para que nosso robô adquira algumas informações sobre seu ambiente. Existem muitos tipos de sensores disponíveis, mas aqui vamos nos concentrar no sensor de proximidade. Quando estava projetando este robô, meu objetivo era principalmente que o robô não colidisse com nada, portanto, queria que ele detectasse os obstáculos. Para isso, também existem algumas opções. Uma primeira, muito simples, poderia ser o uso de pára-choques, mas acho as informações sobre o ambiente um pouco limitadas. Por outro lado, você pode pensar em adicionar uma câmera (ou um Lidar ou um kinect!). Eu adoro câmeras, visão computacional e todas essas coisas, mas infelizmente Micro: bit não oferece suporte (teríamos que usar um Raspberry Pi para suportar tais dispositivos, não um micro: bit ou Arduino).

Então, o que o micro: bit suporta que está entre a câmera e os pára-choques? São pequenos sensores ativos que enviam luz ao ambiente e verificam o que é recebido para obter algumas informações sobre o mundo. O que eu já conhecia era o GP2Y0A41SK0F que usa um método de triangulação para estimar a distância até os obstáculos. Porém me perguntei se poderia encontrar algo melhor, então fiz algumas pesquisas e acabei descobrindo o TOF10120 (e a GY-VL53L0XV2 mas ainda não recebi:(). Aqui está um bom artigo para você descobrir. Basicamente, esse sensor emite um sinal infravermelho que reflete nos obstáculos e, em seguida, recebe a luz refletida. Dependendo do tempo que a luz leva para ir e vir, o sensor pode estimar a distância do obstáculo (daí o nome TOF = tempo de vôo). Por seu pequeno tamanho, alcance de distância e necessidade de potência, decidi usar o TOF10120.

Enquanto minha primeira ideia era colocar três desses no robô (um na frente e dois nas laterais), o ano novo chinês e a pandemia de COVID-19 não queriam assim, pois parecia causar problemas com os embarques. Então, como estava limitado a um TOF10120, que também queria ver nas laterais e que tinha alguns servo motores espalhados, resolvi montar meu sensor em um servo. Então, faltam duas coisas: como faço para usar o TOF10120 com o micro: bit? E a mesma pergunta com o servo.

Felizmente o micro: bit está equipado com protocolo de comunicação I2C e facilita muito a nossa vida: ligue o fio vermelho a 3,3V, o preto à terra, o verde ao SCL e o azul ao SDA e pronto para o hardware. Para o software, encorajo você a ler um pouco sobre a comunicação I2C e experimentar o código Python que anexei no micro: bit. Esse programa deve imprimir a distância medida pelo sensor no REPL (Read Evaluate Print Loop). É isso. Acabamos de dar uma olhada no nosso micro: bit.

Agora vamos fazê-lo virar o pescoço, se me permitem continuar minhas analogias com a anatomia animal. A única coisa que precisamos para isso é acionar um servo motor com o micro: bit. Esta parte está ficando longa, então irei apenas fornecer este link que contém todas as informações de que você precisa e o código que usei para testá-lo. Se quiser, também adicionei um código simples para controlar o servo usando pin0. Só não se esqueça de alimentar seu servo com 5V e não 3,3V.

Etapa 4: hackear o escudo da bateria

Hacking the Battery Shield
Hacking the Battery Shield
Hacking the Battery Shield
Hacking the Battery Shield
Hacking the Battery Shield
Hacking the Battery Shield

Agora que temos nossos atuadores e sensores prontos, é hora de dar uma olhada no sistema de gerenciamento de bateria. Para você saber mais sobre a proteção da bateria que escolhi, recomendo a leitura deste artigo. Acho muito claro e acessível. Neste artigo, podemos ver muitas vantagens dessa proteção de bateria, mas há uma desvantagem importante que eu não queria aceitar: o botão liga / desliga afeta apenas a saída USB. Isso significa que se você desligar o interruptor, todos os outros pinos de 3,3 V e 5 V serão energizados. Como resultado, como estamos usando esses pinos para o nosso robô, a mudança não fará nada …

Mas eu quero ser capaz de desligar meu robô para não esvaziar minha bateria à toa, então tive que hackear a proteção da bateria. Não vai ser bonito, mas funciona e não custa nada. Portanto, eu quero que um interruptor abra ou feche o circuito de forma que isole a célula da minha bateria da blindagem da bateria. Não tenho equipamento para tocar no PCB, mas tenho pedaços de plástico por toda parte. Agora imagine que cortei um pedaço de plástico para que ele possa caber em uma das extremidades da célula da bateria no escudo, como na primeira imagem acima. O circuito agora está aberto e minha bateria está armazenada com segurança.

Sim, mas não quero ter que abrir o robô para acessar a blindagem da bateria para colocar e retirar este pedaço de plástico! Fácil: pegue um switch e prenda dois quadradinhos de alumínio em cada um dos fios conectados ao switch. Agora prenda essas duas peças de alumínio à peça de plástico para que as duas peças de alumínio sejam isoladas uma da outra e para que o alumínio fique exposto do lado de fora do sistema. Normalmente, isso deve servir. Insira sua nova criação na proteção da bateria ao lado da célula, e a chave deve permitir que você abra ou feche o circuito conectado à célula.

Uma última coisa: para facilitar a montagem e desmontagem do robô, aconselho a soldar conectores fêmeas na blindagem da bateria. Dessa forma, você pode facilmente conectar e desconectar o que construir com os motores e seus drivers.

Etapa 5: Design e corte 3D

Desenho e corte 3D
Desenho e corte 3D
Desenho e corte 3D
Desenho e corte 3D

A única coisa que falta agora é construir a estrutura que manterá todos os nossos componentes juntos. Para isso usei a plataforma online tinkercad. Este é um ambiente muito bom para fazer um CAD básico, que geralmente é o suficiente para projetar coisas para o cortador a laser.

Depois de algum tempo pensando, era hora de mexer. Para fazer isso, comecei a montar modelos 3D das diferentes partes que tinha (primeiro mantendo o servo e o TOF fora da equação). Isso inclui a bateria e o escudo, os motores de passo e os drivers do motor e, claro, o micro: bit com sua placa de extensão. Anexei todos os modelos 3D correspondentes como arquivos stl. Para facilitar o processo, decidi deixar meu robô simétrico. Como resultado, mexi em apenas metade do robô e cheguei ao design mostrado na imagem acima.

Disto surgiram algumas versões, das quais selecionei duas:

  • Um bem arrumado, sem o sensor de proximidade, o que permite não ter nenhum fio aparecendo. Embora não seja autônoma, esta versão ainda pode ser programada via bluetooth através de um iPad, por exemplo, ou pode ser programada para ser controlada por meio de sinais de rádio que podem, por exemplo, ser enviados por outro micro: bit conforme mostrado no vídeo acima.
  • Um muito menos arrumado que permite ir muito mais longe na robótica móvel, pois permite captar a distância do obstáculo com uma visão de 180 ° graças ao sensor de proximidade construído sobre um servo motor.

Para montar isso, vá ao seu Fablab favorito e use o cortador a laser que você encontrar para cortar o modelo de sua preferência: o primeiro correspondente aos arquivos design1_5mmMDF.svg e design1_3mmMDF que correspondem respectivamente às peças a cortar no MDF de 5 mm madeira e as para cortar a partir de 3mm; o segundo corresponde ao arquivo design2_5mmMDF.svg. Defina os contornos pretos a serem cortados e os vermelhos a serem gravados.

Nota lateral: adicionei o padrão vermelho apenas para aumentá-lo. Esta é uma função de preenchimento Hilbert que gerei usando o código Python anexado.

Etapa 6: Montando a Besta

Montando a Besta
Montando a Besta
Montando a Besta
Montando a Besta
Montando a Besta
Montando a Besta

As etapas que segui para montar a primeira versão do robô são as seguintes (as imagens normalmente devem estar na ordem certa):

  1. Remova a tampa azul dos motores e corte-a um pouco para fazer o cabo sair da parte de trás do motor.
  2. Monte os motores em cada lado usando parafusos M2 e parafusos.
  3. Monte a placa de prototipagem nas laterais usando os orifícios 2x2mm e alguns parafusos e parafusos.
  4. Coloque os drivers do A4988 e prenda os cabos do motor para mantê-lo organizado.
  5. Monte a roda universal sob a parte inferior e adicione as laterais.
  6. Monte a placa de extensão do micro: bit na parte superior.
  7. Monte a parte inferior da tampa frontal flexível.
  8. Coloque a blindagem da bateria e conecte tudo (para isso, pois ainda estava esperando a entrega da placa de extensão que queria e que só tinha uma com conectores fêmeas para fora, reciclei um cabo IDE de um computador antigo para conseguir não ter meus cabos espetados na placa para cobrir tudo isso com a tampa frontal dobrável). Embora o código que forneci seja muito fácil de adaptar, para usá-lo diretamente, você precisará conectar o STEP esquerdo ao pino 2, o STEP direito ao pino 8, DIR esquerdo ao pino 12, DIR direito ao pino 1.
  9. Coloque o micro: bit na extensão.
  10. Teste se tudo está funcionando com MoveTest.py antes de prosseguir.
  11. Monte o interruptor na parte superior e coloque a broca de plástico ao lado da célula de lítio.
  12. Aparafuse a parte superior da tampa frontal.
  13. Monte a parte traseira e pronto! Ufa! Não esperava tantos passos! É muito mais fácil pensar e fazer do que explicar em palavras! (E tenho certeza de que ainda faltam informações!)

Se você estiver construindo a segunda versão com o sensor de proximidade, então:

  1. Siga as instruções acima. A única diferença será que você terá que adicionar alguns espaçadores M2 na etapa 7 (embora tenha sido isso que eu fiz, mas não é obrigatório), ignore as etapas 8 e 13 (já que não há capa frontal)
  2. Monte o servo motor com parafusos M2 e conecte o VCC e o GND do servo diretamente nos 5V da blindagem da bateria, e conecte a entrada de controle ao pino 0 do micro: bit.
  3. Monte os dois pedaços de madeira que irão em cima do servo com um parafuso, aparafuse o sensor TOF neste assim como o pedaço de plástico branco que vem com o servo.
  4. Monte esta última unidade no servo e conecte o sensor usando I2C de micro: bit conforme descrito na etapa 3.

Etapa 7: Programa

É isso ! Você tem um robô que pode programar em micro: python ou em makecode. Anexei aqui alguns exemplos de código que usei para fazer os vídeos acima:

  • Exemplo 1: Coloque radioControl.py no micro: bit do robô e ReadAccelero.py em outro micro: bit para controlar o robô usando a inclinação do segundo micro: bit.
  • Exemplo 2: Coloque Autonomous.py na versão 2 do robô que irá explorar o ambiente.

Esses são apenas exemplos básicos que você pode usar para ir muito, muito mais longe. Por exemplo, eu gosto bastante de localização e mapeamento simultâneos, e normalmente há tudo que você precisa na versão 2 deste robô para fazer isso! Embora uma grande desvantagem para mim em fazer tal projeto é que o driver micro: bit PWM é um driver de software que usa o mesmo temporizador para todos os canais, o que significa que todos os PWMs que configuramos devem ter a mesma frequência (que é algo que eu fiz não sei quando escrevi os códigos de amostra, embora tenha detectado algo estranho quando escrevi Autonomous.py).

Etapa 8: indo além

Não hesite em melhorar o design, resolver alguns problemas que não encontrei. Por exemplo, eu gostaria de, eventualmente:

  • Adicione um sensor infravermelho na parte inferior do robô para que ele detecte se o chão é preto ou branco ou se está chegando ao fim da minha mesa.
  • Mude o sistema de gerenciamento de bateria, pois ainda não estou satisfeito com ele. De fato, no momento, para recarregar a bateria, é necessário desmontar o robô para retirar a célula ou a proteção da bateria … Portanto, estou planejando: 1. adicionar um conector mini-USB na parte traseira do robô que eu vou conectar à blindagem da bateria, para que eu possa recarregá-la; 2. Faça um orifício na parte inferior para ver os LEDs da proteção da bateria para ver quando o carregamento acabou.
  • Verifique se há uma maneira aceitável de gerar PWMs com frequências diferentes.
  • Experimente o VL53L0XV2 para substituir o TOF10120, pois pode ser uma opção mais barata que o tornaria acessível a ainda mais pessoas. Embora eu tenha lido mais sobre esse sensor e pareça que a empresa que o fez barato tornou muito difícil de lidar com ele de propósito …
  • Teste diferentes designs para as rodas para torná-las mais duráveis (neste momento, eu espero que se eu colocar e retirar as rodas várias vezes, a madeira será progressivamente danificada. Se eu tornar a madeira mais elástica, modificando o design, eu posso ser capaz de fazer durar mais)

Um grande agradecimento ao pessoal da equipe de robótica móvel (agora parte do laboratório de Biorobótica) da EPFL que me ajudaram a expandir muito meus conhecimentos em eletrônica e mecânica!

Recomendado: