Índice:

Processador Raspberry PI Vision (SpartaCam): 8 etapas (com imagens)
Processador Raspberry PI Vision (SpartaCam): 8 etapas (com imagens)

Vídeo: Processador Raspberry PI Vision (SpartaCam): 8 etapas (com imagens)

Vídeo: Processador Raspberry PI Vision (SpartaCam): 8 etapas (com imagens)
Vídeo: Raspberry Pi High Quality Camera Getting Started Guide - First Pictures and Videos 2024, Julho
Anonim
Processador Raspberry PI Vision (SpartaCam)
Processador Raspberry PI Vision (SpartaCam)
Processador Raspberry PI Vision (SpartaCam)
Processador Raspberry PI Vision (SpartaCam)

Um sistema de processador de visão Raspberry PI para o seu robô FIRST Robotics Competition

Sobre FIRST

Da Wikipedia, a enciclopédia gratuita

A FIRST Robotics Competition (FRC) é uma competição internacional de robótica para escolas de ensino médio. A cada ano, equipes de estudantes do ensino médio, treinadores e mentores trabalham durante um período de seis semanas para construir robôs para jogos que pesam até 120 libras (54 kg). Os robôs realizam tarefas como marcar bolas em gols, discos voadores em gols, tubos internos em racks, pendurar em barras e equilibrar robôs em vigas de equilíbrio. O jogo, junto com o conjunto necessário de tarefas, muda anualmente. Embora as equipes recebam um conjunto padrão de peças, elas também têm um orçamento e são incentivadas a comprar ou fabricar peças especializadas.

Jogo deste ano (2020) RECARGA INFINITA. O jogo Infinite Recharge envolve duas alianças de três equipes cada, com cada equipe controlando um robô e realizando tarefas específicas em um campo para marcar pontos. O jogo gira em torno de um tema de cidade futurista envolvendo duas alianças compostas por três equipes, cada uma competindo para realizar várias tarefas, incluindo atirar bolas de espuma conhecidas como células de energia em objetivos altos e baixos para ativar um gerador de escudo, manipulando um painel de controle para ativar esse escudo, e retornar ao Shield Generator para estacionar ou escalar no final da partida. O objetivo é energizar e ativar o escudo antes que a partida termine e os asteróides atinjam FIRST City, uma cidade futurística inspirada em Star Wars.

O que o sistema de processador de visão Raspberry PI faz?

A câmera será capaz de escanear o campo de jogo e locais de destino onde as peças do jogo são fornecidas ou precisam ser colocadas para pontuação. O conjunto possui 2 conexões, alimentação e Ethernet.

