拉风的自走车
本帖最后由 gada888 于 2020-8-4 12:55 编辑见多了自动小车,有点审美疲劳了。就想到了DIY一个自走车。于是买了铝条和螺丝,折腾了一下午,弄出了个粗糙的玩意。结果不太满意,但过程充满了汗水。功能是通过超声传感探测到前方物体后开始转弯。由于负重较大,走的还比较笨拙。这个后面会调整。
https://v.youku.com/v_show/id_XNDY0MTk3NTg2OA==.html?spm=a2hzp.8244740.0.0
硬件清单见以下图例
arduino nano
L298N
红外避障传感
超声传感
其他一些电线,螺丝,电机等附件
项目连线图
/*
ReModified by gada888
*/
#include<NewPing.h>
int ENA = 3;
int ENB = 9;
int MOTOR_A1 = 4;
int MOTOR_A2 = 5;
int MOTOR_B1 = 6;
int MOTOR_B2 = 7;
int RIGHT = A0;
int LEFT = A1;
#define TRIG A2
#define ECHO A3
#define MAX_DISTANCE 100
NewPing sonar(TRIG, ECHO, MAX_DISTANCE);
void setup() {
// put your setup code here, to run once:
pinMode(ENA, OUTPUT);
pinMode(ENB, OUTPUT);
pinMode(MOTOR_A1, OUTPUT);
pinMode(MOTOR_A2, OUTPUT);
pinMode(MOTOR_B1, OUTPUT);
pinMode(MOTOR_B2, OUTPUT);
pinMode(RIGHT, INPUT);
pinMode(LEFT, INPUT);
}
void loop() {
// put your main code here, to run repeatedly:
delay(70);
int distance = sonar.ping_cm();
if (distance == 0) {
distance = 30;
}
if(distance <=15) {
Stop();
delay(100);
turnRight();
delay(350);
moveForward();
delay(500);
turnLeft();
delay(350);
moveForward();
delay(700);
turnLeft();
delay(300);
moveForward();
delay(400);
turnRight();
delay(400);
}
if (analogRead(RIGHT)<=35 && analogRead(LEFT)<=35) {
analogWrite(ENA, 100);
analogWrite(ENB, 100);
digitalWrite(MOTOR_A1, LOW);
digitalWrite(MOTOR_A2, HIGH);
digitalWrite(MOTOR_B1, HIGH);
digitalWrite(MOTOR_B2, LOW);
}else if (analogRead(RIGHT)<=35 && !analogRead(LEFT)<=35) {
analogWrite(ENA, 100);
analogWrite(ENB, 100);
digitalWrite(MOTOR_A1, HIGH);
digitalWrite(MOTOR_A2, LOW);
digitalWrite(MOTOR_B1, HIGH);
digitalWrite(MOTOR_B2, LOW);
}else if (!analogRead(RIGHT)<=35 && analogRead(LEFT)<=35) {
analogWrite(ENA, 100);
analogWrite(ENB, 100);
digitalWrite(MOTOR_A1, LOW);
digitalWrite(MOTOR_A2, HIGH);
digitalWrite(MOTOR_B1, LOW);
digitalWrite(MOTOR_B2, HIGH);
}else if (!analogRead(RIGHT)<=35 && !analogRead(LEFT)<=35) {
Stop();
}
}
void Stop() {
analogWrite(ENA, 0);
analogWrite(ENB, 0);
digitalWrite(MOTOR_A1, LOW);
digitalWrite(MOTOR_A2, LOW);
digitalWrite(MOTOR_B1, LOW);
digitalWrite(MOTOR_B2, LOW);
}
void turnRight() {
analogWrite(ENA, 100);
analogWrite(ENB, 100);
digitalWrite(MOTOR_A1, LOW);
digitalWrite(MOTOR_A2, HIGH);
digitalWrite(MOTOR_B1, LOW);
digitalWrite(MOTOR_B2, HIGH);
}
void turnLeft() {
analogWrite(ENA,100);
analogWrite(ENB, 100);
digitalWrite(MOTOR_A1, HIGH);
digitalWrite(MOTOR_A2, LOW);
digitalWrite(MOTOR_B1, HIGH);
digitalWrite(MOTOR_B2, LOW);
}
void moveForward() {
analogWrite(ENA, 100);
analogWrite(ENB, 100);
digitalWrite(MOTOR_A1, LOW);
digitalWrite(MOTOR_A2, HIGH);
digitalWrite(MOTOR_B1, HIGH);
digitalWrite(MOTOR_B2, LOW);
}
感觉像只虫子 看着简单,只要动手去做,就是困难重重。所以实践出真知。 所以实践出真知。+1{:7_216:} 为什么楼主这么爱车 hnyzcj 发表于 2020-4-21 19:26
感觉像只虫子
参照的是‘人马战神’ 小刚郭 发表于 2020-4-22 10:32
为什么楼主这么爱车
已经做了发炮小车,需要一个自动避障小车,自己一个人玩时候,把两台车配合对打的 云天 发表于 2020-4-21 21:25
看着简单,只要动手去做,就是困难重重。所以实践出真知。
累并快乐着 机械结构能分享一下吗? 20060606 发表于 2020-8-4 10:33
机械结构能分享一下吗?
内容更新了,看最后两张图片 gada888 发表于 2020-8-4 12:54
内容更新了,看最后两张图片
谢谢分享 把它放地上走一下试试
页:
[1]