0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

用Arduino做一个自动割草机

jf_L7xG2ijs 来源:IoT前哨站 2023-07-07 14:02 次阅读

这个项目中,我们将用Arduino制作一个自动割草机。该机器可以自动修剪院子里长高的草。如果有障碍物,它会自动改变方向,有助于减少人力。

本文提供了项目的基本概述,以及制作Arduino割草机器人所需的组件。提供了电路原理图和Arduino源代码,以便简化组装和编程过程。

注意:这个项目不是玩具,它包含锋利的刀片。如果不小心使用,可能会造成严重的伤害。不要让它无人看管,刀片应正确固定。操作前检查一下。

材料清单

我们需要以下组件:

1、 Arduino UNO
2、 L293D电机驱动盾
3、 超声波传感器HC-SR04
4、 超声波传感器外壳/支架
6、 直流减速电机 x4
7、 BLDC电机100KV
8、 舵机SG-90
9、 ESC模块
10、舵机测试仪
11、3针滑动开关
12、X型十字支架
13、机器人底盘
14、11.1V锂电池

什么是割草机器人(割草机)?

割草机器人是一种用于自动修剪和维护草坪的设备。这些机器人使用传感器和算法来导航和修剪草坪,并且可以根据草坪的生长速度或特定的时间表来修剪草坪。

一些割草机器人还配备了诸如障碍物检测、防盗保护和通过智能手机应用程序远程控制等功能。它们近年来越来越受欢迎,因为可以节省时间和精力。

电路和连接

大致连接:

image.png

核心组件:

image.png

源代码/程序

AFMotor Library:
https://github.com/adafruit/Adafruit-Motor-Shield-library

NewPing Library:
https://github.com/microflo/NewPing

需要编译到Arduino UNO开发板中的代码:


#include   
#include 
#include  
 
#define TRIG_PIN A0 
#define ECHO_PIN A1 
#define MAX_DISTANCE 200 
#define MAX_SPEED 190 
#define MAX_SPEED_OFFSET 20
 
NewPing sonar(TRIG_PIN, ECHO_PIN, MAX_DISTANCE); 
 
AF_DCMotor motor1(1, MOTOR12_1KHZ); 
AF_DCMotor motor2(2, MOTOR12_1KHZ);
AF_DCMotor motor3(3, MOTOR34_1KHZ);
AF_DCMotor motor4(4, MOTOR34_1KHZ);
Servo myservo;   
 
boolean goesForward=false;
int distance = 100;
int speedSet = 0;
 
void setup() {
 
  myservo.attach(10);  
  myservo.write(115); 
  delay(2000);
  distance = readPing();
  delay(100);
  distance = readPing();
  delay(100);
  distance = readPing();
  delay(100);
  distance = readPing();
  delay(100);
}
 
void loop() {
 int distanceR = 0;
 int distanceL =  0;
 delay(40);
 
 if(distance<=15)
 {
  moveStop();
  delay(100);
  moveBackward();
  delay(300);
  moveStop();
  delay(200);
  distanceR = lookRight();
  delay(200);
  distanceL = lookLeft();
  delay(200);
 
  if(distanceR>=distanceL)
  {
    turnRight();
    moveStop();
  }else
  {
    turnLeft();
    moveStop();
  }
 }else
 {
  moveForward();
 }
 distance = readPing();
}
 
int lookRight()
{
    myservo.write(50); 
    delay(500);
    int distance = readPing();
    delay(100);
    myservo.write(115); 
    return distance;
}
 
int lookLeft()
{
    myservo.write(170); 
    delay(500);
    int distance = readPing();
    delay(100);
    myservo.write(115); 
    return distance;
    delay(100);
}
 
int readPing() { 
  delay(70);
  int cm = sonar.ping_cm();
  if(cm==0)
  {
    cm = 250;
  }
  return cm;
}
 
void moveStop() {
  motor1.run(RELEASE); 
  motor2.run(RELEASE);
  motor3.run(RELEASE);
  motor4.run(RELEASE);
  } 
  
