Índice:

Raspberry Pi Cam Tank V1.0: 8 etapas (com imagens)
Raspberry Pi Cam Tank V1.0: 8 etapas (com imagens)

Vídeo: Raspberry Pi Cam Tank V1.0: 8 etapas (com imagens)

Vídeo: Raspberry Pi Cam Tank V1.0: 8 etapas (com imagens)
Vídeo: How to Setup a Raspberry PI 4 Camera and create a livestream with RTSP 2024, Novembro
Anonim
Image
Image
Raspberry Pi Cam Tank V1.0
Raspberry Pi Cam Tank V1.0

Eu amo tanques desde criança. Construir meu próprio brinquedo de tanque é sempre um dos meus sonhos. Mas devido à falta de conhecimentos e habilidades. O sonho é apenas um sonho.

Após anos de estudos em engenharia e desenho industrial. Adquiri habilidades e conhecimentos. E graças às impressoras 3D de hobby mais baratas. Posso finalmente dar o meu passo.

Quais recursos eu quero que este tanque tenha?

  • Controlado remotamente
  • Rodas ociosas com suspensão (como o tanque real!)
  • Tem uma torre giratória e uma arma de BB inclinada que pode disparar balas de 6 mm
  • Pode transmitir vídeo para o controlador para que você possa controlá-lo de longe

No começo eu planejava usar o arduino como controlador, mas depois de algumas pesquisas descobri que não há uma maneira prática de fazer stream de vídeo sozinho. No entanto, Raspberry Pi parece ser um bom candidato para streaming de vídeo. E você pode controlá-lo via esposa de seu telefone!

Vamos começar.

Etapa 1: peças necessárias

Para controlar

Raspberry Pi versão B

Hub USB motorizado (Belkin F4u040)

Webcam USB (Logitech C270)

Dongle wi-fi (Edimax)

Cabo de ligação fêmea para macho

Para dirigir

Dois servo ou motor contínuo de alto torque (para duas rodas motrizes)

Um cabo de aço de 1/8 para eixos de roda (comprado em casa e barato)

Dez mancais de deslizamento (encomendados no Mcmaster)

Algumas molas para suspensão (comprei uma variedade de molas na Harbor Freight, barato)

Para torre

Um brinquedo de arma automática BB

Um mini motor DC de alto torque

Um micro servo para inclinar para cima e para baixo

Algum aço de 1/4 montou como eixo da arma

Outras coisas

Eu imprimi em 3D a maioria das partes deste tanque, se você tiver fácil acesso a um cortador a laser, isso também funcionaria.

Usei filamento PLA para impressão porque é mais fácil de lidar (sem problemas de embalagem no ABS). Mas, muito difícil de lixar, cortar, furar depois.

Você pode pensar que a impressão 3D é boa para peças personalizadas e pode imprimir peças muito complicadas como uma única peça. Isso é verdade. No entanto, acho que essa maneira não é prática e econômica para um aquarista. As razões são:

Sua impressora de hobby não será tão precisa.

Você cometerá erros de medição e cálculos (tolerância, alinhamento, etc.).

De qualquer forma, há uma chance muito alta de que suas impressões não funcionem ou não caibam na primeira foto. É bom para uma peça pequena, você pode apenas alterar o modelo e depois reimprimir. Mas para uma parte maior e mais complicada, é frustrante saber que algo está errado depois de horas de impressão. É uma perda de tempo e material. Então aqui está minha abordagem:

Pois tudo é simétrico, imprima só a metade, experimente, se tudo funcionar bem imprima tudo.

Modelando a peça pensando na impressão 3D. Pode haver uma superfície plana para conectar a base da impressora? Ela pode ser dividida em pedaços menores para evitar uma grande estrutura de suporte?

Para peças com muitos recursos (interagindo com muitas outras peças), divida o modelo em módulos. Portanto, se um recurso falhar, você não precisará reimprimir a parte inteira. Basta ajustar o módulo e imprimi-lo novamente. Eu uso parafusos e porcas para conectá-los.

Seja um bom amigo com ferramentas manuais, serra manual, X-acto, furadeira, pistola de cola quente. Se você pode corrigir um erro de impressão, corrija-o.

