Arduino对智能机器人进行简单编程

#include "ESP8266.h"
#define TRIG_PIN 5
#define ECHO_PIN A5
#define BEEP_PIN 12
#define BEEP_ON LOW
#define BEEP_OFF HIGH
#define CH_PD 8
#define OK_BEEP_TIME 200
#define ERROR_BEEP_TIME 1000
ESP8266 wifi = ESP8266(Serial);//串口 void check_esp8266_cmd(){
char buff[10];
if(wifi.available()>0&&wifi.read(buff,10)>0){
switch(buff[0]){
case 'w' :
Serial.print("$DGT:2-7,0!");
break;
case 's' :
Serial.print("$DGT:8-13,0!");
break;
case 'a':
Serial.print("$DGT:14-17,0!");
break;
case 'd' :
Serial.print("$DGT:17-20,0!");
break; }
}
}//wifi控制 void chk_status()
{
int x,y;
x=analogRead(A7);
y=analogRead(A6);
Serial.print("x=");
Serial.print(x);
Serial.print(",y=");
Serial.println(y);
if(x>310&&x<320&&y>320&&y<332)
{
Serial.print("$DGT:33-35,0!");
}//前倒爬起
if(x>330&&x<342&&y>320&&y<335)
{
Serial.print("$DGT:36-38,0!");
}//后倒爬起
if(x>325&&x<335&&y>315&&y<320)
{
Serial.print("$DGT:45-50,0!");
}//左侧倒爬起
if(x>325&&x<335&&y>340&&y<350)
{
Serial.print("$DGT:51-55,0!");
}//右侧倒爬起
delay(2000);
}//姿态判断 void chk_distance()
{
unsigned long d=0;
int i;
for(i=0;i<=5;i++)
{
digitalWrite(TRIG_PIN,LOW);
digitalWrite(TRIG_PIN,HIGH);
delayMicroseconds(12);
digitalWrite(TRIG_PIN,LOW);//脉冲信号
d+=pulseIn(ECHO_PIN,HIGH)/58;
delay(80);
}
d/=5;
Serial.print("d=");
Serial.println(d);
if(d<50){
beep(100);
Serial.println("$DGS:2!");
}
}
void beep(int t){
digitalWrite(BEEP_PIN,BEEP_ON);
delay(t);
digitalWrite(BEEP_PIN,BEEP_OFF);
}
//蜂鸣器
void chk_result(int s)
{
if(s==ESP8266_COMMAND_OK)
{
beep(OK_BEEP_TIME);
}
else
{
beep(ERROR_BEEP_TIME);
}
}
void init_esp8266()
{
pinMode(CH_PD,OUTPUT);
digitalWrite(CH_PD,HIGH);
delay(500);
auto s = wifi.test();
chk_result(s);
s = wifi.setMode(ESP8266_WIFI_ACCESSPOINT);
s = wifi.setAPConfiguration("esp8266", "12345678", 10,ESP8266_ENCRYPTION_WPA_WPA2_PSK);//wifi 名称 密码
s = wifi.setMultipleConnections(true);
s = wifi.createServer(5000);
}
void setup() {
// put your setup code here, to run once:
pinMode(BEEP_PIN,OUTPUT);
pinMode(TRIG_PIN,OUTPUT);
pinMode(ECHO_PIN,INPUT);
digitalWrite(BEEP_PIN,BEEP_OFF);
Serial.begin(115200);//启动窗口
while(!Serial);//检测是否连接成功
Serial.println("Hello robot!");
init_esp8266();
}
int loopcnt;
void loop(){
check_esp8266_cmd();
loopcnt++;
if(loopcnt==10)
{
loopcnt=0;
chk_status();//延迟2秒
} }

