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板提供正确的电压,并且所有组件都正确连接。通过手动控制机器人的运动来测试机器人的电机,确保机器人运动平稳准确。

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

审核编辑:汤梓红

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

    关注

    2550

    文章

    51035

    浏览量

    753053
  • 机器人
    +关注

    关注

    211

    文章

    28379

    浏览量

    206908
  • 电机
    +关注

    关注

    142

    文章

    9000

    浏览量

    145335
  • BLDC
    +关注

    关注

    206

    文章

    800

    浏览量

    96864
  • Arduino
    +关注

    关注

    188

    文章

    6468

    浏览量

    186948

原文标题:用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 30次下载

    怎样给割草机装上太阳能

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

    海瑞思科技气密性防水检测割草机配件测试实例

    如今相信大家对割草机定不陌生,它是种用于修剪草坪、植被的机械工具,发动机的输出轴上装有刀片,刀片利用发动机高速旋转割断草叶,能够节省作业时间,大大降低人力成本。 待测产品:割草机
    发表于 02-16 17:40 384次阅读

    基于Arduino Mega 2560的自主机器人割草机

    决定 Arduino Mega 2560 板自己建造我的机器人割草机。整个过程花了很长时间,经过些实验,现在配置完成,Mowerino 工作正常。请继续关注这个项目,因为我想在未来
    发表于 12-20 15:45 5次下载

    自动割草机v1开源项目

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

    无刷电机驱动器直流无刷绿篱园林工具割草机方案

    割草机,又叫打草、割灌,用途广泛。主要应用在园林装饰修剪、草地绿化修剪、城市街道、绿化景点、田园修剪、田地除草,特别是公园内的草地和草原,足球场等其他用草场地,私人别墅花园,以及农林畜牧场地植被
    发表于 03-10 10:12 9次下载
    无刷电机驱动器直流无刷绿篱<b class='flag-5'>机</b>园林工具<b class='flag-5'>割草机</b>方案

    基于ES32F0101的锂电割草机应用

    修剪效果参差不齐,整体美观度得不到保证。电动割草机的出现解决了这些问题。电动割草机修剪迅速,效果统,而小型锂电池割草机更因为轻便,体积小,便于携带,功能齐全,
    的头像 发表于 03-27 15:52 1041次阅读

    机器人割草机开源分享

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

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

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

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

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

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

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

    XV7181BB陀螺仪传感器在自动割草机中的应用

    自动割草机作为现代园艺设备的创新之,正在改变我们的庭院维护方式。为了在各种地形条件下实现稳定、高效的割草自动
    的头像 发表于 06-12 11:05 395次阅读
    XV7181BB陀螺仪传感器在<b class='flag-5'>自动</b><b class='flag-5'>割草机</b>中的应用