Isso explica por que meu tanque tem tantas peças. Ainda estou aprimorando essas peças e, assim que encontrar uma boa combinação, posso imprimi-las juntas como uma peça. Então esse seria meu Cam Tank v2.0.

Etapa 2: o sistema de direção

Image
Image
O sistema de direção
O sistema de direção
O sistema de direção
O sistema de direção

Suspensão

No início, fiz um protótipo sem suspensão, apenas eixos no casco inferior com rolamentos e rodas. Mas pensando no conforto do operador (vou dirigi-lo assistindo ao vídeo em streaming!), Decidi adicionar suspensão para deixá-lo mais frio.

Tudo o que tenho são algumas molas helicoidais, sem hidráulica, sem mola de lâmina. Eu experimentei algum mecanismo de barra de torção com PLA no início. (A suspensão da barra de torção é comum em alguns tanques). Acontece que depois de algumas torções, a barra PLA impressa amolecia e eventualmente quebrava. O ABS pode ser melhor para esse propósito, mas nunca tentei. Então, depois de mais pesquisas, descobri o design da suspensão Christie, aqui está um pequeno vídeo que mostra como funciona.

No entanto, a suspensão christie tem muitas peças pequenas, e não confio na minha impressora. Então fiz uma suspensão como essa.

(imagem)

Esta configuração ocupa muito espaço interno. Então, giro o braço interno em 90 graus. Observe que a primeira e a última roda ficaram mais curtas

Tensor traseiro

Pensei que quando o tanque estivesse passando por cima de alguns obstáculos, as rodas ociosas poderiam se mover e a pista perderia a tensão. Então, acrescentei algum mecanismo tensor na roda traseira. Basicamente, são duas molas que empurram o eixo real o tempo todo, exercendo alguma força sobre ele para apertar os trilhos.

Rodas motrizes e pistas

Eu projetei este trilhos de lagarta e rodas motrizes em solidworks. Não sei muito sobre engenharia mecânica, portanto, não posso fazer o cálculo da engrenagem. Então, simulei peças em solidworks para ver se funciona antes de clicar no botão Imprimir. Cada trilha é conectada com algum filamento sobressalente de 3 mm. Funciona muito bem com um pouco de lixamento. Mas o projeto da pista tem uma falha, a superfície que toca o solo é muito lisa e difícil de segurar. Se eu imprimir de cabeça para baixo, posso adicionar um pouco de banda de rodagem, mas vai custar muito material de apoio por causa do dente. Soluções futuras: 1: imprima o dente separadamente e depois cole-os. 2. Aplique um pouco de tinta spray de revestimento de borracha.

Em seguida, imprimi a caixa dos servos e certifique-se de que a roda motriz pode ser fixada ao braço do servo com parafusos.

Etapa 3: sistema de armas

Image
Image
Sistema de Arma
Sistema de Arma
Sistema de Arma
Sistema de Arma

Esta parte é a mais emocionante para mim. Você pode comprar um brinquedo do tanque da câmera. Mas eu não encontrei uma câmera combinada de brinquedo e alguma arma.

Eu comprei este brinquedo de arma automática de airsoft por US $ 9,99 à venda. (Custa cerca de 20 dólares agora e posso tentar algo mais barato mais tarde) E destrua-o para entender o mecanismo. Posso cortar totalmente o corpo e colá-lo no meu tanque. Mas eu não gosto do meio corpo de aparência feia. Então fiz algumas medições e remodelei a parte mecânica. Com essas peças aprendi uma lição de impressão 3D: você sempre errará. São necessárias 5 estampas para fazer com que todas as peças se encaixem e muito corte, lixamento e colagem a quente para que funcione perfeitamente.

Depois que cada parte da arma de brinquedo se moveu corretamente em meu corpo replicado, imprimi quatro outras partes para prender o corpo. E acrescentou a engrenagem de inclinação, funil de bala BB e suporte para câmera. Essas peças são todas aparafusadas no corpo da arma. Eventualmente, eles podem ser combinados em pelo menos duas partes. Mas acho que ainda não estou pronto.