Arduino对智能机器人进行简单编程的更多相关文章

  1. 开源IDE CodeBlocks的下载安装、配置、简单编程

    如果没有集成开发环境(IDE),在linux下开发程序将非常繁琐,IDE是指将编辑.编译.调试等功能集成在一个桌面环境上,这样就大大方便了用户.IDE一般包括代码编辑器.编译器.调试器和图形界面用户工 ...

  2. CodeBlocks的下载安装、配置、简单编程

    CodeBlocks的下载安装.配置.简单编程 IDE简介 http://www.baidu.com/s?wd=codeblocks ,这里只是介绍Windows平台下的IDE环境配置. CodeBl ...

  3. FrameBuffer系列 之 简单编程

    一.Linux的帧缓冲设备 帧缓冲(framebuffer)是 Linux为显示设备提供的一个接口,把显存抽象后的一种设备,他允许上层应用程序在图形模式下直接对显示缓冲区进行读写操作.这种操作是抽象的 ...

  4. Linux简单编程学习心得

    在Linux环境下简单编程学习心得 linux编程过程 在上周的<信息安全设计基础>的课程学习中学习到了在虚拟的linux环境下简单的编程.学习过程中接触到了vim.gcc和gcd在实验楼 ...

  5. ASP.NET Core 基础教程总结 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 基础教程总结 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 基础教程总结 ASP.NET Core 基础教程总算是有了个简单 ...

  6. ASP.NET Core 登录登出 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 登录登出 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 登录登出 上一章节我们总算完善了注册的功能,而且也添加了一个用户,现 ...

  7. ASP.NET Core 新增用户 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 新增用户 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 新增用户 上一章节我们实现了一个注册表单,但也留了一些东西还没完成, ...

  8. ASP.NET Core 用户注册 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core 用户注册 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core 用户注册 上一章节我们终于迁移完了 Identity 的数据,也创建 ...

  9. ASP.NET Core Identity 迁移数据 - ASP.NET Core 基础教程 - 简单教程,简单编程

    原文:ASP.NET Core Identity 迁移数据 - ASP.NET Core 基础教程 - 简单教程,简单编程 ASP.NET Core Identity 迁移数据 上一章节中我们配置了 ...

随机推荐

  1. WebRTC打开本地摄像头

    本文使用WebRTC的功能,打开电脑上的摄像头,并且把摄像头预览到的图像显示出来. 纯网页实现,能支持除IE外的多数浏览器.手机浏览器也可用. 引入依赖 我们需要引入adapter-latest.js ...

  2. Python系列教程-详细版 | 图文+代码,快速搞定Python编程(附全套速查表)

    作者:韩信子@ShowMeAI 教程地址:http://showmeai.tech/article-detail/python-tutorial 声明:版权所有,转载请联系平台与作者并注明出处 引言 ...

  3. 不用Spring Boot的痛苦是什么?用了Spring Boot以后的好处是什么?

    1.不用Spring Boot的痛苦是什么? (1)各种技术整合在一起,版本混乱,大量依赖自己去找,依赖冲突 (2)基于xml格式的配置文件,对各种技术框架进行大量的繁琐配置,mvc-servlet. ...

  4. idea内存配置

     找到IDEA安装的bin目录 打开idea.exe.vmoptions 文件 如果嫌麻烦还打开了idea 那么就可以点击这个.. 关键的三个参数的说明 1. -Xms 是最小启动内存参数 2. -X ...

  5. 常用的分布式ID生成器

    为何需要分布式ID生成器 **本人博客网站 **IT小神 www.itxiaoshen.com **拿我们系统常用Mysql数据库来说,在之前的单体架构基本是单库结构,每个业务表的ID一般从1增,通过 ...

  6. 解决ip和域名都能够ping通但是启动nginx无法访问网页的问题

    解决思路 最近双11逛西部数码的官网看看有没有什么服务器优惠的时候,发现了可以申请一个一块钱用一整年的SSL证书,立马心动下单了,想想俺也可以用https装装X了哈哈 不过在部署完证书,并调整ngin ...

  7. 【R读取报错】解决: Can't bind data because some arguments have the same name

    最近读取一个数据时,报如标题的错误. args[1] <- "RT_10-VS-RT_0" all <- read.delim(paste0(args[1]," ...

  8. shell命令行——快捷键

    生活在 Bash shell 中,熟记以下快捷键,将极大的提高你的命令行操作效率. 编辑命令 Ctrl + a :移到命令行首 Ctrl + e :移到命令行尾 Ctrl + f :按字符前移(右向) ...

  9. requests+bs4爬取豌豆荚排行榜及下载排行榜app

    爬取排行榜应用信息 爬取豌豆荚排行榜app信息 - app_detail_url - 应用详情页url - app_image_url - 应用图片url - app_name - 应用名称 - ap ...

  10. 自动化测试系列(二)|API测试

    在上次的自动化测试系列(一)中为大家大体介绍了自动化测试的概念,本文主要针对API测试的概念及API测试在猪齿鱼Choerodon中的实践展开. API(应用程序编程接口)测试是一种软件测试,可以直接 ...