2020-4-21 18:53:24 [显示全部楼层]
4415浏览
查看: 4415|回复: 11

[项目] 拉风的自走车

[复制链接]
本帖最后由 gada888 于 2020-8-4 12:55 编辑

见多了自动小车,有点审美疲劳了。就想到了DIY一个自走车。于是买了铝条和螺丝,折腾了一下午,弄出了个粗糙的玩意。结果不太满意,但过程充满了汗水。功能是通过超声传感探测到前方物体后开始转弯。由于负重较大,走的还比较笨拙。这个后面会调整。



拉风的自走车图1拉风的自走车图7
硬件清单见以下图例
拉风的自走车图2
Arduino nano

拉风的自走车图3
L298N

拉风的自走车图4
红外避障传感

拉风的自走车图5

超声传感

其他一些电线,螺丝,电机等附件

拉风的自走车图6
项目连线图

[mw_shl_code=applescript,false]/*

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);
}

[/mw_shl_code]拉风的自走车图8
拉风的自走车图9









hnyzcj  版主

发表于 2020-4-21 19:26:26

感觉像只虫子
回复

使用道具 举报

云天  初级技神

发表于 2020-4-21 21:25:24

看着简单,只要动手去做,就是困难重重。所以实践出真知。
回复

使用道具 举报

rzyzzxw  版主

发表于 2020-4-22 08:09:20

所以实践出真知。+1
回复

使用道具 举报

小刚郭  初级技师

发表于 2020-4-22 10:32:12

为什么楼主这么爱车
回复

使用道具 举报

gada888  版主
 楼主|

发表于 2020-4-23 17:40:37


参照的是‘人马战神’
回复

使用道具 举报

gada888  版主
 楼主|

发表于 2020-4-23 17:42:04

小刚郭 发表于 2020-4-22 10:32
为什么楼主这么爱车

已经做了发炮小车,需要一个自动避障小车,自己一个人玩时候,把两台车配合对打的
回复

使用道具 举报

gada888  版主
 楼主|

发表于 2020-4-23 17:42:57

云天 发表于 2020-4-21 21:25
看着简单,只要动手去做,就是困难重重。所以实践出真知。

累并快乐着
回复

使用道具 举报

20060606  高级技匠

发表于 2020-8-4 10:33:31

机械结构能分享一下吗?
回复

使用道具 举报

gada888  版主
 楼主|

发表于 2020-8-4 12:54:44

20060606 发表于 2020-8-4 10:33
机械结构能分享一下吗?

内容更新了,看最后两张图片
回复

使用道具 举报

20060606  高级技匠

发表于 2020-8-18 11:01:01

gada888 发表于 2020-8-4 12:54
内容更新了,看最后两张图片

谢谢分享
回复

使用道具 举报

 初级技匠

发表于 2022-4-16 14:34:49

把它放地上走一下试试
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
[[wsData.name]]

硬件清单

  • [[d.name]]
btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail