资讯详情

基于Wemos的wifi控制避障小车

这是很久以前的事了demo今天做个记录,毕竟是学习的过程。

准备材料和简述

WeMos D1

特性

  1. 基于ESP-8266EX

  2. Arduino兼容,使用rduino IDE来编程

  3. 11 x I/O 引脚

  4. 1 x ADC 引脚(0-3-3.3V)

  5. 板载5V 1A开关电源(高输入电压244V)

工作中:

和stm32模块开发类似,集成度高

STM32方案也更经济便宜

在这里插入图片描述

红框中的板载无线网卡

支持AP(路由), sta(上网设备)模式

超声波模块

超声传感器模块通常有两个超声元件,一个用于发射,另一个用于接收。电路板上有四个引脚: VCC(正极)、Trig(触发)Echo(回应)、GND主要参数: 1.工作电压和电流:5V、15mA。 2.感知距离:2~400cm。 3.感测角度:不大于15°。 4.被测物体的面积不得小于50cm并尽可能平整,有温度补偿电路。 5.在超声波模块的触发脚位输入超过10个微妙的高电位,发射超声波,在接收传回的超声波之前,响应脚位呈现高电位。因此,该程序可以从响应脚位的高电位脉冲连续性来转换被测物体的距离。

L9110S直流电机驱动

L9110S参数:输入电压2.5V-12V,输出电流800mA,正反转 描述: L9110 为控制和驱动电机设计的两通道推拉式功率放大专用集成电路器件,将单片分立电路集成IC 之中,使外围器件成本降低,整机可靠性提高。有两个芯片TTL/CMOS兼容电平输入,抗干扰性好;两个输出端可以直接驱动电机的正反向运动,电流驱动能力大,每个通道可以通过800mA 峰值电流能力可达1.5A;具有较低的输出饱和压降;内置钳位二极管能释放感性负载的反向冲击电流,安全可靠地使用驱动继电器、直流电机、步进电机或开关电源管。L9110 广泛应用于玩具汽车电机驱动、脉冲电磁阀驱动、步进电机驱动、开关功率管等电路。 特点: 低静态工作电流; 宽电源电压范围:2.5V-12V; 每通道具有 800mA 连续电流输出能力; 饱和压降较低; TTL/CMOS 输出电平兼容,可直接连接CPU; 输出内置钳位二极管,适用于感性负载; 控制和驱动集成在单片中 IC 之中; 具有管脚高压保护功能; 工作温度:-20°C-80°C。

另外,开发环境是Arduino,和keil对比,Arduino串口、网络、sg90等;包括各种硬件开发接口,快速开发;自带串口调试工具,缺点是编程速度慢。

操作过程

首先,让我们看看硬件的连接线。

超声传感器: VCC——wemos 5V GND——wemos GND Trig——wemos D8 Echo——wemos D2

L9110S直流电机: VCC——wemos 5V、VIN GND——wemos GND //后轮 A-1B——wemos D7 A-1A——wemos D6 //转向 B-2A——wemos D4 B-1A——wemos D5

看看代码。

#include <ESP8266WiFi.h> #define Dong1 D7 #define Dong2 D6 #define Zhuan1 D5 #define Zhuan2 D4 #define Echo D2 #define Trig D8  char* ssid = "WiFi账号"; char* passwd = "WiFi密码";  int port = 8899;///口号,自己定 WiFiServer server(port);///设置服务器端口号  long getTime() { 
           digitalWrite(Trig, HIGH); delayMicroseconds(10); digitalWrite(Trig, LOW); return pulseIn(Echo, HIGH); } void initChaoShengBo() { 
           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(200); } Serial.println(WiFi.localIP());//通过串口打印wemos的ip地址 delay(500); } void initL9110s() { 
           pinMode(Dong1, OUTPUT); pinMode(Dong2, OUTPUT); pinMode(Zhuan1, OUTPUT); pinMode(Zhuan2, OUTPUT); } void zuo() { 
           digitalWrite(Zhuan1, HIGH); digitalWrite(Zhuan2, LOW); } void you() { 
           digitalWrite(Zhuan1, LOW); digitalWrite(Zhuan2, HIGH); } void zheng() { 
           digitalWrite(Zhuan1, HIGH); digitalWrite(Zhuan2, HIGH); } void hou() { 
           digitalWrite(Dong1, LOW); digitalWrite(Dong2, HIGH); } void qian() { 
           digitalWrite(Dong1, HIGH); digitalWrite(Dong2, LOW); } void ting() { 
           digitalWrite(Dong1, HIGH); digitalWrite(Dong2, HIGH); } void setup() { 
           initL9110s(); initChaoShengBo(); Serial.begin(115200); initWifiSta(); server.begin();//启动服务器 } void loop() { 
           char cmd; //获取距离 long dis; int mark = 0; WiFiClient client = server.available();//服务初始化 while (client.connected()) { 
           //等待客户端连接 while (client.available() > 0) { 
           //有数据到来 cmd = client.read();//读取数据 Serial.println(cmd); dis = getTime() / 58; if (dis < 15) { 
           hou(); delay(200); ting(); mark = 1; } else { 
           mark = 0; } if (mark == 0) { 
           switch (cmd) { 
           case 'q': qian(); break; case 'h': hou(); break; case 'z': zuo(); break; case 'y': you(); break; case 's': ting(); break; case 'd': zheng(); break; } } } } } 

保存上传,静等编译,之后打开串口调试和网络调试工具。

根据代码发送指令就可以了,实现比较简陋,总体实现根据指令运转、接入WiFi以及小车避障功能。

标签: wl电位器b继电器d4awl的二极管052d4脚继电器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台