Robô cortador de grama. Do metal ferroso ao protótipo

Esta é uma pequena história sobre a montagem de um cortador de grama robótico a partir de ferramentas improvisadas por um gerente comum, bem como a formação de um nerd, negando uma singularidade, concordando com Sua Majestade Ilon Mask e combatendo um homem com máquinas. Aperte o cinto, somos enviados a uma atmosfera de leve ironia e a uma descrição descontraída do desenvolvimento de um cortador de grama robótico de metal ferroso ao protótipo. Leitor curioso, bem-vindo ao gato!



Em vez de um prefácio:


Olá! Meu nome é Vyacheslav Golitsyn, e eu sou um nerd! Tudo começou enquanto ainda estava na escola, amigos da aula de física e tecnologia me deixaram viciado. Nos intervalos, esgueirando-se no banheiro e na esquina da escola, discutimos novos aparelhos e circuitos para erros de transmissores de rádio. Eu pensei que seria apenas mimado, mas então não consegui mais sair. Os aparelhos eletrônicos que eu ia consertar nunca foram vistos em casa por alguém trabalhando, durante o próximo tumulto encantador, eu matei brutalmente o gravador "302 Electronics". Fui punido, mas não consegui abandonar completamente meu vício, então me tornei um nerd secreto, mas mesmo no clube de rádio eles não me aceitaram, sim, nos clubes não é muito perceptível, por causa do pathos tudo virou de cabeça para baixo. Quando troquei minha nova scooter de neve por um livro de A. Marchenko e o designer do receptor do carro, percebi que estava rolando para o fundo!Eles começaram a me reconhecer pessoalmente nos mercados de rádio e nas lojas de eletrônicos, eu li “Técnica da Juventude” e fóruns medíocres à noite em discagem. Comecei a usar óculos com óculos comuns, como todos me chamavam de óculos. Até meu próprio pai me colocou três em colegas de classe. Eu finalmente desmoronei quando uma garota me deixou, então eu sofri ... Comprei uma nova estação de solda e minha conta no Aliexpress começou a exigiro sangue é uma parte crescente do meu modesto salário.

Então a vida de alguma forma melhorou ... família, filhos e, há vários anos, tenho os olhos vendados, mas todos os dias leio Habr (agora Giktayms). Sou um gerente muito intermediário, gosto de todo mundo trabalhar no escritório. Eu, infelizmente, não tenho formação técnica, mas quando leio uma revisão de um novo dispositivo, minicomputador ou placa de automação em minha mente, um grande número de idéias já está formado onde ele pode ser aplicado ( não ofereça automação de banheiro ). Depois de um pequeno vôo de fantasia, geralmente se segue uma ordem e a expectativa lânguida de um milagre estrangeiro milagroso. Durante o tempo em que a tão esperada carga passa por todos os círculos do infernoNos centros de triagem do correio russo, um pouco de romance está desaparecendo de um novo exemplo de um gênio moderno do pensamento técnico. Assim foi com raspberry pi, arduino, uma pequena caixa com sensores e fios. Mas então houve dor. O nome dela é uma casa de veraneio, ou melhor, um gramado em uma casa de veraneio.

Cortar a grama - não cortar madeira. E não beba chá, e não faça missões, e não vá para cerveja. Bem, você entende ...


Você pode perguntar: por que o cortador de grama, o verão está terminando e o inverno é longo? Não admira que as pessoas digam: "O inverno está chegando ...". Talvez a resposta seja preguiça ou curiosidade banais, talvez todos juntos, mas manter o gramado de uma forma bonita não é uma tarefa fácil, mesmo com tamanhos modestos de terra, que são apresentados ao seu humilde servo. Decidi combinar o desejo ativo de aprender novo + raspberry pi modelo B + arduino + Chermet + livre arbítrio, heroísmo, profissionalismo, capitalismo, não me importo e cataclismo.

Considerei a decisão por um longo tempo, considerei a opção de comprar um cortador de grama pronto, mas cheguei à conclusão de que seria mais conveniente soldar o carrinho em si e conectar o ICE do cortador de grama manual.











O carrinho é acionado por dois motores com caixas de câmbio de um limpador VAZ-2108 (substituição de importação em ação). Os motores não têm duas escovas no coletor, como eu estava acostumado, mas três. Ainda não entendi por que a terceira escova foi usada, mas o fato de um dos fios estar conectado ao corpo e os motores terem que se mover em direções diferentes para avançar, me fez isolar um dos motores da estrutura.





Uma história difícil com os motores: na tentativa de entender o design do motor, desmontei um deles - esse era um presságio do fato de que o motor com toda a sua potência iria para o khalosar do grande pastor para sempre. Em geral, "quem não engole som, não conhece problemas", comprou um novo motor e continuou a pedalar e codificar.