Os alvos de visão no campo de jogo são delineados com fita retrorrefletiva e a luz será refletida de volta para a lente da câmera. O Pi executando o código-fonte aberto do Chameleon Vision (https://chameleon-vision.readthedocs.io/en/latest/…) irá processar a visualização, destacá-la, adicionar sobreposições de imagem e saída de pitch, yaw, contorno e posição como valores de matriz ordenados por xey em metros e ângulo em graus junto com outros dados por meio de uma tabela de rede. Essas informações serão utilizadas em um software para controlar nosso robô em modo autônomo, bem como mirar e disparar nosso atirador com torres. Outras plataformas de software podem ser executadas no Pi. A visão FRC pode ser instalada se sua equipe já investiu tempo de software nessa plataforma.

Nosso orçamento estava apertado este ano e comprar uma câmera Limelight $ 399,00 (https://www.wcproducts.com/wcp-015) não estava nos cartões. Terceirizando todos os suprimentos da Amazon e usando a impressora 3D Team 3512 Spartatroniks, consegui empacotar um sistema de visão personalizado por $ 150,00. Alguns itens vieram em massa, a construção de um segundo coprocessador exigiria apenas outro Raspberry Pi, câmera PI e ventilador. Com a ajuda do CAD de um dos mentores da equipe (obrigado Matt), o gabinete PI foi criado usando o Fusion 360.

Por que não usar um Pi com caixa barata, conectar uma câmera USB, adicionar um anel de luz, instalar o Chameleon Vision e pronto, certo? Bem, eu queria mais potência e menos cabos e o fator de frieza de um sistema personalizado.

Um Pi 4 usa 3 amperes se estiver funcionando a todo vapor, isto é, se estiver usando a maioria de suas portas, e wi-fi e rodando um display. Não estamos fazendo isso em nossos robôs, mas as portas USB no roboRIO https://www.ni.com/en-us/support/model.roborio.ht… são classificadas em 900 ma, o regulador de tensão modual (VRM) 5 volts fornece até 2 amps de pico, limite de 1,5 amps, mas é um conector compartilhado, portanto, se outro dispositivo estiver no barramento de 5 volts, existe a possibilidade de uma queda de energia. O VRM também fornece 12 volts a 2 amperes, mas usamos ambas as conexões para alimentar nosso rádio usando um cabo POE e uma conexão de barril para redundância. Alguns inspetores FRC não permitirão que nada além do que está impresso no VRM seja conectado a ele. Portanto, 12 volts do PDP em um disjuntor de 5 A é onde o Pi precisa ser alimentado.

12 volts são fornecidos através de um disjuntor de 5 A no painel de distribuição de energia (PDP), são convertidos em 5,15 volts usando um conversor LM2596 DC para DC Buck. O conversor Buck fornece 5 volts a 3 amperes e permanece regulado até a entrada de 6,5 volts. Este barramento de 5 volts fornece energia para 3 subsistemas, array de anéis de LED, Fan, Raspberry Pi.

Suprimentos

  • 6 Pack LM2596 DC para DC Buck Converter 3.0-40V para 1.5-35V Módulo Abaixador da Fonte de Alimentação (6 Pack) $ 11,25
  • Noctua NF-A4x10 5V, ventilador silencioso premium, 3 pinos, versão 5V (40x10mm, marrom) $ 13,95
  • Cartão SanDisk Ultra 32GB microSDHC UHS-I com adaptador - 98 MB / s U1 A1 - SDSQUAR-032G-GN6MA $ 7,99
  • Módulo de câmera Raspberry Pi V2-8 Megapixel, 1080p 428.20
  • Dissipador GeeekPi Raspberry Pi 4, 20 PCS Dissipadores de calor de alumínio Raspberry Pi com fita adesiva térmica condutiva para Raspberry Pi 4 Modelo B (placa Raspberry Pi não incluída) $ 7,99
  • Raspberry Pi 4 Modelo B 2019 Quad Core 64 bits WiFi Bluetooth (4 GB) $ 61,96
  • (Pacote de 200 peças) 2N2222 Transistor, 2N2222 a-92 Transistor NPN 40V 600mA 300MHz 625mW Através do orifício 2N2222A $ 6,79
  • EDGELEC 100pcs 100 ohm Resistor 1 / 4w (0,25 Watt) ± 1% Tolerância Resistor fixo de filme de metal $ 5,69 https://smile.amazon.com/gp/product/B07QKDSCSM/re… Waycreat 100PCS 5mm LED verde LEDs de emissão clara para Lâmpadas de lâmpada de iluminação superbrilhante de alta intensidade Componentes eletrônicos Diodos de lâmpadas $ 6,30
  • J-B Weld Plastic Bonder $ 5,77

Etapa 1: Protótipo 1

Protótipo 1
Protótipo 1

Primeiro teste na embalagem:

A equipe tinha um Pi 3 de um ano anterior que estava disponível para teste. Uma câmera pi, um circuito DC-DC buck / boost e um anel de luz Andymark foram adicionados.https://www.andymark.com/products/led-ring-green.

Naquela época, eu não havia considerado o Pi 4, então não estava preocupado com as necessidades de energia. A alimentação foi fornecida via USB pelo roboRIO. A câmera se encaixa na caixa sem modificação. A luz do anel foi colada a quente na tampa da caixa e ligada à placa de reforço. A placa de reforço conectada às portas GPIO 2 e 6 para 5 volts e a saída foi ajustada para até 12 volts para operar o anel. Não havia espaço dentro da caixa para a placa de reforço, então ela também estava colada a quente do lado de fora. O software foi instalado e testado usando alvos do ano do jogo 2019. A equipe de software deu um sinal de positivo, então pedimos um Pi 4, dissipadores de calor e um ventilador. E enquanto eles continuavam lá, o gabinete foi projetado e impresso em 3D.

Etapa 2: Protótipo 2

Protótipo 2
Protótipo 2
Protótipo 2
Protótipo 2
Protótipo 2
Protótipo 2

As dimensões internas do gabinete estavam corretas, mas as localizações das portas estavam deslocadas, o que não impedia a exibição.

Isso foi concluído logo após a revelação do novo jogo, para que o software pudesse testar os novos locais de destino.

Boas e más notícias. A saída de luz do anel não era adequada quando estávamos a mais de 15 pés do alvo, então é hora de repensar a iluminação. Uma vez que mudanças foram necessárias, considero esta unidade como o protótipo 2.

Etapa 3: Protótipo 3

Protótipo 3
Protótipo 3
Protótipo 3
Protótipo 3

O Protótipo 2 foi deixado junto para que o software pudesse continuar a refinar seu sistema. Enquanto isso, outro Pi 3 foi encontrado e eu montei outra bancada de teste. Ele tinha um Pi3, um lifecam 3000 USB diretamente soldado à placa, um conversor boost e um conjunto de diodos soldados à mão.

Mais uma vez, boas notícias, más notícias. O array poderia iluminar um alvo a mais de 15 metros de distância, mas perderia o alvo se fora de um ângulo maior que 22 graus. Com esta informação o sistema final pôde ser feito.

Etapa 4: Produto Final

Produto final
Produto final
Produto final
Produto final
Produto final
Produto final

O protótipo 3 tinha 6 diodos separados por aproximadamente 60 graus e voltados diretamente para a frente.

As mudanças finais foram adicionar 8 diodos espaçados de 45 graus em torno da lente com 4 diodos voltados para frente e 4 diodos inclinados para fora de 10 graus, dando um campo de visão de 44 graus. Isso também permite que o gabinete seja montado vertical ou horizontalmente no robô. Um novo invólucro foi impresso com alterações para acomodar um Pi 3 ou Pi 4. A face do invólucro foi modificada para os diodos individuais.

O teste não mostrou nenhum problema de desempenho entre Pi 3 ou 4, portanto, as aberturas do gabinete foram feitas para permitir que qualquer Pi fosse instalado. Os pontos de montagem traseiros foram removidos, bem como as aberturas de exaustão na parte superior da cúpula. Usar um Pi 3 reduzirá ainda mais o custo. Pi 3 roda mais frio e usa menos energia. No final, decidimos usar o PI 3 para a economia de custos e a equipe de software queria usar algum código que rodasse no Pi 3 que não tinha sido atualizado para o Pi 4.

Importe o STL para o seu fatiador de impressoras 3D e pronto. Este arquivo está em polegadas, portanto, se você tiver um fatiador como o Cura, provavelmente terá que dimensionar a peça em% 2540 para convertê-la em sistema métrico. Se você tiver o Fusion 360, o arquivo.f3d pode ser modificado de acordo com suas necessidades. Eu queria incluir um arquivo.step, mas os instrutíveis não permitem que os arquivos sejam carregados.

Ferramentas básicas necessárias:

  • Decapantes de arame
  • Alicate
  • Ferro de solda
  • Tubulação termorretrátil
  • Cortadores de arame
  • Solda sem chumbo
  • Fluxo
  • Mãos que ajudam ou fórceps
  • Pistola de calor

Etapa 5: Matriz de Diodo de Fiação

Matriz de Diodo de Fiação
Matriz de Diodo de Fiação
Matriz de Diodo de Fiação
Matriz de Diodo de Fiação
Matriz de Diodo de Fiação
Matriz de Diodo de Fiação

Aviso de segurança:

Ferro de solda Nunca toque no elemento do ferro de solda….400 ° C! (750 ° F)

Segure os fios a serem aquecidos com pinças ou grampos.

Mantenha a esponja de limpeza úmida durante o uso.

Sempre coloque o ferro de solda em seu suporte quando não estiver em uso.

Nunca o coloque na bancada.

Desligue a unidade e desconecte quando não estiver em uso.

Solda, fluxo e produtos de limpeza

Use proteção para os olhos.

A solda pode “cuspir”.

Sempre que possível, use soldas sem breu e sem chumbo.

Mantenha os solventes de limpeza em frascos dispensadores.

Sempre lave as mãos com água e sabão após a soldagem.

Trabalhe em áreas bem ventiladas.

OK, vamos trabalhar:

A face do gabinete foi impressa com orifícios de diodo em 0, 90, 180, 270 pontos inclinados em 10 graus para fora. Os buracos em 45, 135, 225, 315 pontos são retos.

Coloque todos os diodos na face do gabinete para verificar o tamanho do orifício de 5 mm. Um ajuste apertado manterá os diodos apontando no ângulo correto. O cabo longo em um diodo é o ânodo, solde um resistor de 100 ohms para cada diodo. Os cabos de solda do diodo e do resistor fecham e deixam um cabo longo do outro lado do resistor (veja as fotos). Teste cada combinação antes de prosseguir. A bateria AA e 2 fios de teste iluminarão fracamente o diodo e verificarão se você tem a polaridade correta.

Coloque o combo diodo / resistor de volta no invólucro e posicione os fios em um padrão de zigue-zague para que cada fio do resistor toque o próximo resistor para criar um anel. Solde todos os cabos. Gostaria de misturar um pouco de solda J-B Plastic Bonder (https://www.amazon.com/J-B-Weld-50133-Tan-1-Pack) e epóxi a combinação de diodo / resistor no lugar. Considerei uma super cola, mas não tinha certeza se o cianoacrilato embaçaria as lentes do diodo. Eu fiz isso no final de toda a minha soldagem, mas gostaria de ter feito isso aqui para reduzir a frustração quando os diodos não seguravam no lugar durante a soldagem. O epóxi endurece em cerca de 15 minutos, então é um bom lugar para fazer uma pausa.

Agora todos os terminais do cátodo podem ser soldados juntos para criar o - ou anel de aterramento. Adicione fios de bitola 18 vermelho e preto ao anel de diodo. Teste a matriz completa usando uma fonte de alimentação de 5 volts, o carregador USB funciona bem para isso.

Etapa 6: Fiação Buck / Boost

Fiação Buck / Boost
Fiação Buck / Boost
Fiação Buck / Boost
Fiação Buck / Boost
Fiação Buck / Boost
Fiação Buck / Boost
Fiação Buck / Boost
Fiação Buck / Boost

Antes de conectar o conversor Buck, precisaremos definir a tensão de saída. Como estamos usando o PDP para fornecer os 12 volts, conectei a fiação diretamente a uma porta PDP, com fusível de 5 amperes. Prenda um voltímetro na saída da placa e comece a girar o potenciômetro. Levará algumas voltas antes de você ver uma mudança, já que a placa é testada em fábrica para a saída total e, em seguida, deixada com essa configuração. Defina para 5,15 volts. Estamos configurando alguns milivolts de altura para corresponder ao que o Pi está esperando ver de um carregador USB e qualquer carregamento de linha de ventilador e conjunto de diodos. (Durante o teste inicial, estávamos vendo mensagens incômodas do Pi reclamando da baixa tensão do barramento. Uma pesquisa na Internet nos deu a informação de que o Pi esperava mais de 5,0 volts, pois a maioria dos carregadores descarrega um pouco mais e a fonte de alimentação típica para um Pi é um carregador USB.)

Em seguida, precisamos preparar o caso:

O conversor de Buck e o Pi são presos usando parafusos de máquina 4-40. A broca # 43 é ideal para criar orifícios precisos para a colagem de 4-40 roscas. Segure o conversor Pi e buck nos afastamentos, marque e perfure usando a broca # 43. A altura dos impasses permite profundidade suficiente para endurecer sem passar completamente pelas costas. Abra os orifícios com um macho cego 4-40. Parafusos autocolantes usados em plástico funcionariam bem aqui, mas eu tinha os parafusos 4-40 disponíveis, então foi o que usei. Os parafusos são necessários para permitir o acesso ao cartão SD (nenhum acesso externo ao cartão é fornecido com este gabinete).

O próximo furo a perfurar é para o cabo de alimentação. Escolhi um ponto no canto inferior para que ele passasse ao lado do cabo Ethernet externamente e ao lado e, em seguida, sob o Pi internamente. Eu usei um cabo de 2 fios blindado como é o que eu tinha em mãos, qualquer par de fios de calibre 14 vai funcionar. Se estiver usando um par de fios sem revestimento, coloque 1 a 2 camadas de termorretrátil no fio onde ele entra no gabinete para proteção e alívio de tensão. O tamanho do orifício deve ser determinado por sua escolha de fio.

Agora você pode soldar os fios às linhas de entrada do conversor DC-DC. As conexões estão etiquetadas na placa. Fio vermelho para dentro + Fio preto para dentro. Saindo da placa, soldei 2 fios curtos desencapados para atuar como um pino para ligar a ventoinha, Pi e transistor.

Etapa 7: Fiação final e epóxi

Fiação final e epóxi
Fiação final e epóxi
Fiação final e epóxi
Fiação final e epóxi
Fiação final e epóxi
Fiação final e epóxi

Apenas 4 conexões são feitas para o Pi. Cabo de fita de aterramento, alimentação, controle de Led e interface de câmera.

Os 3 pinos usados no Pi são 2, 6 e 12.

Corte um fio vermelho, preto e branco com 10 cm. Retire 3/8 de polegada do isolamento em ambas as extremidades dos fios, pontas de estanho dos fios e pinos de estanho no Pi.

  • Solde o fio vermelho no pino GPIO 2 slip 1/2 polegada de tubo termorretrátil aplique calor.
  • Solde o fio preto no pino GPIO 6 slip 1/2 polegada de tubo termorretrátil e aplique calor.
  • Solde o fio branco no pino GPIO 12 slip 1/2 polegada de tubo termorretrátil e aplique calor.
  • Solda o fio vermelho para resistir +
  • Solde o fio preto para resistir
  • Adicione termorretrátil de 1 polegada ao fio branco e solde ao resistor de 100 ohms e do resistor à base do transistor. Isole com termorretrátil.
  • Emissor de transistor para Buck -
  • Coletor de transistor para o lado catódico da matriz de diodos
  • Diodo array ânodo / resistor para Buck +
  • Ventile o fio vermelho para resistir +
  • Fio preto do ventilador para resistir-

Última conexão:

Insira o cabo de interface da câmera. A conexão do cabo usa um conector zif (força de inserção zero). A faixa preta na parte superior do conector precisa ser levantada, o cabo colocado no soquete e o conector é empurrado de volta para baixo para travá-lo no lugar. Tenha cuidado para não dobrar o cabo, pois o traço no isolamento pode quebrar. Além disso, o conector precisa ser inserido reto para que o cabo plano e o pino sejam alinhados.

Verifique se há fios de arame soltos e manchas de solda em seu trabalho, prenda qualquer excesso de comprimento nos postes de solda.

Se você estiver feliz com seu trabalho, o ventilador e a câmera podem ser epóxidos no local. Algumas gotas nos cantos é tudo que você precisa.

Etapa 8: Software

Programas
Programas
Programas
Programas
Programas
Programas
Programas
Programas

Enquanto o epóxi está curando, vamos colocar o software no cartão SD. você precisará de um adaptador de cartão SD para conectar ao seu computador (https://www.amazon.com/Reader-Laptop-Windows-Chrom….

Vamos para:

www.raspberrypi.org/downloads/raspbian/ e baixe o Raspbian Buster Lite. Para fazer o flash do cartão SD com raspbian você precisará de outra ferramenta de software BalenaEtcher e ela pode ser encontrada aqui, O epóxi já deve ter curado o suficiente para que você possa instalar o cartão SD e aparafusar a placa de reforço / reforço. Antes de encaixar a tampa, verifique se nenhum fio está interferindo na tampa e se o cabo da câmera não toca nas pás da ventoinha. Depois que a tampa está no lugar, assopro o ventilador e observo para vê-lo se mover para garantir que não haja interferência de fios ou do cabo de fita.

Hora de ligar:

Na primeira vez que ligar, você precisará de um cabo HDMI; se for um Pi 4, um mini cabo HDMI, teclado USB e monitor HDMI junto com uma conexão à Internet. Conecte a uma fonte de alimentação de 12 volts, PDP com um disjuntor de 5 amperes.

Após o login, a primeira coisa a fazer é executar a ferramenta de configuração. É aqui que o SSH pode ser definido junto com a habilitação da câmera PI. https://www.raspberrypi.org/documentation/configur… tem instruções para ajudar.

Reinicialize antes de instalar o Chameleon Vision

Visite o site antes de usar o software, pois eles possuem uma grande variedade de informações. Uma nota, em sua página de hardware suportado, a câmera Pi é mostrada como não suportada, mas é com seu lançamento mais recente. A página da web precisa de atualização.

Da página da web do Chameleon Vision:

O Chameleon Vision pode ser executado na maioria dos sistemas operacionais disponíveis para o Raspberry Pi. No entanto, é recomendado que você instale o Rasbian Buster Lite, disponível aquihttps://www.raspberrypi.org/downloads/raspbian/. Siga as instruções para instalar o Raspbian em um cartão SD.

Certifique-se de que o Raspberry Pi esteja conectado via Ethernet à Internet. Faça login no Raspberry Pi (nome de usuário pi e senha raspberry) e execute os seguintes comandos no terminal:

$ wget https://git.io/JeDUk -O install.sh

$ chmod + x install.sh

$ sudo./install.sh

$ sudo reiniciar agora

Parabéns! Seu Raspberry Pi agora está configurado para executar o Chameleon Vision! Assim que o Raspberry Pi for reiniciado, o Chameleon Vision pode ser iniciado com o seguinte comando:

$ sudo java -jar chameleon-vision.jar

Quando uma nova versão do Chameleon Vision for lançada, atualize-a executando os seguintes comandos:

$ wget https://git.io/JeDUL -O update.sh

$ chmod + x update.sh

$ sudo./update.sh

Controle de matriz de LED:

Sua matriz de LED não acenderá sem controle de software

A primeira robótica deste ano tem uma regra contra luzes LED brilhantes, mas permitirá que elas sejam desligadas e ligadas conforme necessário. Colin Gideon "SpookyWoogin", FRC 3223, escreveu um script Python para controlar os LEDs e que pode ser encontrado aqui:

github.com/frc3223/RPi-GPIO-Flash

Este sistema também executará a visão FRC se sua equipe já investiu o tempo do software nessa plataforma. Com a visão FRC, a imagem do cartão SD completo é criada, então não há necessidade de baixar o raspbian. Baixe aqui

Isso lhe dará um sistema de visão em um formato bacana. Boa sorte nas competições!

Raspberry Pi Contest 2020
Raspberry Pi Contest 2020
Raspberry Pi Contest 2020
Raspberry Pi Contest 2020

Vice-campeão no Raspberry Pi Contest 2020

Recomendado: