IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 嵌入式 -> arduino智能跟随小车 -> 正文阅读

[嵌入式]arduino智能跟随小车

前言
目前,“机器人"已经成为生活中频繁出现的词汇。本课设所做的智能跟随机器人,属于反馈型移动机器人。
反馈型移动机器人:

  • 可以简单定义为一种对外界信号进行处理反馈最终实现的方式将感知和动作连接在一起的可自移动设备。
  • 它必须具有在一个位置的环物独立完成某些工作的能力。这里的智能更多的是指通过传感器感受外界的变化,通过通过传感器感受外界的变化,最终通过执行器做出反应。

在这里插入图片描述

如今中国具有跟随性的产品.主要是有轨机械跟随,用于工厂的各类生产机车的一部分,或是比赛场的有轨跟随拍摄车,并没有实际针对超市、旅馆、飞机场等大众场合,或家庭个人的产品。基于超声波定位及单片机各模块的综合运用,设计了一款能够对特定移动目标进行实时跟踪的智能小车。利用超声波定位技术和跟随性技术可以根据不同场合的跟踪要求设置小车的跟踪距离和跟踪速度等参数,可以实现对移动目标的准确跟踪,帮助携带物品,解放人们双手。

可以用充电宝当电源
图中充电宝为电源

在智能小车项目中,我们通过控制直流电机的正反转刹车转速来控制小车的行动。

在这台小车中,对直流电机发出的控制指令来自于Arduino主控板,而Arduino主控板的外部输入则来自于超声波传感器、遥控器。本文的自动跟随小车的Arduino主控板外部输入来自于超声波传感器。

超声波传感器

在这里插入图片描述
?超声波传感器是利用超声波的特性的传感器。超声波接收到触发信号后,模块自动发出8个40KHZ的方波,同时开始计时并自动监测是否有信号返回,通过记录超声波从开始发送到接收回波间隔,来判断前方障碍物的距离

注:感应角度范围:15°
超声波测距
在这里插入图片描述

const int TrigPin = 9;  //超声波触发引脚连接UNO引脚9
const int EchoPin = 2;    //超声波接受引脚连接UNO引脚2

const int leftPin1=8;  //AIN1连接引脚8
const int leftPin2=7;  //AIN2连接引脚7
const int rightPin3=4;  //BIN1连接引脚4
const int rightPin4=3;  //BIN2连接引脚3d
const int leftSpeed=6;  //PWA连接引脚6
const int rightSpeed=5;  //PWB连接引脚5
const int intSpeedPWM=120;  //设置小车运行的初始速度

int dist;
int followDist = 30; // ?定义反应的距离
int followBalance = 10; // ?定义范围

void setup() {
  // put your setup code here, to run once:
    pinMode(TrigPin,OUTPUT);
    pinMode(EchoPin,INPUT);
    pinMode(leftPin1,OUTPUT);
    pinMode(leftPin2,OUTPUT);
    pinMode(rightPin3,OUTPUT);
    pinMode(rightPin4,OUTPUT);
}

void loop() {
   followDrive();  // 自动跟随
 }

//******************************
//  功能:跟随模式
//  参数:无
//*******************************
void  followDrive() {  // ?
    getDistance();  // ?获取当前的距离
    if ((dist >= followDist - followBalance) && (dist <= followDist + followBalance)) {
      analogWrite(leftSpeed, intSpeedPWM);
      analogWrite(rightSpeed, intSpeedPWM);
      if (dist > followDist) {  // 当两者间的距离大于设定值时,小车前进
        forward();    
      }
    else if (dist < followDist) {  // 当两者间的距离大于设定值时,小车后退
        backward();   
      }
      else {
        pause();   // 小车停止
      }
    }
    else {
      pause();
    }
}


void getDistance() {  // 超声波测距函数
  digitalWrite(TrigPin, LOW);
  delayMicroseconds(2);
  digitalWrite(TrigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(TrigPin, LOW);
  dist = pulseIn(EchoPin, HIGH) / 58.0;
}

//===============
// 前进
//===============
void forward(){
    digitalWrite(leftPin1,1);
    digitalWrite(leftPin2,0);
    digitalWrite(rightPin3,1);
    digitalWrite(rightPin4,0);
}
//===============
// 后退
//===============
void backward(){
    digitalWrite(leftPin1,0);
    digitalWrite(leftPin2,1);
    digitalWrite(rightPin3,0);
    digitalWrite(rightPin4,1);
}
//===============
// 左转
//===============
void turnLeft(){
    digitalWrite(leftPin1,0);
    digitalWrite(leftPin2,0);
    digitalWrite(rightPin3,1);
    digitalWrite(rightPin4,0);
}
//===============
// 右转
//===============
void turnRight(){
    digitalWrite(leftPin1,1);
    digitalWrite(leftPin2,0);
    digitalWrite(rightPin3,0);
    digitalWrite(rightPin4,0);
}
//===============
// 原地左转
//===============
void rotateLeft(){
    digitalWrite(leftPin1,0);
    digitalWrite(leftPin2,1);
    digitalWrite(rightPin3,1);
    digitalWrite(rightPin4,0);
}
//===============
// 原地右转
//===============
void rotateRight(){
    digitalWrite(leftPin1,1);
    digitalWrite(leftPin2,0);
    digitalWrite(rightPin3,0);
    digitalWrite(rightPin4,1);
}
//===============
// 停止
//===============
void pause(){
    digitalWrite(leftPin1,0);
    digitalWrite(leftPin2,0);
    digitalWrite(rightPin3,0);
    digitalWrite(rightPin4,0);
}

系统测试
以手与小车的距离为标准 通过手的移动,来测试小车。
测试超声波模块时,可通过编译器的串口检测器测试。

  嵌入式 最新文章
基于高精度单片机开发红外测温仪方案
89C51单片机与DAC0832
基于51单片机宠物自动投料喂食器控制系统仿
《痞子衡嵌入式半月刊》 第 68 期
多思计组实验实验七 简单模型机实验
CSC7720
启明智显分享| ESP32学习笔记参考--PWM(脉冲
STM32初探
STM32 总结
【STM32】CubeMX例程四---定时器中断(附工
上一篇文章      下一篇文章      查看所有文章
加:2022-10-31 12:14:20  更:2022-10-31 12:15:21 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/19 14:19:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码