智能避障小车学习笔记(基于Wemos的避障小车)
智能避障小车
一、开发环境及硬件
ArduiNo平台
网盘地址:https://pan.baidu.com/s/1w3MHxkCUBOlbqKRxRhlwbQ
提取码:o6gk
硬件
WeMos D1
板载无线网卡
支持AP(路由), STA(上网设备)模式
特性
- 基于ESP-8266EX
- Arduino兼容,使用rduino IDE来编程
- 11 x I/O 引脚
- 1 x ADC 引脚(输入范围0-3.3V)
- 板载5V 1A开关电源(高输入电压24V)
L9110s步进电机
1.模块供电电压2.5V-12V
2.VCC接2.5V-12V电压
3.GND接GND
4.IA1\IB1\IA2\IB2外接单片机IO口
遥控小车
超声波传感器模块上面通常有两个超声波元器件,一个用于发射,一一个用于接收。电路板上有4个引脚: VCC (正极)、Trig (触发)
Echo (回应)、GND (接地)
二、硬件准备
(一)、拆车
仅留两个红点处两根黑粗线
(二)、连线
1.超声波传感器模块
VCC ---- Wemos 5v
GND ---- Wemos GND
Trig–Wemos D8
Echo–D2
2. L9110s步进电机
VCC— Wemos 5v
GND—Wemos GND
B-1A—D7
B-2A —D6
A-1A—D4
A-1B—D3
三、Wemos 代码
//定义接口
#define Dong1 D6
#define Dong2 D7
#define Zhuan1 D3
#define Zhuan2 D4
#define Echo D2
#define Trig D8
#include <ESP8266WiFi.h>char* ssid = "WiFi热点名称"; //“wifi热点名称”
char* passwd = "WiFi密码"; //”wifi热点密码”int port = 8888; //端口号
WiFiServer server(port); // 设置服务器端口号void initWifiSta()
{WiFi.mode(WIFI_STA); // 设置STA模式WiFi.begin(ssid, passwd); //连接网络while (WiFi.status() != WL_CONNECTED) {Serial.print(".");delay(500);}Serial.println(WiFi.localIP()); //通过串口打印wemos的IP地址
}//初始化函数
void initXiaoche19220()
{//定义为输出引脚pinMode(Dong1, OUTPUT);pinMode(Dong2, OUTPUT);pinMode(Zhuan1, OUTPUT);pinMode(Zhuan2, OUTPUT);
}//前进
void QianJin()
{digitalWrite(Dong1, HIGH);digitalWrite(Dong2, LOW);
}//后退
void Houtui()
{digitalWrite(Dong1, LOW);digitalWrite(Dong2, HIGH);
}//右转
void Youzhuan()
{digitalWrite(Zhuan1, HIGH);digitalWrite(Zhuan2, LOW);
}//左转
void Zuozhuan()
{digitalWrite(Zhuan1, LOW);digitalWrite(Zhuan2, HIGH);
}//方向摆正
void Zheng()
{digitalWrite(Zhuan1, LOW);digitalWrite(Zhuan2, LOW);
}//停止
void Stop()
{digitalWrite(Dong1, LOW);digitalWrite(Dong2, LOW);
}
//获取方波在传输过程中的时间
long getTime()
{digitalWrite(Trig, HIGH);delayMicroseconds(10);digitalWrite(Trig, LOW);return pulseIn(Echo, HIGH);
}
void initChaoShengBo()
{pinMode(Trig, OUTPUT);pinMode(Echo, INPUT);
}
void setup() {// put your setup code here, to run once:initXiaoche19220();Serial.begin(115200);//开启串口//启动连接WIFIinitWifiSta();server.begin();//启动服务器initChaoShengBo();//初始化超声波
}void loop() {// put your main code here, to run repeatedly:char cmd;//定义存放数据的变量int mark = 0;//用作遇到障碍物时只做后退动作的标记变量//定义获取距离变量long dis;WiFiClient client = server.available();//服务初始化while (client.connected()) { //查看是否有客户端接入while (client.available() > 0) //接入后查看是否有数据传入{cmd = client.read();dis = getTime() / 58;if (dis < 10) {Houtui();delay(200);Stop();mark = 1;} else {mark = 0;}if (mark == 0) {switch (cmd){case 'q':QianJin();break;case 'h':Houtui();break;case 'z':Zuozhuan();break;case 'y':Youzhuan();break;case 's':Stop();break;case 'd':Zheng();break;}}}}
}
智能避障小车学习笔记(基于Wemos的避障小车)相关推荐
- 基于Wemos D1避障WiFi小车及智能垃圾桶设计
基于Wemos D1避障WiFi小车及智能垃圾桶设计 一.实验器材 主控芯片 Wemos D1 其他器材 HC-SR04超声波.L9110s电机.ESP82660WiFi模块.蜂鸣器 所需设备 TCP ...
- STM32学习笔记——基于正点原子例程编码器模式小结
STM32学习笔记--基于正点原子例程编码器模式小结 最近一段时间学习了,STM32f4的编码器功能,经过自己探索和他人的热心帮助,对于编码器模式有了一定了解.STM32f4单片机提供编码器模式,以便 ...
- 激光slam学习笔记——基于图优化的激光slam方法
激光slam学习笔记--基于图优化的激光slam方法 1.slam基础 整体来说,在激光slam中,滤波器的误差要小于图优化的误差. 图优化通俗点说就是里程计计算的位姿与观测到的位姿之间会形成一个误差 ...
- 嵌入式学习笔记——基于Cortex-M的单片机介绍
基于Cortex-M的单片机介绍 前言 1生产厂商及其产品线 1.1ARM单片机的产品线 1.2命名规则 作业1 2习单片机的资料准备 2.1STM32开发所需手册 2.1.1芯片的数据手册 芯片基本 ...
- 巡线小车学习笔记(arduino 四路循迹)
巡线小车代码学习笔记 红外布局原理 中间两路巡线一直在黑线上,小车会直行,当任意一个出来,小车会自动纠正.如果最外面的检测到黑线.则小车以更大速度纠正到黑线上去.在算法上,优先处理锐角,直角等外围传感 ...
- .Net Core + 微信赋能企业级智能客服系统--学习笔记
摘要 围绕目前需求猛增的微信及移动端企业智能客服业务,利用 .NET Core 的一系列优秀特性及 SignalR 模块打造全双工.跨微信/QQ/钉钉等应用平台.跨系统平台.跨终端.支持企业级并发的移 ...
- 学习笔记 —— 基于C加速的Python高效计算 (Cython pybind11)
目录 引言 Cython 示例介绍 第一阶段优化 第二阶段优化 Cython Annotation tool 优化方法 第三阶段优化 比对下 JIT的Numba 总结 pybind11 Links I ...
- HaaS学习笔记 | 基于HaaS Python轻应用的LED跑马灯明细教程
[1]题目要求 [案例]:在HaaS框架下实现LED跑马灯. 蓝蜻蜓ESP32开发板的LED灯电路连接如下: D3灯----GPIO14,高电平点亮,低电平熄灭. ...
- ROS学习笔记——基于Prometheus无人机开源项目仿真环境配置
本笔记基于ubuntu18.04版本,配置基于Prometheus无人机开源项目仿真环境. 需要事先在电脑上安装了ROS,Mavros功能包,其余可参考Amov教程, ...
- 学习笔记 | 基于FPGA的伪随机数发生器(附代码)
今天给大侠带来在基于FPGA的伪随机数发生器,话不多说,上货. 今天是画师本人第一次和各位大侠见面,执笔绘画FPGA江湖,本人写了篇关于FPGA的伪随机数发生器学习笔记,这里分享给大家,仅供参考. 1 ...
最新文章
- asp.net用url重写URLReWriter实现任意二级域名 (转)
- select、poll、poll的比较(转)
- 使用自己的数据集训练MobileNet、ResNet实现图像分类(TensorFlow)
- 数据库下午怎么插入_2020/3/25 下午 数据库第四章 自连接(示例代码)
- 阿里云数字巡展:“云上峰会”背后的秘密武器
- python学习第29天
- 基于JAVA+SpringMVC+Mybatis+MYSQL的二手房交易系统
- 防止 重复重建相同的表
- jQuery 左侧滑动
- kaios好用吗_如何评价Kai Os?
- 易用性软件测试用例,软件性能测试规定——易用性测试规定
- 8、网友问答之串口数据接收与数据强制转换---------labview宝典
- 基于MATLAB的语音信号设计,基于MATLAB的语音信号处理系统设计
- 基于GD库的php验证码类(支持中英文字体、背景、干扰点线、扭曲…….)
- s3c6410 开发板Linux系统支持 K9GAG08U0E的方法(第二篇)
- 曾经的小弟, 成了现在的大牛
- java源码系列:HashMap底层存储原理详解——5、技术本质-原理过程-算法-取模会带来一个什么问题?什么是哈希冲突?为什么要用链表?
- K-Means聚类算法原理及其python和matlab实现
- 工作三四年,如果你也迷茫。
- MyBatis持久层框架