Índice:

Como tornar um robô cortador de grama mudo mais inteligente: 4 etapas
Como tornar um robô cortador de grama mudo mais inteligente: 4 etapas

Vídeo: Como tornar um robô cortador de grama mudo mais inteligente: 4 etapas

Vídeo: Como tornar um robô cortador de grama mudo mais inteligente: 4 etapas
Vídeo: Robô roçadeira autônomo 2024, Novembro
Anonim
Tornando um robô cortador de grama mudo mais inteligente
Tornando um robô cortador de grama mudo mais inteligente

Então, eu tenho um robô cortador de grama adorável, mas estúpido (a imagem é de www.harald-nyborg.dk).

Este robô deveria cortar meu gramado, mas meu gramado é muito grande e complexo para realmente entrar nos cantos.

Não é mostrado em meus desenhos uma multidão de árvores e um balanço e assim por diante. O resultado é que o robô gasta muito tempo, atropelando seções abertas já cortadas, e muito pouco tempo cortando as partes duras.

Então decidi adicionar alguma inteligência externa.

23-04-2020 EDIT: o sensor não funcionou muito bem, então mudei algumas coisas

Suprimentos

2 interruptores de 2 vias ao ar livre

OU

1 roteador usb antigo

1 placa de retransmissão usb

1 digispark

1 hub usb

1 caixa eletrônica à prova d'água

23-04-2020 EDITAR:

OR1 roteador usb antigo

1 placa de retransmissão usb

1 usb2serial tll thinghy

1 hub usb

1 caixa eletrônica à prova d'água

1 sensor ultrassônico Dfrobot URM 37 v3.2 (você provavelmente poderia usar qualquer sensor =)

kmod-usb-serial-cp210x

Etapa 1: Etapa 1: Corte de área múltipla de Manuel

Etapa 1: Corte de área múltipla de Manuel
Etapa 1: Corte de área múltipla de Manuel
Etapa 1: Corte de área múltipla de Manuel
Etapa 1: Corte de área múltipla de Manuel

A imagem mostra como passei de uma área de corte para 2 áreas.

Meu robô será inicializado automaticamente a cada 2. dias, então, desde que me lembrei de mudá-lo de uma área para outra, funcionou bem.

Usei 2 interruptores manuais, como os que você usaria em um corredor ou escada.

Isso funcionou, exceto os que eu usei eram de qualidade muito baixa e, portanto, eu tinha bugs rastejando neles, bagunçando-os

Etapa 2: Etapa 2: a solução automática

Etapa 2: a solução automática
Etapa 2: a solução automática
Etapa 2: a solução automática
Etapa 2: a solução automática
Etapa 2: a solução automática
Etapa 2: a solução automática
Etapa 2: a solução automática
Etapa 2: a solução automática

Então decidi fazer algo automático.

Eu tenho um roteador Netgear R6100 usado, eu comprei este porque tem wi-fi, usb e memória suficiente para fazer experimentos sobre experimentos, em vez de cramming OpenWrt e amigos nele.

Eu tenho um hub USB 2.0 da ebays best e uma placa de retransmissão 12v.

Então eu tive um digispark de um projeto anterior. 23-04-2020 EDITAR: usei um dispositivo usb2seriel em vez disso

conectei os relés em vez dos interruptores. eu usei o relé 3 e 4

Então instalei o OpenWrt e adicionei Crelay, picocom e coreutils-stty a ele.

23-04-2020 EDIT: adicionado xxk, kmod-usb-serial-cp210x também

Ligado 12V ao roteador e à placa de relé.

23-04-2020 EDITAR: usei um Urm 37 v3.2 em vez do resto desta página

Então aprendi algo "divertido". o relay boad tentará ligar o hub usb, impedindo assim que o digispark reinicie corretamente. Portanto, cortei o fio de alimentação no cabo USB da placa de retransmissão e do hub USB.

Em seguida, conectei o digispark e a placa de retransmissão USB ao hub USB 2.0 e o hub ao roteador.

Bem, para ser justo, eu programei o digispark antes de adicioná-lo ao roteador

No digispark, adicionei um botão, que conectei entre P1 e Gnd.

Coloquei este botão para que o robô o ative assim que estiver na garagem carregando.

Tive que adicionar uma mola à ativação, para obter um bom e sólido engajamento.

Etapa 3: Etapa 3: Software

O arquivo contém um programa ide arduino para o digispark.

É colocado em root / LawnSelector.

Este arquivo precisa de algumas bibliotecas digispark, como digiCDC e as placas digispark adicionadas ao ide arduino.

Depois, há os arquivos / root / GrassCtr / *.

Esses são os arquivos que realmente fazem o trabalho.

Kreds1 muda os relés para área1

Kreds2 muda os relés para area2

KredsStatus pergunta ao relé USB, qual área está ativa

23-04-2020 EDIT: Use UltraSoundSeriel em vez de ler digispark.

ReadDigiSpark, lê as notícias todas as terças.. Espere. Lê o estado de entrada do digispark

GrassCtl faz o pensamento.

Aqui está o que isso faz.

Se o robô estiver DENTRO por mais de 10 horas, ele decide que o robô está pernoitando, e isso ativa um flipflop, que o faz iniciar em cada área a cada duas vezes. A razão para isso é que meu robô começa cortando toda a aresta e, dessa forma, ele corta as arestas dia sim, dia não.

Então, quando o robô estiver cortando a grama, o sensor dirá que o robô está fora.

Cada vez que o robô retorna para carregar a bateria (definido como estando dentro por mais de 20 minutos), a área será alterada para a outra área.

Observe. O software é uma bagunça horrível, mas funciona, assim por diante e para cima

Etapa 4: Etapa 4: Ativando o software

Para executar o software, precisamos fazer algo.

Eu adicionei a um cronJob

* / 5 * * * * / root / GrassCtrl / GrassCtl

para o arquivo

/ etc / crontabs / root

Então, para ativar cronjobs eu fiz

/etc/init.d/cron ativar

Pelo que eu posso dizer, o robô agora mudará entre começar a cortar a área 1 ou 2, e mudará o que foi cortado toda vez que estiver recarregando as baterias.

E sim, agora fica tudo

Recomendado: