赞
踩
ARDUIN开发环境,和KEL对比
优点:集成很多开发库如串口,网络,SG9O等
各种硬件开发接口,迅捷开发
自带串口调试工具
缺点:程序编译速度慢
特性
1.基于ESP-8266EX
2. ARDUIN兼容,使用 RDUINO DE来编程
3.11位I/O引脚
4.1位ADC引腳(输入范围O-3.3V)
5.板载5V1A开关电源(高输入电压24V)
工作中
和sTM32模块开发类似,集成度高 STM32方案也更经济便宜
1.WeMos D1
2.SG90舵机
3.超声波模块
4.LD3320
5.连接线若干
工作电压:5V、15mA
感测距离:2~400cm
超声波测距原理
关于距离中除以58的说明
58也很好理解,声音在干燥、摄氏20度的空气中的传播速度大约为343米/秒,合34,300厘米/秒。
我们作一下单位换算,34,300除以1,000,000厘米/微秒。即为:0.0343厘米/微秒,再換一个角度,1/(0.0343厘米/微秒)即:29.15微秒/厘米。
这就意味着,每291.5微秒表示10CM的距离。1厘米就是29.15微秒。但是发送后到接收到回波,声音走过的是2倍的距离呀。所以实际距离就是1厘米,对应58.3微秒。
参数:
关于舵机核心代码
#define PIN_SE D5
Servo SteeringEngine//创建一个舵机,名叫SteeringEngine
myservo, attach(PIN SERVO)//链接舵机
myservo. write(30) //舵机的转动控制
关于语音模块不作过多介绍,在某宝购买后,卖家会给出示例代码。给出我的语音模块与WeMos D1模块连接
LD3320 ___ WeMos D1
RXD _______ TX
TXD _______ RX
3.3V _______ 3.3V
GND _______ GND
对于语音模块代码可参考相应手册。
这里请注意关于串口通信这块不是很懂,所以这里开始我未对接受、输出引脚进行低电平处理致使开始一直未串口通信成功。若有大佬看见希望能指点迷津。
#include<Servo.h> #define Echo D5 #define Trig D8 #define PIN_SE D9 Servo SteeringEngine; int key=0; long getroundtriptime()/*得到超声波从发出到遇到障碍物折回所需要的时间*/ { digitalWrite(Trig,HIGH); delayMicroseconds(10); digitalWrite(Trig,LOW); return pulseIn(Echo, HIGH); } void initStadiometry() { pinMode(Echo,INPUT); pinMode(Trig,OUTPUT); } void setup() { // put your setup code here, to run once: initStadiometry(); SteeringEngine.attach(PIN_SE); Serial.begin(9600); pinMode(D9,OUTPUT); digitalWrite(D1,LOW); digitalWrite(D0,LOW); } void loop() { // put your main code here, to run repeatedly: long dis; int cmd; dis=getroundtriptime()/58; if ( Serial.available() > 0 ) { //检测串口是否有数据 cmd =Serial.read(); // 读取串口数据,数据以十六进制方式接收 Serial.println(cmd); //打印接收的信息 switch(cmd) { case 1: //前面提到的读取到1表示向前 SteeringEngine.write(20); key=1; break; case 2: SteeringEngine.write(180); key=0; break; default: break; } } if(key==0) { if(dis<10) { SteeringEngine.write(20);//write函数用于角度控制 delay(2000); } else { SteeringEngine.write(180); } } }
这次的一个校级比赛,所以对于小白的我,将之前的课程结合语音模块做了这个项目,参加比赛,自知能力尚浅,但是众在参与,当项目做出来的时候,还是有一定的喜悦感。
2020.11.18
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。