基于Arduino的四轴寻迹小车制作详解
创作时间:
作者:
@小白创作中心
基于Arduino的四轴寻迹小车制作详解
引用
CSDN
1.
https://blog.csdn.net/2301_78080608/article/details/139883852
四轴寻迹小车是一种能够自动识别并沿着预定轨迹行驶的机器人。它广泛应用于工业自动化、物流运输等领域。本文将详细介绍如何使用Arduino和五路寻迹传感器制作一个四轴寻迹小车,包括硬件连接和软件编程两个方面。
硬件准备
- Arduino控制板
- Adafruit Motor Shield电机驱动板
- 四个直流电机
- 五路寻迹传感器模块
- 连接线和面包板
硬件连接
电机连接:
#include <AFMotor.h> //add Adafruit Motor Shield library
AF_DCMotor LeftMotor1(2);
AF_DCMotor LeftMotor2(3);
AF_DCMotor RightMotor1(1);
AF_DCMotor RightMotor2(4);
五路寻迹传感器连接:
// 五路寻迹模块引脚定义
const int TrackSensorLeftPin1 = 9;
const int TrackSensorLeftPin2 = A2;
const int TrackSensorMid = A3;
const int TrackSensorRightPin1 = A4;
const int TrackSensorRightPin2 = A5;
软件编程
寻迹逻辑
寻迹的原理是通过发送信号,黑色吸光返回0,其他颜色返回1。博主选用的是五路寻迹,当小车直行时,中间返回值为0,总体返回 11011。
五路产生的常见情况:
- 11011:未偏离
- 10111:稍稍右偏,左走修正
- 11101:稍稍左偏,右走修正
- 01111:大右偏,左修正
- 11110:大左偏,右修正
代码实现
void setup() {
Serial.begin(9600);
// 初始化五路寻迹模块引脚为输入
pinMode(TrackSensorLeftPin1, INPUT);
pinMode(TrackSensorLeftPin2, INPUT);
pinMode(TrackSensorMid, INPUT);
pinMode(TrackSensorRightPin1, INPUT);
pinMode(TrackSensorRightPin2, INPUT);
}
void loop(){
xunji();
}
void xunji(){
// 读取五路寻迹模块的状态
int SLL = digitalRead(TrackSensorLeftPin1);
int SL = digitalRead(TrackSensorLeftPin2);
int SM = digitalRead(TrackSensorMid);
int SR = digitalRead(TrackSensorRightPin1);
int SRR = digitalRead(TrackSensorRightPin2);
// 根据五路寻迹模块的状态控制电机运动
if (SLL == 1 && SL ==1 && SM == 0 && SR == 1 && SRR == 1) {
motor_forward();
} else if (SLL == 1 && SL ==0 && SM == 1 && SR == 1 && SRR == 1) {
turn_l();
} else if (SLL == 0 && SL ==1 && SM == 1 && SR == 1 && SRR == 1) {
turn_l();
} else if (SLL == 1 && SL ==1 && SM == 1 && SR == 0 && SRR == 1) {
turn_r();
} else if (SLL == 1 && SL ==1 && SM == 1 && SR == 1 && SRR == 0) {
turn_r();
}
}
void motor_forward() {
LeftMotor1.run(FORWARD);
LeftMotor2.run(FORWARD);
RightMotor1.run(FORWARD);
RightMotor2.run(FORWARD);
LeftMotor1.setSpeed(120);
LeftMotor2.setSpeed(120);
RightMotor1.setSpeed(120);
RightMotor2.setSpeed(120);
}
void turn_l(){
LeftMotor1.run(BACKWARD);
LeftMotor2.run(BACKWARD);
RightMotor1.run(FORWARD);
RightMotor2.run(FORWARD);
LeftMotor1.setSpeed(75);
LeftMotor2.setSpeed(75);
RightMotor1.setSpeed(180);
RightMotor2.setSpeed(180);
}
void turn_r(){
LeftMotor1.run(FORWARD);
LeftMotor2.run(FORWARD);
RightMotor1.run(BACKWARD);
RightMotor2.run(BACKWARD);
LeftMotor1.setSpeed(180);
LeftMotor2.setSpeed(180);
RightMotor1.setSpeed(75);
RightMotor2.setSpeed(75);
}
void motor_stop() {
LeftMotor1.run(RELEASE);
LeftMotor2.run(RELEASE);
RightMotor1.run(RELEASE);
RightMotor2.run(RELEASE);
LeftMotor1.setSpeed(0);
LeftMotor2.setSpeed(0);
RightMotor1.setSpeed(0);
RightMotor2.setSpeed(0);
}
热门推荐
如何在办公室优雅地放屁?
放屁多不仅尴尬,还可能影响心理健康!
妙佑医疗推荐:益生菌+抗性淀粉改善放屁多
吃豆子真的会放很多屁吗?
给“扮演蒋介石”的10位演员排名:马晓伟未进前3,前两位已去世
花椒粉的正确使用方法:7种实用技巧让你的烹饪更上一层楼
不要错过紫色!今年秋天穿它很流行,看看轻熟风格搭配示范
如何预防肌肉拉伤?做好五步预防肌肉拉伤
马来西亚8月起下调新柔短程火车票价至1.4新元
兵马俑vs大雁塔:西安两大景点深度对比
冬日探秘:大雁塔与骊山的文化之旅
鹅绒的国家标准检测与质量控制
惠州美食小吃中三宝是什么
惠州美食小吃中的“三宝”:梅菜扣肉、东江盐焗鸡和东江酿豆腐
交通违章行为交警会如何处罚
只需两味药!成就千古乌发名方「二至丸」
文化之旅:新加坡的 13 家博物馆和机构
二至丸,在寒冷的冬季帮我们调养身体
健康饮食如何防止常见疾病的发生
蜀地中医药走向世界丨中医药成果转化走向国际市场
鬼谷子纵横术口诀解析
车辆违章多久能收到违章信息
为何猪油不宜多吃
一勺猪油=五服药?猪油到底是食疗佳品还是健康“杀手”?真相是......
惠州大亚湾一日游,美食美景一网打尽!
持续葡萄糖监测(CGM)如何成为糖尿病患者的控糖神器?
肌肉拉伤的病因、分级、处理措施及预防
肌肉拉伤的病因、分级、处理措施及预防
跑步训练及跑马完赛后,吃什么才能更快恢复?
“换一块电池比买车还贵” 首批新能源车主的八年之痒