void moveForward() {
 
 if(!goesForward)
  {
    goesForward=true;
    motor1.run(FORWARD);      
    motor2.run(FORWARD);
    motor3.run(FORWARD); 
    motor4.run(FORWARD);     
   for (speedSet = 0; speedSet < MAX_SPEED; speedSet +=2) 
   {
    motor1.setSpeed(speedSet);
    motor2.setSpeed(speedSet);
    motor3.setSpeed(speedSet);
    motor4.setSpeed(speedSet);
    delay(5);
   }
  }
}
 
void moveBackward() {
    goesForward=false;
    motor1.run(BACKWARD);      
    motor2.run(BACKWARD);
    motor3.run(BACKWARD);
    motor4.run(BACKWARD);  
  for (speedSet = 0; speedSet < MAX_SPEED; speedSet +=2) 
  {
    motor1.setSpeed(speedSet);
    motor2.setSpeed(speedSet);
    motor3.setSpeed(speedSet);
    motor4.setSpeed(speedSet);
    delay(5);
  }
}  
 
void turnRight() {
  motor1.run(FORWARD);
  motor2.run(FORWARD);
  motor3.run(BACKWARD);
  motor4.run(BACKWARD);     
  delay(500);
  motor1.run(FORWARD);      
  motor2.run(FORWARD);
  motor3.run(FORWARD);
  motor4.run(FORWARD);      
} 
 
void turnLeft() {
  motor1.run(BACKWARD);     
  motor2.run(BACKWARD);  
  motor3.run(FORWARD);
  motor4.run(FORWARD);   
  delay(500);
  motor1.run(FORWARD);     
  motor2.run(FORWARD);
  motor3.run(FORWARD);
  motor4.run(FORWARD);


}

测试

上传代码后,你可以把机器人带到野外,也许在高草地区。高草地区可以是一个很好的测试选择。

打开机器人上的开关,确保电源为Arduino板提供正确的电压,并且所有组件都正确连接。通过手动控制机器人的运动来测试机器人的电机,确保机器人运动平稳准确。

测试机器人的传感器,在其路径上放置障碍物,并确保能避开它们。此外,检查传感器的范围和灵敏度,以确保机器人可以检测到草的存在。

审核编辑:汤梓红

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2525

    文章

    48129

    浏览量

    740172
  • 机器人
    +关注

    关注

    206

    文章

    27051

    浏览量

    201431
  • 电机
    +关注

    关注

    139

    文章

    8316

    浏览量

    142152
  • BLDC
    +关注

    关注

    194

    文章

    730

    浏览量

    95857
  • Arduino
    +关注

    关注

    184

    文章

    6428

    浏览量

    184848

原文标题:用Arduino做一个自动割草机

