用Arduino做一个自动割草机

这个项目中,我们将用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锂电池
什么是割草机器人(割草机)?
割草机器人是一种用于自动修剪和维护草坪的设备。这些机器人使用传感器和算法来导航和修剪草坪,并且可以根据草坪的生长速度或特定的时间表来修剪草坪。
一些割草机器人还配备了诸如障碍物检测、防盗保护和通过智能手机应用程序远程控制等功能。它们近年来越来越受欢迎,因为可以节省时间和精力。
电路和连接
大致连接:
核心组件:
源代码/程序
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=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板提供正确的电压,并且所有组件都正确连接。通过手动控制机器人的运动来测试机器人的电机,确保机器人运动平稳准确。
测试机器人的传感器,在其路径上放置障碍物,并确保能避开它们。此外,检查传感器的范围和灵敏度,以确保机器人可以检测到草的存在。


为什么要进行无功补偿_无功补偿的意义
跨时钟设计:异步FIFO设计
手机销量暴降,这家厂商为何还要投入1000亿研发
iPhone8什么时候上市?iPhone8最新消息:iPhone8外观、配置、价格全面提升,iPhone8五大变化汇总很期待
三星推出随享系列智能投影仪_希捷助力CyArk实现数字化转型
用Arduino做一个自动割草机
三安光电利用部分固定资产开展融资租赁业务 将优化融资结构补充流动资金
印度跃升第二大智能手机市场 2020年用户达10亿人
减法电路
可调电阻的组成及工作原理 可调电阻和可变电阻的区别
国家电网建12万充电桩 亲力亲为助力新能源汽车发展
5G网络建设逐渐完善,自动驾驶产业正不断驶入快车道
保时捷制定未来电气化发展路线 预计2022年投资60亿欧元
“5G全场景数字化展示平台”究竟有什么特别?
Vishay推出基于VCSEL的新型反射式光传感器
联想在台要冲市场占有率要稳住前五大品牌位置
活动开启 | 以梦筑码 · 不负韶华 开发者故事征集令,讲出你的故事,有机会参加HDC.Together 2023
韩国现代汽车计划于今年在广州建设一家氢燃料电池工厂
紫米发布50W二合一充电宝充电器:可作为充电宝或充电器使用
诺基亚贝尔助力中国在5G时代实现全球引领