Na base da torre, adicionei um micro servo, para inclinação, e um micro motor DC para rotação.

Aí comecei a testar a arma, conectar 4 pilhas AA e ela atira bem. Fiquei muito feliz por ter funcionado bem. Mas no dia seguinte encontrei um problema.

Aqui está o vídeo do meu teste de arma. a torre foi conectada a um adaptador 3v.

Etapa 4: configurar o Pi

Esta é a parte mais importante, o coração do nosso aquário - Raspberry Pi!

Se você ainda não jogou Raspberry Pi. Eu recomendo começar com este livro: Getting started with raspberry pi by MAKE. Você pode obter o básico e uma compreensão abrangente do Pi.

Obtenha o SO raspbian mais recente.

A próxima ferramenta que recomendo muito é a Área de Trabalho Remota. Aqui está o tutorial de Adam Riley. Depois de configurar, você pode visualizar a área de trabalho do Pi no seu PC (não testado no Mac). Assim, para rodar o Pi "nu", não há necessidade de display, mouse e teclado. Alguns dos meus amigos estão usando a linha de comando ssh. Mas eu prefiro o desktop.

Com base em pesquisas anteriores, eu sabia que o Raspberry Pi é capaz de transmitir vídeo. Então comecei a mexer com diferentes aplicativos no Pi. Muitos dos aplicativos têm um longo atraso (segundos) ou uma baixa taxa de quadros. Depois de algumas semanas vagando por vídeos e tutoriais online, felizmente encontrei a solução. Um vídeo no youtube sobre o webiopi me deu muitas esperanças. Mais pesquisas me fizeram acreditar que esse é o caminho certo a seguir.

Webiopi é um framework que torna a conexão do Pi com outro dispositivo de internet muito fácil. Ele controla todos os Pi GPIOS e, em seguida, inicia um servidor que contém html personalizado. Você pode obter acesso a este html de outros dispositivos (computador, smartphone, etc), e clicar em um botão no navegador à distância wi-fi, um GPIO é acionado.

O vídeo me deixou cheio de esperança, é baseado em um tutorial webiopi - projeto cambot. É apresentado no MagPi magzine # 9 [html] [pdf] e # 10 [html] [pdf]. Obrigado Eric PTAK!

Seguindo o tutorial passo a passo, você pode fazer um cambot de duas rodas! Funciona assim: conecte dois motores com uma ponte H e, em seguida, controle a ponte H com 6 pinos GPIO para controlar a direção e a velocidade. Webiopi é usado para controlar os GPIOs. E MJPG-streamer é usado para streaming de vídeo.

Se você é novo no Pi ou no Linux como eu era meses atrás, pode ter um pequeno problema depois de seguir todos os passos. Você pode executar o código python para webiopi e o streaming de vídeo separadamente, mas não sabe como executá-los juntos? Demorei um pouco para saber que você pode adicionar um & após um comando (& é realmente difícil de pesquisar no google, BTW), o que significa que você deseja que esse comando seja executado em segundo plano. Então, farei isso todas as vezes:

sudo python cambot.py &

sudo./stream.sh

Acredito que você crie um arquivo bash contendo o comando acima em um arquivo e execute uma vez. Ainda não tentei.

Tentei esta configuração básica com dois motores CC, funciona, mas o motor que tenho não é potente o suficiente. Leva-me a outra opção: servos contínuos.

Uma nova questão surge então: o webiopi é compatível com servos controlados por PWM?

A resposta é sim, mas não por si só: RPIO é necessário para gerar software PWM

Instalação RPIO (não tenho sorte no primeiro método apt-get install. O método github funciona muito bem para mim)

Código de amostra e outras discussões

Agora seu bot foi atualizado com dois servos! Pense no que você pode fazer com os braços extras!

Modifiquei o código de amostra acima para caber no meu tanque. Você não precisa de um diploma de ciência da computação para fazer isso. Você estará bem, contanto que possa entender o código de amostra e saber o que copiar e onde alterar.

Etapa 5: Conexão Eletrônica

Conexão Eletrônica
Conexão Eletrônica
Conexão Eletrônica
Conexão Eletrônica
Conexão Eletrônica
Conexão Eletrônica

