Tabla de contenido
resumen
En este proyecto de robot, construirá un robot cortador de césped automático o un robot cortador de césped utilizando Arduino. El robot puede cortar automáticamente el exceso de césped en el jardín. Si hay un obstáculo en el jardín, cambiará automáticamente su dirección. Ayuda a reducir el esfuerzo humano.
Este artículo proporciona una descripción básica del proyecto, incluidos los componentes necesarios para crear un robot cortador de césped Arduino. Se proporcionan esquemas y código fuente de Arduino para facilitar el proceso de ensamblaje y programación.
Advertencia: Este proyecto no es un juguete y contiene cuchillas afiladas que pueden causar lesiones graves si no se usan con cuidado. No lo dejes desatendido. La cuchilla debe estar correctamente sujeta. Verifique antes de operar el robot.
Lista de materiales
Para construir un robot de corte automático Arduino, necesitará los siguientes componentes: Puede comprar todos los componentes de los enlaces dados.
¿Qué es un robot cortacésped (cortacésped)?
Un robot cortacésped, también conocido como robot cortador de césped, es un dispositivo robótico diseñado para cortar y mantener automáticamente el césped. Estos robots utilizan sensores y algoritmos para navegar y cortar el césped y pueden programarse para cortar el césped en un horario específico o dependiendo de la velocidad a la que crece el césped. Algunos robots de siega también están equipados con características como detección de obstáculos, antirrobo y control remoto a través de una aplicación de teléfono inteligente. Se ha vuelto popular en los últimos años como una forma de ahorrar tiempo y esfuerzo en el mantenimiento del césped.
Los robots cortadores de césped utilizan una variedad de técnicas para navegar y cortar el césped. Algunos usan patrones aleatorios para cubrir todo el césped, mientras que otros usan algoritmos más avanzados, como patrones en espiral, para garantizar que todo el césped se corte de manera uniforme. Los robots generalmente tienen sensores que ayudan a detectar obstáculos como árboles, rocas y jardines, y ajustan su camino en consecuencia para evitar dañar estas áreas.
Los robots suelen estar equipados con un carrete de cuchillas de corte o un mecanismo de corte de cuchillas giratorias. La altura de corte se puede ajustar a la longitud del césped, y el robot se puede programar para cortar el césped a una altura específica. Algunos robots también tienen una función de mulching, que corta los recortes de césped en trozos pequeños y los devuelve al césped como fertilizante natural.
En general, los robots de corte son una forma conveniente y eficiente de mantener un césped. En comparación con el corte manual, ahorra tiempo, esfuerzo y energía, y ayuda a mantener su césped en buenas condiciones durante todo el año.
Diagrama de bloques: Robot de siega automática usando Arduino
El diagrama de bloques del robot de corte automático Arduino muestra cómo se conectan los diversos componentes y cómo interactúan entre sí para realizar la tarea de cortar el césped automáticamente.
La placa Arduino actúa como el cerebro del robot, controlando todos los demás componentes y ejecutando instrucciones programadas. Los sensores ultrasónicos se utilizan para detectar la posición de la hierba y los obstáculos en el camino del robot.
El escudo del controlador del motor L293D se utiliza para controlar el movimiento del robot y está conectado a un microcontrolador. Cuatro motorreductores de CC se utilizan para alimentar los movimientos del robot. Además, el servomotor SG90 está unido al cabezal, por lo que busca obstáculos a la izquierda, derecha y adelante con un movimiento de panorámica.
El mecanismo de corte utiliza un motor BLDC de 100KV que gira a una velocidad muy alta. Este motor está conectado a una cuchilla de corte utilizada para cortar el césped. El mecanismo de encendido / apagado del motor y la velocidad se controlan mediante un probador de servomotor. Puedes usar Controlador de motor BLDC Para esta aplicación.
El robot requiere una fuente de alimentación, como una batería recargable o un cable de alimentación, para funcionar. En nuestro caso, estamos utilizando una batería lipo de 11.1V.
Esquemas y conexiones
El esquema de un robot de siega automática con Arduino muestra las conexiones entre los diversos componentes del robot. Aquí hay un ejemplo del esquema utilizado en este proyecto:
El blindaje del controlador del motor L293D está conectado a la parte superior de la placa Arduino UNO. Los 4 motores de CC están conectados al escudo del controlador Mo controlado a través de pines digitales D1, D2, D3, D4 en la placa Arduino UNO. El sensor ultrasónico HC-SR04 tiene TRIGN y pines de eco conectados a A0 y A1 de la placa Arduino.
Para controlar los motores BLDC, se utilizan servoprobadores de módulos ESC. Todo el circuito está alimentado por una batería de iones de litio de 11.1V. El Arduino tiene un regulador de 11.1V que convierte un suministro de 5V en un suministro de 5V. Los motores BLDC funcionan directamente a 11.1V.
Código fuente/Programa
El programa del robot cortacésped está escrito en el IDE Arduino. Debe agregar algunas bibliotecas al IDE de Arduino.
- Biblioteca móvil AF: https://github.com/adafruit/Adafruit-Motor-Shield-library
Nueva biblioteca de ping: https://github.com/microflo/NewPing
Copie el siguiente código y cárguelo en su placa Arduino UNO.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 | #include <AFMotor.h> #include <NewPing.h> #include < servo > #define TRIG_PIN A0 #define ECHO_PIN A1 #define MAX_DISTANCE 200 #define MAX_SPEED 190 #define MAX_SPEED_OFFSET 20 Nu-pin sonar(TRIG_PIN, ECHO_PIN, MAX_DISTANCE); AF_DCMotor Motor 1(1, MOTOR12_1KHZ); AF_DCMotor Motor 2(2, MOTOR12_1KHZ); AF_DCMotor Motor 3(3, MOTOR34_1KHZ); AF_DCMotor Motor 4(4, MOTOR34_1KHZ); Servo Mi servo; Booleano Adelantarse=falso; entero distancia = 100; entero Ajuste de velocidad = 0; No válido arreglo() { Mi servo.adjuntar(10); Mi servo.escribir(115); demorar(2000); distancia = Leer Pin(); demorar(100); distancia = Leer Pin(); demorar(100); distancia = Leer Pin(); demorar(100); distancia = Leer Pin(); demorar(100); } No válido bucle() { entero Distancia R = 0; entero Distancia L = 0; demorar(40); Si(distancia<=15) { Deja de moverte(); demorar(100); Retroceder(); demorar(300); Deja de moverte(); demorar(200); Distancia R = Mira a la derecha(); demorar(200); Distancia L = Lookleft(); demorar(200); Si(Distancia R>=Distancia L) { Gire a la derecha(); Deja de moverte(); }de otra manera { Izquierda(); Deja de moverte(); } }de otra manera { Avanzar(); } distancia = Leer Pin(); } entero Mira a la derecha() { Mi servo.escribir(50); demorar(500); entero distancia = Leer Pin(); demorar(100); Mi servo.escribir(115); devolución distancia; } entero Lookleft() { Mi servo.escribir(170); demorar(500); entero distancia = Leer Pin(); demorar(100); Mi servo.escribir(115); devolución distancia; demorar(100); } entero Leer Pin() { demorar(70); entero centímetro = sonar.ping_cm(); Si(centímetro==0) { centímetro = 250; } devolución centímetro; } No válido Deja de moverte() { Motor 1.correr(liberación); Motor 2.correr(liberación); Motor 3.correr(liberación); Motor 4.correr(liberación); }
No válido Avanzar() { Si(!Adelantarse) { Adelantarse=verdadero; Motor 1.correr(adelante); Motor 2.correr(adelante); Motor 3.correr(adelante); Motor 4.correr(adelante); para (Ajuste de velocidad = 0; Ajuste de velocidad < MAX_SPEED; Ajuste de velocidad +=2) { Motor 1.Establecer velocidad(Ajuste de velocidad); Motor 2.Establecer velocidad(Ajuste de velocidad); Motor 3.Establecer velocidad(Ajuste de velocidad); Motor 4.Establecer velocidad(Ajuste de velocidad); demorar(5); } } } No válido Retroceder() { Adelantarse=falso; Motor 1.correr(hacia atrás); Motor 2.correr(hacia atrás); Motor 3.correr(hacia atrás); Motor 4.correr(hacia atrás); para (Ajuste de velocidad = 0; Ajuste de velocidad < MAX_SPEED; Ajuste de velocidad +=2) { Motor 1.Establecer velocidad(Ajuste de velocidad); Motor 2.Establecer velocidad(Ajuste de velocidad); Motor 3.Establecer velocidad(Ajuste de velocidad); Motor 4.Establecer velocidad(Ajuste de velocidad); demorar(5); } } No válido Gire a la derecha() { Motor 1.correr(adelante); Motor 2.correr(adelante); Motor 3.correr(hacia atrás); Motor 4.correr(hacia atrás); demorar(500); Motor 1.correr(adelante); Motor 2.correr(adelante); Motor 3.correr(adelante); Motor 4.correr(adelante); } No válido Izquierda() { Motor 1.correr(hacia atrás); Motor 2.correr(hacia atrás); Motor 3.correr(adelante); Motor 4.correr(adelante); demorar(500); Motor 1.correr(adelante); Motor 2.correr(adelante); Motor 3.correr(adelante); Motor 4.correr(adelante); } |
Prueba del robot cortacésped Arduino
Después de cargar el código, puede llevar el robot al campo o tal vez a un área cubierta de hierba alta. Las áreas altas de hierba son adecuadas para las pruebas.
Encienda el robot y asegúrese de que la fuente de alimentación suministre el voltaje correcto a la placa Arduino y que todos los componentes estén conectados correctamente. Pruebe el motor del robot controlando manualmente los movimientos del robot y asegurándose de que el robot se mueva sin problemas y con precisión.
Pruebe los sensores del robot colocando obstáculos en el camino del robot y asegurándose de evitarlos. Además, verifique el alcance y la sensibilidad del sensor para asegurarse de que el robot pueda detectar la hierba.
Utilice un servoprobador para activar el motor BLDC. Luego pruebe el mecanismo de corte activándolo manualmente y asegurándose de que corte el césped de manera efectiva.
Finalmente, el robot se mueve alrededor del área de prueba y prueba su navegación y autonomía mientras corta el césped. Asegúrese de que el robot pueda evitar obstáculos y que corte la hierba a la altura deseada.
Video Tutorial y Guía
Robot cortador automático (cortacésped) usando MArduino