文章出处:【微信号:IoT前哨站,微信公众号:IoT前哨站】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    割草机的硬件主要是由哪些部分组成的?

    割草机的硬件主要是由哪些部分组成的?采用了哪些器件?分别实现了什么功能?
    发表于 07-13 06:29

    牛!当杂草遇到“黑科技”,智能割草机完胜!

    本帖最后由 草帽王路飞 于 2021-10-15 15:50 编辑 杂草丛生,人工除草太麻烦!今天,给大家介绍款神器『智能割草机』既能美化草坪,又能解放双手,省时省力!、功能设定功能功能
    发表于 10-15 15:49

    无感锂电割草机视频

    无感FOC外转子割草机7000转 https://v.youku.com/v_show/id_XNTg0Nzg5NjgwOA==.html
    发表于 04-09 22:24

    自动割草机器人的设计

    摘要! 介绍自动割草机器人的设计和实现" 其硬件系统主要包括单片机系统#电机控制器以及传感器系统三部分" 软件部分实现单片机系统的控制以及割草路径的规划" 通过对软硬件
    发表于 11-22 15:24 29次下载

    怎样给割草机装上太阳能

    怎样给割草机装上太阳能
    的头像 发表于 09-11 11:21 4048次阅读

    自动割草机v1开源项目

    电子发烧友网站提供《自动割草机v1开源项目.zip》资料免费下载
    发表于 02-03 11:37 3次下载
    <b class='flag-5'>自动</b><b class='flag-5'>割草机</b>v1开源项目

    草坪新赛道,广和通助力割草机器人步入智能化新时代

    温暖和煦的阳光照耀在屋前大片草坪上,一台能够自主割草自动避障、图像识别以及路线规划的智能割草机井然有序地工作着,所过之处均留下平整精致的草坪,而在不远处的主人正悠然地享受一杯香醇的咖啡……如此场景
    的头像 发表于 03-23 17:37 327次阅读

    GNSS技术助力自动割草机转型升级

    高精度GNSS定位技术正在推动割草机器人转型,提高其易用性、效率、可靠性和性能。
    的头像 发表于 06-05 15:49 366次阅读
    GNSS技术助力<b class='flag-5'>自动</b><b class='flag-5'>割草机</b>转型升级

    机器人割草机开源分享

    电子发烧友网站提供《机器人割草机开源分享.zip》资料免费下载
    发表于 06-15 14:19 8次下载
    机器人<b class='flag-5'>割草机</b>开源分享

    草坪新赛道,广和通助力割草机器人步入智能化新时代

    温暖和煦的阳光照耀在屋前大片草坪上,一台能够自主割草自动避障、图像识别以及路线规划的智能割草机井然有序地工作着,所过之处均留下平整精致的草坪,而在不远处的主人正悠然地享受一杯香醇的咖啡……如此场景
    的头像 发表于 03-23 17:51 440次阅读
    草坪新赛道,广和通助力<b class='flag-5'>割草机</b>器人步入智能化新时代

    智能、安全、高效,看移远如何助力割草机智能化升级

    提到割草机,大家可能首先会想到其噪声大、费人力、安全性不足等问题。智能割草机作为一种便捷、高效的智能割草设备,能够自主完成草坪修剪工作,很好地解决传统割草机的痛点问题。 随着人们对家庭
    的头像 发表于 07-04 19:05 278次阅读

    智能、安全、高效,看移远如何助力割草机智能化升级

    提到割草机,大家可能首先会想到其噪声大、费人力、安全性不足等问题。智能割草机作为一种便捷、高效的智能割草设备,能够自主完成草坪修剪工作,很好地解决传统割草机的痛点问题。   随着人们对
    发表于 07-05 11:03 258次阅读
    智能、安全、高效,看移远如何助力<b class='flag-5'>割草机</b>智能化升级

    智能、安全、高效,看移远如何助力割草机智能化升级

    提到割草机,大家可能首先会想到其噪声大、费人力、安全性不足等问题。智能割草机作为一种便捷、高效的智能割草设备,能够自主完成草坪修剪工作,很好地解决传统割草机的痛点问题。随着人们对家庭园
    的头像 发表于 07-05 10:10 469次阅读
    智能、安全、高效,看移远如何助力<b class='flag-5'>割草机</b>智能化升级

    EPSON爱普生高精度惯性导航模块赋能无人割草机新赛道

    对于海外的消费者来说,家庭割草服务一直是一个难题。无人自动割草机很好地解决了这个痛点。但是无人割草机在工作时由于信号丢失造成的路径混乱一直困扰着生产商们。那么爱普生的陀螺仪产品是如何解
    的头像 发表于 12-19 08:29 305次阅读
    EPSON爱普生高精度惯性导航模块赋能无人<b class='flag-5'>割草机</b>新赛道

    爱普生高精度惯性导航模块赋能无人割草机新赛道

    爱普生高精度惯性导航模块赋能无人割草机新赛道 对于海外的消费者来说,家庭割草服务一直是一个难题。无人自动割草机很好的解决了这个痛点。但是无人割草机
    的头像 发表于 04-01 15:52 134次阅读
    爱普生高精度惯性导航模块赋能无人<b class='flag-5'>割草机</b>新赛道