O banco de energia que comprei, Anker Astro Pro, tem duas portas USB e uma porta 9v (principal razão pela qual comprei este). Tentei ligar o Pi, dongle wi-fi e webcam com uma porta USB. Não inicializa. Então, usei a outra porta USB para um hub USB alimentado.

Então pensei que talvez pudesse alimentar os servos com a porta do hub USB. Funciona, mas a conexão wi-fi é muito instável.

Para resolver este problema, trouxe 4 baterias AA para alimentar as necessidades do servo de 6V. Eu listrei o cabo USB para expor o fio terra (preto) e conectei com o aterramento do pacote de bateria AA.

3 servos, vermelho para 6V, preto para aterramento e pino de sinal conectado aos pinos GPIO.

Conforme planejado, o motor de rotação da torre e o motor da pistola também devem ser alimentados por 6 V com um controle H-bridge. Mas quando eu conectei tudo, a arma não dispara! Parece que o motor está tentando girar, mas não consegue acionar as engrenagens. A tensão de saída está correta, mas parece que não há corrente suficiente para conduzir. Eu também tentei o MOSFET sem sorte.

Eu tenho que desistir dessa parte por motivos de tempo. E é por isso que no teste da arma eu tenho que conectar o motor da arma ao adaptador manualmente. Ainda há muito a aprender em eletrônica. Na pior das hipóteses, eu sempre poderia controlar a arma com um servo puxar e soltar o gatilho.

Etapa 6: Interface

Image
Image
Interface
Interface
Interface
Interface

Eu também alterei as interfaces dos códigos de amostra cambot e rasprover. Como planejei usar o smartphone como controlador, otimizei o layout do meu telefone (galaxy note3).

A maioria dos layouts e estilos podem ser editados em index.html. No entanto, o estilo do botão padrão (cinza escuro com borda preta) é definido no webiopi.css localizado em / usr / share / webiopi / htdocs. Usei o terminal para executar o sudo nano para modificá-lo.

O stream de vídeo está localizado no centro da tela, o controle de direção no lado esquerdo e o controle de arma no lado direito. Eu projetei o controle de direção como dois conjuntos de para cima (para frente), pare e para baixo (para trás) querendo um controle mais preciso, mas no vídeo você pode dizer que às vezes é estranho.

Etapa 7: Plano Futuro

Como você pode ver, este projeto ainda não terminou. Graças ao concurso de pi de framboesa, eu aumentei muito na semana passada, apenas tentando terminá-lo antes do prazo. Aconteceu muito bem até que descobri que a arma não estava disparando …

Tem muito mais a ser melhorado, mas espero que você possa aprender algo com minha experiência.

Plano de Curto Prazo:

Faça a arma funcionar !!!

Recipiente maior para mais BB

O tanque precisa explorar o mundo - saia do lado de fora de casa wi-fi!

Configure o nó ad-hoc no Pi, para que o telefone possa se conectar a ele em qualquer lugar

Execute o comando do tanque na inicialização

Adicione um botão de desligar para desligar o Pi com segurança.

Plano de longo prazo:

Melhor sistema de direção para estabilidade e aderência

Projetar minha própria placa de circuito em vez de uma placa de ensaio agora

Gravação de vídeo em primeira pessoa

Outra arma? Vamos torná-lo um navio de batalha!

Adicionar sensores para patrulhamento automático?

Visão computacional para segmentação automática!

Controle o tanque de longe: vou ver tudo em casa!

Etapa 8: Obrigado pela leitura

Obrigado por ler meu pobre inglês (não é minha primeira língua). Espero que você tenha se divertido ou aprendido algo aqui. Este será um projeto em andamento, portanto, se você tiver experiência em qualquer área, agradeço seu conselho.

Se você tiver alguma dúvida, por favor deixe um comentário, eu tentarei o meu melhor para responder.

Deixe-me fazer uma atualização - The Cam Tank2.0 - em um futuro próximo.

Por fim, aqui está um vídeo mostrando o cenário da batalha. É muito divertido.

Aproveite e até a próxima!

Recomendado: