×

如何制作Arduino人类跟随机器人

消耗积分:0 | 格式:zip | 大小:0.13 MB | 2022-11-10

张明

分享资料个

描述

伙计们,欢迎来到我的第一篇教程文章。所以今天我们要制作一个“使用 Arduino nano 的人类跟随机器人”似乎很有趣对吧?

先给大家介绍一下这款机器人的主要工作原理:

该人类追随者将拥有一个超声波传感器,该传感器将作为跟踪前方物体的媒介。我们将以这种方式对 arduino nano 进行编码,当一个物体靠近超声波传感器并且它的距离小于 5 厘米时,它会向后移动,如果它超过 10 厘米且小于 20 厘米,它就会向前移动超过 20 厘米和不到 25 厘米,比它会向左等等......

如果你还没有理解它的工作原理,那么看看整个教程你可能会理解它......

特别感谢JLCPCB为我提供优质的 PCB。

主要特征:

~ 项目中使用的物品/装备很容易获得。

~ 低成本项目。

~ 没有多少复杂的电路。

~ 学习 AI 的最佳范例。

所以让我们开始这个项目:-)

第 1 步:制作项目所需的物品:

  • Arduino纳米:
  • L298N 电机驱动器:
  • 超声波传感器:
  • 伺服电机:
  • 齿轮马达:
  • 橡胶轮:
  • 头针:
  • 电池座:
  • 电池:(在旧的移动电源中获取)
  • 定制PCB:JLCPCB

第 2 步:制作 Chassy :

~ 所以为了制作 chassy,我使用了一块 10*14 厘米的纸板。

~ 然后我们需要一个齿轮马达 4 件。

~ 我们将使用热胶枪将电机粘在纸板上。

〜我们进入电机的接线,接线将这样我们将横向焊接同一侧的电线。如上图所示。

~ 我们需要一个橡胶轮(4 个)用于电机。

〜然后我们的chassy就准备好了。

让我们进入下一步...

第 3 步:将电机驱动器与底盘连接:

 
poYBAGNsUl-AOV0vAAD9YBnBFGE517.jpg
 
1 / 2
 

~ 在这里,我们将使用 L298N 电机驱动器。

~ 在胶水的帮助下将电机驱动器固定在机箱的背面。如图所示。

~ 然后你需要将电机线连接到电机驱动器的电机端子上。

这就是使 chassy 功能化所需要做的一切。

第4步:制作电路,然后将其转换为PCB。

 
 
 
 
poYBAGNsUnqAUUeoAAsPQhJdHnk004.jpg
 
1 / 9
 

在这个项目中,我使用定制设计的电路板来提供更专业的触感。所以我选择了 JLCPCB 来设计和订购这个项目的定制设计的 PCB。

电路原理图:网址

格柏文件:网址

关于JLCPCB

JLCPCB (深圳市佳立创电子科技发展有限公司),是国内最大的PCB样机企业,是专业从事PCB快速样机和小批量PCB生产的高科技制造商。JLCPCB拥有超过14年的PCB制造经验,在国内外拥有超过200,000家客户,每天有超过8,000个PCB原型和小批量PCB生产的在线订单。年生产能力为200, 000平方米。对于各种1层,2层或多层PCB,现在还以非常低的成本提供SMT和STENCILS服务。JLC是一家规模大、设备精良、管理严格、质量上乘的专业PCB制造商。

我们这边的特别优惠:-)

1-4 层 PCB 2 美元,注册可获得 18 美元新用户优惠券:JLCPCB优惠券代码:- JLCPCBcom

我是如何制作 Gerber 文件的:

EASYEDA是一款免费且易于使用的电路设计、电路模拟器和 pcb 设计,可在您的网络浏览器中运行。

第 5 步:安装 Arduino 和电机驱动器

 
 
 
 
pYYBAGNsUnyAdw6OAACRwCaV30c719.jpg
 
1 / 5
 

7 天后,我从JLCPCB获得了 10 块高质量 PCB 然后我将所有的头针安装到里面并焊接起来。

~ 现在是时候将 Arduino nano 与 PCB 一起安装,并在组件和 PCB 之间建立所有必要的连接。

〜首先我们将在电机驱动器和Arduino之间建立连接。

带有 Arduino 引脚的电机驱动器引脚:

IN1 至 D5

IN2 至 D4

IN3 至 D3

IN4 到 D2

enA 到 D6

enB 到 D7

〜所以我们需要做的就是电机驱动器引脚......

第 6 步:安装传感器、伺服等...

 
 
 
 
poYBAGNsUn6ACkD4AAB1WXIdaTg472.jpg
 
1 / 4
 

在这部分中,我们将需要超声波传感器、其支架、伺服电机...

〜首先我们将伺服与底盘粘在一起。

