基于WemosD1的避障小车

1.避障小车展示

 

2.该项目所需器材

主控芯片WemosD1
其他耗材帅气的遥控车一辆、超声波模块、L9110s驱动模块
手机APP所需软件TCP连接(手机可以直接应用商店下载)、Eslipse、夜神模拟器

3.ESP82600WiF模块核心代码

WemosD1集成了ESP8266WiFi模块,而且运行WemosD1的平台有自带的ESP8266的封装库,所以使用该芯片只要知道如何调用库函数即可


char* ssid="Dugad";//wifi热点名称
char* passwd="Ultrman";//wifi热点密码
void initWifiSta(){
        WiFi.mode(WIFI_STA);//设置STA模式
        WiFi.begin(ssid,passwd);//连接网络
            while(WiFi.status() != WL_CONNECTED){//判断是否有网络连接
                  Serial.print(".");
                  delay(500);
              }
            Serial.println(WiFi.LocalIP());//通过串口打印IP地址
            delay(500);
  }

4.L9110s驱动步进电机原理

驱动原理  :总共有六个引脚    中间两个为电源的正负极    其他四个为信号线
B-1AB-2A电机1A-1AA-1B电机2
01正转(假设)01正转(假设)
10反转10反转
00不转00不转
11不转11不转
void initL9110s(){//代码仅供参考
  pinMode(going1,OUTPUT);
  pinMode(going2,OUTPUT);
  pinMode(turn1,OUTPUT);
  pinMode(turn2,OUTPUT);
  }
  void goTail(){//后退
      digitalWrite(going1,HIGH);
      digitalWrite(going2,LOW);
  }
 void goFront(){//前进
      digitalWrite(going1,LOW);
      digitalWrite(going2,HIGH);
  }
 void goLeft(){//左
      digitalWrite(turn1,LOW);
      digitalWrite(turn2,HIGH);
  }
 void goRight(){//右
      digitalWrite(turn1,HIGH);
      digitalWrite(turn2,LOW);
  }

5.超声波模块

见我写的这个垃圾桶

https://blog.csdn.net/weixin_46085524/article/details/109180087

5.通过安卓模拟器实现APP控制小车

(1).小丑小丑的APP展示(哈哈不是俺写的,但还是不错地)

(2).Java和XML俺目前正在学,等我学得差不多了再回来把这个界面改好看点。

6.项目核心代码

 

#include <ESP8266WiFi.h>
#define going1 D6
#define going2 D7
#define turn1 D4
#define turn2 D5
#define Echo D2 //echo(回应)
#define Trig D8 //Trig(触发)
char* ssid="HONOR 20";//wifi热点名称
char* passwd="123456789";//wifi热点密码
int port=8888;
WiFiServer server(port);
long getTime(){
  digitalWrite(Trig,HIGH);
  delayMicroseconds(10);//发送一个10微秒(us)的脉冲
  digitalWrite(Trig,LOW);
  return pulseIn(Echo,HIGH);
  }
void inintChaoShengBo(){
      pinMode(Echo,INPUT);
      pinMode(Trig,OUTPUT);
  }
void initWifiSta(){
        WiFi.mode(WIFI_STA);//设置STA模式
        WiFi.begin(ssid,passwd);//连接网络
            while(WiFi.status() != WL_CONNECTED){
                  Serial.print(".");
                  delay(500);
              }
              Serial.println(WiFi.localIP());//通过串口打印IP地址
  }
void initL9110s(){
  pinMode(going1,OUTPUT);
  pinMode(going2,OUTPUT);
  pinMode(turn1,OUTPUT);
  pinMode(turn2,OUTPUT);
  }
 void goFront(){//前进
      digitalWrite(going1,HIGH);
      digitalWrite(going2,LOW);
  }
 void goTail(){//后退
      digitalWrite(going1,LOW);
      digitalWrite(going2,HIGH);
  }
  void stopCar(){//停下
      digitalWrite(going1,LOW);
      digitalWrite(going2,LOW);
    }
 void goLeft(){//左
      digitalWrite(turn1,LOW);
      digitalWrite(turn2,HIGH);
  }
  void returnInit(){//车的方向回正
      digitalWrite(turn1,LOW);
      digitalWrite(turn2,LOW);
  }
void setup() {
  initL9110s();
  inintChaoShengBo();
  Serial.begin(115200);
  initWifiSta();
  server.begin();                                                                                                                                                                                                                                                                                                                                                                                                                       
}
void loop() {
  char cmd;
  int mark=1;//定义一个标志位
  long dis;
  WiFiClient client=server.available();//服务初始化
  while(client.connected()){
    while(client.available() > 0){
      cmd=client.read();
      Serial.println(cmd);
      dis=getTime()/58;
      if(dis < 10){
        goTail();
        delay(200);
        stopCar();
        mark=1;
        }else
        {
          mark=0;
        }
         if(mark==0){
       switch(cmd){
          case 'q':goFront();break;
          case 'h':goTail();break;
          case 'z':goLeft();break;
          case 'y':goLeft();break; 
          case 's':stopCar();break;
          case 'd':returnInit();break;
        }
   }
    }
  }
}

 

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值