arduino nano 蓝牙_ESP32模拟无线蓝牙鼠标自制翻页笔神器
平时的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的地址 https://dl.espressif.com/dl/package_esp32_index.json
2.完成网址添加后就可以在:工具>开发板>开发板管理器 中搜索并下载ESP32开发板数据包。(此过程可能需要科学上网!)
注意:添加ESP32开发环境的方式有很多,可自行上csdn查阅。
(二)添加BleMouse库
1.github上下载库文件,网址:https://github.com/T-vK/ESP32-BLE-Mouse
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 蓝牙_ESP32模拟无线蓝牙鼠标自制翻页笔神器相关推荐
- arduino nano 蓝牙_掌控板IO接口编程入门 | 用Arduino玩转掌控板(ESP32)系列
众所周知,掌控板在创客教育中用的非常广泛,它是一块基于 ESP32 的学习开发板.大家对掌控板编程,用的比较多的都是图形化编程的方式,比如 mPython.Mind+ 等.但是,既然掌控板是基于 ES ...
- 用Arduino玩转掌控板(ESP32):蓝牙翻页笔(PPT 控制器)
众所周知,掌控板在创客教育中用的非常广泛,它是一块基于 ESP32 的学习开发板.大家对掌控板编程,用的比较多的都是图形化编程的方式,比如 mPython.Mind+ 等.但是,既然掌控板是基于 ES ...
- c++ windows 蓝牙库_蓝牙翻页笔(PPT 控制器) | ESP32学习之旅-Arduino版
本系列历史文章目录: ESP32概述与Arduino软件准备 新冠肺炎疫情数据实时显示器 B 粉计数器 本期给大家带来的案例是:蓝牙翻页笔. 先来看一下演示视频吧: 蓝牙翻页笔 | PPT播放控制器 ...
- 蓝牙翻页笔(PPT 控制器)| ESP32轻松学(Arduino版)
众所周知,掌控板在创客教育中用的非常广泛,它是一块基于 ESP32 的学习开发板.大家对掌控板编程,用的比较多的都是图形化编程的方式,比如 mPython.Mind+ 等.但是,既然掌控板是基于 ES ...
- arduino使用oled代码_用Arduino玩转掌控板(ESP32):蓝牙翻页笔(PPT 控制器)
众所周知,掌控板在创客教育中用的非常广泛,它是一块基于 ESP32 的学习开发板.大家对掌控板编程,用的比较多的都是图形化编程的方式,比如 mPython.Mind+ 等.但是,既然掌控板是基于 ES ...
- python实现翻_python实现模拟按键,自动翻页看u17漫画
python实现模拟按键,自动翻页看u17漫画 发布于 2015-10-22 08:23:25 | 134 次阅读 | 评论: 0 | 来源: 网友投递 Python编程语言Python 是一种面向对 ...
- arduino nano 蓝牙_基于Arduino的摩尔斯电码练习及无线收发报训练器
摘要:本文介绍一款基于Arduino NANO开发的,带2.4G无线收发报功能的摩尔斯电码训练器的系统设计思路.发射端通过NANO板的外部中断引脚采集电键输入的脉冲PPM序列同时驱动喇叭播放电键音,然 ...
- arduino nano 蓝牙_Arduino使用HC05蓝牙模块与手机连接
通过本文,可以了解到以下内容: 进入 AT 模式进行蓝牙基本参数设置 Arduino 蓝牙控制 LED 电路设计以及代码编写 利用 Andorid 蓝牙串口调试软件测试功能 进入 At 模式进行蓝牙基 ...
- arduino nano 蓝牙_贸泽开售结合蓝牙5.2与USB 2.0的 Nordic Semiconductor nRF52820多协议SoC...
专注于引入新品并提供海量库存的电子元器件分销商贸泽电子 (Mouser Electronics) 即日起开售Nordic Semiconductor的nRF52820多协议片上系统 (SoC).此款S ...
最新文章
- Net设计模式之简单工厂模式(Simple Factory Pattern)
- oschina添加ssh公钥一记
- ReadyFor4GB破解win7支持4G内存恢复到原系统
- Maven-EclipseEE使用Maven构建Java web项目从0到1
- ST17H26的PWM模块
- 如何在linux下通过ssh运行X图形软件
- Mysql内存表主从复制【译】
- abaqus失效单元删除_Abaqus实例教学2-Failure Model
- jQuery.each方法
- ai疾病风险因素识别_克服AI的“蠕动因素”
- 求助 mac企业微信多开
- Linux快捷键的使用
- 用python批量下载modis数据的速度怎么样_MODIS数据下载与处理-pymodis的使用(持续更新...)...
- vue 下载插件downloadjs
- 计算机enter代表什么意思,enter是什么意思
- 蓝牙配对连接HCI log学习
- 数字身份的万亿市场之争才刚开始
- 基于java spring框架开发部标1078视频监控平台精华文章索引
- MySQL中复制表/结构的写法
- GitLab合并分支最后一步Merge按钮灰色不可点击,Ready to be merged automatically