蓝牙"/>
arduino nano 蓝牙
平时的PPT翻页笔需要插入USB信号接收器,安装相应的驱动,在实际使用过程当中发现并不是每台电脑都能够直接正常的使用,接收器有时也因为反复拔插很容易坏掉导致无法正常使用。ESP32开发板带有WIFI和蓝牙双核功能,这里利用ESP32的蓝牙模拟鼠标功能做一个翻页笔的神器。可以用于PPT的播放,也可以连接手机蓝牙实现一些需要翻页操作的功能,例如刷抖音,设置时间间隔让抖音自动循环播放等功能!
一、总体设计思路
利用ESP32开发板做主控,通过遥感来控制翻页操作。这里的电路连接较简单,通过BleMouse库来实现相应的操作。这里只用了遥感X轴的模拟量和一个按键数字量信号来控制,X轴方向上左右移动控制向上和向下滚动翻页,按下一次按键则进入自动循环滚动模式,时间间隔自己设置,再按一次按键则推出自动循环滚动模式。
二、电路连接
(一)ESP32引脚图
(二)遥感控制器
(三)对应引脚连接
ESP32引脚 遥感控制器
GPIO34 ________ VRx
GPIO5 ________ SW
GND ________ GND
3V3 ________ 5V
三、配置软件开发环境
(一)Arduino IDE中添加esp32开发板
1.找到文件>首选项>附加开发板管理器网址 中加入Arduino core for esp32的地址 .json
2.完成网址添加后就可以在:工具>开发板>开发板管理器 中搜索并下载ESP32开发板数据包。(此过程可能需要科学上网!)
注意:添加ESP32开发环境的方式有很多,可自行上csdn查阅。
(二)添加BleMouse库
1.github上下载库文件,网址:
2.解压添加库文件到Arduino IDE的libraries文件目录下。
3.打开下载的库文件夹,点击进入找到BleMouse.cpp的文件。
4.找到164行代码将bleKeyboardInstance改为bleMouseInstance,否则可能会导致编译不能通过。
四、代码部分
#include //蓝牙模拟鼠标库BleMouse bleMouse; //创建类的对象,用于调用BleMouse类的成员函数const int xpin=34; //接遥感模拟输入X引脚const int modepin=5;//接遥感数字引脚SWunsigned long last_time=0; //计时器记录上一次的时间unsigned long current_time; //计时器记录当前的时间unsigned long interval_time=4000; //时间间隔为4000毫秒即4秒void setup() { pinMode(xpin,INPUT); pinMode(modepin,INPUT); Serial.begin(115200); Serial.println("Starting BLE work!"); bleMouse.begin(); //初始化蓝牙鼠标}void loop() { static int state; //声明静态局部变量state,用于记录按键的状态 if(bleMouse.isConnected()) { //做切换自动播放功能和手动操作功能用 int a=analogRead(xpin); //读取X轴数值变化 if(a>3000){ //遥感控制上滑动 Serial.println("Scroll up"); bleMouse.move(0,0,1); delay(100); } else if(a<10){ //遥感控制下滑动 Serial.println("Scroll down"); bleMouse.move(0,0,-1); delay(100); } else if(digitalRead(modepin)==0){ //按下开关键,状态量自加1 state+=1; Serial.print("state "); Serial.println(state); switch(state){ case 0: Serial.println("do nothing!"); break; case 1: Serial.println("go into the loop mode"); while(true){ //如果第一次按下开关键就进入自动滚动状态 current_time=millis(); //每4秒执行一次向上滚动 if(current_time-last_time>interval_time){ last_time=millis(); //注意这里不能用delay()函数,用计时器来执行延时操作 bleMouse.move(0,0,1); //不然容易造成按键不灵敏的状况 delay(100); Serial.println("loop mode"); } if(analogRead(xpin)<10 || analogRead(xpin)>3000){ delay(500); //当进入自动循环滚动时,任意拨动一下遥感则退出循环操作 state=0; break; } } break; } } else{ Serial.println("no acthion move"); } delay(100); } }
代码写好后配置好开发板对应信息、波特率、端口即可上传,注意ESP32开发板点击上传程序后等待出现connecting省略号连接符号时需要按住开发板的BOOT按键,目的将GPIO 0引脚接地进入下载模式才能上传成功,当进度条滚动过后即可松开BOOT按键
最后打开电脑或者手机设备的蓝牙功能,搜索ESP32 Bluetooth Mouse蓝牙信号连接成功即可使用相应功能。
五、BleMouse库部分函数功能讲解
bleMouse.move(0,0,1); //向上滚动 bleMouse.move(0,0,-1);//向下滚动 bleMouse.move(0,0,0,-1);//向左滚动 bleMouse.move(0,0,0,1);//向右滚动 bleMouse.move(0,-1);//向上移动鼠标指针 bleMouse.move(0,1);//向下移动鼠标指针 bleMouse.move(-1,0); //左移鼠标指针 bleMouse.move(1,0);//右移鼠标指针 bleMouse.click(MOUSE_LEFT);//左键鼠标点击 bleMouse.click(MOUSE_RIGHT);//右键鼠标点击 bleMouse.click(MOUSE_MIDDLE);//滚轮点击 bleMouse.click(MOUSE_BACK);//后退按钮点击 bleMouse.click(MOUSE_FORWARD);//前进按钮点击 bleMouse.click(MOUSE_LEFT | MOUSE_RIGHT);//同时点击鼠标左键和右键
开发者可根据实际需要参照更改相关功能
本案例所有库文件及相关代码后台回复“ESP32模拟鼠标”可获得。
欢迎转阅分享!
更多推荐
arduino nano 蓝牙
发布评论