A fonte de energia é uma bateria de 12V. O Arduino recebe energia USB de framboesas. O Raspberry está conectado a um comutador USB com fonte de alimentação separada; a mesma é fornecida pela mesma bateria de 12V através de dois L7805 paralelos (enquanto dura a longa jornada do conversor DC-DC pulsado).

Rodas do trole compradas no mercado da construção. Os motores foram conectados através do Monster Motor Shield, mas, por tradição, essa placa durou muito tempo depois de conectar a alimentação aos pinos de saída. Wangyu holivar nos comentários sobre o fato de que com as mãos tortas não vale a pena começar nada, mas e se o coração perguntar? Em geral, não há gramas e soms: fazemos um pedido para o mesmo quadro, mas por enquanto nos damos bem com dois relés, porque os motores do primeiro par só podem girar em uma direção. Em geral, dada a falta de necessidade de PWM, você pode fazer uma ponte H com base em um bloco de 8 relés para o Arduino. E como você se sente sobre isso, querido leitor?

O controle do motor e a pesquisa de sensores (sensores de distância ultrassônicos e codificadores de roda; na versão 1.1: sensores infravermelhos de obstáculos, um botão no para-choque dianteiro) são realizados pelo Arduino mega 2560.

Andurina (minha esposa continua chamando assim) está conectada ao raspberry pi via USB comunicação modesta na porta serial). Além disso, uma webcam (na versão 1.0 para saída de imagens via Motion) e um apito de wi-fi estão conectados à framboesa.

A lógica do sistema. Grama no quintal, na grama ...


Considerando o quanto Ilon Mask (e não apenas ele) me avisou (espero que ele também tenha me falado) sobre os perigos da Inteligência Artificial, decidi por enquanto (ou seja, AI), ou seja, Não o introduzi neste produto, para que a singularidade desmoronada subitamente não distorcesse todas as coníferas no meu site. No Raspberry pi, o sistema operacional raspbian, o OpenCV (que não foi iniciado corretamente) é instalado e o servidor da Web e o FTP são gerados. O gerenciamento e a configuração são feitos via ssh. Esse código com o OpenCV, que funciona no laptop, não quer rodar na framboesa. Após longas danças com um pandeiro, decidiu-se deixar a implementação da funcionalidade vinculada ao OpenCV para a versão 2.0.

O script Python 2.7 é executado no raspberry, que salva os dados da tabela MySQL na posição atual do cortador no sistema de coordenadas (mais sobre isso posteriormente). Ao acessar o IP do cortador, uma matriz (sistema de coordenadas) é exibida, dividida em células (por conveniência, 0,5X0,5 metros, pois essa é a largura do chanfro). A tabela mostra o estado atual das células em cores diferentes.

1. Cinza - desconhecido;
2. Verde - grama não cortada;
3. Amarelo - áreas chanfradas;
4. Vermelho - seções com um obstáculo;
5. Azul - a área onde o cortador está localizado.



Ao clicar em um site gratuito ou desconhecido, é possível transferir seu estado para um bloqueado, a fim de estabelecer obstáculos por conta própria.

Além disso, na versão 1.1, a página deve ter um botão de desligamento de emergência, um botão de controle de combustível de motor de combustão interna e um botão de controle manual.

Em cada execução de raspbery:


  • espera do arduino informações sobre a conclusão da tarefa anterior (se fosse);
  • recebe através do arduino informações de rangefinders;
  • processa informações de uma webcam;
  • se for possível avançar, envia ao arduino a tarefa de avançar uma célula (0,5 m). Se a célula da frente estiver bloqueada (há um obstáculo), a tarefa será girada 90 graus para a direita.


Arduino em cada ciclo:


  • interroga sensores de distância ultrassônicos;
  • Para a versão 1.1:
    - pressiona o botão do para-choque (no caso de uma colisão com um obstáculo, ele desliga o relé de potência do motor de combustão interna);
    - Interroga sensores de obstáculo infravermelhos.
  • ;
  • ( , , , .);
  • raspbery ;
  • .






, :


  • OpenCV . .. ( ) . . OpenCV , — . .
  • Usando o OpenCV, verifique a parte inferior do quadro para obter uma cor média que deve ser verde para evitar dirigir nas calçadas.
  • Conecte uma segunda webcam e use o openCV para criar um mapa de obstáculos tridimensional.
  • Conecte um motor de 12V como gerador ao motor de combustão interna, crie um sistema de suporte de bateria no cortador para eliminar a necessidade de carregá-lo separadamente.
  • É possível usar um "gerador" como iniciador.


Código rápido em acesso aberto. Garfo para a saúde. Ficarei feliz em ter pessoas que pensam da mesma forma: https://yadi.sk/d/qObAm0deiogvP

Obrigado por sua atenção!

Source: https://habr.com/ru/post/pt383633/


All Articles