wifi智能小车

本文介绍了如何利用WiFiDuino控制板、Arduino IDE和Blinker软件,创建一个通过WiFi连接的智能小车。首先,讲述了WiFiDuino的硬件连接,包括电机和舵机的接线。接着,详细说明了配置Arduino IDE以支持WiFiDuino的步骤,以及安装Blinker库和获取Secret Key的过程。最后,提到了完成后的物联网小车程序,并推荐了一些有用的资源链接。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

WiFi小车制作:
我做的WiFi小车是利用blinker软件进行操控的。小车是一个电机,一个舵机,因为这样控制方便程序比较简洁,线路接线少。我用到的控制板是wifiduino,和PM-R3拓展版(拓展版可以是其他的)。
WiFiduino大概就是这个样子:
在这里插入图片描述
这时要注意背面对应的引脚1
在这里插入图片描述
编程时定义的引脚是用背面的数值定义的。
现在先讲讲如何使用arduino IDE对wifiduino板子进行编程。
第一步:打开arduino IDE 找到文件→首选项。找到附加开发板管理器网址然后将网址输入http://arduino.esp8266.com/stable/package_esp8266com_index.json
并保存。
在这里插入图片描述
第二步:在arduino IDE上找到工具→开发板→开发板管理器。点击开发板管理器:
在这里插入图片描述
搜索8266然后出现这个:
在这里插入图片描述
然后安装一个版本2.4.1或者最新版本(我安装的是最新版本)
安装好后选中工具→开发板,找到wifiduino并选中还有在工具里面找到编程器并选择第一个AVR ISP。在网上下载一个blinker库以espressif。具体网址我找不到了。
第三步:在手机上下载一个blinker软件。注册一个账号,进入软件点击在右上角的加号,添加一个Ardino设备,选择WiFi接入则会出现一个Secret Key,将该密匙几下,并放回我的设备。准备好后就可以开始编程了。
在这里插入图片描述
在这里插入图片描述
程序如下:

#define BLINKER_WIFI

#include <Blinker.h>

char auth[] = "f1db17ca3691"; //填入你在blinker上获得的密匙
char ssid[] = "HUAWEI P30"; //填入一个接入互联网的WiFi名称
char pswd[] = "123456789aa";  //填入该WiFi的密码

//int servopin=13;//定义舵机接口数字接口9
int myangle;//定义角度变量
int pulsewidth;//定义脉宽变量
int val;
// 新建组件对象        引号里面对应的是blinker上的数据键名
BlinkerButton Button1("btn-abc");    
BlinkerButton Button2("btn-q");
BlinkerButton Button3("btn-t");
BlinkerButton Button4("btn-s");
BlinkerButton Button5("btn-z");
BlinkerButton Button6("btn-y");
BlinkerButton Button7("btn-h");
BlinkerButton ButtonLED("btn-led");
BlinkerButton Buttonled("btn-ledg");
/* 这个版本是根据管理员iuviking的51单片机WIFI小车下位机程序(通信协议版) 版本修改而来,我已经加入了八路舵机控制(p0口),ε咫ヤ涯/ */ #include<reg52.h> #include<math.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int uchar Buffer =0; //从串口接收的数据 uint URTAReceivedCount=0,n=1; uchar data Tempdatatable[5],CommandDatatable[5];//数据包 uchar serVal[2]; uint pwm[]={1120,1190,1382,1382,1382,1382,1382,1382}; //初始90度,(实际是1382.4,取整得1382) uchar pwm_flag=0; uint code ms0_5Con=461; //0.5ms计数 (实际是460.8,取整得461) uint code ms2_5Con=2304; //2.5ms计数 bit key_stime_ok; sbit StatusLight=P2^0; //状态灯 sbit MainLight=P2^1; //主大灯 sbit servo0=P0^0; //舵机控制 sbit servo1=P0^1; sbit servo2=P0^2; sbit servo3=P0^3; sbit servo4=P0^4; sbit servo5=P0^5; sbit servo6=P0^6; sbit servo7=P0^7; /******************************************************************** * 名称 : Delay_1ms() * 功能 : 延时子程序,延时时间为 1ms * x * 输入 : x (延时一毫秒的个数) * 输出 : 无 ***********************************************************************/ void Delay_1ms(uint i)//1ms延时 { uchar x,j; for(j=0;j<i;j++) for(x=0;x<=148;x++); } void TurnOnStatusLight() { StatusLight=0; } /******************************************************************** * 名称 : Send_Data() * 功能 : 向上位机传送字符 * 输入 : 无 * 输出 : 无 ***********************************************************************/ void Send_Data(uchar type,uchar cmd,uchar dat) { uchar data Buffer[5];//构建数据包 uchar *p; uint Send_Count=0; p = Buffer; Buffer[0]=0XFF; Buffer[1]=type; Buffer[2]=cmd; Buffer[3]=dat; Buffer[4]=0XFF; while(1) { if(*p==0XFF) { Send_Count++; //0XFF标志统计位 } SBUF = *p; //发送 while(!TI) //如果发送完毕,硬件会置位TI,等待发送完毕 { _nop_(); } p++; TI = 0; if(Send_Count == 2) //当统计到两次出现0XFF,则认为一个数据包发送完毕,跳出循环 { TI = 0; break;
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值