嘿伙计们,欢迎来到我的第一篇教程文章。所以今天我们要制作一个“使用 Arduino nano 的人类跟随机器人”似乎很有趣对吧?
先给大家介绍一下这款机器人的主要工作原理:
该人类追随者将拥有一个超声波传感器,该传感器将作为跟踪前方物体的媒介。我们将以这种方式对 arduino nano 进行编码,当一个物体靠近超声波传感器并且它的距离小于 5 厘米时,它会向后移动,如果它超过 10 厘米且小于 20 厘米,它就会向前移动超过 20 厘米和不到 25 厘米,比它会向左等等......
如果你还没有理解它的工作原理,那么看看整个教程你可能会理解它......
特别感谢JLCPCB为我提供优质的 PCB。
主要特征:
~ 项目中使用的物品/装备很容易获得。
~ 低成本项目。
~ 没有多少复杂的电路。
~ 学习 AI 的最佳范例。
所以让我们开始这个项目:-)
~ 所以为了制作 chassy,我使用了一块 10*14 厘米的纸板。
~ 然后我们需要一个齿轮马达 4 件。
~ 我们将使用热胶枪将电机粘在纸板上。
〜我们进入电机的接线,接线将这样我们将横向焊接同一侧的电线。如上图所示。
~ 我们需要一个橡胶轮(4 个)用于电机。
〜然后我们的chassy就准备好了。
让我们进入下一步...
~ 在这里,我们将使用 L298N 电机驱动器。
~ 在胶水的帮助下将电机驱动器固定在机箱的背面。如图所示。
~ 然后你需要将电机线连接到电机驱动器的电机端子上。
这就是使 chassy 功能化所需要做的一切。
在这个项目中,我使用定制设计的电路板来提供更专业的触感。所以我选择了 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 设计,可在您的网络浏览器中运行。
7 天后,我从JLCPCB获得了 10 块高质量 PCB 。然后我将所有的头针安装到里面并焊接起来。
~ 现在是时候将 Arduino nano 与 PCB 一起安装,并在组件和 PCB 之间建立所有必要的连接。
〜首先我们将在电机驱动器和Arduino之间建立连接。
带有 Arduino 引脚的电机驱动器引脚:
IN1 至 D5
IN2 至 D4
IN3 至 D3
IN4 到 D2
enA 到 D6
enB 到 D7
〜所以我们需要做的就是电机驱动器引脚......
在这部分中,我们将需要超声波传感器、其支架、伺服电机...
〜首先我们将伺服与底盘粘在一起。
~ 然后我们将使用超声波传感器及其支架。
~ 然后我们将超声波传感器放入支架中。
~ 之后,我们将安装在伺服系统中。如图所示...
所以我们将伺服,超声波传感器与arduino连接起来。
〜将伺服连接到PCB中可用的伺服引脚。
~ 只需连接超声波传感器引脚,如下所示:
触发到 D10
回声到 D11
接地到接地
VCC 至 +5V
这就是所有的连接。非常容易和简单。
~ 在上传草图之前,不要忘记从 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 下载代码:下载代码
不要忘记连接电池座并将支架的电线连接到电机驱动器和 arduino nano。
观看我们的 YouTube 视频以查看其测试视频。立即观看!
我们现在完成了。我希望您喜欢我的项目,如果您有任何疑问,请在此处留下您的评论,我一定会为您提供帮助,或者如果您对任何新类型的项目有任何想法,请在此处发表评论,我一定会成功的。
我会不断更新这个教程。
感谢观看项目,我希望你喜欢这个项目,如果你喜欢,请关注我,我会继续发布很棒的新项目。另外,别忘了订阅我的 YouTube 频道。(YouTube:DIY 燃烧器)
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
全部0条评论
快来发表一下你的评论吧 !