每个男孩或者男人都有一个掌控变形金刚汽车人的梦想,如果是自己亲手制作的,那就太棒了。
本文介绍了基于Arduino的智能小车。
智能小车可以自动超声波避障,而且蓝牙模块可与手机等蓝牙设备交互,无线模块(433M)可与上位机交互。
所需硬件:
- 汽车底盘/车轮/直流减速电机/20线枪码盘/电池盒及四姐5V电池/舵机SG90/云台/电机驱动板L298N/Arduino UNO板以及扩展板/蓝牙模块HC-08/无线433M模块HC-12模块
硬件
- L298N用于驱动电机,还可以通过使能端调整速度
智能小车超声测距避障的代码
#include <Servo.h>
#define STOP 0
#define FORWARD 1
#define BACKWARD 2
#define TURNLEFT 3
#define TURNRIGHT 4
int pinI1=8;//定义I1接口
int pinI2=9;//定义I2接口
int pinI3=10;//定义I3接口
int pinI4=11;//定义I4接口
Servo myServo; //舵机
int inputPin=6; // 定义超声波信号接收接口
int outputPin=7; // 定义超声波信号发出接口
void setup() {
// put your setup code here, to run once:
//串口初始化
Serial.begin(9600);
//舵机引脚初始化
myServo.attach(5);
//测速引脚初始化
pinMode(pinI1,OUTPUT);
pinMode(pinI2,OUTPUT);
pinMode(pinI3,OUTPUT);
pinMode(pinI4,OUTPUT);
//超声波控制引脚初始化
pinMode(inputPin, INPUT);
pinMode(outputPin, OUTPUT);
}
void loop() {
// put your main code here, to run repeatedly:
avoidance();
}
void motorRun(int cmd)
{
switch(cmd){
case FORWARD:
Serial.println("FORWARD"); //输出状态
digitalWrite(pinI4,LOW);//使直流电机(右)逆时针转
digitalWrite(pinI3,HIGH);
digitalWrite(pinI1,LOW);//使直流电机(左)顺时针转
digitalWrite(pinI2,HIGH);
break;
case BACKWARD:
Serial.println("BACKWARD"); //输出状态
digitalWrite(pinI4,HIGH);//使直流电机(右)顺时针转
digitalWrite(pinI3,LOW);
digitalWrite(pinI1,HIGH);//使直流电机(左)逆时针转
digitalWrite(pinI2,LOW);
break;
case TURNLEFT:
Serial.println("TURN LEFT"); //输出状态
digitalWrite