~ 然后我们将使用超声波传感器及其支架。

~ 然后我们将超声波传感器放入支架中。

~ 之后,我们将安装在伺服系统中。如图所示...

第 7 步:连接伺服、超声波传感器……

 
 
 
 
poYBAGNsUoGAChySAADg7QccjXs905.jpg
 
1 / 3
 

所以我们将伺服,超声波传感器与arduino连接起来。

〜将伺服连接到PCB中可用的伺服引脚。

~ 只需连接超声波传感器引脚,如下所示:

触发到 D10

回声到 D11

接地到接地

VCC 至 +5V

这就是所有的连接。非常容易和简单。

第 8 步:是时候上传草图了。

 
 
 
 
pYYBAGNsUoOAEhqzAADIMEjXqUI111.jpg
 
1 / 2
 

~ 在上传草图之前,不要忘记从 PCB 上拆下伺服线和超声波传感器的线。

~ 然后将 Arduino nano 的线连接到您的电脑中。

~ 然后打开 Arduino IDE 并将代码上传到它。

/*Human folling robot using Arduino nano.
* code created by: DIY Burner
*NOTE : Please don't forget to include the library "Servo.h".
*For any query contact me on Instagram. (id: diy.burner)
*code version: 1.0.0
*/

#include 
const int trigPin = 10 ; //Servo trig pin to D10
const int echoPin = 11; // Servo echo pin to D11
const int in1 = 5; // Motor driver pin
const int in2 = 4;
const int in3 = 3;
const int in4 = 2;
const int enA = 6;
const int enB = 7;
#define motorArpm 170 // Default speed for "enA". you can change this speed from 0 to 300
#define motorBrpm 170 // Default speed for "enB". you can change this speed from 0 to 300
Servo servo_motor; //Servo
int pos =0;
void setup(){
Serial.begin(9600);
servo_motor.attach(8); //Servo signal pin to D8
{
for(pos = 90; pos <= 180; pos += 1){
servo_motor.write(pos);
delay(15);
} for(pos = 180; pos >= 0; pos-= 1) {
servo_motor.write(pos);
delay(15);
}for(pos = 0; pos<=90; pos += 1) {
servo_motor.write(pos);
delay(15);
}
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode (in1, OUTPUT);
pinMode (in2, OUTPUT);
pinMode (in3, OUTPUT);
pinMode (in4, OUTPUT);
pinMode (enA, OUTPUT);
pinMode (enB, OUTPUT);
}
}
long duration;
int distance;
void loop(){
digitalWrite(trigPin , HIGH);
delayMicroseconds(1000);
digitalWrite(trigPin , LOW);
duration = pulseIn(echoPin , HIGH);
distance = (duration/2) / 28.5;
if(distance < 5) // It will go Backward if distance is less than 5.
{
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
analogWrite(enA, motorArpm);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
analogWrite(enB, motorBrpm);
}
if(distance >40) // It will Stop if distance is More than 40.
{
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
digitalWrite(in3, LOW);
digitalWrite(in4, LOW);
analogWrite(enA, 0);
analogWrite(enB, 0);
}
if(distance > 10 && distance < 20){ // to turn Forward
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
analogWrite(enA, motorArpm);
digitalWrite(in3, HIGH);
digitalWrite(in4, LOW);
analogWrite(enB, motorBrpm);
}

if(distance > 20 && distance < 30)//// to turn left
{
digitalWrite(in1, LOW);
digitalWrite(in2, HIGH);
analogWrite(enA, 150);
digitalWrite(in3, LOW);
digitalWrite(in4, HIGH);
analogWrite(enB, 160);
}
if(distance > 30 && distance <40 ) //// to turn Right
{
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
analogWrite(enA, motorArpm);
}

~ 或从 Google DRIVE 下载代码:下载代码

第 9 步:一切就绪,现在是测试它的时候了。

 
 
 
 
poYBAGNsUoaATp_aAACERl-dgbI120.jpg
 
1 / 3
 

不要忘记连接电池座并将支架的电线连接到电机驱动器和 arduino nano。

观看我们的 YouTube 视频以查看其测试视频。立即观看!

第 10 步:我们现在完成了

我们现在完成了。我希望您喜欢我的项目,如果您有任何疑问,请在此处留下您的评论,我一定会为您提供帮助,或者如果您对任何新类型的项目有任何想法,请在此处发表评论,我一定会成功的。

我会不断更新这个教程。

感谢观看项目,我希望你喜欢这个项目,如果你喜欢,请关注我,我会继续发布很棒的新项目。另外,别忘了订阅我的 YouTube 频道。(YouTube:DIY 燃烧器)

 


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

评论(0)
发评论

下载排行榜

全部0条评论

快来发表一下你的评论吧 !