Tabla de contenido:

Cómo hacer que un robot de movimiento de césped tonto sea más inteligente: 4 pasos
Cómo hacer que un robot de movimiento de césped tonto sea más inteligente: 4 pasos

Video: Cómo hacer que un robot de movimiento de césped tonto sea más inteligente: 4 pasos

Video: Cómo hacer que un robot de movimiento de césped tonto sea más inteligente: 4 pasos
Video: El interior de una cabeza de un robot humanoide 🤖 #robot #humanoide #robots #robothumanoide 2024, Mes de julio
Anonim
Cómo hacer que un robot tonto para mover césped sea más inteligente
Cómo hacer que un robot tonto para mover césped sea más inteligente

Así que tengo un robot cortacésped encantador, pero estúpido (la imagen es de www.harald-nyborg.dk).

Se supone que este robot debe cortar mi césped, pero mi césped es demasiado grande y complejo para que realmente llegue a las esquinas.

No se muestran en mis dibujos una multitud de árboles y un juego de columpios y así sucesivamente. El resultado es que el robot pasa mucho tiempo, atropellando secciones abiertas ya cortadas y muy poco tiempo cortando las partes duras.

Entonces decidí agregar algo de inteligencia externa.

23-04-2020 EDITAR: el sensor no funcionaba del todo, así que cambié un par de cosas

Suministros

2 interruptores de 2 vías para exteriores

O

1 enrutador usb antiguo

1 tarjeta de relé usb

1 digispark

1 concentrador usb

1 caja electrónica estanca

23-04-2020 EDITAR:

Enrutador USB antiguo OR1

1 tarjeta de relé usb

1 usb2serial tll cosa

1 concentrador usb

1 caja electrónica estanca

1 sensor ultrasónico Dfrobot URM 37 v3.2 (probablemente podría usar cualquier sensor =)

kmod-usb-serial-cp210x

Paso 1: Paso 1: Corte de áreas múltiples de Manuel

Paso 1: Corte de áreas múltiples de Manuel
Paso 1: Corte de áreas múltiples de Manuel
Paso 1: Corte de áreas múltiples de Manuel
Paso 1: Corte de áreas múltiples de Manuel

La imagen muestra cómo pasé de un área de corte a 2 áreas.

Mi robot se iniciará automáticamente cada 2. días, así que siempre que me acordé de cambiarlo de un área a otra, esto funcionó bien.

Usé 2 interruptores manuales, como los que usarías en un pasillo o escalera.

Esto funcionó, excepto que los que usé eran de muy mala calidad y, por lo tanto, obtuve errores que se metían en ellos y los estropeaban.

Paso 2: Paso 2: la solución automática

Paso 2: la solución automática
Paso 2: la solución automática
Paso 2: la solución automática
Paso 2: la solución automática
Paso 2: la solución automática
Paso 2: la solución automática
Paso 2: la solución automática
Paso 2: la solución automática

Entonces decidí hacer algo automático.

Obtuve un enrutador Netgear R6100 usado, obtuve este porque tiene wifi, usb y suficiente memoria para experimentar sobre experimentar, en lugar de abarrotar OpenWrt y amigos en él.

Conseguí un mejor hub USB 2.0 de ebays y una tarjeta de relé de 12v.

Luego tuve un digispark de un proyecto anterior. 23-04-2020 EDITAR: usó una cosa usb2seriel en su lugar

Cableé los relés en lugar de los interruptores. Usé el relé 3 y 4

Luego instalé OpenWrt y le agregué Crelay, picocom y coreutils-stty.

23-04-2020 EDITAR: también se agregaron xxk, kmod-usb-serial-cp210x

Enchufado 12V en el enrutador y la placa de relés.

23-04-2020 EDITAR: usó un Urm 37 v3.2 en lugar del resto de esta página

Entonces aprendí algo "divertido". la caja de relés intentará encender el concentrador USB, lo que impedirá que el digispark se reinicie correctamente. Así que corté el cable de alimentación en el cable USB de la tarjeta de relé y el concentrador USB.

Luego conecté el digispark y la tarjeta de relé USB en el concentrador USB 2.0 y el concentrador en el enrutador.

Bueno, para ser justos, programé el digispark antes de agregarlo al enrutador

En el digispark, agregué un botón, que conecté entre P1 y Gnd.

Este botón lo coloqué, para que el robot lo active, una vez que esté en su garaje cargándose.

Tuve que agregar un resorte a la activación para obtener un buen compromiso sólido.

Paso 3: Paso 3: Software

El archivo contiene un programa ide arduino para el digispark.

Se coloca en root / LawnSelector.

Este archivo necesita un par de bibliotecas digispark, como digiCDC y las placas digispark agregadas al arduino ide.

Luego están los archivos / root / GrassCtr / *.

Estos son los archivos que realmente hacen el trabajo.

Kreds1 cambia los relés a area1

Kreds2 cambia los relés a area2

KredsStatus pregunta al relé USB, qué área está activa

23-04-2020 EDITAR: Use UltraSoundSeriel en lugar de leer digispark.

ReadDigiSpark, lee las noticias todos los martes.. Espera. Lee el estado de entrada del digispark

GrassCtl piensa.

Esto es lo que hace.

Si el robot está DENTRO por más de 10 horas, decide que el robot está dentro por la noche, y esto activa un flip-flop, que lo hace comenzar en cada área cada dos veces. La razón de esto es que mi robot comienza cortando todo el borde y, de esta manera, corta los bordes cada dos días.

Luego, una vez que el robot esté cortando el césped, el sensor le dirá que el robot está fuera.

Cada vez que el robot regresa para cargar la batería (definido como estar dentro durante más de 20 minutos), el área se cambiará a la otra área.

tenga en cuenta. El software es un desastre terrible, pero funciona, así que hacia adelante y hacia arriba

Paso 4: Paso 4: Activación del software

Para ejecutar el software, debemos hacer algo.

Lo agregué a un cronJob

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

al archivo

/ etc / crontabs / root

Luego, para activar cronjobs lo hice

/etc/init.d/cron habilitar

Lo mejor que puedo decir es que el robot ahora cambiará entre el área de corte inicial 1 o 2, y cambiará lo que se cortó cada vez que haya estado recargando las baterías.

Y sí, ahora se pone todo

Recomendado: